online faq recherche accueil
 

Il y a 198 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Aide pour un déclencheur

 
n°4588888
Sogara
LSD : Light Soul of Devil
Posté le 04-04-2007 à 11:12:41  profilanswer
 

SVP, je suis au bout du rouleau, aidez-moooooiiiiiii !!!
 
J'ai essayé de dire que deux unités ennemies sont en même temps chacun dans une région différente, ça déclenche un timer, mais ça marche pôôôô !! (snif)
 
J'ai dit :
 
A : Unit enters [Région 1]
     Unit enters [Région 2]
 
C : If All Conditions are true =
                 (Owner of (Triggering Unit)) Egal à (Random Player from (Ennemies of (Joueur 1)))
                 (Number of units in [Région 1] owned by (Random Player from (Ennemies of Joueur 1))) Supérieur ou égal à 1
                 (Number of units in [Région 2] owned by (Random Player from (Ennemies of Joueur 1))) Supérieur ou égal à 1
 
Mais le résultat est bizarre : ça marche seulement qd il y a 1 unité de plus dans une région que dans l'autre...  :heink: Donc je sèche et ça m'énerve :fou: !!
 
Donc SVP aidez-moi, merci d'avance.

n°4588889
legendair
\/ \/ \/ \/ \/
Posté le 04-04-2007 à 11:37:02  profilanswer
 

Citation :

A : Unit enters [Région 1]
     Unit enters [Région 2]


 
ces E  
 
il me semble qunand on mes 2 evenment si 1 seul et activer sa marche ( mes je ne pensse pas du tout )
 

Citation :

sont en même temps chacun dans une région différente


 
si ces en meme temps alor je voi pas ou est le probleme ^^

n°4588890
Insomniak
Posté le 04-04-2007 à 12:15:02  profilanswer
 

Ptin légendair soigne ton ortho, j'a rien pigé à ce que t'a écrit >_>
 
Sogara : Ta façon de faire est bizarre, pour fais tu random player from ennemies of player 1 ?
A ta place, je vérifierai juste que les unités qui sont entrées appartiennent aux ennemis du joueur 1, et ensuite tu fais tes tests en remplaçeant le random player par un owner of units(entering units).

n°4588891
Sogara
LSD : Light Soul of Devil
Posté le 04-04-2007 à 14:51:27  profilanswer
 

Legendair a raison et c'est pour ça que je fais ainsi : 1 seul évenement peut activer le déclencheur. C'est pour ça que quand une unité entre dans 1 des 2 régions le jeu vérifie si mes conditions sont correctes... Comme ça si ma Région 2 est vide qd une unité entre région 1, alors les conditions ne sont pas respectées. Mais si l'unité reste dans la région 1 et qu'une autre unité entre région 2, ça réactive le déclencheur et là les conditions sont (censées être) remplies...
 
Pour le Random Player from Ennemies of Joueur 1, j'ai mis random parce que je n'ai pas le choix !! Je voulais dire n'importe quel ennemi, mais il n'y a que Random Player from Player Group...
 
Ensuite si j'utilise comme tu dis entering Unit, ça marche mais dès qu'une unité entre dans une région, sans vérifier si une autre unité est dans l'autre...

n°4588893
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 04-04-2007 à 18:20:44  profilanswer
 

En gui il n'est pas possible de savoir quelle région a enclenché le trigger.
Comme tu ne possèdes que 2 régions, le problème est assez simple à résoudre.
 
Il n'existe seulement que 2 cas de figures valides permettant l'éxécution de ton trigger :
 
- Au moins une unité est déjà présente dans la région 0 mais aucune dans la 1 et une unité ennemie rentre dans la région 1
- Au moins une unité est déjà présente dans la région 1 mais aucune dans la 0 et une unité ennemie rentre dans la région 0
 
>>>>>>>> Ce qu'il faut savoir : <<<<<<<<
 
--> Les conditions fonctionnent comme des ET. Si toutes les conditions sont vraies alors tes actions sont effectuées
Mais il existe des fonction OR comme celle que j'ai utilisé permettant d'exécuter les actions si une ou plusieurs des conditions dans le OR sont vraies
 
--> Une unité qui rentre ou qui sort d'une région ne rentre pas dans le compte des unités présentes dans cet région au moment ou l'événement enclenche le trigger.
Lorsque c'est l'événement ENTER c'est simplement que l'unité s'apprête a rentrer dans la région mais n'est pas encore dedans.
Lorsque c'est l'événement LEAVE, l'unité a déjà quittée la région.
 
--> Une unité qui est morte compte encore
 

Code :
  1. EnterRegion
  2.     Evénements
  3.         Unité - A unit enters Région 000 <gen>
  4.         Unité - A unit enters Région 001 <gen>
  5.     Conditions
  6.         Or - Any (Conditions) are true
  7.             Conditions
  8.                 And - All (Conditions) are true
  9.                     Conditions
  10.                         (Number of units in (Units in Région 000 <gen> matching ((((Matching unit) is alive) Egal à TRUE) and (((Owner of (Matching unit)) is an enemy of Joueur 1 (Rouge)) Egal à TRUE)))) Supérieur ou égal à 0
  11.                         (Number of units in (Units in Région 001 <gen> matching ((((Matching unit) is alive) Egal à TRUE) and (((Owner of (Matching unit)) is an enemy of Joueur 1 (Rouge)) Egal à TRUE)))) Supérieur à 0
  12.                 And - All (Conditions) are true
  13.                     Conditions
  14.                         (Number of units in (Units in Région 000 <gen> matching ((((Matching unit) is alive) Egal à TRUE) and (((Owner of (Matching unit)) is an enemy of Joueur 1 (Rouge)) Egal à TRUE)))) Supérieur à 0
  15.                         (Number of units in (Units in Région 001 <gen> matching ((((Matching unit) is alive) Egal à TRUE) and (((Owner of (Matching unit)) is an enemy of Joueur 1 (Rouge)) Egal à TRUE)))) Supérieur ou égal à 0
  16.     Actions
  17.         Partie - Display to (All players) the text: au moins une unité...


 
 
Les régions en gui sont des rect en jass.
 
Une region (reg en jass) est composé de cell (points de coordonnées X,Y) et/ou de rect (rectangles , ayant comme référence 2 points, enfin il utilise 4 points car à partir de ces 2 points il en détermine 2 autres en prenant les valeurs maximales X et Y, ainsi que les valeurs minimales).
A chaque fois que le gui a besoin d'une région il créé une region et rajoute le rectangle à la région ainsi crée.
Cela continue à prendre de la place en mémoire inutilement aprés utilisation.
 
Cette partie c'était juste pour t'embrouiller  :D

Message cité 1 fois
Message édité par Troll-Brain le 04-04-2007 à 18:32:28

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4588898
Sogara
LSD : Light Soul of Devil
Posté le 04-04-2007 à 21:59:42  profilanswer
 

C'est celle que j'ai compris le plus facilement :p
 
Mais maintenant ça marche !! (Wahooooo !!!)
J'ai pas compris comment mon sauveur a réussi, pourquoi ça a marché et pas avec moi et pourquoi il a utilisé le JASS (serait-ce son domaine de prédilection ?), mais de toute façon un magicien ne révèle jamais ses secrets, et je remercie Dieu de m'avoir envoyé un tel secours (quand je dis Dieu je dis troll-brain ^^)
 
Ceci dit, j'ai retranscrit le déclencheur en GUI, de manière à (essayer de) comprendre comment ça a marché pour pouvoir le refaire lol.

n°4588899
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 04-04-2007 à 22:16:23  profilanswer
 

euh y'a mal donne là si j'utilise les balises code c'est simplement que les balises gui n'existent pas sur ce forum >.<
Ce que je t'ai donné est du 100% gui.
Cele dit le jass est un "langage" ne nécissant pas vraiment de connaissance en programmation. il suffit d'appliquer des recettes, avoir un minimum de logique, un niveau moyen en anglais scolaire et un peu d'aide et d'expérience

 

Le random player devait marcher si le joueur concerné n'avait qu'un joueur ennemi.
Random (choix aléatoire) parmis un seul et même joueur reverra toujours le même joueur   :D

 

Le matching player correspond à n'importe quel joueur correspondant aux conditions que tu spécifies dans le matching, donc dans cet exemple ennemi du joueur rouge.

 

Dommage tu avais compris l'essentiel  :D


Message édité par Troll-Brain le 04-04-2007 à 22:24:16

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4588902
Sogara
LSD : Light Soul of Devil
Posté le 04-04-2007 à 22:40:20  profilanswer
 

Oui mentor !! J'y arriverai, je progresserai, promis !! Même si je dois y passer jour et nuit !! lol

n°4588903
Insomniak
Posté le 05-04-2007 à 10:36:27  profilanswer
 

Troll-Brain a écrit :

En gui il n'est pas possible de savoir quelle région a enclenché le trigger.
Comme tu ne possèdes que 2 régions, le problème est assez simple à résoudre.


 
Completement faux, il se suffit de faire un test booléen >_>
 
 

n°4588906
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 05-04-2007 à 20:52:06  profilanswer
 

Insomniak a écrit :

Completement faux, il se suffit de faire un test booléen >_>


Ah oui et où se trouve GetTriggeringRegion en gui  ?  
evidemment tu peux associer une variable rectangle déployée et faire une boucle mais tu n'auras pas directement la région qui enclenche le trigger, c'est du rustinage.
Je ne parle pas de telle unit est dans telle région mais de la région qui enclenche le trigger
PS : Ton smiley siginifie quelque chose ?
 
La prochaine fois tu réfléchiras avant de parler :D

Message cité 1 fois
Message édité par Troll-Brain le 05-04-2007 à 20:53:30

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4588908
Maximaxou
rejoignez les fidèles du JASS
Posté le 06-04-2007 à 10:56:15  profilanswer
 

Citation :

En gui il n'est pas possible de savoir quelle région a enclenché le trigger.  


Ah bon ? En jass c'est possible ?


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4588910
Sogara
LSD : Light Soul of Devil
Posté le 06-04-2007 à 11:11:03  profilanswer
 

Ba faut croire, peut etre avec GetTrigerringRegion...

n°4588911
Insomniak
Posté le 06-04-2007 à 12:12:54  profilanswer
 

Troll-Brain a écrit :

Ah oui et où se trouve GetTriggeringRegion en gui  ?  
evidemment tu peux associer une variable rectangle déployée et faire une boucle mais tu n'auras pas directement la région qui enclenche le trigger, c'est du rustinage.
Je ne parle pas de telle unit est dans telle région mais de la région qui enclenche le trigger
PS : Ton smiley siginifie quelque chose ?
 
La prochaine fois tu réfléchiras avant de parler :D


 
Evidemment, tu ne peux pas l'avoir directement, mais il suffit d'un petit test booleen sur les régions qui ont eu la possibilité d'enclencher le trigger pour le savoir.
 
Enfin je ne voudrais pas dire, mais le JASS, c'est moche, la syntaxe est horrible, et l'éditeur ne contient meme pas de colorisateur de code... Je ne comprendrai jamais l'interet de coder en JASS, à part pour certaines optimisations qui peuvent s'avérées nécessaires.

n°4588912
Yukitan
Naga Stormstrike
Posté le 06-04-2007 à 12:21:56  profilanswer
 

Citation :

Enfin je ne voudrais pas dire, mais le JASS, c'est moche, la syntaxe est horrible, et l'éditeur ne contient meme pas de colorisateur de code... Je ne comprendrai jamais l'interet de coder en JASS, à part pour certaines optimisations qui peuvent s'avérées nécessaires.


Waffle!
 
A part le fais que cela permet de faire certaines choses que tu ne pourras JAMAIS espérer de créer en GUI, c'est sûre que ca n'a strictement aucun intêret!

n°4588913
Insomniak
Posté le 06-04-2007 à 12:24:50  profilanswer
 

Et bien expliquez moi qu'est-ce qui n'est pas possible de créer en GUI mais qu'il l'est en JASS...

n°4588915
Yukitan
Naga Stormstrike
Posté le 06-04-2007 à 12:32:15  profilanswer
 

- Peux-tu créer un système complique de waypoint en GUI, sachant que le joueur peut les modifiers tel qu'il le souhaite et administrer un waypoint fraichement créer en cours de jeu à n'importe quelle unitée du jeu?
- Peut-tu créer un système ou des unités peuvent s'endommager d'une autre manière, c'est à dire que n'importe quelle unitée peut réduire les coups qu'elle prend (même les sorts), faire des coups critiques même avec sorts ou regénérer des points quand celle-ci est endommagée par un coup critique?
- Peux-tu faire en sorte que des élementaux qui s'attaque entre eux, se soigne plutôt que de s'endommager si ceux-ci sont d'un même élement?
 
etc...
 
Si tu le peux, alors prouve le moi via une carte sans aucun "JASS" ou autre.

n°4588916
Insomniak
Posté le 06-04-2007 à 12:45:20  profilanswer
 

-Le premier, justement ça m'interessarait, actuellement je fais déplacer mes unités entre régions, mais si on pouvait ajouter des ordres comme via la touche maj aux unités, ce serait vraiment pratique.
-Pour le deuxieme, j'ai pas trop compris ce que tu y veux.
-Pour le dernier, ça je pense pouvoir le faire facilement en GUI, juste qu'il me faudrait beaucoup de copier/coller.
 
Par contre j'ai lu que le GUI laisser des fuites de mémoire o_O" C'est vrai ? Dans ce cas, l'interet du JASS se montre directement.
Enfin dommage qu'il n'y ai pas de colorisateur de code JASS.

n°4588917
Yukitan
Naga Stormstrike
Posté le 06-04-2007 à 13:12:12  profilanswer
 

Pour le second et troisième ...
 
2. C'est quasiment un système de combat, il faut que les unités soit capable de faire des coups critiques, que ce soit avec des sorts, des attaques mélées ou autre. Il faut également que certaines abilitées soit réactives face à un coup critique. Par exemple, si une unitée subit un coup critique, il faut que celle-ci se régénère plus rapidement.
3. Il faut savoir que dans ce que je parle, il faudrait par exemple que l'abilitée Volcano du Firelord puisse soigner des Fire Elemental. Ou bien encore que si un Golem va dans un Earthquake du Farseer, il soit soigner. Etc.

n°4588919
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 06-04-2007 à 13:32:40  profilanswer
 

@Insomniak :tu peux faire un custom script; autrement dit une partie en jass,mais jamais tu ne seras en gui la région qui a enclenché le trigger >.<
 
Ensuite il existe des colorisateurs de jass fais un tours sur wc3campaigns rubrique ressources.
 
 
Oui le gui provoque souvent des fuites de mémoire, remarque en jass tu peux en faire aussi si tu n'y prêtes pas attention  :D
 
enfin c'est vrai la syntaxe du jass est à chier .... et trés limité comme language, mais comme le gui l'est encore plus ..


Message édité par Troll-Brain le 06-04-2007 à 13:34:11

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4588920
Insomniak
Posté le 06-04-2007 à 13:39:03  profilanswer
 

Qu'est-ce que la GUI provoque exactement comme fuite de mémoire ?
 
Je me demande si ce n'est pas ce qui causerait quelques problemes au bout d'un long temps de jeu...
 
C'est vrai que pour les sorts, il n'y a pas d'evenements qui les déclenchent.
 
Je me demandais aussi si en JASS, on pouvait faire getCancelledUnit() ? Parce que les events contiennent le Cancelled Building, mais pas unit >_<
 
En tout cas, ptet que je finirai par m'y mettre au JASS, rien que pour optimiser mon code :)
 
(Mon dieu, la GUI génére des fonctions sur des if...then...else >_< )

n°4588921
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 06-04-2007 à 13:55:19  profilanswer
 

GetTriggerUnit() rohx.
 
Oui le gui aime bien décomposer en plusieurs fonctions pourquoi faire simple quand on peut compliquer la tâche telle est sa philosophie.
 
il y a plusieurs sujets à propos des leak, y'a même un tuto sur wc3campaigns me semble t'il.
 


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589077
Maximaxou
rejoignez les fidèles du JASS
Posté le 10-04-2007 à 07:08:38  profilanswer
 

Citation :

c'est vrai la syntaxe du jass est à chier .... et trés limité comme language, mais comme le gui l'est encore plus ..


Je trouve la syntaxe du jass hyper simple personnellement, et ce n'est pas une parole en l'air puisque j'ai déja programmé en plusieurs langages. Mettez-vous au C vous comprendrez votre douleur. Quant au fait qu'il soit limité comme langage, c'est justement la raison pour laquelle c'est un langage très facile à utiliser.
Quant au GUI ce n'est pas un langage, c'est juste un moyen d'éviter la programmation. Le GUI ne fait que générer du jass, et ça crée des fonctions que vous qualifiez d'inutiles, pour pouvoir rendre le code jass généré, lisible assez facilement, très facilement même.
Quant aux fuites de mémoires, d'après moi le GUI n'en provoque pas de lui-même, et les nombreux appels de fonctions dus à l'utilisation du GUI ne provoquent pas de fuites de mémoire je pense. En revanche, lorsque l'on utilise le GUI, on ne pense simplement pas aux fuites de mémoires, et celles-ci sont tout simplement moins détéctables que lorsque l'on utilise le jass. De plus, en GUI on a tendance à éviter l'utilisation des variables, ce qui provoque des fuites de mémoires.
 
Quant à ce qui provoque les fuites de mémoire, exactement, les principaux cas sont la création de points non supprimés après utilisation (exemple : move unit at center of une_région) et la création de groupes unités non supprimés également après utilisation. Exemple : pick every unit of type chasseur de démons and do : kill picked unit, revive picked unit at random point of une_region. Trigger classique de revive dans les escapes. création d'un groupe et d'un point non supprimés --> leak.


Message édité par Maximaxou le 10-04-2007 à 07:10:48

---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589089
Sogara
LSD : Light Soul of Devil
Posté le 10-04-2007 à 11:22:14  profilanswer
 

Faudrait que je me mette au JASS un de ces 4, mais pour l'instant je préfère ramer tt doucement avec le GUI, on s'en rend moins compte...

n°4589108
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 10-04-2007 à 17:52:48  profilanswer
 

Je ne connais aucun autre langage mais les majuscules minuscules pour les fonctions ont une importance ?
Je n'ai pas dit que le jass était dur simplement que sa syntaxe était a chier a cause notamment des majucules/minucules, maintenant je le répètes peut être est ce la même chose avec des "vrais" langages
Sinon je sais bien que le gui n'est qu'une interface graphique le mot gui est même un mot général pour définir une interface graphique entre l'homme et le code.
Je ne suis pas certain que le gui ne leak pas, ne serait que l'exemple des régions.
A chaque fois que le gui a besoin d'une reg il en crée une à partir d'une rectangle (rect)/ region en gui , et ne la supprime pas.
 
Je suis total agree sur la facilité d'édition du gui, pour des actions simples il est tout à fait suffisant, même si le code généré n'est pas optmisé.
Du fait de sa facilité le jass est limité , c'est d'autant plus vrai pour le gui.
Maitenant je ne doutes pas que s'il offrait plus de possibilités je ne saurais le maitriser >.<
 


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589137
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-04-2007 à 00:50:05  profilanswer
 

Citation :

A chaque fois que le gui a besoin d'une reg il en crée une à partir d'une rectangle (rect)/ region en gui , et ne la supprime pas.

Tu peux donner un exemple stp ?

Citation :

Je n'ai pas dit que le jass était dur simplement que sa syntaxe était a chier a cause notamment des majucules/minucules, maintenant je le répètes peut être est ce la même chose avec des "vrais" langages

Certains langages prennent en compte la casse d'autres non. Le C non, le java oui, par exemple. Quant au jass, je suis content qu'il la prenne en compte, ça permet la lecture d'un programme beaucoup plus évidente.  
exemple : bj_destInRegionDiesCount par rapport à bj_destinregiondiescount ya pa photo.
 
IssueNeutralImmediateOrderById --- issueneutralimmediateorderbyid
 
De plus, si un nom commence par une majuscule, on a afffaire à une fonction, sinon en général c'est une variable. Je le trouve très pratique ce langage, même s'il a ses faiblesses.
 
not et Not sont différents : not est l'opérateur booléen, Not est la fonction.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589172
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-04-2007 à 16:04:03  profilanswer
 

hormis la première lettre des fonctions le choix de la minuscule/majucule devrait être libre


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589177
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-04-2007 à 16:29:14  profilanswer
 

pas d'accord (pour les raison expliquées ci dessus)


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589186
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-04-2007 à 19:03:55  profilanswer
 

je n'ai pour l'instant vu ce problème uniquement pour les RegisterEvent.
Mais si tu créé en cours de partie des triggers avec cet évent en gui ...


Message édité par Troll-Brain le 11-04-2007 à 19:04:04

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589193
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-04-2007 à 00:50:16  profilanswer
 

Arrête de breouiller, tu t'enfonces.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589208
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 12-04-2007 à 15:45:33  profilanswer
 

Maximaxou a écrit :

Arrête de breouiller, tu t'enfonces.


 
"Breouiller" faudra penser à rajouter ce joli mot dans le dictionnaire.
Nan je ne bredouilles pas vérifie avant de parler >.<


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589209
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 12-04-2007 à 18:59:48  profilanswer
 

Insomniak a écrit :

C'est vrai que pour les sorts, il n'y a pas d'evenements qui les déclenchent.


Que veux tu dire :heink:
 


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589219
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-04-2007 à 23:48:55  profilanswer
 

kler un évènement ça déclenche un déclo pas un sort


---------------
Dota c'est bien, le slide c'est encore mieux !

Aller à :
Ajouter une réponse