Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Rhadamante Petit flooder
Inscrit le: 28 Aoû 2007 Messages: 1457 Sujets: 24 Spécialité en worldedit: Bêêh hé hé hé ! Médailles: 3 (En savoir plus...)
|
Posté le: 24/04/08 17:46 Sujet du message: |
|
|
Et concernant le fait de convertir des déclencheurs Gui en Jass en ne changeant que le nom des variables pour en faire des locales, c'est possible ?
Si oui, est-ce que ça risque de poser des problèmes ou est-ce qu'il y a des limitations ? _________________
|
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 24/04/08 18:59 Sujet du message: |
|
|
Il n'y a pas de limitations en Jass, donc si tu convertit ton déclencheur en Jass tu pourra sans problèmes utiliser les variables locales (du moment que tu ne leur donne pas le même nom que tes variables globales. _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 24/04/08 19:53 Sujet du message: |
|
|
aprés faut comprendre un minimum le code.
une locale n'est accessible que dans sa fonction _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Rhadamante Petit flooder
Inscrit le: 28 Aoû 2007 Messages: 1457 Sujets: 24 Spécialité en worldedit: Bêêh hé hé hé ! Médailles: 3 (En savoir plus...)
|
Posté le: 24/04/08 20:48 Sujet du message: |
|
|
Merci de vos réponses, ça m'éclaire un petit peu plus.
Autre question, est-ce que l'utilisation de locale dans un déclencheur en GUI pour un entier se justifie ? En gros est-ce que ça provoque un leak, si j'utilise une variable globale pour un entier dont je me sers à chaque fois qu'un certain sort est jeté ? _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 24/04/08 21:03 Sujet du message: |
|
|
Rhadamante a écrit: | Merci de vos réponses, ça m'éclaire un petit peu plus.
Autre question, est-ce que l'utilisation de locale dans un déclencheur en GUI pour un entier se justifie ? En gros est-ce que ça provoque un leak, si j'utilise une variable globale pour un entier dont je me sers à chaque fois qu'un certain sort est jeté ? |
nan un entier ca leak pas.
et une variable locale n'est vraiment nécessaire qu'aprés un wait _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Rhadamante Petit flooder
Inscrit le: 28 Aoû 2007 Messages: 1457 Sujets: 24 Spécialité en worldedit: Bêêh hé hé hé ! Médailles: 3 (En savoir plus...)
|
Posté le: 24/04/08 21:22 Sujet du message: |
|
|
Merci encore ! Ils sont fort ces entiers quand même... _________________
|
|
Revenir en haut |
|
|
zril Membre actif
Inscrit le: 02 Jan 2008 Messages: 175 Sujets: 35
|
|
Revenir en haut |
|
|
Brissou de Mourièssou Créateur de sorts, depuis 1936.
Inscrit le: 30 Aoû 2007 Messages: 1510 Sujets: 26 Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition. Médailles: 2 (En savoir plus...)
|
Posté le: 15/06/08 03:52 Sujet du message: |
|
|
Une brève explication du pourquoi les entiers et autres types de bases sont gentils alors que les les autres y sont vilains, ils polluent notre mémoire et squatte notre processeur.
Un entier c'est simplement qu'une valeur, stocké sur très peu de place, il est donc aisé de la transporter à travers tout notre code. On peut la recopier à chaque fois qu'on l'envoie dans une fonction ou dans une autre variable. Alors que les autres, les unités par exemple, c'est un gros tas de variables différentes: des entiers, des floats, un modèle, une texture, des sons et compagnie... Tout ce monde utilise pas mal de mémoire, c'est pas du tout pratique à transporter, puis notre unité on veut la conserver sans s'amuser à la recopier partout. Donc pour se balader aussi facilement avec son unité qu'avec son entier on garde seulement l'adresse mémoire où sont stockées toute les données.
Une métaphore pour bien comprendre, pour déménager c'est plus pratique de changer d'adresse que de transporter sa maison là où veut.
Le problème c'est que si on paume notre adresse, on peut plus retrouver notre unité, il faut donc vider cette mémoire pour supprimer correctement l'objet. _________________
|
|
Revenir en haut |
|
|
Shadows_Killers Membre actif
Inscrit le: 24 Aoû 2009 Messages: 116 Sujets: 9 Spécialité en worldedit: Ne pas finir ce que j'ai commencé
|
Posté le: 30/09/09 15:47 Sujet du message: |
|
|
J'avais compris le début, Bryce, mais avec ton exemple j'avoue que je suis largué ^^. Bon, en fait j'exagère mais je trouve l'exemple plus compliqué que la théorie, comme quoi..
En revanche, je trouve ce petit tuto pratique, il faudra que je pense à m'en servir si j'ai des problèmes de "wait". _________________
Projet : Le Grand Démolisseur, La Récré Star Wars
En cours : prépa MP
AFK |
|
Revenir en haut |
|
|
Bantas Anomalie floodiforme
Inscrit le: 21 Aoû 2007 Messages: 1524 Sujets: 37
Médailles: 1 (En savoir plus...)
|
Posté le: 30/09/09 16:01 Sujet du message: |
|
|
Euh.. ça ne marche plus depuis la 1.24 de s'y prendre comme ça. Ceci dit, on peut encore le faire de façon détournée, avec des trucs de ce genre :
Gui: | Trigger: Actions |
Cependant, suite à la suppression du bug dit de shadowing des variables globales (c'est celui dont on parle!), jasshelper vérifie que vos variables locales ont bien des noms différents de vos variables globales. Donc il y a peut-être moyen de faire ça comme dans le tuto avec jasshelper. _________________
|
|
Revenir en haut |
|
|
Shadows_Killers Membre actif
Inscrit le: 24 Aoû 2009 Messages: 116 Sujets: 9 Spécialité en worldedit: Ne pas finir ce que j'ai commencé
|
Posté le: 30/09/09 20:31 Sujet du message: |
|
|
De toutes façons, je n'ai ni jasshelper ni aucun add-on pour le JASS étant donné que je me contente du GUI (je n'ai pas le niveau du JASS, pour l'instant ça reste trop galère !). En revanche, ta technique avec les Custom script me plait, d'autant plus que j'ai compris ^^.
[edit] correction d'une faute (eh oui, il faut bien ...) _________________
Projet : Le Grand Démolisseur, La Récré Star Wars
En cours : prépa MP
AFK |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 20/01/10 11:16 Sujet du message: |
|
|
Cette méthode ne fonctionne plus du tout avec le nouveau patch à moins d'avoir Jasshelper et le shadowing des variables activés.
Lol Vexorian qui vient à la rescousse des adeptes du GUI !!!
Pour faire simple on va dire qu'il faut le JassNewGenPack, et éditer le fichier jasshelper.conf (avec un éditeur de texte) présent dans le dossier jassnewgenpack5d, en rajoutant une ligne :
[doshadowfixer]
On n'est plus limité en nombre de variables locales ainsi déclarées dans un trigger.
Mais y'a toujours les limitations de l'interface gui, inutilisable dans un pick every unit , dans une condition de if, etc ...
Bref à chaque fois que le gui utilise la variable dans une fonction, de part la nature d'une variable locale, accessible uniquement dans la fonction où elle est déclarée.
On peut bien sur y remédier en utilisant une variable globale tampon. _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 14/05/12 22:21 Sujet du message: |
|
|
Les limitations du GUI restent les mêmes mais il me semble que depuis les "nouveaux" patchs on puisse utiliser autant de variables locales "local ... udg_..." que l'on souhaite dans une même fonction (déclencheur).
Simplement maintenant les variables locales ont la priorité par rapport aux variables globales quand elles ont le même nom.
Et on ne plus "typecaster" en utilisant le même nom pour une variable locale et globale avec des types différents.
Autrement dit cette méthode ne serait plus obsolète mais totalement viable (mais encore fois il reste le problème du GUI qui a tendance à diviser en plusieurs fonctions la moindre opération comme les conditions de "if/then".
A tester et confirmer, ou infirmer d'ailleurs. _________________
|
|
Revenir en haut |
|
|
|