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=0b53beb23a4c6bbe0aaeb72ad15f675bMé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

Un sort de cible en vJass
Aller à la page 1, 2, 3  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
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

MessagePosté le: 06/09/09 10:27    Sujet du message: Un sort de cible en vJass Citer

Kikou les gens.

Alors voilà, je viens de me rendre compte que je ne savais pas vraiment comme j'allais procéder pour faire des sorts "de cible" pour AL. J'appelle sort de cible un sort qui requiert une cible, et qui envoie un projectile sur cette cible, projectile qui infligera des dégâts. Au début je me disais je vais attendre (Distance entre le lanceur et la cible/Vitesse du projectile), puis j'inflige des dégâts, mais c'est vraiment moche comme technique.

Donc ayant récemment appris pas mal de trucs, voici mon nouveau raisonnement, et je voudrais que des personnes plus qualifiées que moi me disent si il est juste :

- Je crée une unité dummy, modèle nul, pas d'ombre, avec comme projectile d'attaque le projectile que je souhaite pour mon sort. Je lui met 1 d'attaque.
- Par déclencheur, lorsque mon sort est lancé, je crée un dummy du type précédent, je lui ordonne d'attaquer la cible, puis très peu de temps après je bouge ce dummy dans un coin de la map où on ne pourra pas le voir.
- Je crée un nouveau déclencheur avec comme évènement l'unité ciblée subit des dégâts. Grâce aux hashtable, je sauve l'ID du dummy précédemment créé dans la ligne n°ID du déclencheur créé.
- Dans ce déclencheur je met comme condition que l'unité qui lui a infligé les dégât n'est autre que le dummy créé, puis je met en route mes actions principales.

C'est juste ou pas comme raisonnement ? Et à la fin du lancement du déclencheur créé, y a-t-il moyen de le supprimer pour éviter un leak ?

Merci ! Smile

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


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 06/09/09 10:32    Sujet du message: Citer

Oui il est possible de supprimer le déclencheur dynamique que tu as créé mais il faut garder un lien vers les actions de ce dernier si tu en utilises. Car il faut les supprimer avant de supprimer le déclencheur.
Sinon tu peux aussi ne pas utiliser d'action et ne mettre qu'une condition à ton déclencheur. Mais tu n'auras pas le droit à certaines fonctions (du genre PolledWait et TriggerSleepAction).

Mais euh ... pourquoi tu ne te bases pas sur une compétence du genre bombe d'acide ? Si je me souviens bien avec cette compétence tu peux la modifier pour avoir une sort avec projectile sans effet secondaire.
Tu peux aussi utiliser chaine d'éclair en virant les rebonds au pire.

EDIT : Pour le premier raisonnement oui c'est un peu moche. Parce que la cible bouge le projectile va le suivre et mettre plus de temps que prévu pour l'atteindre.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.


Dernière édition par Magus le 06/09/09 10:35; édité 1 fois
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: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/09/09 10:34    Sujet du message: Citer

Mhhhh...
C'est pas bête, mais comment je vérifie que les dégâts reçus par la cible sont ceux du sort et non d'autre part ?

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


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 06/09/09 10:36    Sujet du message: Citer

Ah ok c'est ça le problème. Je me disais bien que j'avais du raté quelque chose Very Happy

Utilise un buff dans ce cas la. Je crois que bombe d'acide peut en poser un. Tu n'as plus qu'a vérifier si l'unité a le buff et tu l'enlèves immédiatement.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
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: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/09/09 10:39    Sujet du message: Citer

Mhhh...
C'est fiable comme technique ... ?

Moi je préfère la mienne, tu peux juste m'indiquer avec du code comment supprimer les actions avant le déclo comme tu as dit stp ? La solution des conditions, j'ai pas trop compris, mais je pense que je préfère éviter.

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


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 06/09/09 10:53    Sujet du message: Citer

Jass:
local trigger t = CreateAction()
local triggeraction actions

...
...
...
set actions = TriggerAddAction(t, function blablabla)
...
...
...
//Si ton déclencheur à des conditions :
call TriggerClearConditions(t)

call TriggerRemoveAction(t, actions)
call DestroyTrigger(t)

La j'ai fais simple avec des variables locales. Au pire pour garder une trace facilement tu peux utiliser une hashtable ça fonctionnera parfaitement.

Sinon la technique du buff est fiable je pense. Vu qu'on peut détecter le buff et que l'évènement "une unité subit des dégâts" vient juste après que l'unité ait pris des dégâts. Donc le buff sera bien la.
Par contre si tu mets "0" en dégâts pour le sort je sais pas si l'évènement est fait :/
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1510
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Créateur de héros (Quantité : 1) Concours de sorts amusants (Quantité : 1)

MessagePosté le: 06/09/09 11:35    Sujet du message: Citer

Ta solution est juste gg =D
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 06/09/09 12:02    Sujet du message: Citer

Imo, si le projectile met plus de 3 secondes à atteindre sa cible, c'est qu'il y a un problème quelque part. Donc tu peux juste utiliser UnitApplyTimedLife sur ton lanceur de projos pour t'en débarasser quand tu n'en as plus besoin. Sinon, inutile de bouger l'unité dans un coin de la map : Il suffit de lui donner un temps de rechargement pour son attaque plus long que sa (courte) durée de vie.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

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

J'y avais pensé Bantas(ounay), mais je trouve ça sale de laisser un dummy en plein champ de bataille, donc je le remove dès que le sort s'est lancé et on n'en parle plus. ^^
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 06/09/09 12:07    Sujet du message: Citer

Rommstein60 a écrit:
mais je trouve ça sale de laisser un dummy en plein champ de bataille,
Il me semblait pourtant qu'une unité avec Infestation était un peu coupée du monde et ne pouvait plus être touchée par des dégâts de zone ni sélectionnée dans un groupe via les GroupEnum..
_________________
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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 06/09/09 12:09    Sujet du message: Citer

Magus a écrit:
et que l'évènement "une unité subit des dégâts" vient juste après que l'unité ait pris des dégâts

Juste AVANT
_________________

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
 Rommstein60
MODÉRATEUR À LA RETRAITE


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

MessagePosté le: 06/09/09 12:10    Sujet du message: Citer

Bantas a écrit:
Rommstein60 a écrit:
mais je trouve ça sale de laisser un dummy en plein champ de bataille,
Il me semblait pourtant qu'une unité avec Infestation était un peu coupée du monde et ne pouvait plus être touchée par des dégâts de zone ni sélectionnée dans un groupe via les GroupEnum..

M'en fout je trouve ça sale quand même. Mr. Green
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 06/09/09 12:14    Sujet du message: Citer

Ah sinon il faudrait mettre un modificateur négatif de dégâts à ton dummy (genre Griffe d'attaques avec -1). Je ne suis pas sûr que l'évenement marche encore (ça paraîtrait logique qu'il marche) mais ça éviterait des effets collatéraux.
_________________
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: 06/09/09 12:17    Sujet du message: Citer

Je crois que l'unité ne possède pas le buff quand l'event "l'unité subit des dégâts" se déclenche, il faut utiliser un timer(0).
Enfin je crois, à vérifier.
Puis même y'a des buffs qui stackent et d'autres pas, pas très fiable comme méthode.

Sinon pour la dummy , je crois qu'on peut l'énumérer avec "unit of type" ou "unit in region" un truc du genre, mais par contre in game elle n'a aucune interaction avec les autres unités (dans le sens où elle n'est targetable en aucune manière)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 06/09/09 12:28    Sujet du message: Citer

profet a écrit:
Magus a écrit:
et que l'évènement "une unité subit des dégâts" vient juste après que l'unité ait pris des dégâts

Juste AVANT


C'est bizarre je me souvenais avoir eu un problème avec cette évènement justement. Je voulais faire une "esquive" par déclencheur. Donc je rendait à l'unité les points de vies qu'elle avait perdu. Le problème c'est que ça marchait jamais quand l'unité mourrait à cause de l'attaque parce qu'elle était morte avant que je puisse lui rendre les points de vies :/
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
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, 3  Suivante
Page 1 sur 3

 
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