Inscrit le: 30 Jan 2009 Messages: 669 Sujets: 56 Spécialité en worldedit: Faire des bug Médailles: 1 (En savoir plus...)
Posté le: 30/05/09 13:47 Sujet du message: Creation d'unité en fonction du temps
Bonjour à tous ! Hihihi !
Bon, j'ai encore un autre petit problème. ( Ou, c'est la journée, je sais ).
Je voudrais créer un système où plus un héro reste longtemps dans une zone, plus il y a de creeps dans cette zone. En gros pour les matheux :
y = nombre de creeps; x = minute dans la zone : y = e(x)
Vous voyez le truc ? Sauf que c'est plus facile à dire qu'a faire. J'ai fait des essais, beaucoup d'essais, mais je bloque à un niveau. Je voudrais que tant qu'il y a un héro dans la zone le nombre continue d'augmenter et s'arrête quand il n'y à plus aucun héro dans la zone. Mais cela ne fonctionne pas ( Cf. mon dernier déclencheur ).
Voici mon système ( Il est un peu long ... ) :
Ici, pour commencer à lancer le système :
Secret:
Gui:
Trigger:
Around Astrub
Evénements
Unité - Une unité entre dans Région 019 <gen>. Unité - Une unité entre dans Région 020 <gen>. Unité - Une unité entre dans Région 021 <gen>. Unité - Une unité entre dans Région 022 <gen>.
Conditions
Ou - N'importe quelle Condition est Vraie
Conditions
(Type-Unité de (Unité déclencheuse)) Egal à Xelor (Type-Unité de (Unité déclencheuse)) Egal à Cra (Type-Unité de (Unité déclencheuse)) Egal à Ecaflip (Type-Unité de (Unité déclencheuse)) Egal à Eniripsa (Type-Unité de (Unité déclencheuse)) Egal à Enutrof (Type-Unité de (Unité déclencheuse)) Egal à Feca (Type-Unité de (Unité déclencheuse)) Egal à Iop (Type-Unité de (Unité déclencheuse)) Egal à Osamodas (Type-Unité de (Unité déclencheuse)) Egal à Pandawa (Type-Unité de (Unité déclencheuse)) Egal à Sram (Type-Unité de (Unité déclencheuse)) Egal à Sacrieur
Actions
Compte à rebours - Lancer compte de type Répété qui expirera dans 30.00 secondes. Compte à rebours - Créer une fenêtre pour (Dernier compte à rebours lancé) avec pour titre Time. Compte à rebours - Montrer (Dernière fenêtre de compte à rebours créée) pour le Joueur 1 (Rouge). Déclencheur - Désactiver le déclencheur (Ce déclencheur).
Pour activer la production de monstres :
Secret:
Gui:
Trigger:
Time
Evénements
Temps - compte tombe à 0.
Conditions
Actions
Définir monster1 = (monster1 + 1.00). Déclencheur - Lancer le déclencheur Monstrer Around Astrub <gen> (en respectant les conditions).
Voici la production de monstres :
Secret:
Gui:
Trigger:
Monstrer Around Astrub Evénements Conditions
Actions
Unité - Créer ((Entier(monster1)) x 2) Tofu / Tofu pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 021 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Sanglier / Wild Boar pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 021 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Tofu / Tofu pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 020 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Sanglier / Wild Boar pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 020 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Tofu / Tofu pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 019 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Sanglier / Wild Boar pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 019 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Tofu / Tofu pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 022 <gen>) ; orientation = Orientation bâtiment par défaut degrés. Unité - Créer ((Entier(monster1)) x 2) Sanglier / Wild Boar pour le Joueur 12 (Marron) au point (Point aléatoire dans Région 022 <gen>) ; orientation = Orientation bâtiment par défaut degrés.
Et enfin, le système de vérification des héro dans la zone et de la fin de la production :
Secret:
Gui:
Trigger:
End
Evénements
Unité - Une unité quitte Région 021 <gen>. Unité - Une unité quitte Région 020 <gen>. Unité - Une unité quitte Région 019 <gen>. Unité - Une unité quitte Région 022 <gen>.
Conditions
Et - Toutes les Conditions sont Vraies
Conditions
Ou - N'importe quelle Condition est Vraie
Conditions
(Type-Unité de (Unité déclencheuse)) Egal à Xelor (Type-Unité de (Unité déclencheuse)) Egal à Cra (Type-Unité de (Unité déclencheuse)) Egal à Ecaflip (Type-Unité de (Unité déclencheuse)) Egal à Eniripsa (Type-Unité de (Unité déclencheuse)) Egal à Enutrof (Type-Unité de (Unité déclencheuse)) Egal à Feca (Type-Unité de (Unité déclencheuse)) Egal à Iop (Type-Unité de (Unité déclencheuse)) Egal à Osamodas (Type-Unité de (Unité déclencheuse)) Egal à Pandawa (Type-Unité de (Unité déclencheuse)) Egal à Sadidas (Type-Unité de (Unité déclencheuse)) Egal à Sram (Type-Unité de (Unité déclencheuse)) Egal à Sacrieur
Actions
Pour chaque Entier A à partir de1 jusqu'à 4, exécuter les actions de l'onglet Boucle - Actions.
Boucle - Actions
Groupe unité - Considérer toutes unités présentes dans (Unités présentes dans aroundAstrub[(Entier A)]) et exécuter les (Actions).
Boucle - Actions
Si (Conditions) sont vraies, exécuter (Alors - Actions). Sinon, exécuter (Sinon - Actions).
Si - Conditions
((Unités considérées) appartient à un allié du Joueur 1 (Rouge)) Egal à VRAI
Alors - Actions
Ne rien faire Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Hips !.
Sinon - Actions
Définir monster1 = 0.00. Compte à rebours - Pause compte. Déclencheur - Activer le déclencheur Around Astrub <gen>. Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Oups !.
C'est sur ce dernier que je bloque. En effet, le "groupe unité" est très instable, me fait faire 8 ou 9 fois l'opération et ne me renvoit jamais les même résultats. Que faire ?
tiens une map sur dofus, ça m'étonne de ne pas avoir encore vu ça sur bnet ^^
Déjà si tu voulait faire de l'exponentiel , c'est raté Là t'es linéaire mais c'est pas ça le problème.
Ce que j'aurais fait, c'est d'utiliser un timer non répété. Quand il arrive à 0, soit tu le relances s'il a encore des heros dans la zone (tout incrémentant ta variable "monster1"), soit tu ne le relances pas s'il n'y a pas de héros dans la zone (et tu mets "monster1" à 0).
De cette façon tu n'as pas besoin de faire un trigger avec les événements "machin quitte la région". Et tu n'aurais jamais besoin de "pauser" le timer. Par contre le héro pourrait partir et revenir directement sans que le compteur reparte à 0. Bref j'aurais fait comme ça mais c'est surement pas ça non plus le problème.
Le problème doit en effet venir de la boucle groupe unité, il me semble avoir remarqué sur l'autre topic que tu avais du mal avec cette fonction. Je suppose que le but est de vérifier s'il n'y a plus de héros dans l'ensemble de tes 4 régions. Là ça fait totalement autre chose.
Pour chacune des 4 régions, ça vérifie si chacune des unités présentes appartiennent à des joueurs. Donc forcément tu dois voir beaucoup de Hips et de Oups.
Je pense qu'il faut créer un groupe unité temporaire dans lequel tu ajoute les unités de la région 1, puis celles de la région 2, etc. Une fois ce groupe constitué, tu fais ta boucle sur ce groupe unité et si l'unité considéré appartient à un joueur, tu change l'état d'un booléen qui ne servira qu'à cela. Une fois la boucle finit, tu vérifies l'état de ton booléen, s'il a changé c'est qu'il y a encore des héros dans la zone, sinon tu peut remettre ton compteur (monster1) à 0.
Désolé d'expliquer ça comme ça mais j'ai la flemme de faire le déclencheur ^^ _________________
Dernière édition par zril le 30/05/09 21:33; édité 1 fois
Inscrit le: 30 Jan 2009 Messages: 669 Sujets: 56 Spécialité en worldedit: Faire des bug Médailles: 1 (En savoir plus...)
Posté le: 30/05/09 19:39 Sujet du message:
Moi aussi je suis partit du constat qu'il n'y en avait pas encore. Alors je me suis dit, je veut créer un RPG, j'aime bien l'histoire de Dofus, et y'a encore rien sur cet Univers ... Alors Gooooo !
Okay, pour l'exponentiel, je sais bien ce que j'ai fait, je cherche pour l'instant à faire le système et après je regle les détails techniques comme celui-la ! Mais merci quand même !
Et comme te dire ...
Secret:
MeEeEeEeEeEeEeErcIiIiIiIiIiIiIiIiIiIiIiI!!!!!
Le système marche parfaitement ! Je te considère a présent comme mon Maitre à penser et à vivre ! Ôh Happpppy dayyyys ! YeEeEeEeAaAaAaAah ... Ohhhhh Haaaaaaaaapppy ... Dayyyyyys !
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