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

Unleakage du trigger.
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
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 17:56    Sujet du message: Unleakage du trigger. Citer

Gui:
Trigger:
Cercle de Flammes
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Cercle de Flammes
Collapse Actions
Set Item_CdF_Centre = (Target point of ability being cast)
Collapse For each (Integer A) from 1 to 360, do (Actions)
Collapse Boucle - Actions
Unité - Create 1 Cercle de Flammes Dummy for (Owner of (Triggering unit)) at (Item_CdF_Centre offset by 350.00 towards (Real((Integer A))) degrees) facing ((Real((Integer A))) + 180.00) degrees
Unité - Order (Last created unit) to Seigneur de l'épouvante mort-vivant - Essaim putride Item_CdF_Centre
Unité - Add a 0.75 second Générique expiration timer to (Last created unit)
Custom script:   call RemoveLocation (udg_Item_CdF_Centre)

Voilà, je voudrais unleaker ce trigger, surtout au niveau de la boucle. Car actuellement ça cause un lag assez important et c'est gênant.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Chaosium
Floodeur prématuré


Inscrit le: 31 Aoû 2007
Messages: 606
Sujets: 12
Spécialité en worldedit: Enchanteur des enchantements.


MessagePosté le: 16/07/11 18:07    Sujet du message: Citer

Bah c'est ptet pas nécessairement du leak, simplement 360 unités qui lancent un sort en même temps et 360 modèles de sort à gérer c'est pas facile à avaler, tu pourrais essayer avec moins d'unités.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 18:10    Sujet du message: Citer

Gui:
Trigger:
(Item_CdF_Centre offset by 350.00 towards (Real((Integer A))) degrees)
J'aurais pensé qu'il faudrait unleaker éventuellement ce point ^^.

Effectivement. Je vais voir ce que ça donne avec 270unités, si ça lagg toujours trop je baisserai à 240 tant que ça restera un joli effet visuel ^^
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 16/07/11 18:25    Sujet du message: Citer

ce point apparait qu'une fois, osef complet.
je serais toi je reprendrais un peu le trigger, et au lieu de mettre un point offset polar, je mettrais ce point la dans une variable que tu pourras remove à la fin de chaque boucle.

Unité - Create 1 Cercle de Flammes Dummy for (Owner of (Triggering unit)) at (Item_CdF_Centre offset by 350.00 towards (Real((Integer A))) degrees) facing ((Real((Integer A))) + 180.00) degrees

devient :

Gui:
Trigger:
set pt_de_creation_dummy = (Item_CdF_Centre offset by 350.00 towards (Real((Integer A))) degrees)
Create 1 Cercle de Flammes Dummy for (Owner of (Triggering unit)) at pt_de_creation_dummy  facing ((Real((Integer A))) + 180.00) degrees


et à la fin de ta boucle tu mets :

Jass:
call RemoveLocation ( udg_pt_de_creation_dummy )

d'ailleur pour ton custom script tu as oublié les espaces entre les parenthèses et ta variable.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 16/07/11 18:50    Sujet du message: Citer

Ouai enfin il "apparaît" quand même 360 fois le nombre de fois où la compétence est lancée ...

Oui il faut s'en inquiéter, mais ce n'est clairement pas la cause du lag.
Cela vient de la création des 360 unités, c'est et ça restera l'opération la plus coûteuse parmi tout le panel d'actions fournies par le gui (ou le jass).
Alors 360 fois ...

Ensuite ne confondons pas leak et lag, une source de leak peut devenir à terme une source de lag (s'il s'agit d'un leak de référence d'handle le moteur de wc3 a de plus en plus de mal à mesure que le nombre de références d'handle utilisé activement ou "perdu" augmente), ou éventuellement après saturation de la mémoire vive, mais ce n'est pas forcément lié.
Le lag est causé avant toute chose par une opération globalement très coûteuse, de façon ponctuelle. (si c'est périodique ça sera injouable)

Au lieu de 360 unités tu ne pourrais n'en créer qu'une seule.
Puis la déplacer, lui ordonner de lancer le spell, la déplacer lui ordonner de lancer le spell, cela 359 fois.
Oui il est tout à fait possible de faire cela, je t'incite à rechercher sur thehelper.net, hiveworkshop.com ou wc3c.net pour plus d'infos à ce sujet.
Rien d'ardu ou exceptionnel à accomplir, il faut juste préparer un type d'unité dans l'éditeur d'objet, ainsi que la compétence dummy voulue.

Si malgré tout cela, le lag est toujours présent (mais sera forcément grandement réduit), tu peux en plus utiliser SetUnitX et SetUnitY au lieu du déplacement des fonctions gui, car ces opérations sont bien moins coûteuses.

Enfin la dernière optimisation est de ne plus créer de dummy dynamiquement mais une fois pour toute, une pour chaque joueur (oui oui cela suffit pour lancer n'importe quel dummy spell, mais bien sûr il faut veiller à add/remove les compétences nécessaires pour la dummy).

Cela dit cette dernière optimisation devrait être la moins perceptible (si elle l'est, ce dont je doute, mais c'est plus propre que créer une dummy par spell ...)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 19:07    Sujet du message: Citer

J'avais quand même 360leaks ^^ ce qui rendait le lag plus important encore.

Pour créer qu'une seule unité, je n'ai pas trop le temps ^^ vu que c'était à faire avant le medlay ^^
Je le ferai sûrement plus tard.

Pour l'instant, j'ai réduit le nombre d'unités à 180, doublé l'angle ajouté à chaque boucle et doublé les dommages de la vague. En plus j'ai unleaké de la boucle, ce qui améliore un peu les choses. Les lags sont plus là, du moins si vous avez pas un pc en feuille.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 16/07/11 19:14    Sujet du message: Citer

Vladadamm a écrit:
J'avais quand même 360leaks ^^ ce qui rendait le lag plus important encore.


J'ai parfois l'impression de parler une langue que moi seul comprend ><

Leak != lag OMG !!!

Citation:
Pour créer qu'une seule unité, je n'ai pas trop le temps ^^ vu que c'était à faire avant le medlay ^^
Je le ferai sûrement plus tard.


Le temps c'est de l'argent, le GUI fait perdre du temps, donc le GUI fait perdre de l'argent.

Citation:
Pour l'instant, j'ai réduit le nombre d'unités à 180, doublé l'angle ajouté à chaque boucle et doublé les dommages de la vague. En plus j'ai unleaké de la boucle, ce qui améliore un peu les choses. Les lags sont plus là, du moins si vous avez pas un pc en feuille.


Le seul truc significatif c'est que tu as diminué le nombre de créations d'unités, le leak n'a rien à voir dans cette histoire.
Et d'après ce que j'ai compris tu as aussi augmenté les dégâts de la compétence pour inciter à la lancer moins souvent, loul. (désolé mais y'a pas autre chose à dire)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 19:42    Sujet du message: Citer

Troll-Brain a écrit:
Vladadamm a écrit:
J'avais quand même 360leaks ^^ ce qui rendait le lag plus important encore.


J'ai parfois l'impression de parler une langue que moi seul comprend ><

Leak != lag OMG !!!

Citation:
Pour créer qu'une seule unité, je n'ai pas trop le temps ^^ vu que c'était à faire avant le medlay ^^
Je le ferai sûrement plus tard.


Le temps c'est de l'argent, le GUI fait perdre du temps, donc le GUI fait perdre de l'argent.

Citation:
Pour l'instant, j'ai réduit le nombre d'unités à 180, doublé l'angle ajouté à chaque boucle et doublé les dommages de la vague. En plus j'ai unleaké de la boucle, ce qui améliore un peu les choses. Les lags sont plus là, du moins si vous avez pas un pc en feuille.


Le seul truc significatif c'est que tu as diminué le nombre de créations d'unités, le leak n'a rien à voir dans cette histoire.
Et d'après ce que j'ai compris tu as aussi augmenté les dégâts de la compétence pour inciter à la lancer moins souvent, loul. (désolé mais y'a pas autre chose à dire)
C'est vrai que rares sont les personnes à comprendre le troll ^^
Un adepte du GUI étant contre toute forme de JASS a écrit:
Le temps c'est de l'argent, apprendre le JASS te fait perdre du temps, donc le JASS fait perdre de l'argent.

J'ai unleaké la boucle en rajoutant 1variable et 1custom script Remove Location. Donc j'ai unleaké un peu mon trigger au passage.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 16/07/11 20:00    Sujet du message: Citer

Citation:
Un adepte du GUI étant contre toute forme de JASS a écrit:
Le temps c'est de l'argent, apprendre le JASS te fait perdre du temps, donc le JASS fait perdre de l'argent.


Sauf qu'il t'en fait gagner énormément , une fois passé la période d'apprentissage -> fail.

Mais bon bien sûr il n'y a aucune logique là dedans, "le temps c'est de l'argent" n'est qu'un adage, qui ne fait pas office de loi.

Reste que le GUI était, n'est et restera qu'une interface graphique du jass limitée et super mal conçue et non l'inverse, mais bon cela aussi tu le savais déjà.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Nerzulll
Floodeur prématuré


Inscrit le: 30 Jan 2009
Messages: 669
Sujets: 56
Spécialité en worldedit: Faire des bug
Médailles: 1 (En savoir plus...)
Grand décorateur (Quantité : 1)

MessagePosté le: 16/07/11 20:04    Sujet du message: Citer

Moi j'crois quand même avoir compris.

Un nombre important de leak [Ou fuite de mémoire] peut entraîner un lag sur la durée, mais le lag n'est pas forcément du leak. Il peut simplement venir du fait que l'ordinateur fait à un moment T beaucoup d'opérations qui sont assez coûteuses en ressources qui font que le jeu subit une latence pour combler le fait que l'ordinateur est entrain de calculer.

C'est à peu près ça nan ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 20:13    Sujet du message: Citer

Troll-Brain a écrit:
Citation:
Un adepte du GUI étant contre toute forme de JASS a écrit:
Le temps c'est de l'argent, apprendre le JASS te fait perdre du temps, donc le JASS fait perdre de l'argent.


Sauf qu'il t'en fait gagner énormément , une fois passé la période d'apprentissage -> fail.

Mais bon bien sûr il n'y a aucune logique là dedans, "le temps c'est de l'argent" n'est qu'un adage, qui ne fait pas office de loi.

Reste que le GUI était, n'est et restera qu'une interface graphique du jass limitée et super mal conçue et non l'inverse, mais bon cela aussi tu le savais déjà.

Sauf que le temps que l'adepte du GUI finisse son apprentissage, il aura déjà en grande partie arrêté warcraftIII et le mapping à cause de la sortie de DotA 2 ^^ Donc ça lui aure fait perdre uniquement du temps.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 16/07/11 20:30    Sujet du message: Citer

Nerzulll a écrit:
Moi j'crois quand même avoir compris.

Un nombre important de leak [Ou fuite de mémoire] peut entraîner un lag sur la durée, mais le lag n'est pas forcément du leak. Il peut simplement venir du fait que l'ordinateur fait à un moment T beaucoup d'opérations qui sont assez coûteuses en ressources qui font que le jeu subit une latence pour combler le fait que l'ordinateur est entrain de calculer.

C'est à peu près ça nan ?


Ouep.

Cela devrait être plus complexe en multi, si tu exécutes des actions qui ne sont pas coûteuses mais génèrent beaucoup de données qui doivent être synchronisés et donc potentiellement du lag, mais cela dépasse mon domaine de connaissance, et de telles actions n'existent peut être tout simplement pas.

@Vladadamm : Si tu le dis.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 16/07/11 21:53    Sujet du message: Citer

Citation:
Enfin la dernière optimisation est de ne plus créer de dummy dynamiquement mais une fois pour toute, une pour chaque joueur (oui oui cela suffit pour lancer n'importe quel dummy spell, mais bien sûr il faut veiller à add/remove les compétences nécessaires pour la dummy).

Cela dit cette dernière optimisation devrait être la moins perceptible (si elle l'est, ce dont je doute, mais c'est plus propre que créer une dummy par spell ...)


peux tu développer ? à chaque fois que je réfléchis sur un sort et que vlad me dit de créer un dummy, moi j'trouve ça moche. je cherche toujours à faire autrement et j'me suis toujours dit qu'un truc du style serait possible. mais quand j'y pense c'est très vague et j'lache l'affaire car j'vois pas du tout comment faire.

tu pourras m'expliquer mais si possible en évitant ou définissant ces termes techniques tel "dummy spell" ou "dummy dynamique" ? car je n'ai pas vraiment le vocabulaire u_u (par contre ton langage j'le comprends très bien max m'a bien habitué à ça x))

d'ailleur j'ai à rajouter ça :
360 variables non remove c'est carrément négligeable aussi, ça fait juste plus propre de les remove. vlad a demandé d'unleaker son trigger moi c'est ce que j'ai fait Wink
les histoires de lag/leak chuis tout à fait d'accord avec troll.
les plus grandes sources de leak, viennent comme l'a dit troll des triggers periodic à très courte période (exemple le plus concret, le slide : période à 0.01 et possibilité de 24 points toutes les 0.01 seconde non remove. si vous faites une map avec des déplacement d'unit par slide en forme géométrique circulaire ou autre, et que ovus ne removez pas les points ça peut être bien plus conséquent.)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 16/07/11 22:43    Sujet du message: Citer

fulldragon a écrit:
peux tu développer ? à chaque fois que je réfléchis sur un sort et que vlad me dit de créer un dummy, moi j'trouve ça moche. je cherche toujours à faire autrement et j'me suis toujours dit qu'un truc du style serait possible. mais quand j'y pense c'est très vague et j'lache l'affaire car j'vois pas du tout comment faire.


Une dummy unit n'est pas toujours obligatoire, tout dépend de ce que tu veux faire, mais c'est par exemple la solution la plus simple pour "transformer" un sort à cible unique en "sort de zone", ou même simplement en tant qu'effet visuel (on peut changer leur taille, les déplacer sur le plan X/Y/Z, ce qui sont des avantages indéniables par rapport à de simples effets)
Il faut simplement les utiliser à bon escient.

Citation:
tu pourras m'expliquer mais si possible en évitant ou définissant ces termes techniques tel "dummy spell" ou "dummy dynamique" ? car je n'ai pas vraiment le vocabulaire u_u (par contre ton langage j'le comprends très bien max m'a bien habitué à ça x))


Doit y'avoir différents tutoriels à ce sujet (certes anglophones).
Sinon, "mon langage" est censé être parlé couramment par plus de 60 millions de personnes rien qu'en France.

Citation:
d'ailleur j'ai à rajouter ça :
360 variables non remove c'est carrément négligeable aussi, ça fait juste plus propre de les remove. vlad a demandé d'unleaker son trigger moi c'est ce que j'ai fait Wink


Alors là je dis non, derrière les variables il y a créations de points ...
Si tu fais cela pour toutes les boucles bonjour les dégâts ...
Idéalement il faudrait ne pas avoir de leak du tout, mais déjà s'occuper des boucles et périodiques serait pas mal ...

Citation:
les plus grandes sources de leak, viennent comme l'a dit troll des triggers periodic à très courte période (exemple le plus concret, le slide : période à 0.01 et possibilité de 24 points toutes les 0.01 seconde non remove. si vous faites une map avec des déplacement d'unit par slide en forme géométrique circulaire ou autre, et que ovus ne removez pas les points ça peut être bien plus conséquent.)


Je n'ai pas dit cela (du moins dans ce sujet). Mais oui forcément.
Par contre le slide avec l'utilisation de points, c'est comme les antibiotiques, ce n'est pas automatique, enfin en GUI si Laughing
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


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.


MessagePosté le: 16/07/11 22:57    Sujet du message: Citer

Alors pour ce qui est du dummy, y a une partie consacrée au dummy caster dans mon très très gros tutoriel non fini sur les sorts.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
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