Condition to check killing ability

Randor244

Active Member
Reaction score
34
Is there a condition I can use to check which specific ability killed a unit?

(as in, if <ability> killed this unit, do this)
 

Randor244

Active Member
Reaction score
34
Hmm, ok. Do you have a suggestion for how I can do the following?

I have an ability that damages all units near my hero (like war stomp). If this ability happens to kill any of the units, a specific trigger will run.

How can I accomplish this?
 

LiveSsenkrad

Member
Reaction score
3
Make the ability add a buff to all the effected units, and then make a new trigger with:
Trigger:
  • Unit dies
    • Events
      • Unit - Unit Dies
    • Conditions
      • ((Triggering unit) has buff Your buff) Equal to True
    • Actions
      • &lt;Actions here&gt;

That should do it?
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
You could do a check to see if any nearby units have a lower life than the amount of damage dealt by the spell.
 

Randor244

Active Member
Reaction score
34
LiveSsenkrad: Wouldn't work, because then the trigger would run for units just injured by the spell, too. I only want the trigger to run for units killed by the spell.

Kaerf: How do you mean?
 

TomTTT

New Member
Reaction score
44
Make the ability add a buff to all the effected units, and then make a new trigger with:
Trigger:
  • Unit dies
    • Events
      • Unit - Unit Dies
    • Conditions
      • ((Triggering unit) has buff Your buff) Equal to True
    • Actions
      • &lt;Actions here&gt;

That should do it?
Impossible. Dead unit has no buffs.

What you can do, is add all the affected units to a unit group, (which you probably already did) and pick any of them and check if they are dead or not.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
For example your spell does 50 damage. Check all units within range of the spell and if they have 50 or less life then those units get killed, so you can run the trigger.

Anyway, LiveSsenkrad's trigger should work, because that only affects a unit that dies with the buff, indicating that the spell was cast on it. But I'm not sure if the buff gets added if the unit already gets killed, though.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
you cant do it without triggering spell damage.
You can also do it with buff detection, if the buffs have infinitesimal duration.

If anyone cares, there's a way to be able to check buffs on death: give each unit an ability based on Spawn Hydra that spawns a unique dummy unit (here I shall name it "Death"). Use the "Unit spawns a summoned unit" event with spawned unit-type equal to Death; this event will fire when the unit takes mortal damage, before it is actually dead (and so still has buffs), and will fire even if it has an ankh or resurrection. Also, that ability stacks with itself, so no worries keeping a unit from having a proper summon-on-death ability.

I've yet to test whether this event happens before or after the damage event. Which, for that matter, can be used to detect buffs on death almost perfectly; start a 0 second timer when a unit takes damage in the presence of the buff in question, then check if it's dead.
 

LiveSsenkrad

Member
Reaction score
3
For example your spell does 50 damage. Check all units within range of the spell and if they have 50 or less life then those units get killed, so you can run the trigger.

Anyway, LiveSsenkrad's trigger should work, because that only affects a unit that dies with the buff, indicating that the spell was cast on it. But I'm not sure if the buff gets added if the unit already gets killed, though.

I've tried testing it, it doesn't work, as TomTTT said =P
 

ultimate11

Active Member
Reaction score
25
Make the ability add a buff to all the effected units, and then make a new trigger with:
Trigger:
  • Unit dies
    • Events
      • Unit - Unit Dies
    • Conditions
      • ((Triggering unit) has buff Your buff) Equal to True
    • Actions
      • &lt;Actions here&gt;

That should do it?

You are on a wrong way.
First unit may dye with that buff from another damage source.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
What you can do, is add all the affected units to a unit group, (which you probably already did) and pick any of them and check if they are dead or not.

What is the trigger supposed to do anyway? I was thinking of a way you could make a dummy unit cast the Black Arrow ability on all nearby units to create dummy units if the targets die.
 

DioD

New Member
Reaction score
57
Trigger:
  • somespell function
    • set global_caster = caster
    • set global_spell = spell
    • call DealDamage(999)
    • set global_caster = null
    • set global_spell = null


Inside death event, you able to check for this globals, and, you will be 100% sure, about this event happened by this damage.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top