Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMé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

Correctement sélectionné les joueurs

 
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
 Exkise
Ptit Nouveau


Inscrit le: 09 Aoû 2009
Messages: 46
Sujets: 9



MessagePosté le: 18/02/10 14:21    Sujet du message: Correctement sélectionné les joueurs Citer

Bonjour !
Voici le problème sur le quel je planche depuis deux jours :

Je crée une carte sur la quel tout les sorts sont des sorts personnalisé.
Et évidement je veux faire des sorts à effet de zone. J'ai donc trouvé dans un tuto ( ou je ne sais plus où ailleurs ) un système qui s'occupe de sélectionner les unités. Le problème c'est qu'il me sélectionne toutes les unités y compris les unités alliées. J'ai donc essayé de reproduire le système d'unité avec les joueurs :
Gui:
Trigger:
Tourbillon test
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Tourbillon
Collapse Actions
Collapse Groupe joueur - Pick every player in (All enemies of (Owner of (Casting unit))) and do (Actions)
Collapse Boucle - Actions
Groupe joueur - Add (Picked player) to Ennemi
Set Entier_joueur = (Number of players in Ennemi)
Collapse For each (Integer A) from 1 to Entier_joueur, do (Actions)
Collapse Boucle - Actions
Set TmpPoint = (Position of (Casting unit))
Set Joueur_ennemi = (Random player from Ennemi)
Collapse Groupe unité - Pick every unit in (Units within 300.00 of TmpPoint matching ((Owner of (Matching unit)) Egal à  Joueur_ennemi)) and do (Actions)
Collapse Boucle - Actions
Groupe unité - Add (Picked unit) to Groupe_zone_dummy
Set Entier_dummy = (Number of units in Groupe_zone_dummy)
Collapse For each (Integer A) from 1 to Entier_dummy, do (Actions)
Collapse Boucle - Actions
Set Dumm_random_unit = (Random unit from Groupe_zone_dummy)
Set Degat[(Player number of (Owner of (Casting unit)))] = (Degat[(Player number of (Owner of (Casting unit)))] + ((((Agilité of (Casting unit) (Inclure bonuses)) x 3) + 0) + 0))
Unité - Cause (Casting unit) to damage Dumm_random_unit, dealing (((Real((Agilité of (Casting unit) (Inclure bonuses)))) x 3.00) + 0.00) damage of attack type Chaos and damage type Frappe des ténèbres
Panneau de commandes - Change the value for (Owner of (Casting unit)) in Leaderboard to Degat[(Player number of (Owner of (Casting unit)))]
Panneau de commandes - Sort Leaderboard by Valeur in Descendant order
Set TmpPoint = (Position of Dumm_random_unit)
Texte flottant - Create floating text that reads (- + (String((((Agilité of (Casting unit) (Inclure bonuses)) x 3) + 0)))) at TmpPoint with Z offset 30.00, using font size 8.00, color (100.00%, 0.00%, 100.00%), and 0.00% transparency
Texte flottant - Change the lifespan of (Last created floating text) to 2.00 seconds
Texte flottant - Change the fading age of (Last created floating text) to 2.00 seconds
Texte flottant - Change (Last created floating text): Désactiver permanence
Texte flottant - Set the velocity of (Last created floating text) to 60.00 towards 90.00 degrees
Texte flottant - Montrer (Last created floating text) for (All players)
Custom script:   call RemoveLocation( udg_TmpPoint )
Groupe unité - Remove Dumm_random_unit from Groupe_zone_dummy
Groupe joueur - Remove Joueur_ennemi from Ennemi
Custom script:   call RemoveLocation( udg_TmpPoint )


Ça ne me sélectionne plus les unités alliées, mais ca ne sélectionne pas toujours les unités ennemies, du coup le sort fonctionne une fois sur dix à peu prêt.
Si j'ai fait des erreurs merci de me les soulignées afin que je puisse les corriger.

Variable :

Entier_joueur = variable d'entier
Ennemi = Variable groupe de joueur
Joueur_ennemi = Variable joueur
Groupe_zone_dummy = Variable Groupe d'unité
Entier_dummy = Variable d'entier
Dumm_random_unit = Variable d'unité
TmpPoint = Variable de point
Degat = Variable d'entier mais elle n'a pas grand chose à voir avec la sélection des unités

Merci de votre aide prochaine Smile
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Wilfweed
Floodeur prématuré


Inscrit le: 27 Aoû 2009
Messages: 646
Sujets: 16
Spécialité en worldedit: GUI


MessagePosté le: 18/02/10 14:51    Sujet du message: Citer

C'est parce que la variable "Joueur_ennemi" désigne un player aléatoirement, et donc si le joueur désigné n'est pas dans la zone du sort, le sort ne marcheras pas.
Citation:
Gui:
Trigger:
For each (Integer A) from 1 to Entier_joueur, do (Actions)
Boucle - Actions
Set TmpPoint = (Position of (Casting unit))
Set Joueur_ennemi = (Random player from Ennemi)
Groupe unité - Pick every unit in (Units within 300.00 of TmpPoint matching ((Owner of (Matching unit)) Egal à  Joueur_ennemi)) and do (Actions)

_________________
Pas vraiment de projet en cours...
Visite ça Smile :
http://worldedit.free.fr/forum/viewtopic.php?t=5534


Dernière édition par Wilfweed le 18/02/10 14:52; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Bleeded.Heart
Membre actif


Inscrit le: 15 Nov 2009
Messages: 104
Sujets: 2



MessagePosté le: 18/02/10 14:52    Sujet du message: Citer

C'est le bordel dans ton déclencheur.
Déjà, n'utilise jamais "Casting Unit". Si tu veux renvoyer à l'unité qui a déclenché le déclencheur, utilise "Triggering unit".


Et si j'ai bien compris, tu veux simplement faire subir plusieurs actions à plusieurs unités ennemies au "Triggering unit" dans une zone c'est ça ?
Gui:
Trigger:
-------- On défini le centre de la zone du cercle --------
Set LocPoint[0] = (Target point of ability being cast)
-------- On défini le groupe qui subira l'action, c'est à  dire toutes les unités qui sont dans la zone (ici de rayon 300) étant ennemi au joueur. --------
Set GroupEnnemies = (Units within 350.00 of LocPoint[0] matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Egal à  TRUE))
-------- Pour éviter les fuites de mémoire, on détruit le point. --------
Custom script:   call RemoveLocation(udg_LocPoint[0])


Donc là on a le groupe d'unités ennemies au "Triggering unit"
Ensuite, le plus intéressant :
Gui:
Trigger:
-------- On répète les actions autant de fois qu'il y a d'unités dans le groupe. --------
Collapse For each (Integer A) from 1 to (Number of units in GroupSarments), do (Actions)
Collapse Boucle - Actions
-------- On prend une unité au hasard dans le groupe --------
Set RandomUnit = (Last created unit)
-------- On défini sa position --------
Set LocPoint[0] = (Center of (Playable map area))

Puis tu t'occupes du reste.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Exkise
Ptit Nouveau


Inscrit le: 09 Aoû 2009
Messages: 46
Sujets: 9



MessagePosté le: 18/02/10 16:26    Sujet du message: Citer

Merci, je vais essayé cela dès que j'ai un peu de temps et je reviens vers vous pour des nouvelles Smile

Merci beaucoup
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Exkise
Ptit Nouveau


Inscrit le: 09 Aoû 2009
Messages: 46
Sujets: 9



MessagePosté le: 18/02/10 16:50    Sujet du message: Citer

Je vous remercie encore une fois, ca marche parfaitement :')

faudra que je pense à explorer la liste des Boléens Very Happy

Je valide le sujet Smile
_________________
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
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