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

Position d'unité aléatoire

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


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



MessagePosté le: 09/05/12 14:22    Sujet du message: Position d'unité aléatoire Citer

Bonjour à tous, je ne sais pas si je dois poster ici ou dans "sorts". Je pense qu'ici ce sera plus adapté car ce que j'aimerais faire peux servir pour autres choses que des sorts.

Alors voila, j'ai un boss de feu, je lui ai donné le sort canaliser qui dure 15s et avec un temps de recharge de 45s (30s de temps libre). C'est une unité et non un héros donc le sort est réglé en conséquence. Lorsque celui-ci lance sont sort, il devient invincible et perd sa mobilité (pour éviter les bugs/cheat) et toutes les secondes un effet spécial "phénix" tombe à la position d'une unité au hasard (on peut donc l'esquiver mais faut être rapide). Sur une ancienne map, avec mon système de sélection au cas par cas, je pouvais le faire facilement et j'avais 8 variables (pour 8 joueurs) de type unité qui était égale à "last created unit". Du coup j'avais créé 2 variable réél X et Y et je leurs attribuaient la position d'une des 8 variables en fonction du nombre tiré aléatoirement. Sur ma map je ne peux pas et je ne sais pas du tout comment faire. Je vous met un semblant de déclencheurs que j'ai triffouillé et qui est faux pour vous donner un peut la manière de penser que j'ai derrière ce sort.

Secret:

Gui:
Trigger:
Evénements
Unité - A unit Initie l'effet d'une compétence
Conditions
(Ability being cast) Egal à  Burning
Actions
Unité - Make (Triggering unit) Invulnérable
Unité - Set (Triggering unit) movement speed to 0.00
Set aleatoire = (Random integer number between 1 and Nbr_joueurs)
Collapse For each (Integer A) from 1 to 15, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
aleatoire Egal à  1
Collapse Alors - Actions
Set X = (Real(JE NE SAIS PAS ??????????))
Set Y = (Real(JE NE SAIS PAS ?????????????))
Effet spécial - Create a special effect at ((Center of (Playable map area)) offset by (X, Y)) using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
Unité - Cause (Matching unit) to damage circular area after 2.00 seconds of radius 600.00 at ((Center of (Playable map area)) offset by (X, Y)), dealing 100.00 damage of attack type Sorts and damage type Normal
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
aleatoire Egal à  2
Collapse Alors - Actions
Set X = (Real(JE NE SAIS PAS ??????????))
Set Y = (Real(JE NE SAIS PAS ?????????????))
Effet spécial - Create a special effect at ((Center of (Playable map area)) offset by (X, Y)) using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
Unité - Cause (Matching unit) to damage circular area after 2.00 seconds of radius 600.00 at ((Center of (Playable map area)) offset by (X, Y)), dealing 100.00 damage of attack type Sorts and damage type Normal
Collapse Sinon - Actions



Ce que je vous demande aujourd'hui est un poil plus compliqué que d'habitude je pense, çà veux dire que je progresse nan ? Very Happy
En tout cas, merci d'avance pour vos futur réponses.
_________________
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: 09/05/12 16:24    Sujet du message: Citer

Il faut vraiment que tu apprennes à te servir des boucles d'unités, qui sont beaucoup plus simples d'utilisations que les boucles d'entiers dans ce genre de cas. Ce que tu fais pourrait marcher, mais il faudrait que tu répertories toutes les unités de la map dans des variables, bref, la galère...

Il suffit d'utiliser cette action :
Gui:
Trigger:
Actions
Collapse Groupe unité - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Triggering unit)))) and do (Actions)
Collapse Boucle - Actions
Effet spécial - Create a special effect at (Position of (Picked unit)) using Ton Effet


Sinon SetUnitSpeed a des bornes, je ne crois pas que tu puisse mettre 0 (la vitesse de l'unité ne descendra pas en-dessous d'un certain seuil). Mais à la place, tu peux rendre le sort canalisé (comme tranquillité par exemple), pour qu'un mouvement de l'unité interrompe le sort (il y a un tutoriel là-dessus, dans les explications sur la compétence canaliser).

Aussi, je pense que tu allais mettre un Wait dans ta boucle pour que ça s'exécute toutes les secondes, sache que c'est mal : il entraîne à la fois imprécision et corruption de déclencheur.
_________________
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: 09/05/12 17:34    Sujet du message: Citer

Ou alors simplement ne pas mettre de boucle :
Gui:
Trigger:
Set Target = Random unit from (Units within 512.00 of (Position of (Triggering unit)) matching ...)


Attention avec le "Unit - Damage area". Je te conseille vraiment de mettre un pick every units pour ça parce qu'on ne peut pas choisir les cibles avec cette action. Si tu utilises des dummy, par exemple, ça va te les tuer. De même, ça va taper le lanceur s'il est dans la zone.

Sinon, on peut mettre la movespeed d'une unité à 0 (ou à 1, me souviens plus) à condition de changer le champs "Movement - vitesse minimale (unité)" dans les constantes de jeu. Par contre, ça ne supprime pas les bonus de mouvement donc si ton unité a des boots of speed +50 et une vitesse de 0, ben elle pourra bouger avec une vitesse de 50 au final.
_________________
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é
 tetronitte
Floodeur prématuré


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



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

Citation:
Il suffit d'utiliser cette action :
Gui:
Trigger:
Trigger:
Actions
Collapse Groupe unité - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Triggering unit)))) and do (Actions)
Collapse Boucle - Actions
Effet spécial - Create a special effect at (Position of (Picked unit)) using Ton Effet


Je remplace le "random 1 units from ......" par le nombre de fois que je veux que sa le fasse ?

Sinon Sapeur, je demande que çà d'apprendre, et en ce moment je l'utilise souvent donc je suis en train de me l'approprier Smile
En revanche Tirlititi ta variable je ne vois pas comment la faire du premier coup d'oeil, si je triffouille un peut je devrais y arriver mais je vais surement faire comme Sapeur, c'est plus claire dans ma tête Wink
_________________
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: 09/05/12 18:05    Sujet du message: Citer

Non, 1 veut dire que la fonction va choisir au hasard 1 unité à 512 de portée de TriggeringUnit. Si tu veux que ça se répète plusieurs fois, tu peux faire une boucle, mais les waits sont déconseillés.
Mais je te recommande tout de même la solution de Tirlititi, c'est plus propre, surtout que tu ne choisis qu'une unité au hasard.
_________________
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: 09/05/12 19:42    Sujet du message: Citer

Je fais comment alors pour que sa dure 15s si je ne met pas de wait ?
_________________
Un jour je finirai une map W3
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: 09/05/12 20:30    Sujet du message: Citer

Je me suis débrouillez comme çà, est-ce que c'est bon ?
Secret:

Gui:
Trigger:
Evénements
Unité - A unit Initie l'effet d'une compétence
Conditions
(Ability being cast) Egal à  Burning
Actions
Unité - Make (Triggering unit) Invulnérable
Unité - Set (Triggering unit) movement speed to 0.00
Collapse For each (Integer A) from 1 to 15, do (Actions)
Collapse Boucle - Actions
Custom script:   set bj_wantDestroyGroup = true
Collapse Groupe unité - Pick every unit in (Random (Random integer number between 1 and 5) units from (Units in Attaque Arios <gen>)) and do (Actions)
Collapse Boucle - Actions
Effet spécial - Create a special effect at (Position of (Picked unit)) using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
Unité - Cause (Picked unit) to damage circular area after 1.00 seconds of radius 85.00 at (Position of (Picked unit)), dealing 500.00 damage of attack type Magie and damage type Feu
Effet spécial - Destroy (Last created special effect)
Wait 1.00 seconds
Unité - Make (Triggering unit) Vulnérable
Unité - Set (Triggering unit) movement speed to (Default movement speed of (Triggering unit))



Désolé d'avoir utilisez un wait je ne vois pas comment faire d'autre. Mais j'ai remarqué que les actions après la boucle se produisent à la fin de celle-ci, mais je reconnais que le wait est imprécis car après des test, il y a deux seconde d'écart entre le fait que mon boss redevienne vulnérable/default movement et la fin des effets du déclencheurs.
_________________
Un jour je finirai une map W3
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: 09/05/12 21:59    Sujet du message: Citer

Un wait peut être remplacé par un timer pour être plus précis. Mais c'est vrai que ça complique un peu la chose, surtout en GUI (il faut créer un 2nd déclencheur et trouver un moyen de garder en mémoire les unités...).
Bon, là tu balances un effet "MarkOfChaos" et des dégâts jusqu'à 5 unités par vague alors que ce que tu avais plutôt l'air de vouloir ne le faire que sur 1 unité par vague.
Ensuite, ton boss peut s'infliger des dégâts à lui-même...

Bon, je te le fais en GUI parce que c'est pour un boss et qu'il ne faut pas le rendre MUI, à priori.

Secret:

Gui:
Trigger:
Collapse Burning1
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Burning
Collapse Actions
Set BurningCaster = Triggering unit
Set BurningWaves = 15
Set BurningWaveIndex = 0
Set BurningCurrentWaveIndex = 0
Custom script:   set bj_wantDestroyGroup = true
Set BurningTarget = Random unit from (Units in Attaque Arios <gen> matching (Matching unit différent de BurningCaster)
Set BurningTargetLocation[BurningIndex] = (Position of (BurningTarget))
Effet spécial - Create a special effect at BurningTargetLocation[BurningIndex] using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
Effet spécial - Destroy (Last created special effect)
Set BurningIndex = BurningIndex + 1
Set BurningWaves = BurningWaves - 1
Compte à rebours - Start BurningTimer that will expire in 1 second as répété
Compte à rebours - Start BurningWaveTimer that will expire in 1 second as répété

Collapse Burning2
Collapse Evénements
Compte à rebours - BurningTimer expires
Conditions
Collapse Actions
Custom script:   set bj_wantDestroyGroup = true
Set BurningTarget = Random unit from (Units in Attaque Arios <gen> matching (Matching unit différent de BurningCaster)
Set BurningTargetLocation[BurningIndex] = (Position of (BurningTarget))
Effet spécial - Create a special effect at BurningTargetLocation[BurningIndex] using AbilitiesSpellsHumanMarkOfChaosMarkOfChaosTarget.mdl
Effet spécial - Destroy (Last created special effect)
Set BurningIndex = BurningIndex + 1
Set BurningWaves = BurningWaves - 1
Collapse If (BurningWaves inférieur ou égal à 0) Then do (Actions)
Compte à rebours - Stop BurningTimer

Collapse Burning3
Collapse Evénements
Compte à rebours - BurningWaveTimer expires
Conditions
Collapse Actions
Custom script:   set bj_wantDestroyGroup = true
Collapse Groupe unité - Pick every unit in (Units within range of 85 from BurningTargetLocation[BurningWaveIndex] matching (Matching unit différent de BurningCaster) and do (Actions)
Unité - Cause BurningCaster to damage (Picked unit), dealing 500 damage ...
Custom script:   call RemoveLocation(udg_BurningTargetLocation[udg_BurningWaveIndex])
Set BurningWaveIndex = BurningWaveIndex + 1
Collapse If ((BurningWaveIndex supérieur ou égal à BurningIndex) and (BurningWaves inférieur ou égal à 0)) Then do (Actions)
Compte à rebours - Stop BurningWaveTimer


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


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



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

Merci bien par contre, tu pourrais détaillez les variables rapidos stp......je me perds sur certaines d’entre elles.

Sinon, si je veux raccorder d'autre type de sort un peut comme çà, çà marchera toujours ?

EDIT : oui à la base je voulais que çà touche une seul unité mais j'aime bien l'aléatoire Laughing c'est plus fun.

EDIT 2 : Enfaite je vais garder mon wait, sa joue en ma faveur. Sinon pour l'histoire des dégâts sur le boss, j'ai mis cette ligne :
Gui:
Trigger:
If ((Picked unit) Egal à  (Triggering unit)) then do (Unité - Set life of (Triggering unit) to 500.00) else do (Do nothing)


Ne t'inquiète pas, les 3 déclo que tu m'as fais serviront quand même à quelques choses dans le futur, ou serviront pour des personnes qui liront le post Smile

EDIT 3 : pas besoin de rajouter de la vie au boss, après plusieurs test, il ne prend pas de dégâts.
_________________
Un jour je finirai une map W3
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
Page 1 sur 1

 
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