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

Shadowstep
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 16:56    Sujet du message: Shadowstep Citer

Bonjour (soir ?)

J'ai créé un sort, enfin créé...je l'ai fais tout seul de mes propres mains avec le sort Pas de l'ombre du voleur dans WoW comme modèle. Le but de ce sort est que le héros qui l'utilise se téléporte sur son adversaire et voit ses dégâts augmenté pour son prochain coup blanc. Je voulais donc savoir si il ne possédait pas d'erreur et si il y avait moyen de l'améliorer.

Secret:


Pour apprendre le sort
Secret:

Gui:
Trigger:
Evénements
Unité - A unit Apprend une compétence
Conditions
(Learned Hero Skill) Egal à  Pas de l'ombre
Actions
Set shadowstep = (shadowstep + 1)


L'effet du sort
Secret:

Gui:
Trigger:
Evénements
Unité - A unit Achève le lancement d'une compétence
Conditions
(Ability being cast) Egal à  Pas de l'ombre
Actions
Custom script:   local effect udg_TmpEffect = null
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
shadowstep Egal à  1
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to TmpPoint
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Set TmpEffect = (Last created special effect)
Effet spécial - Destroy TmpEffect
Héros - Modify Agilité of (Triggering unit): Ajouter 50
Wait 0.50 seconds
Héros - Modify Agilité of (Triggering unit): Soustraire 50
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
shadowstep Egal à  2
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to (Position of (Target unit of ability being cast))
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Set TmpEffect = (Last created special effect)
Effet spécial - Destroy TmpEffect
Héros - Modify Agilité of (Triggering unit): Ajouter 75
Wait 0.50 seconds
Héros - Modify Agilité of (Triggering unit): Soustraire 75
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
shadowstep Egal à  3
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to (Position of (Target unit of ability being cast))
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Set TmpEffect = (Last created special effect)
Effet spécial - Destroy TmpEffect
Héros - Modify Agilité of (Triggering unit): Ajouter 100
Wait 0.50 seconds
Héros - Modify Agilité of (Triggering unit): Soustraire 100
Collapse Sinon - Actions




EDIT : j'ai modifier mon déclencheur pour éviter les leaks....enfin normalement Smile
_________________
Un jour je finirai une map W3


Dernière édition par tetronitte le 06/05/12 17:53; édité 2 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ashgran
Membre actif


Inscrit le: 03 Mar 2012
Messages: 136
Sujets: 4
Spécialité en worldedit: Les choses chiantes et inutiles


MessagePosté le: 06/05/12 17:29    Sujet du message: Citer

Je vois un petit soucis :
-Ton héros donne t-il un coup à la cible du sort? C'est possible qu'il le fasse automatiquement, mais il pourrait y avoir des problèmes si une autre unité se trouve à côté et que ce soit celle-ci qui est attaqué. Si il en donne pas, il y a une commande [Unité] (issue order...) pour demander à une unité d'en attaquer une autre
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 17:36    Sujet du message: Citer

Sur tous mes test, même dans une grosse mêlée, le héros frappe toujours la cible qu'il vient de sélectionner. Mais j'ai un autre problème avec ce sort Smile
Le sort de base c'est le Hex et j'ai viré toutes les options mais transforme toujours la cible. Sur une map de test de sort celui-ci marche mais pas sur Fire of Dongeon. J'ai essayé de faire le sort canaliser mais j'ai un peut de mal à le configurer Smile
_________________
Un jour je finirai une map W3
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 18:00    Sujet du message: Citer

Puisque les actions sont à peu près les mêmes, tu pourrait tout regrouper et juste mettre des conditions pour les dégâts, ou encore mieux faire que les dégâts soient égaux à 25 + 25x le niveau du sort du héros.
Sinon les des dernières conditions n'utilisent pas TmpPoint, créant du leak comme tu l'as dit.

Le gros problème de ce sort, c'est l'augmentation de dégâts sur la prochaine attaque. Comme l'a dit Ashgran, il serait préférable de donner l'ordre à l'unité d'attaquer, parce qu'on est jamais sûr : si le joueur décide de backer à ce moment là, les dégâts ne seront pas augmentés sur l'attaque suivante, cette augmentation ne durant que 0.5 (voir 0.8) secondes. De même si le héros échoue sont attaque, ou s'il attaque plusieurs fois (ce qui peut arriver vu la dose d'agilité apportée) en 0.5 seconde, des problèmes surviendront. Mais ces problèmes, on ne peut pas (ou difficilement) les contourner, donc on ne peut pas vraiment te le reprocher.

Edit : Il me semble que le premier déclencheur est inutile : il existe une fonction disponible en GUI renvoyant le niveau d'un sort pour une unité.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 18:16    Sujet du message: Citer

Sapeur-Goblin a écrit:
Sinon les des dernières conditions n'utilisent pas TmpPoint, créant du leak comme tu l'as dit.


J'ai pas très bien compris, je pense qu'il manque un mot dans ta phrase Smile
Après pour le premier déclencheur, je ne sais pas comment faire autrement, pour le moment.
Je pense que je vais vous suivre et changer la modification de l'agilité par des dégâts direct vie le déclencheur "damage target..." en fonction de l'agilité du héros + 50/75/100
_________________
Un jour je finirai une map W3
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 18:21    Sujet du message: Citer

1) ton déclencheur est immonde, tu utilise des waits

2) la condition de sapeur c'est:
Gui:
Trigger:
(Level of Pas de l'ombre  for Ton Unité Egal à  un certain niveau

_________________
Inactif(Enfn presque)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 18:22    Sujet du message: Citer

tetronitte a écrit:
Sapeur-Goblin a écrit:
Sinon les des dernières conditions n'utilisent pas TmpPoint, créant du leak comme tu l'as dit.

J'ai pas très bien compris, je pense qu'il manque un mot dans ta phrase Smile

Désolé, je voulais dire : dans les deux dernières conditions (pour vérifier le niveau du sort du héros) la variable TmpPoint n'est pas utilisée quand tu téléportes l'unité, donc ça crée un leak.

Citation:
Après pour le premier déclencheur, je ne sais pas comment faire autrement, pour le moment.
Je pense que je vais vous suivre et changer la modification de l'agilité par des dégâts direct vie le déclencheur "damage target..." en fonction de l'agilité du héros + 50/75/100

Je pense que c'est la meilleure solution ; il n'y aura aucun problème.

Et après ces améliorations, go le rendre multi-instanciable Wink.

Edit : Même pas besoin d'utiliser cette condition Lord, tu fais juste une multiplication et tu boucle 3 lignes en une Razz.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 18:34    Sujet du message: Citer

J'ai changer les dégâts donc il n'y a plus de wait. Ca donne çà :
Gui:
Trigger:
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + 75.00) damage of attack type Héros and damage type Poison

Après je ne comprends pas pourquoi çà créera un leak dans les 2 dernières conditions alors quand dans la première çà ne leakera pas ^^'
Et pour changer ta condition avec "level of ability for trigerringunit Egal à un certain niveau", le un certain niveau je ne vois pas quoi mettre dedans.

Sapeur-Goblin a écrit:
Edit : Même pas besoin d'utiliser cette condition Lord, tu fais juste une multiplication et tu boucle 3 lignes en une Razz.

J'ai pas compris Sad

EDIT : enfait je pense avoir compris pour tout mettre dans une seule boucle grâce à la condition de Lord
_________________
Un jour je finirai une map W3
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: 06/05/12 18:46    Sujet du message: Citer

N'utilise pas de waits. Utilise l'évènement : A unit Initie l'effet d'une compétence.

Ton sort n'est pas MUI et bug si plusieurs unités le possède.

A la place de la variable shadowstep, fonctionne avec le niveau de la compétence. A la place de faire ces if then else horribles, fait un calcul pour modifier l'agilité de ton unit par rapport au niveau de la compétence :
25 + 25 * Level of Shadow Step for Triggering Unit

Après, tu n'as pas besoin de la variable TmpEffect. Tu peut utiliser directement Destroy Last created special effect.

La position de l'effet spécial leak.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 18:50    Sujet du message: Citer

J'ai changé vite fait le déclo et çà donne çà :
Secret:

Gui:
Trigger:
Evénements
Unité - A unit Achève le lancement d'une compétence
Conditions
(Ability being cast) Egal à  Shadowstep
Actions
Custom script:   local effect udg_TmpEffect = null
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Level of Pas de l'ombre  for (Triggering unit)) Egal à  1
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to TmpPoint
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Effet spécial - Destroy (Last created special effect)
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + 50.00) damage of attack type Héros and damage type Poison
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Level of Pas de l'ombre  for (Triggering unit)) Egal à  2
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to (Position of (Target unit of ability being cast))
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Effet spécial - Destroy (Last created special effect)
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + 75.00) damage of attack type Héros and damage type Poison
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Level of Pas de l'ombre  for (Triggering unit)) Egal à  3
Collapse Alors - Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to (Position of (Target unit of ability being cast))
Effet spécial - Create a special effect at (Position of (Triggering unit)) using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Effet spécial - Destroy (Last created special effect)
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + 100.00) damage of attack type Héros and damage type Poison
Collapse Sinon - Actions



J'ai essayer de vous suivre mais j'ai eus un peu trop d'info d'un coup Very Happy
A partir de là qu'est ce que je devrais changer ?
_________________
Un jour je finirai une map W3


Dernière édition par tetronitte le 06/05/12 19:11; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 18:56    Sujet du message: Citer

tetronitte a écrit:
Sapeur-Goblin a écrit:
Edit : Même pas besoin d'utiliser cette condition Lord, tu fais juste une multiplication et tu boucle 3 lignes en une Razz.

J'ai pas compris Sad

Puisque au niveau 1, ta compétence fait 50 points de dégâts, au niveau 2, 75, et au niveau 3, 100, on peut remarquer que la relation 25 + 25 x niveau lie les dégâts et le niveau de la capacité. Ensuite tu n'as plus qu'à faire ce calcul, en utilisant la fonction te donnant le niveau de la capacité pour l'unité, ce qui te permet de ne pas utiliser de conditions.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 18:58    Sujet du message: Citer

Ayès j'ai enfin compris, enfin je pense. Ca donnerais donc çà :

Secret:

Gui:
Trigger:
Evénements
Unité - A unit Achève le lancement d'une compétence
Conditions
(Ability being cast) Egal à  Shadowstep
Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to TmpPoint
Custom script:   call RemoveLocation( udg_TmpPoint )
Set TmpPoint = (Position of (Triggering unit))
Effet spécial - Create a special effect at TmpPoint using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Effet spécial - Destroy (Last created special effect)
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + (25.00 + (25.00 x (Real((Level of Pas de l'ombre  for (Triggering unit))))))) damage of attack type Héros and damage type Poison



EDIT : dites moi si je me trompe mais, si çà leak c'est parce que j'ai utiliser 2 fois la variable TmpPoint ? Alors je me demandais, c'est faisable de lui mettre un déploiement ?
_________________
Un jour je finirai une map W3
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 19:38    Sujet du message: Citer

tetronitte a écrit:
EDIT : dites moi si je me trompe mais, si çà leak c'est parce que j'ai utiliser 2 fois la variable TmpPoint ? Alors je me demandais, c'est faisable de lui mettre un déploiement ?

Non, tu n'as pas compris ce que je disais.
Regarde dans ta deuxième condition, quand tu appelais la fonction pour téléporter l'unité tu mettais Position of (Target unit of ability being cast) et non TmpPoint. Donc ça crée un leak. De même dans la troisième condition.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 tetronitte
Floodeur prématuré


Inscrit le: 08 Avr 2012
Messages: 551
Sujets: 33



MessagePosté le: 06/05/12 19:56    Sujet du message: Citer

Sapeur-Gobelin a écrit:
tetronitte a écrit:
EDIT : dites moi si je me trompe mais, si çà leak c'est parce que j'ai utiliser 2 fois la variable TmpPoint ? Alors je me demandais, c'est faisable de lui mettre un déploiement ?

Non, tu n'as pas compris ce que je disais.
Regarde dans ta deuxième condition, quand tu appelais la fonction pour téléporter l'unité tu mettais Position of (Target unit of ability being cast) et non TmpPoint. Donc ça crée un leak. De même dans la troisième condition.


Ha ok, c'était juste un oubli, mais au final maintenant que j'ai changé mon déclo et qu'il n'y a plus de condition je n'ai plus ce problème. Et tu n'as pas vraiment répondu à ma question. Dans ce déclencheur :
Gui:
Trigger:
Actions
Set TmpPoint = (Position of (Target unit of ability being cast))
Unité - Move (Triggering unit) instantly to TmpPoint
Custom script:   call RemoveLocation( udg_TmpPoint )
Set TmpPoint = (Position of (Triggering unit))
Effet spécial - Create a special effect at TmpPoint using ObjectsSpawnmodelsNightElfEntBirthTargetEntBirthTarget.mdl
Custom script:   call RemoveLocation( udg_TmpPoint )
Effet spécial - Destroy (Last created special effect)
Unité - Cause (Target unit of ability being cast) to damage (Triggering unit), dealing ((Real((Agilité of (Triggering unit) (Inclure bonuses)))) + (25.00 + (25.00 x (Real((Level of Pas de l'ombre  for (Triggering unit))))))) damage of attack type Héros and damage type Poison

Est-ce que çà leak ? Et si oui, est-ce du au fait que j'utilise 2 fois TmpPoint à la suite et dans ce cas faudrait-il mettre un déploiement ?
_________________
Un jour je finirai une map W3
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Sapeur-Goblin
Floodeur prématuré


Inscrit le: 14 Oct 2009
Messages: 719
Sujets: 40
Spécialité en worldedit: Les bugs
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 06/05/12 20:00    Sujet du message: Citer

Non, il n'y a pas de leak. Tu peux utiliser une variable autant de fois que tu veux Wink.
_________________
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 -> Les sorts Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2
La question posée dans ce topic a été résolue !

 
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