Je voudrais votre avis, je me suis mis à essayer de palier au Leak de mes TRES nombreux déclencheurs.
Y à-t-il des leaks dans ces triggers ? :
Secret:
Gui:
Trigger:
Evénements
Unité - A unit Acquiert un objet
Conditions
(Item being manipulated) Egal à Sceau de téléportation 0000 <gen>
Actions
Custom script: local effect udg_TmpEffect = null Set TmpPoint = (Center of TP 1 <gen>) Unité - Create 1 Cercle de puissance for Neutre Passif at TmpPoint facing Orientation bâtiment par défaut degrees Custom script: call RemoveLocation( udg_TmpPoint )
For each (Integer A) from 1 to 1, do (Actions)
Boucle - Actions
Set TmpPoint = (Center of POP fontaine vie <gen>) Effet spécial - Create a special effect at TmpPoint using AbilitiesSpellsOtherVolcanoVolcanoDeath.mdl Custom script: call RemoveLocation( udg_TmpPoint ) Set TmpEffect = (Last created special effect) Effet spécial - Destroy TmpEffect Unité - Unhide Fontaine de mana 0066 <gen>
For each (Integer A) from 1 to 1, do (Actions)
Boucle - Actions
Set TmpPoint = (Center of POP fontaine mana <gen>) Effet spécial - Create a special effect at TmpPoint using AbilitiesSpellsOtherVolcanoVolcanoDeath.mdl Custom script: call RemoveLocation( udg_TmpPoint ) Set TmpEffect = (Last created special effect) Effet spécial - Destroy TmpEffect Unité - Unhide Fontaine de santé 0067 <gen>
Joueur - Joueur 1 (Rouge) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 2 (Bleu) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 3 (Cyan) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 4 (Pourpre) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 5 (Jaune) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 6 (Orange) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 7 (Vert) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 8 (Rose) types a chat message containing -repick as Résultat équivalent
Conditions
repick_off[(Player number of (Triggering player))] Egal à FALSE
Actions
Groupe unité - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is Un bâtiment) Egal à FALSE)) and do (Actions)
Boucle - Actions
Unité - Remove (Picked unit) from the game
Set TmpPoint = (Center of REPICK <gen>) Unité - Create 1 Feu follet for (Triggering player) at TmpPoint facing Orientation bâtiment par défaut degrees Custom script: call RemoveLocation( udg_TmpPoint ) Set TmpPoint = (Center of REPICK <gen>) Caméra - Pan camera for (Triggering player) to TmpPoint over 0.00 seconds Custom script: call RemoveLocation( udg_TmpPoint ) Set assassin[1] = 0 Set barbare[1] = 0 Set chamane[1] = 0 Set druide[1] = 0 Set guerrier[1] = 0 Set magefire[1] = 0 Set mageice[1] = 0 Set paladin[1] = 0 Set ranger[1] = 0 Set warlock[1] = 0
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
Posté le: 11/04/12 14:36 Sujet du message:
Il ne me semble pas, mais juste une petite précision : lorsque tu détruis un effet juste après sa création, tu n'est pas obligé de le stocker dans une variable pour ensuite le détruire à partir de cette variable. Utilise simplement cette action :
Gui:
Trigger:
Effet spécial - Destroy (Last created special effect)
Edit: Oups! A force d'utiliser des groups globals, j'en oublie qu'ils leakent. Rajoute cette action dans un custom script avant GroupEnum :
Jass:
bj_wantDestroyGroup = true
Ps : les loop qui vont de 1 à 1 servent à rien . _________________
Je t'avouerai, j'ai pas compris ce que tu as dit,
-avant le GroupEnum ?
-et je devrais mettre quoi à la place d'un loop 1 à 1, car si je met pas au minimum çà, mon 2ème effet ne marche pas. _________________
Inscrit le: 12 Nov 2009 Messages: 711 Sujets: 50 Spécialité en worldedit: Vétéran
Posté le: 11/04/12 14:49 Sujet du message:
ton pick leak,
tu crée une variable Groupe unité tu entre les même parametre dedans puis tu met ta variable dans le pick et le
custom scipt : call DestroyGroup ( udg_tavar ) apres ton pick ou a la fin du declo comme tu le sens _________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
Posté le: 11/04/12 14:50 Sujet du message:
Ton deuxième déclencheur deviendrait ça :
Gui:
Trigger:
Evénements
Joueur - Joueur 1 (Rouge) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 2 (Bleu) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 3 (Cyan) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 4 (Pourpre) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 5 (Jaune) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 6 (Orange) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 7 (Vert) types a chat message containing -repick as Résultat équivalent Joueur - Joueur 8 (Rose) types a chat message containing -repick as Résultat équivalent
Conditions
repick_off[(Player number of (Triggering player))] Egal à FALSE
Actions
Custom script: set bj_wantDestroyGroup = true
Groupe unité - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is Un bâtiment) Egal à FALSE)) and do (Actions)
Boucle - Actions
Unité - Remove (Picked unit) from the game
Set TmpPoint = (Center of REPICK <gen>) Unité - Create 1 Feu follet for (Triggering player) at TmpPoint facing Orientation bâtiment par défaut degrees Custom script: call RemoveLocation( udg_TmpPoint ) Set TmpPoint = (Center of REPICK <gen>) Caméra - Pan camera for (Triggering player) to TmpPoint over 0.00 seconds Custom script: call RemoveLocation( udg_TmpPoint ) Set assassin[1] = 0 Set barbare[1] = 0 Set chamane[1] = 0 Set druide[1] = 0 Set guerrier[1] = 0 Set magefire[1] = 0 Set mageice[1] = 0 Set paladin[1] = 0 Set ranger[1] = 0 Set warlock[1] = 0
Sinon je vois pas trop pourquoi ton deuxième effet ne marcherait pas . Une boucle allant de 1 à x répète les actions x fois, donc une boucle allant de 1 à 1 les répète 1 fois -> autant s'en passer. _________________
Merci bien pour les réponses, j'ai fait comme toi Sapeur-Gobelin
Du coup je vais refaire tous mes déclencheurs de téléportation, déjà (sava être loooooooooooong) + les 80 déclencheurs pour choisir mes héros _________________
Un truc très basique mais qui marche, çà fait 1an maintenant et j'étais encore plus nul que maintenant, j'avais trouvé un tuto sur le net et je l'ai recopier puis copier collé 80 fois sur 3 map différentes mdr....j'ai honte
Gui:
Trigger:
Evénements
Unité - A unit enters Ranger <gen>
Conditions
((Owner of (Triggering unit)) Egal à Joueur 1 (Rouge)) and (ranger[1] Egal à 0)
Actions
Unité - Remove (Triggering unit) from the game Set ranger[1] = 1 Wait 2.00 seconds Unité - Create 1 Sylvanas for Joueur 1 (Rouge) at (Center of Zone de depart <gen>) facing Orientation bâtiment par défaut degrees Caméra - Pan camera for Joueur 1 (Rouge) to (Center of Zone de depart <gen>) over 0.00 seconds Set J1 = (Last created unit)
Ce truc là pour 10 héros et 8 joueurs mdr
Oubliez le leak hein, je ne m'y suis pas encore mis _________________
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
Posté le: 11/04/12 16:12 Sujet du message:
J'ai mal pour toi.
Dire qu'un déclencheur suffirait... Regarde un peu dans les tutos, il y a pas mal d'exemple de sélection. Le choix par taverne peut aussi être assez intéressant ne faisant intervenir qu'une région. _________________
Inscrit le: 12 Nov 2011 Messages: 1062 Sujets: 107 Spécialité en worldedit: Inactif(Enfin presque) Médailles: 1 (En savoir plus...)
Posté le: 11/04/12 16:28 Sujet du message:
plutot que de faire "set ranger [1] = 1" tu peux faire set ranger ["numéro du joueur(propriétaire de (Triggering Unit))] = 1
puis tu stock le joueur dans une variable "player = le joueur" et à la place de "Unité - Create 1 Sylvanas for Joueur 1 (Rouge) ..." tu met "Unité - Create 1 Sylvanas for "player" ...
Attention le système n'est pas "multiinstanciable", il sert juste a réduire ton nombre de déclencheurs.
J'avais pensé à le refaire en 8 déclencheurs (nombre de joueurs max) seulement ils auraient fallu que je change mon système de repick que je viens juste de terminer . Et je n'ai pas les capacités pour en refaire un pour mes nouveaux déclencheurs. Mais je vais essayer différentes façon dont les 2 tutos de Lord_Demon_X pour voir. _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 11/04/12 18:37 Sujet du message:
Gui:
Trigger:
Set TmpPoint = (Center of REPICK <gen>) Unité - Create 1 Feu follet for (Triggering player) at TmpPoint facing Orientation bâtiment par défaut degrees Custom script: call RemoveLocation( udg_TmpPoint ) Set TmpPoint = (Center of REPICK <gen>) Caméra - Pan camera for (Triggering player) to TmpPoint over 0.00 seconds Custom script: call RemoveLocation( udg_TmpPoint )
Gui:
Trigger:
Set TmpPoint = (Center of REPICK <gen>) Unité - Create 1 Feu follet for (Triggering player) at TmpPoint facing Orientation bâtiment par défaut degrees Caméra - Pan camera for (Triggering player) to TmpPoint over 0.00 seconds Custom script: call RemoveLocation( udg_TmpPoint )
Là, le point ne leak pas, tant qu'il n'y a pas d'action wait ou autre écoulation de temps au milieu ^^ _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 12/04/12 22:24 Sujet du message:
Les unités ne leakent pas. C'est le point qui leak. Il leak dans ce cas si par exemple tu fait ça :
Gui:
Trigger:
Set TmpPoint = (Center of REPICK <gen>) Unité - Create 1 Feu follet for (Triggering player) at TmpPoint facing Orientation bâtiment par défaut degrees Wait 3.00 seconds Caméra - Pan camera for (Triggering player) to TmpPoint over 0.00 seconds Custom script: call RemoveLocation( udg_TmpPoint )
Toutes les heures sont au format GMT + 1 Heure Aller à la page 1, 2Suivante
Page 1 sur 2
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