Why doesnt this trigger work?

excis

Member
Reaction score
1
Trigger:
  • Chain Breath
    • Events
      • Time - Every 15.00 seconds of game time
    • Conditions
    • Actions
      • Set group = (Units of type Drephinos [Dragon])
      • Unit Group - Pick every unit in group and do (Actions)
        • Loop - Actions
          • Custom script: call DestroyGroup(udg_group)
          • Unit - Add Chain breath of Frost to (Picked unit)
          • Unit - Order (Picked unit) to Orc Far Seer - Chain Lightning (Random unit from (Units in Deep breath Region <gen> matching (((Triggering unit) belongs to an enemy of Player 12 (Brown)) Equal to True)))
          • Wait 4.00 seconds
          • Unit - Remove Chain breath of Frost from (Picked unit)
This trigger doesnt work correctly, it adds the ability..but it doesnt remove it. Does anyone know why?
 

excis

Member
Reaction score
1
Well i think that Region <gen> bugs the trigger...

I think it's the wait trigger that does it because i tried disabling the order trigger and it still didnt remove the ability, i disabled the wait trigger he never gets the ability then because it's too fast to see (I could still feel the trigger went on, laggy computer atm :p) Why wont the ability get removed if i have a wait timer on? i tried with 1 second did no diffrence.
 

felnix

New Member
Reaction score
4
you cannot use 'wait' on action Unit Group - Pick every unit in and do action. It already stated in world editor when you choose this action.
 

excis

Member
Reaction score
1
you cannot use 'wait' on action Unit Group - Pick every unit in and do action. It already stated in world editor when you choose this action.

k thx..You got a solution to solve it? Would be really grateful
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well, the first error you've done there is to have put the Custom script inside the loop, which means that you pick a unit from the group and, without going through any other unit in the group, then destroy the group...

But also, a wait inside the group-loop is a very bad idea :p

Why not just put the wait outside the loop, and then pick the group again, and remove the ability ? :eek:
 

jjonj

New Member
Reaction score
1
Good solution by komaqtion, alternativly you could have an array for every unit and have it hold an integer value that contains how many seconds remain, and a timer that counts all of those values down, then if a unit has its value to 0 after a tickdown, remove the ability.
 

Wratox1

Member
Reaction score
22
Good solution by komaqtion, alternativly you could have an array for every unit and have it hold an integer value that contains how many seconds remain, and a timer that counts all of those values down, then if a unit has its value to 0 after a tickdown, remove the ability.

Trigger:
  • Unit - Order (Picked unit) to Orc Far Seer - Chain Lightning (Random unit from (Units in Deep breath Region &lt;gen&gt; matching (((Triggering unit) belongs to an enemy of Player 12 (Brown)) Equal to True)))


where is the triggering unit?:confused::confused:
change that to matching unit;)
 

excis

Member
Reaction score
1
Well, the first error you've done there is to have put the Custom script inside the loop, which means that you pick a unit from the group and, without going through any other unit in the group, then destroy the group...

But also, a wait inside the group-loop is a very bad idea :p

Why not just put the wait outside the loop, and then pick the group again, and remove the ability ? :eek:

Could you show that trigger i just cant get it right...
 

canons200

New Member
Reaction score
50
i strongly believe that is region problem, the region is fixed on the map even if you move it via trigger.

the pick unit via "Pick every unit in unit group" last forever, even after the wait

and put the call DestroyGroup outside the pick unit group action
 

excis

Member
Reaction score
1
i strongly believe that is region problem, the region is fixed on the map even if you move it via trigger.

the pick unit via "Pick every unit in unit group" last forever, even after the wait

and put the call DestroyGroup outside the pick unit group action

The region doesn't have anything to do with the ability not getting removed right?
 

canons200

New Member
Reaction score
50
well, if the region is non-existed, then they won't cast spell. Or too far to cast, they will try to move until reach the sufficient cast point.

since you want to cast to target random unit, just create variable random unit and 1 more to do it. see below for example.
Trigger:
  • Set UG_LightningGroup = (Units within 600.00 of P_LightningGall matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Gall)) Equal to True))))
    • Set UG_Lightning = (Random 1 units from UG_LightningGroup)


then you can target your chain lightning to under the random unit group.
 

excis

Member
Reaction score
1
well, if the region is non-existed, then they won't cast spell. Or too far to cast, they will try to move until reach the sufficient cast point.

since you want to cast to target random unit, just create variable random unit and 1 more to do it. see below for example.
Trigger:
  • Set UG_LightningGroup = (Units within 600.00 of P_LightningGall matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Gall)) Equal to True))))
    • Set UG_Lightning = (Random 1 units from UG_LightningGroup)


then you can target your chain lightning to under the random unit group.

But it's not the problem that he doesn't fire the ability the problem is that the ability never gets removed and becuase of the stupid default WC3 AI system he fires the ability whenever he wants :S
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Something like this should work:
Trigger:
  • Add Remove Ability
    • Events
      • Time - Every 15.00 seconds of game time
    • Conditions
    • Actions
      • Set TempGroup = (Units of type &lt;Unit_Type&gt;)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Add &lt;Ability&gt; to (Picked unit)
          • Set TempGroup2 = (Units in &lt;Region&gt; matching (((Matching unit) belongs to an enemy of Player 12 (Brown)) Equal to True))
          • Unit - Order (Picked unit) to Orc Far Seer - Chain Lightning (Random unit from TempGroup2)
          • Custom script: call DestroyGroup(udg_TempGroup2)
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Wait 4.00 seconds
      • Set TempGroup = (Units of type &lt;Unit_Type&gt;)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove &lt;Ability&gt; from (Picked unit)
      • Custom script: call DestroyGroup(udg_TempGroup)
 

excis

Member
Reaction score
1
Something like this should work:
Trigger:
  • Add Remove Ability
    • Events
      • Time - Every 15.00 seconds of game time
    • Conditions
    • Actions
      • Set TempGroup = (Units of type &lt;Unit_Type&gt;)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Add &lt;Ability&gt; to (Picked unit)
          • Set TempGroup2 = (Units in &lt;Region&gt; matching (((Matching unit) belongs to an enemy of Player 12 (Brown)) Equal to True))
          • Unit - Order (Picked unit) to Orc Far Seer - Chain Lightning (Random unit from TempGroup2)
          • Custom script: call DestroyGroup(udg_TempGroup2)
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Wait 4.00 seconds
      • Set TempGroup = (Units of type &lt;Unit_Type&gt;)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Remove &lt;Ability&gt; from (Picked unit)
      • Custom script: call DestroyGroup(udg_TempGroup)

Awesome thanks! Now I can continue working on my map +rep, Tho i have one question if i wanna use trigger for more spells do i have to create 2 more TempGroups or can you use the same?
 

excis

Member
Reaction score
1
I tested it on a testing unit he casted it perfectly after set amount of peroidic time but when i have it on the boss he doesn't seem to cast it, Could it have something to do with the boss is attacking aswell? Or should i perhaps use a dummy for the spell?
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well, first you should move this line inside the Unit-group loop:
Trigger:
  • Custom script: call DestroyGroup(udg_TempGroup2)


And, wasn't the event 15 seconds ?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top