Buff comparison and the related problem.

xAnaMorphine

Active Member
Reaction score
43
Hello everyone,

I have a problem concerning a simple buff comparison and unit group function.
The debug message shows that there are 0 units in the unit group.
Any solution?
My trigger look like these:

Trigger:
  • Ice Cold
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Cold (Archmage - Skill)
    • Actions
      • Set IceColdLoc = (Target point of ability being cast)
      • Set IceColdDegree = 0.00
      • For each (Integer A) from 1 to 60, do (Actions)
        • Loop - Actions
          • Destructible - Create a Ice Cold (Pathing Blocker) at (IceColdLoc offset by 400.00 towards IceColdDegree degrees) facing (Random angle) with scale 1.00 and variation 0
          • Set IceColdDegree = (IceColdDegree + (360.00 / (Real((Integer A)))))
      • Game - Display to (All players) the text: (Number of Units in IceColdTarget: + (String((Number of units in IceColdTarget))))
      • Unit Group - Pick every unit in (Units within 800.00 of IceColdLoc) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Ice Cold ) Equal to True
            • Then - Actions
              • Unit Group - Add (Picked unit) to IceColdTarget
            • Else - Actions
      • Game - Display to (All players) the text: (Number of Units in IceColdTarget: + (String((Number of units in IceColdTarget))))
      • Countdown Timer - Start IceColdTimer as a One-shot timer that will expire in 3.00 seconds
 

Juggernaut

I don't know what to change it to
Reaction score
33
what is IceColdTarget ? you haven't declared it in the trigger.

maybe you need to set IceColdTarget = units within 800 range
and then swap that with IceColdTarget
 

Juggernaut

I don't know what to change it to
Reaction score
33
yes, but you haven't declared it in this trigger. or is it declared somewhere else ?
 

xAnaMorphine

Active Member
Reaction score
43
Afaik it doesn't matter.
I used something similiar to your solution:

Trigger:
  • Set IceColdTarget = (Units within 800.00 of IceColdLoc matching (((Matching unit) has buff Ice Cold ) Equal to True))


However, it doesn't work either.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
Maybe the buff isn't applied when the unit starts the effect of the ability? You might need damage detection for this, as Finishes casting an ability won't give you the targeted location.
 

xAnaMorphine

Active Member
Reaction score
43
The units do have the buff for the full duration of the trigger and the location is the right one.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
I mean when the effect fires. Starts the effect of an ability most likely fires before the buff(s) get placed on the unit(s). I'm sure damage detection works, because I use it in my own system.
 

vypur85

Hibernate
Reaction score
803
Not too hard to test this. Remove the buff condition within the unit group. Then check if there is an increase of unit in IceColdTarget. If it does have a number then, it's confirmed that the buff was indeed the problem.
 

xAnaMorphine

Active Member
Reaction score
43
I got it working now.
I moved the buff comparison into another trigger and changed a few things.
If someone wants to take a look at the trigger here it is:

Trigger:
  • Ice Cold
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ice Cold (Archmage - Skill)
    • Actions
      • Set IceColdCaster = (Casting unit)
      • Set IceColdLoc = (Target point of ability being cast)
      • Set IceColdDegree = 0.00
      • For each (Integer A) from 1 to 60, do (Actions)
        • Loop - Actions
          • Destructible - Create a Ice Cold (Pathing Blocker) at (IceColdLoc offset by 400.00 towards IceColdDegree degrees) facing (Random angle) with scale 1.00 and variation 0
          • Set IceColdDegree = (IceColdDegree + (360.00 / (Real((Integer A)))))
      • Countdown Timer - Start IceColdTimer as a One-shot timer that will expire in 3.00 seconds


Trigger:
  • Ice Cold Effekt
    • Events
      • Time - IceColdTimer expires
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units within 800.00 of IceColdLoc matching (((Matching unit) has buff Ice Cold ) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit Group - Add (Picked unit) to IceColdTarget
          • For each (Integer A) from 0 to (Number of units in IceColdTarget), do (Actions)
            • Loop - Actions
              • Unit - Create 1 Dummy for (Owner of IceColdCaster) at IceColdLoc facing Default building facing degrees
              • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
              • Unit - Add (Frost Nova - Dummy Unit) to (Last created unit)
              • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
      • Destructible - Pick every destructible within 1000.00 of IceColdLoc and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Destructible-type of (Picked destructible)) Equal to Ice Cold (Pathing Blocker)
            • Then - Actions
              • Destructible - Remove (Picked destructible)
            • Else - Actions
      • Unit Group - Remove all units from IceColdTarget
      • Custom script: call RemoveLocation(udg_IceColdLoc)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top