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=04c87016183c1f1e0f5d551b6952583dMé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

Déclencheur de DoT multi-instanciable

 
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
 Chaosium
Floodeur prématuré


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


MessagePosté le: 06/03/11 03:12    Sujet du message: Déclencheur de DoT multi-instanciable Citer

Salut,

Ça fait un petit moment que je bloque sur un problème. J'utilise plusieurs sorts de dégâts périodiques augmentés par déclencheur, jusque là pas de problème. Par exemple, j'utilise un truc simple comment suivant :

Gui:
Trigger:
Evènements
Unité - A unit Commence le lancement d'une compétence
Collapse Conditions
(Ability being cast) Egal A  Ma compétence
Collapse Actions
Set Lanceur = (Casting unit)
Set Unite_Cible = (Target unit of ability being cast)
Set Degats_Periodiques = 100.00
Collapse For each (Integer A) from 1 to 10, do (Actions)
Collapse Boucle - Actions
Unité - Cause Lanceur to damage Unite_Cible, dealing Degats_Periodiques damage of attack type Chaos and damage type Normal
Wait 2.00 seconds

Ça baigne, la cible prend 100 dégâts toutes les 2 secondes pendant 20 secondes au total. (100 étant un exemple, sinon je m'embêterai pas à le faire par déclencheur x) ). Seulement le problème, c'est que je peux l'appliquer qu'à une seule unité à la fois, or j'aimerai qu'on puisse lancer le sort sur plusieurs unités à la fois.
Bien sûr, j'imagine qu'il faut mettre des déploiements, mais je n'arrive pas à trouver un système qui puisse garder en mémoire chaque unité touchée. J'avais essayé de mettre un entier au début du déclo, et chaque fois de faire entier+1, mais ça revient au même, une seule unité est touchée à la fois.

Est-ce qu'il existe un moyen de réaliser ça en GUI?

Merci d'avances pour vos réponses.
_________________
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: 06/03/11 13:00    Sujet du message: Citer

Salut, pour ma map Confrontation que j'avais recommencée en vjass, j'avais trouvé un excellent tuto pour les dot

http://www.wc3c.net/showthread.php?t=100953

C'est applicable pour plein de truc utiles.
[edit] mais c'est pas en gui... En gui, ça complique énormément...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 06/03/11 13:26    Sujet du message: Citer

Tu peux le faire avec des timers et une hashtable. Je garantis pas que les actions aient exactement ces noms puisque je n'ai pas encore récupéré WE :
Gui:
Trigger:
Actions
Hashtable - Save (Target unit of ability being cast) as 0 of (handle Id of (Timer[Index])) in Hashtable
Hashtable - Save (Casting unit) as 1 of (handle Id of (Timer[Index])) in Hashtable
Hashtable - Save 100.00 as 2 of (handle Id of (Timer[Index])) in Hashtable
Hashtable - Save 9 as 3 of (handle Id of (Timer[Index])) in Hashtable
Unité - Cause (Casting unit) to damage (Target unit of ability being cast), dealing 100 damage of attack type Chaos and damage type Normal
Compte à rebours - Start Timer[Index] as répété that will expire in 2.00 seconds
Set Index = Index + 1
Collapse If (Index supérieur à *MAXINDEX*) then
Set Index = 0

Timer est un compte à rebours avec un déploiement de MAXINDEX.
Index est un entier qui commence à 0.
Hashtable est une table de hachage que tu auras initialisé.

Dans un autre déclencheur, tu mets comme évènements "tous tes timer de 0 à MAXINDEX expires" (tu peux le faire par déclencheur en initialisation avec une boucle et l'action "Trigger - Add event"), tu récupères les données avec "Set Lanceur = Load 0 of (handle Id of (Get expired timer)) in Hashtable", etc..., et tu réduis de 1 la donnée n°3 (et tu fais ce que tu veux sur la donnée n°2, les dégâts). Lorsqu'elle atteint 0, tu arrêtes le timer.

Il pourra donc y avoir MAXINDEX + 1 sorts en même temps.

Sinon, il faut utiliser l'évènement "Initie l'effet d'une compétence" dans l'énorme majorité des cas.

EDIT : Grillé par Crowolf que je plussoi : c'est vraiment plus facile en jass/vjass et c'est surtout plus logique (y'a pas à gérer les index des timers et t'as besoin que d'un seul déclo).
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 06/03/11 16:21    Sujet du message: Citer

Je vais jeter un œil au tuto sur les hashtables et je vais essayer ça, merci.


EDIT : Wahou, ça fonctionne! C'est vraiment très utile ces hashtables, j'aurai jamais cru ça possible, ça rend les possibilités de sorts presque infinies! Razz Un grand merci.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Profet (Quantité : 1)

MessagePosté le: 08/03/11 02:21    Sujet du message: Citer

Si tu fais du jass/vjass, tu peux utiliser ma lib JBuff pour créer des buffs complexes très facilement Smile
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
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
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