- Joined
- Oct 6, 2022
- Messages
- 185
Hello, I'm Trying to create an Attribute Steal(Passive Skill) where each hit of the attacker to the targeted hero, the attacker's attribute increases by 4 then the targeted hero's attribute decreases by 4 and has the limit of 50 attribute that can be stole from the targeted hero. if the attacker stops attacking the hero within 10 sec it returns the attribute that the attacker stole.
concept: the Attacker attacks the targeted hero 5 times and stole "20" of its attribute from those 5 attacks, then the Attacker stopped attacking that targeted hero for 10 seconds and returned that stolen "20" attribute from that targeted hero. if it where to use damage engine which is this.
concept: the Attacker attacks the targeted hero 5 times and stole "20" of its attribute from those 5 attacks, then the Attacker stopped attacking that targeted hero for 10 seconds and returned that stolen "20" attribute from that targeted hero. if it where to use damage engine which is this.
-
Damage Engine Config
-
Events
-
Conditions
-
(UDexUnits[UDex] is A structure) Equal to False
-
-
Actions
-
-------- - --------
-
-------- This trigger's conditions let you filter out units you don't want detection for. --------
-
-------- NOTE: By default, units with Locust will not pass the check. --------
-
-------- TIP: The unit is called UDexUnits[UDex] and its custom value is UDex --------
-
-------- - --------
-
-------- Copy the Cheat Death Ability from Object Editor into your map and set the following variable respectively: --------
-
-------- - --------
-
Set DamageBlockingAbility = Cheat Death Ability (+500,000)
-
-------- - --------
-
-------- Copy the Detect Spell Damage Ability from Object Editor into your map and set the following variable respectively: --------
-
-------- - --------
-
Set SpellDamageAbility = Detect Spell Damage
-
-------- - --------
-
-------- You can add extra classifications here if you want to differentiate between your triggered damage --------
-
-------- Use DamageTypeExplosive (or any negative value damage type) if you want a unit killed by that damage to explode --------
-
-------- - --------
-
Set DamageTypeExplosive = -1
-
Set DamageTypeCriticalStrike = 1
-
Set DamageTypeHeal = 2
-
Set DamageTypeReduced = 3
-
Set DamageTypeBlocked = 4
-
-------- - --------
-
-------- Leave the next Set statement disabled if you modified the Spell Damage Reduction item ability to 1.67 reduction --------
-
-------- Otherwise, if you removed that ability from Runed Bracers, you'll need to enable this line: --------
-
-------- - --------
-
Set DmgEvBracers = Runed Bracers
-
-------- - --------
-
-------- Set the damage multiplication factor (1.00 being unmodified, increasing in damage over 1.00 and at 0 damage with 0.00) --------
-
-------- NOTE. With the default values, Runed Bracers is reduces 33%, Elune's Grace reduces 20% and Ethereal increases 67% --------
-
-------- - --------
-
Set DAMAGE_FACTOR_BRACERS = 0.67
-
Set DAMAGE_FACTOR_ELUNES = 0.80
-
Set DAMAGE_FACTOR_ETHEREAL = 1.67
-
-------- - --------
-
-------- Added 25 July 2017 to allow detection of things like Bash or Pulverize or AOE spread --------
-
-------- - --------
-
Set DamageEventAOE = 1
-
Set DamageEventLevel = 1
-
-------- - --------
-
-------- Do not enable any of the following lines as they are simply variable declarations to make copying easier --------
-
-------- - --------
-
Set AfterDamageEvent = (DamageEvent + (AOEDamageEvent + DamageModifierEvent))
-
Set ClearDamageEvent = (This trigger)
-
Set DamageEventAmount = DamageEventPrevAmt
-
Set DamageEventOverride = NextDamageOverride
-
Set DamageEventSource = DamageEventTarget
-
Set DamageEventTrigger = DmgEvTrig
-
Set DamageEventType = (LastDmgPrevType[0] + NextDamageType)
-
Set DamageEventsWasted = DmgEvRecursionN
-
Set DmgEvRunning = DmgEvStarted
-
Set IsDamageSpell = LastDmgWasSpell[0]
-
Set LastDamageHP = (Elapsed time for DmgEvTimer)
-
Set LastDmgPrevAmount[0] = LastDmgValue[0]
-
Set LastDmgSource[0] = LastDmgTarget[0]
-
Set HideDamageFrom[0] = False
-
Set UnitDamageRegistered[0] = False
-
Unit Group - Add EnhancedDamageTarget to DamageEventAOEGroup
-
-
-
Set Damage
-
Events
-
Game - DamageModifierEvent becomes Equal to 1.00
-
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(DamageEventTarget has buff (Elaina) DmgBlock ) Equal to True
-
-
Then - Actions
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 1) then do (Set Elaina_HPRegenLVL = (0.00 - 20.00)) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 2) then do (Set Elaina_HPRegenLVL = (0.00 - 30.00)) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 3) then do (Set Elaina_HPRegenLVL = (0.00 - 40.00)) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 4) then do (Set Elaina_HPRegenLVL = (0.00 - 50.00)) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 1) then do (Set Elaina_HPRegenLVL_txt = 20) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 2) then do (Set Elaina_HPRegenLVL_txt = 30) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 3) then do (Set Elaina_HPRegenLVL_txt = 40) else do (Do nothing)
-
If ((Level of (Elaina) Magical Barrier for DamageEventTarget) Equal to 4) then do (Set Elaina_HPRegenLVL_txt = 50) else do (Do nothing)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Life of DamageEventTarget) Less than (Real((Max HP of DamageEventTarget)))
-
-
Then - Actions
-
Set DamageEventAmount = Elaina_HPRegenLVL
-
Set DamageEventType = DamageTypeHeal
-
Floating Text - Create floating text that reads (String(Elaina_HPRegenLVL_txt)) above DamageEventTarget with Z offset 10.00, using font size 10.00, color (50.00%, 100.00%, 50.00%), and 0.00% transparency
-
Floating Text - Set the velocity of (Last created floating text) to -50.00 towards -50.00 degrees
-
Floating Text - Change (Last created floating text): Disable permanence
-
Floating Text - Change the lifespan of (Last created floating text) to 3.50 seconds
-
Floating Text - Change the fading age of (Last created floating text) to 1.40 seconds
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Life of DamageEventTarget) Equal to (Real((Max HP of DamageEventTarget)))
-
-
Then - Actions
-
Set DamageEventAmount = 0.00
-
Set DamageEventType = DamageTypeBlocked
-
-
Else - Actions
-
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(DamageEventTarget has buff (Escanor) DmgBlock ) Equal to True
-
-
Then - Actions
-
Set DamageEventAmount = 0.00
-
Set DamageEventType = DamageTypeBlocked
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
And - All (Conditions) are true
-
Conditions
-
(CA Buff PassiveTrig <gen> is on) Equal to True
-
(DamageEventTarget has buff Bloodlust) Equal to True
-
-
-
-
Then - Actions
-
Set DamageEventAmount = 0.00
-
Set DamageEventType = DamageTypeBlocked
-
Floating Text - Create floating text that reads BLOCKED above DamageEventTarget with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 0.00%), and 0.00% transparency
-
Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
-
Floating Text - Change (Last created floating text): Disable permanence
-
Floating Text - Change the lifespan of (Last created floating text) to 5.00 seconds
-
Floating Text - Change the fading age of (Last created floating text) to 0.01 seconds
-
-
Else - Actions
-
-
-
-
Snatch
-
Events
-
Unit - A unit Is attacked
-
-
Conditions
-
And - All (Conditions) are true
-
Conditions
-
((Attacked unit) belongs to an enemy of (Owner of (Attacking unit))) Equal to True
-
(Level of (Ban) Snatch for (Attacking unit)) Greater than 0
-
((Attacked unit) is A Hero) Equal to True
-
-
-
-
Actions
-
Set Ban_Caster[1] = (Attacking unit)
-
If ((Level of (Ban) Snatch for Ban_Caster[1]) Equal to 1) then do (Set Ban_Count[1] = 5.00) else do (Do nothing)
-
If ((Level of (Ban) Snatch for Ban_Caster[1]) Equal to 2) then do (Set Ban_Count[1] = 10.00) else do (Do nothing)
-
If ((Level of (Ban) Snatch for Ban_Caster[1]) Equal to 3) then do (Set Ban_Count[1] = 15.00) else do (Do nothing)
-
If ((Level of (Ban) Snatch for Ban_Caster[1]) Equal to 4) then do (Set Ban_Count[1] = 20.00) else do (Do nothing)
-
Hero - Modify Strength of (Attacked unit): Subtract 4
-
Hero - Modify Strength of Ban_Caster[1]: Add 4
-
-------- --------
-
-------- --------
-
-------- to be continued --------
-
Countdown Timer - Start Ban_Timer as a One-shot timer that will expire in 10.00 seconds
-
-------- --------
-
-------- --------
-
-
-
Snatch Dur
-
Events
-
Time - Ban_Timer expires
-
-
Conditions
-
Actions
-
Hero - Modify Strength of (Attacked unit): Add 4
-
Hero - Modify Strength of Ban_Caster[1]: Subtract 4
-
-
Last edited: