| Voir le sujet précédent :: Voir le sujet suivant | 
	 
	
		| Auteur | Message | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 20:13    Sujet du message: TriggerRemoveCondition |   |   
				| 
 |  
				| Bonsouar à vous ^^ 
 J'ai un petit problème avec un déclencheur qui se lance presque indéfiniment (les conditions font qu'il se lance indéfiniment dans 25% des cas ><), et j'aimerais donc tailler dans le vif, c'est à dire dans les conditions (pas trouvé d'autres moyens, si vous en avez un qui fonctionne sans gamecache et sans variable globale je suis preneur ^^"). J'aimerais donc virer la condition du trigger pour mettre à la place une fonction qui retourne toujours false, afin de stopper tout ça...
 
 Mais j'ai du mal à savoir ce qu'il faut mettre comme argument dans la fonction TriggerRemoveCondition :s
 
 Voici ce que j'ai fait (et qui ne marche pas)
 
 
  	  | Jass: |  	  | call TriggerRemoveCondition(GetTriggeringTrigger(), Condition(function TirSournois_Conditions2)) call TriggerAddCondition(GetTriggeringTrigger(), Condition(function TirSournois_Ending))
 | 
 
 Quelqu'un aurait-il la solution ? ^^"
 _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Magus Membre a fort taux de post
 
  
 Inscrit le: 13 Oct 2007
 Messages: 994
 Sujets: 25
 Spécialité en worldedit: Codeur
 
 
 
 | 
			
				|  Posté le: 11/11/07 20:24    Sujet du message: |   |   
				| 
 |  
				| Pourquoi tu ne désactives pas le déclencheur tout simplement ? Sa reviens au même que de mettre une condition toujours fausse mais c'est moins tordu ^^ _________________
 
 - La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
 - Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Troll-Brain Ri1kamoua
 
  
 Inscrit le: 23 Aoû 2007
 Messages: 7146
 Sujets: 147
 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
 Médailles: 2 (En savoir plus...)
 
 
 | 
			
				|  Posté le: 11/11/07 20:43    Sujet du message: |   |   
				| 
 |  
				| le mieux serait quand même que tu nous montres ton trigger rebelle qui se lance indéfiniment. _________________
 
 Le violet, c'est moche. |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 20:48    Sujet du message: |   |   
				| 
 |  
				| Donc voilà le fameux trigger ^^ 
 
  	  | Jass: |  	  | function TirSournois_Ending takes nothing returns boolean return false
 endfunction
 
 function TirSournois_Conditions2 takes nothing returns boolean
 local integer Chances = (R2I(GetHeroAgi(udg_Archer, true)/3))
 return (Chances < (GetRandomInt(1, 100) + 1)) and (GetEventDamageSource() == udg_Archer)
 endfunction
 
 function TirSournois_Conditions takes nothing returns boolean
 return (((GetUnitAbilityLevel(udg_Archer, 'A000') == 1) or (GetUnitAbilityLevel(udg_Archer, 'A008') == 1)) and (GetAttacker() == udg_Archer) and (udg_ATraitsDeFoudreOn == false) and (udg_AFlechesDeFlammesOn == false) and (udg_AFlechesDeGlaceOn == false) and (udg_AFlechesDePoisonOn == false))
 endfunction
 
 function TirSournois takes nothing returns nothing
 call UnitDamageTargetBJ(udg_Archer, GetAttackedUnitBJ(), GetEventDamage() * ((GetHeroAgi(udg_Archer, true)/10)-2), ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL)
 call CreateTextTagLocBJ( ( I2S(R2I(GetEventDamage() * ((GetHeroAgi(udg_Archer, true)/10)-1))) + "!" ), GetUnitLoc(udg_Archer), 0.00, 10, 100.00, 0.00, 0.00, 0.00 )
 call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
 call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 96.00, 90 )
 call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 2.00 )
 call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 4.00 )
 call DestroyTrigger(GetTriggeringTrigger())
 endfunction
 
 function TirSournois_Run takes nothing returns nothing
 local trigger Trigger = null
 set Trigger = CreateTrigger()
 call TriggerRegisterUnitEvent(Trigger, GetAttackedUnitBJ(), EVENT_UNIT_DAMAGED)
 call TriggerAddCondition(Trigger, Condition(function TirSournois_Conditions2))
 call TriggerAddAction(Trigger, function TirSournois)
 endfunction
 
 //===========================================================================
 function InitTrig_TirSournois takes nothing returns nothing
 set gg_trg_TirSournois = CreateTrigger(  )
 call TriggerRegisterAnyUnitEventBJ( gg_trg_TirSournois, EVENT_PLAYER_UNIT_ATTACKED )
 call TriggerAddCondition( gg_trg_TirSournois, Condition(function TirSournois_Conditions) )
 call TriggerAddAction( gg_trg_TirSournois, function TirSournois_Run )
 endfunction
 
 
 | 
 _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Troll-Brain Ri1kamoua
 
  
 Inscrit le: 23 Aoû 2007
 Messages: 7146
 Sujets: 147
 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
 Médailles: 2 (En savoir plus...)
 
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Magus Membre a fort taux de post
 
  
 Inscrit le: 13 Oct 2007
 Messages: 994
 Sujets: 25
 Spécialité en worldedit: Codeur
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:01    Sujet du message: |   |   
				| 
 |  
				| Faut pas être sujet aux migraines pour lire tes déclencheurs xD 
 Juste comme ça, tu créer un déclencheur, mais ce déclencheur après tu t'atteins comment ? je ne vois ni variable ni gamecache qui te permettra de le pointer. En clair tu ne pourras plus jamais le modifier, donc si tu veux lui enlever ses conditions c'est mal parti.
 
 EDIT : je suis tombé dans le même panneau de troll, tu détruis le déclencheur après les actions...
 Attend je relis un peu mieux xD
 _________________
 
 - La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
 - Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Magus Membre a fort taux de post
 
  
 Inscrit le: 13 Oct 2007
 Messages: 994
 Sujets: 25
 Spécialité en worldedit: Codeur
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:03    Sujet du message: |   |   
				| 
 |  
				| Je ne suis pas sur, mais en c'est le déclencheur principal qui se lance en boucle. Le fait d'infliger des dégâts a l'unité déclencheur peut être l'évenement "une unité est attaqué". _________________
 
 - La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
 - Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:05    Sujet du message: |   |   
				| 
 |  
				| @Troll-Brain 
 Merci pour l'info j'avias jamais regardé de quoi était composée cette fonction ^^"
 
 @[Master]
 
 Euh GetTriggerinTrigger() ça marche pas ? ^^"
 _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Troll-Brain Ri1kamoua
 
  
 Inscrit le: 23 Aoû 2007
 Messages: 7146
 Sujets: 147
 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
 Médailles: 2 (En savoir plus...)
 
 
 | 
			
				|  Posté le: 11/11/07 21:05    Sujet du message: |   |   
				| 
 |  
				| @Master : no comprendo, un panneau de Troll oho ?! 
 En fait y'aura un gros souci si l'attaque est annulée, ou si la valeur des variables globales changent
 _________________
 
 Le violet, c'est moche. |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:08    Sujet du message: |   |   
				| 
 |  
				| Non le trigger principal ne répond qu'à l'event "une unité est attaquée" 
 Sinon je pense remove le trigger secondaire dans le trigger principal après un certain temps, une fois que j'aurai calculé la fonction qui permet de déterminé quand l'unité est sensée subir des dégats, mais pour l'instant j'essaye juste de faire qu'il marche ><
 _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Magus Membre a fort taux de post
 
  
 Inscrit le: 13 Oct 2007
 Messages: 994
 Sujets: 25
 Spécialité en worldedit: Codeur
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:08    Sujet du message: |   |   
				| 
 |  
				|  	  | Serial Bigouden a écrit: |  	  | @Troll-Brain 
 Merci pour l'info j'avias jamais regardé de quoi était composée cette fonction ^^"
 
 @[Master]
 
 Euh GetTriggerinTrigger() ça marche pas ? ^^"
 | 
 
 Si mais le déclencheur sera recréer indéfiniment quand même.
 
 Troll : Désolé trompé, même panneau que troll xD
 _________________
 
 - La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
 - Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Troll-Brain Ri1kamoua
 
  
 Inscrit le: 23 Aoû 2007
 Messages: 7146
 Sujets: 147
 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
 Médailles: 2 (En savoir plus...)
 
 
 | 
			
				|  Posté le: 11/11/07 21:12    Sujet du message: |   |   
				| 
 |  
				| euh normalement non si on le détruit à la première ligne, il continuera son éxécution mais ne se relancera pas avec les dommages subis, nan ? _________________
 
 Le violet, c'est moche. |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:17    Sujet du message: |   |   
				| 
 |  
				| beh en fait j'ai essayé et ça s'améliore mais c'ets toujours pas ça ^^" 
 En gros, au lieu de faire des coups critiques à 100k, le héros en fait à chaque coup, et parfois deux fois en même temps, quand au coup d'avant il n'en a pas fait Oo
 _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Troll-Brain Ri1kamoua
 
  
 Inscrit le: 23 Aoû 2007
 Messages: 7146
 Sujets: 147
 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
 Médailles: 2 (En savoir plus...)
 
 
 | 
			
				|  Posté le: 11/11/07 21:18    Sujet du message: |   |   
				| 
 |  
				| les attaques ont été annulées ? Si oui c'est normal, du moins à la conception de ton trigger
 _________________
 
 Le violet, c'est moche. |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  Serial Bigouden Membre actif
 
  
 Inscrit le: 31 Oct 2007
 Messages: 142
 Sujets: 23
 Spécialité en worldedit: Boarf
 
 
 
 | 
			
				|  Posté le: 11/11/07 21:19    Sujet du message: |   |   
				| 
 |  
				| Non je fais des tests sur des paysans qui ne peuvent fuir avec 10k de vie et sans compétence particulière =/ _________________
 
 |  | 
	 
		| Revenir en haut |  | 
	 
		|  | 
		 
		|  |