Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=d7f69dfbd66e112c876e4f893fbe12b2Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Structure de boucle en GUI

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 louisdespi
Floodeur prématuré


Inscrit le: 21 Oct 2007
Messages: 437
Sujets: 70



MessagePosté le: 18/01/19 19:03    Sujet du message: Structure de boucle en GUI Citer

Bonsoir chère communauté,

Ce soir, je viens à vous avec une observation récente que j'ai pu faire dans plusieurs cartes scénarisées de papa Blizzou.
Celle-ci se rapporte, comme mon titre l'indique, à la manière avec laquelle ces derniers exécutent leurs boucles.

En effet, ils semblent aimer utiliser 2 déclencheurs différents pour exécuter une boucle simple.
Voici un exemple.

Secret:

Gui:
Trigger:
Reorient Formation
Evénements
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to FormationTotal, do (Déclencheur - Run Reorient Formation Single <gen> (checking conditions))


Gui:
Trigger:
Reorient Formation Single
Evénements
Conditions
Collapse Actions
Set TempAngle = (ReorientAngle + FormationAngleArray[(Integer A)])
Set TempX = (FormationDistanceArray[(Integer A)] x (Cos(TempAngle)))
Set TempY = (FormationDistanceArray[(Integer A)] x (Sin(TempAngle)))
Set TempPointReorient = (zReorientTarget offset by (TempX, TempY))
Région - Center FormationRegionArray[(Integer A)] on TempPointReorient
Custom script:   call RemoveLocation( udg_TempPointReorient )

Source : Campagne Elfe de la nuit (Extension) - missions 6 (nightelfx06.w3x)



Question Ma question est donc la suivante : Y a-t-il, pour une raison ou pour une autre, un avantage quelconque à utiliser ce genre de structure plutôt qu'un seul déclencheur?

Exclamation J'ai été également surpris que l'integer A, puisse être utilisé dans un autre déclencheur que celui qui l'a créé. J'imagine qu'il s'agit d'une variable globale donc

Merci d'avance pour votre lecture et bonne soirée !
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 18/01/19 20:14    Sujet du message: Citer

Les boucles for qui permettent de mettre plusieurs actions n'étaient pas disponibles sur ROC, seulement TFT. Même s'il s'agit d'une carte de l'extension, on ne sait pas à quel moment du développement de l'extension cette fonctionnalité a été ajoutée.

Néanmoins si on veut parler d'avantages à le faire ainsi (sans parler des inconvénients) cela serait que le sous éléments est un déclencheur et de ce fait a les avantages des déclencheurs comme par exemple le désactiver (ce qui veut dire que l'on lancerait X fois un déclencheur désactivé), le nombre de fois qu'il a été exécuté, etc; mais le principal avantage ce serait la factorisation du code, en effet le déclencheur peut être appelé de différents endroits (mais autant mettre la boucle dans le déclencheur dans ce cas).

Il n'y a pas de variables locales en GUI, Integer A et B sont en effet des variables globales ce qui peut poser des problèmes si on ne fait pas attention.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 louisdespi
Floodeur prématuré


Inscrit le: 21 Oct 2007
Messages: 437
Sujets: 70



MessagePosté le: 18/01/19 20:35    Sujet du message: Citer

En effet, leur système de "caravane" semble avoir été développé sous ROC, lors par exemple de la mission 2 des orcs, où il faut escorter Cairne. Ou encore pour la caravane de mort-vivants Dans la mission 4 des humains.

De ce que j'ai pu en voir, le système aurait été partiellement, voir quasi intégralement gardé tel quel pour les missions du même genre dans TFT. Wink

Et concernant les inconvénients lié a cette méthode, lesquels vois-tu?

Edit : Je me posais également la question : avec cette méthode, dans la premier déclencheur, si j'avais une autre actions suivant celle la, puis-je être sur que le 2eme déclencheur a finit tous ses tours de boucles avant d’exécuter ladite action? (J’espère que c'est compréhensible Very Happy )
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 26/01/19 03:43    Sujet du message: Citer

"avec cette méthode, dans la premier déclencheur, si j'avais une autre actions suivant celle la, puis-je être sur que le 2eme déclencheur a finit tous ses tours de boucles avant d’exécuter ladite action?"

Il me semble bien que tant que l'on ne fait pas de TriggerSleepAction (attendre), les actions s'effectueront dans l'ordre donné, à savoir l'ensemble des actions du trigger appelé avant de passer aux actions suivantes. De la même manière que lorsqu'on exécute une fonction en programmation.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 26/01/19 19:37    Sujet du message: Citer

Run Trigger exécute tout de suite le déclencheur car si il le mettrait sur la pile de déclencheur à exécuter alors ton déclencheur Reorient Formation ne fonctionnerait pas car IntegerA aurait la dernière valeur de boucle. Warcraft3 n'exécute qu'un déclencheur à la fois, il n'y a que sur les script IA où l'on a des threads. Le piège se situe en effet sur TriggerSleepAction qui laisse les autres déclencheurs s'exécuter entre temps et donc les variables globales peuvent être modifiées pas d'autres déclencheurs.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com