Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
crounch Ptit Nouveau
Inscrit le: 16 Fév 2009 Messages: 22 Sujets: 6
|
Posté le: 15/09/11 09:52 Sujet du message: Démarquer le vainqueur du duel |
|
|
Bonjour à tous
Alors voilà un souci de duels pour mon AoS.
Toutes les 5 mins le héro de chaque joueur se retrouve téléporté dans une arène spécialement aménagée à cet effet pour s'étriper joyeusement. Jusqu'ici aucun problème, excepté la violence inouïe qui y règne
Mais je n'arrive pas à distinguer le vainqueur, aucune condition ne s'y prête. Je me retrouve obligé de mettre un simple wait pour terminer le duel.
Gui: | Trigger: Wait 75.00 seconds Partie - Display to (All players) the text: Duel terminé ! |
Les ankhs de réincarnation étant monnaie courante sur la carte, une simple condition de vie fait l'affaire.
Gui: | Trigger: (Vie of heros[1]) Inférieur ou égal à 1.00 (zone ARENE1 <gen> contains heros[1]) Egal à TRUE |
L'idée est que dès qu'un héro arrive à 1 hp -un perdant donc- il soit invulnérable et en pause et ce jusqu'à ce qu'il ne reste qu'un seul personnage unpause, le vainqueur.
Mais je n'arrive pas à le démarquer ni en groupe unité ni quoi que ce soit. Ajouter un buff aux perdants semblait la meilleure idée mais je n'ai trouvé aucune Action ajoutant ledit buff aux unités. Et puis les perdants sont invulnérables... Gui: | Trigger: ((Triggering unit) has buff Eliminé du duel) Egal à FALSE |
Donc voilà je ne sais pas Une idée ? _________________
|
|
Revenir en haut |
|
|
Tirlititi
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
|
Posté le: 15/09/11 13:12 Sujet du message: |
|
|
L'action "Unit - Make unit invulnerable", que tu utilises sans doute, rajoute la compétence "Invulnérable (neutre)". Tu peux donc utiliser cette condition (integer comparison) :
Gui: | Trigger: (Level of (Invulnérable (Neutre)) for UNIT) Egal à 0 |
_________________
|
|
Revenir en haut |
|
|
crounch Ptit Nouveau
Inscrit le: 16 Fév 2009 Messages: 22 Sujets: 6
|
Posté le: 16/09/11 09:41 Sujet du message: |
|
|
C'est trop hasardeux le bouclier du paladin ainsi que certains objets fausseraient le truc.. au passage worldedit n'est pas d'accord pour le 1hp, il faut que le héro tombe pile dessus.. j'ai fais une simple condition d'objet.
Gui: | Trigger: Evénements Unité - A unit Utilise un objet Conditions |
Les perdants étant téléportés dans la zone des perdants le vainqueur est forcément le dernier restant dans la région de combats. J'essaye celui-ci mais Triggering unit ne fonctionne pas je ne suis pas beaucoup plus avancé..
Le dummy duel est une région où un 1 feu follet est créé à chaque duel. Quand un héro meurt son feu follet meurt avec, le héro est lui tp dans les gradins et en pause pendant que les survivants se battent. Il n'en reste donc plus qu'un, c'est le vainqueur. Mais le trigger du gagant ne fionctionne pas alors que pour les perdants auncun problème. C'est la faute à Owner of (Triggering unit) mais je ne sais pas par quoi le remplacer.
Gui: | Trigger: (Number of units in (Units in zone ARENE1 dummy <gen>)) Egal à 1 (Owner of (Triggering unit)) Egal à Joueur 1 (Rouge) |
_________________
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 16/09/11 15:53 Sujet du message: |
|
|
déjà, enlève vite le do nothing ou tirlititi va te taper sur les doigts x) (depuis le temps qu'il le répète que c'est inutile)
dire à quelqu'un qui ne fait rien de ne rien faire, c'est comme dire à des fonctionnaires de faire grève !
bref, j'ai trouvé un système ingénieux et très simple :
voila, avec ça, tu retrouves l'unit qui gagne.
si tu veux le joueur, tu changes juste l'action dans le alors (j'dois avoué pas trop avoir lu le sujet)
au plaisir
ps : la variable héros_mort n'a rien de particulier, tu mets juste un déploiement supérieur au nombre de joueur max qu'il est possible d'avoir.
édit : j'oubliais, c'est pas forcément évident. j'l'ai pas fait, mais tu dois turn on ce déclos lorsque la bataille commence et le turn off une fois fini. tu le mets donc off au départ.
n'oublie pas aussi de mettre 1 comme valeur de départ de A (en commençant par 0 le compte est moins instinctif, mais tu pourrais il te suffit à ce moment la d'enlever le -1 à côté de nb_joueur) et remettre la valeur initiale de A à la fin du déclos. (dans le "alors")
édit2 : ownage de tirlititi powaaa xD (attend quand même sa confirmation x)) _________________
|
|
Revenir en haut |
|
|
Tirlititi
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
|
Posté le: 16/09/11 18:11 Sujet du message: |
|
|
Le sort "bouclier divin" ne rajoute pas "Invulnérable (neutre)" (ni le Grand méchant vaudou et autres trucs du genre).
La méthode de full est simple et devrait marcher (je crois pas qu'un unité meurt si elle a un ankh mais je garanti pas). Simplement le déploiement n'est pas important pour les variables d'unités.
Et je lance un petit défi à full : trouve moi un post dans lequel je tape sur les doigts pour avoir mis "Do nothing" .
Quand même, c'est dur l'univers geek... On s'absente 5 minutes et on se fait owned. _________________
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
|
Revenir en haut |
|
|
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.
|
Posté le: 16/09/11 18:25 Sujet du message: |
|
|
Sinon, désactiver la compétence de résu des ankhs jusqu'à la fin du duel ? _________________
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 16/09/11 18:28 Sujet du message: |
|
|
c'est important un ankh dans un fight. et ça ne gène en rien. _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises |
|
Revenir en haut |
|
|
crounch Ptit Nouveau
Inscrit le: 16 Fév 2009 Messages: 22 Sujets: 6
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 17/09/11 14:03 Sujet du message: |
|
|
hm, ok j'te fais l'explication détaillé :
l'idée du trigger, est qu'à chaque mort, la variable de type entier A voit sa valeur de base (qui est 1) augmenté d'1.
on le voit dans : set A = A + 1
maintenant, disont qu'il y a x joueurs en total dans l'arène de combat, on veut savoir quand il ne restera qu'un joueur. La réflexion est simple, il suffit d'attendre que A prenne la valeur de x - 1 (comme on le voit dans le trigger dans la condition).
ensuite, il existe une action très pratique qui n'en est pas vraiment une nommé "if then else multiple action" au début de la liste. ça permet de créer une condtiion dans les actions, et de faire découler de celle ci une action pour si la condition est vrai, et une action pour si la condition est fausse.
maintenant réfléchissons sur comment former ce qu'on a dit :
on veut qu'à chaque mort il se passe quelque chose => l'évènement doit être a unit die
on a décidé de set la valeur de A de A + 1 à chaque mort, donc on l'écrit.
on se sert de A de la façon suivante : si A égale au nombre de joueur présent dans la partie - 1, alors on désigne le dernier joueur qui a encore son héros vivant comme vainqueur. => on reconnait une condition grâce au "si", et on voit apparaitre ensuite "alors" comme connecteur logique. donc, on se sert de ce "if then else" qui veut dire "si alors sinon" et on range chaque action dans le bon endroit.
si = if
alors = then
dans mon trigger, les variables sont :
A de type entier
heros_mort de type unit
unit_dans_zone_combat de type groupe unit
winner de type joueur.
nb_joueur_ingame de type entier
je ne connais pas tes besoins précis, j'ai donc aménagé le déclos comme j'ai imaginé la chose.
Set heros_mort[A] = (Triggering unit) va te servir à mettre chaque héros perdant dans une variable. si tu veux ensuite faire une action du style "j'veux tp tout ça dans un coin" ou "j'veux les faire résu" ou ce que tu veux, tu fais une boucle utilisant un interger que tu choisis et tu la fais aller de 1 (première valeur de A) jusqu'à nb_de_joueur_ingame - 1. pourquoi ? parce que c'est ce nombre de déploiement que tu as défini sur heros_mort[index]
tu récupères également, dans mon déclos, le joueur qui possède le héros gagnant. si tu veux le héros gagnant et non le joueur, tu n'as qu'à changer.
pour définir ce gagnant, j'ai créé un groupe d'unité. il est définit comme étant l'ensemble des unités se trouvant dans la région qui recouvre toute la zone de fight. en principe, il ne reste que le gagnant. donc on se retrouve avec un groupe unit à une seule unit. l'action utilisant la fonction "random unit from groupe" ne peut donc définir qu'une seule unit en tant que winner.
j'espère avoir été très précis et compréhensible, si tu as d'autres questions n'hésite pas.
ps : comme je t'ai dit, n'oublie pas de mettre off le trigger au début de la partie et de l'activer au lancement du fight puis de le désactiver à la fin de ce déclos, en dernier dans la liste des actions du "alors"
le mieux si tu veux mettre des actions au vainqueur, c'est de rajouter "run déclencheur_x" dans la liste des actions de "alors", qui mettra en route un autre trigger de ton choix que tu auras fait avec la liste des actions que tu veux faire pour le vainqueur.
édit : j'oubliais encore, rajoute une ligne set A = 1 dans le "alors" aussi, sinon comme je t'ai déjà dit ça ne marchera plus au prochain fight. _________________
|
|
Revenir en haut |
|
|
crounch Ptit Nouveau
Inscrit le: 16 Fév 2009 Messages: 22 Sujets: 6
|
Posté le: 19/09/11 09:36 Sujet du message: |
|
|
Remerci je ne reviens que maintenant sur le fofo
Oké j'ai mieux saisi la chose, mais quelques zones obscures encore..
tu fais une boucle utilisant un interger que tu choisis
kézako
Bref voici mon binz
D'abord ton déclo fulldragon, la zone arene1 en jeu s'occupe des heros en fight. J'ai remplacé ta variable winner par duel_hero_vainqueur et ce n'est non un joueur mais une unité.
Les actions du vainqueur
Et les perdants, la Faveur divine étant un ankh. Center of arene Hero elimine1 <gen> quand le héro du J1 perds, il est tp en spectateur (en pause) devant le siège du J1
Voilà pourquoi il y a un déclo pour chaque joueur.
Un détail d'ailleurs, il manque un siège, celui du vainqueur. Comment puis-je faire comprendre au héro qu'il doit s'asseoir sur un siège qui n'est pas le sien ? Sinon il arrivera un moment où 2 héros voudront la meme place.
J'ai donc les déclencheurs suivants pour chaque joueur Duel J1, Duel J1 Elimine et Fin Duel J1 (pour sortir les heros si le temps est écoulé ou que le vainqueur est désigné; ce sont les memes actions). Et ce pour J1, J2, J3... seul les variables heros[1] [2] etc change.
Et j'ai aussi Turn on ton déclo, forcément. Le genre de truc qu'on oublie merci de me l'avoir rappelé.
Tempsdeduel_Timer est un compteur qui limite les duels à 2 minutes.
Encore merci pour cette précieuse aide _________________
|
|
Revenir en haut |
|
|
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.
|
Posté le: 19/09/11 14:55 Sujet du message: |
|
|
Pas très bon ça. Si le joueur achète l'ankh juste avant le duel (qui en plus doit coûter assez cher) et perds le duel alors, il perdra son ankh. Il y a un moyen simple pour corriger ce problème et gagner de la place (sur les 8mos max).
Au début du duel, tu désactives la compétence de résu des ankhs pour tout les joueurs. Ainsi tu n'auras besoin qu'un seul trigger pour la mort. Et naturellement, quand le duel sera fini, il faut réactiver la compétence de résu des ankhs pour tout les joueurs.
Edit : Utilise des triggering units aussi ^^ _________________
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 19/09/11 15:40 Sujet du message: |
|
|
Gui: | Trigger: Set duel_hero_vainqueur = (Triggering unit) Groupe unité - Pick every unit in (Random 1 units from (Units in zone ARENE1 en jeu <gen>)) and do (Déclencheur - Run Actions vainqueur <gen> (checking conditions)) |
tu n'as pas bien compris ^^
en faite tu fais une variable de type groupe unit que tu set en disant que ce groupe = toutes les units de arena 1
ensuite tu set duel_hero_vainqueur comme une random unit du gorupe que tu viens de créer.
actuellement, c'est la dernière unité morte qui devient le vainqueur. _________________
|
|
Revenir en haut |
|
|
DarK™ Membre actif
Inscrit le: 29 Aoû 2011 Messages: 197 Sujets: 15 Spécialité en worldedit: Système/Déclencheurs [GUI]
|
Posté le: 19/09/11 16:17 Sujet du message: |
|
|
Salut, dans tes déclencheurs, tu en as 1 qui déplace les héros?
Si oui tu peux nous l'écrire?
Ah et, il est unique ou tu en as fait 1 pour chaque joueur? _________________
|
|
Revenir en haut |
|
|
DaKanibal Membre a fort taux de post
Inscrit le: 12 Sep 2009 Messages: 801 Sujets: 64 Spécialité en worldedit: Ne pas.
|
|
Revenir en haut |
|
|
|