Setting a max value to the amount of healead life
Hello dear community,
i've made a spell in GUI that damages all units around the hero. In addition it heals the hero for 10% of the damage dealt. My problem is, if there are too many units then he has too much self heal...so i wanted that he can heal hisself only to a specified amount. The amount should be: 50/75/100/125/150.
Example to understand my problem:
There are 5 units around the hero; the hero deals 150 damage; 10% of that damage is 15 damage, but since there are 5 units he heals himself for 75 Hitpoints (5 units x 15 dmg). But i want that the maximal cap is 50!
Now my question is: how can i set the maximal healed life?
Thank you in advance!
Hello dear community,
i've made a spell in GUI that damages all units around the hero. In addition it heals the hero for 10% of the damage dealt. My problem is, if there are too many units then he has too much self heal...so i wanted that he can heal hisself only to a specified amount. The amount should be: 50/75/100/125/150.
Example to understand my problem:
There are 5 units around the hero; the hero deals 150 damage; 10% of that damage is 15 damage, but since there are 5 units he heals himself for 75 Hitpoints (5 units x 15 dmg). But i want that the maximal cap is 50!
Now my question is: how can i set the maximal healed life?
Thank you in advance!
-
Slashing Strike
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Slashing Strike
-
Actions
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Caster = (Triggering unit)
- Set SlashingStrike_Ability_Level = (Level of (Ability being cast) for SlashingStrike_Caster)
- Set SlashingStrike_Location = (Position of SlashingStrike_Caster)
- Set SlashingStrike_Direction = (Facing of SlashingStrike_Caster)
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Base_Offset = 50.00
- Set SlashingStrike_Bonus_Offset = 20.00
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Base_Radius = 360.00
- Set SlashingStrike_Bonus_Radius = 0.00
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Atribute = (Agility of SlashingStrike_Caster (Include bonuses))
- Set SlashingStrike_Dmg_Multiplier = 2.00
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Total_Radius = (SlashingStrike_Base_Radius + (SlashingStrike_Bonus_Radius x (Real(SlashingStrike_Ability_Level))))
- Set SlashingStrike_Total_Offset = (SlashingStrike_Base_Offset + (SlashingStrike_Bonus_Offset x (Real(SlashingStrike_Ability_Level))))
- Set SlashingStrike_Total_Damage = ((SlashingStrike_Dmg_Multiplier x (Real(SlashingStrike_Atribute))) + (30.00 + (20.00 x (Real(SlashingStrike_Ability_Level)))))
- Set SlashingStrike_Hero_Heal = (SlashingStrike_Total_Damage / 10.00)
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Damage_Location = (SlashingStrike_Location offset by SlashingStrike_Total_Offset towards SlashingStrike_Direction degrees)
- Set SlashingStrike_Damage_Group = (Units within 300.00 of SlashingStrike_Damage_Location matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Owner of (Matching unit)) is an enemy of (Owner of SlashingStrike_Caster)) Equal to True
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Special Effect - Create a special effect attached to the hand, left of SlashingStrike_Caster using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the hand, right of SlashingStrike_Caster using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the hand, left of SlashingStrike_Caster using Abilities\Weapons\GargoyleMissile\GargoyleMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the hand, right of SlashingStrike_Caster using Abilities\Weapons\GargoyleMissile\GargoyleMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Unit - Create 1 Slashing Strike Dummy for (Owner of SlashingStrike_Caster) at SlashingStrike_Damage_Location facing SlashingStrike_Direction degrees
- Unit - Kill (Last created unit)
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
-
Unit Group - Pick every unit in SlashingStrike_Damage_Group and do (Actions)
-
Loop - Actions
- Set SlashingStrike_Target = (Picked unit)
- Unit - Cause SlashingStrike_Caster to damage SlashingStrike_Target, dealing SlashingStrike_Total_Damage damage of attack type Spells and damage type Unknown
- Floating Text - Create floating text that reads ((String((Integer(SlashingStrike_Total_Damage)))) + !) at (Position of SlashingStrike_Target) with Z offset 0.00, using font size 10.00, color (100.00%, 40.00%, 0.00%), and 0.00% transparency
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Set the velocity of (Last created floating text) to 40.00 towards 90.00 degrees
- Floating Text - Change the fading age of (Last created floating text) to 0.30 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 1.00 seconds
- Special Effect - Create a special effect attached to the origin of SlashingStrike_Target using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
- Special Effect - Destroy (Last created special effect)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (SlashingStrike_Target is A ground unit) Equal to True
-
Then - Actions
- -------- Hero Heal --------
- Unit - Set life of SlashingStrike_Caster to ((Life of SlashingStrike_Caster) + SlashingStrike_Hero_Heal)
- Special Effect - Create a special effect attached to the origin of SlashingStrike_Caster using Abilities\Spells\Human\Heal\HealTarget.mdl
- Floating Text - Create floating text that reads (+ + (String((Integer(SlashingStrike_Hero_Heal))))) at SlashingStrike_Location with Z offset 0.00, using font size 9.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Set the velocity of (Last created floating text) to 40.00 towards 90.00 degrees
- Floating Text - Change the fading age of (Last created floating text) to 0.80 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
- Else - Actions
-
If - Conditions
-
Loop - Actions
- -------- --------------------------------------------------------- --------
- -------- ----- --------
- -------- --------------------------------------------------------- --------
- Set SlashingStrike_Target = No unit
- Custom script: call RemoveLocation(udg_SlashingStrike_Location)
- Custom script: call RemoveLocation(udg_SlashingStrike_Damage_Location)
- Custom script: call DestroyGroup(udg_SlashingStrike_Damage_Group)
-
Events
Last edited: