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=d734417f3208cd00b1193825dd42685eMé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

Comment optimiser mon sort de saut en GUI
Aller à la page 1, 2  Suivante
 
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
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 11:36    Sujet du message: Comment optimiser mon sort de saut en GUI Citer

Bonjour, j'ai fais un petit sort de saut en GUI dont je suis assez fier, mais j'aurais besoin de vos conseils pour l'optimiser et alléger le code si possible (par exemple pour éviter le leak à force d'utilisation).



(le déclencheur se lançant à chaque cast du saut)

Gui:
Trigger:
Hell Leap
Collapse Evénements
Unité - A unit Commence le lancement d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Saut de l'enfer
Or - Any (Conditions) are true
Collapse Conditions
(Région 000 <gen> contains (Target point of ability being cast)) Egal à  TRUE
Collapse Actions
Set leaper[(Player number of (Owner of (Casting unit)))] = (Casting unit)
Set leap_cible[(Player number of (Owner of (Casting unit)))] = (Target point of ability being cast)
Effet spécial - Create a special effect at (Position of leaper[(Player number of (Owner of (Casting unit)))]) using AbilitiesSpellsOtherDoomDoomDeath.mdl
Effet spécial - Create a special effect attached to the left foot of leaper[(Player number of (Owner of (Casting unit)))] using AbilitiesSpellsOtherBreathOfFireBreathOfFireDamage.mdl
Set leftfootFXleap[(Player number of (Owner of (Casting unit)))] = (Last created special effect)
Effet spécial - Create a special effect attached to the right foot of leaper[(Player number of (Owner of (Casting unit)))] using AbilitiesSpellsOtherBreathOfFireBreathOfFireDamage.mdl
Set rightfootFXleap[(Player number of (Owner of (Casting unit)))] = (Last created special effect)
Unité - Pause leaper[(Player number of (Owner of (Casting unit)))]
Unité - Move leaper[(Player number of (Owner of (Casting unit)))] instantly to (Position of leaper[(Player number of (Owner of (Casting unit)))]), facing leap_cible[(Player number of (Owner of (Casting unit)))]
Wait 0.02 seconds
Unité - Add Forme de corbeau to leaper[(Player number of (Owner of (Casting unit)))]
Animation - Change leaper[(Player number of (Owner of (Casting unit)))] flying height to 550.00 at 800.00
Unité - Turn collision for leaper[(Player number of (Owner of (Casting unit)))] Off
Set leaping[(Player number of (Owner of (Casting unit)))] = TRUE
Wait ((Distance between (Position of leaper[(Player number of (Owner of (Casting unit)))]) and leap_cible[(Player number of (Owner of (Casting unit)))]) / 1200.00) seconds
Animation - Change leaper[(Player number of (Owner of (Casting unit)))] flying height to 0.00 at 1700.00
Wait 0.10 seconds
Set leaping[(Player number of (Owner of (Casting unit)))] = FALSE
Unité - Reprendre leaper[(Player number of (Owner of (Casting unit)))]
Unité - Remove Forme de corbeau from leaper[(Player number of (Owner of (Casting unit)))]
Unité - Turn collision for leaper[(Player number of (Owner of (Casting unit)))] On
Effet spécial - Destroy leftfootFXleap[(Player number of (Owner of (Casting unit)))]
Effet spécial - Destroy rightfootFXleap[(Player number of (Owner of (Casting unit)))]



le déclencheur organisant le mouvement des unités en l'air



Gui:
Trigger:
Collapse Evénements
Temps - Every 0.01 seconds of game time
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 12, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
leaping[(Integer A)] Egal à  TRUE
Collapse Alors - Actions
Unité - Move leaper[(Integer A)] instantly to ((Position of leaper[(Integer A)]) offset by 6.00 towards (Facing of leaper[(Integer A)]) degrees), facing leap_cible[(Integer A)]
Unité - Make leaper[(Integer A)] face leap_cible[(Integer A)] over 0.10 seconds
Collapse Sinon - Actions
Do nothing





A noter que j'ai testé avec un CPU et un trigger de lancement bidon, le sort est multi instanciable et marche niquel Wink

(quoique la précision du saut est peut être un peu limite).


Merci d'avance ^^
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 25/08/08 11:40    Sujet du message: Citer

C'est multi instanciable du moment qu'un joueur ne peut lancer le saut qu'une seule fois simultanément.
Tu veux l'optimiser ?
Code en jass ...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 11:59    Sujet du message: Citer

Troll-Brain a écrit:
C'est multi instanciable du moment qu'un joueur ne peut lancer le saut qu'une seule fois simultanément.


Un joueur a un seul héro et ne peut lancer le saut qu'une seule fois simultanément donc.



Troll-Brain a écrit:
Tu veux l'optimiser ?
Code en jass ...


Merci pour ta réponse si claire -.-
Mais il n'y aurait pas moyen de l'optimiser avec des Customs scripts, ou j'ai mis des trucs en trop ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 25/08/08 12:06    Sujet du message: Citer

Bah franchement là ça leak un max Confused
Tu devrais regarder le miens et t'en inspirer pour t'aider =/

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 25/08/08 12:08    Sujet du message: Citer

On peut faire beaucoup de chose en gui mais si il y bien un truc que l'on ne peut faire c'est optimiser.
Ou ton déclencheur ne serait qu'une succession de custom script ...
Tu leak énormément de points dans ton every au fait.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 12:11    Sujet du message: Citer

Merci c'est déja plus constructif ^^
Et comment j'arrange ça docteur ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 25/08/08 12:18    Sujet du message: Citer

Y'a un tuto traitant des leak, ca sera toujours pas optimisé mais sans fuite de mémoire au moins.

PS : 0.01s pour cela c'est just too much
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 12:26    Sujet du message: Citer

Ok merci je vais voir le tuto sur le leak et je posterais le nouveau déclo ici Wink
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 12:48    Sujet du message: Citer

Bon j'ai suivi le tutorial d'Ayana sur le memory leak et j'ai obtenu deux erreurs de compilation, j'ai réglé la premiere (il manquait un '(') mais je vois pas comment régler la seconde..

voici le nouveau déclencheur :


Gui:
Trigger:
Collapse Evénements
Temps - Every 0.10 seconds of game time
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 12, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
leaping[(Integer A)] Egal à  TRUE
Collapse Alors - Actions
Custom script:   local point udg_movepoint[GetForLoopIndexA]
Set movepoint[(Integer A)] = ((Position of leaper[(Integer A)]) offset by 60.00 towards (Facing of leaper[(Integer A)]) degrees)
Unité - Move leaper[(Integer A)] instantly to ((Position of leaper[(Integer A)]) offset by 6.00 towards (Facing of leaper[(Integer A)]) degrees), facing leap_cible[(Integer A)]
Unité - Make leaper[(Integer A)] face leap_cible[(Integer A)] over 0.10 seconds
Custom script:   call RemoveLocation( udg_movepoint[GetForLoopIndexA()] )
Collapse Sinon - Actions
Do nothing



et l'erreur :


Code:
Erreurs de script

Ligne 49 : Attendait 'endif'


local point udg_movepoint[GetForLoopIndexA]

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Crowolf
Animateur


Inscrit le: 21 Avr 2008
Messages: 1607
Sujets: 81
Spécialité en worldedit: Utiliser le travail des autres
Médailles: 3 (En savoir plus...)
Grand décorateur (Quantité : 2) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 25/08/08 12:49    Sujet du message: Citer

Je pense qu'en gui tu auras du mal à optimizer plus que le saut de Rommstein (spécial bizou au modo corrompus). Mais c'est très bien de chercher ses propres solutions.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Crowolf
Animateur


Inscrit le: 21 Avr 2008
Messages: 1607
Sujets: 81
Spécialité en worldedit: Utiliser le travail des autres
Médailles: 3 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 25/08/08 12:49    Sujet du message: Citer

Je pense qu'en gui tu auras du mal à optimizer plus que le saut de Rommstein (spécial bizou au modo corrompus). Mais c'est très bien de chercher ses propres solutions.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 25/08/08 12:59    Sujet du message: Citer

Pourquoi diable utilises tu une variable locale ?
Tu la définis et utilises mal de toute façon.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 13:03    Sujet du message: Citer

C'est bon te sens pas obliger de craquer ton slip -.-
J'ai suivi le tuto d'Ayane et j'ai pensé bien faire..
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 25/08/08 13:52    Sujet du message: Citer

Zakrios a écrit:
C'est bon te sens pas obliger de craquer ton slip -.-
J'ai suivi le tuto d'Ayane et j'ai pensé bien faire..

Pardon Confused
L'emploi d'une variable locale est inutile ici, tu n'as pas de wait.
Tu n'as pas non plus besoin d'une variable array.
_________________


Dernière édition par Troll-Brain le 25/08/08 14:00; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 BlackZak
Floodeur prématuré


Inscrit le: 25 Avr 2008
Messages: 498
Sujets: 31

Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 25/08/08 13:56    Sujet du message: Citer

Okay merci, j'inscris donc ça dans mon petit cerveau étroit (pas de wait, pas de variable globale).


J'ai cherché d'autres tutoriaux sur le sujet du memory leak mais j'en ai pas trouvé, je dois mettre quoi à la place des variables globales pour supprimer la perte de mémoire plz ?
_________________
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
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
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