FroznYoghurt
New Member
- Reaction score
- 37
What i want to do: A missile spell that leaves a buff, buff registers mana re and degeneration, when dur is over (target no longer has the buff) it receives damage. (this is not the problem)
The buff is supposed to only be able to be active at one target at a time, when a new unit receives it the last is supposed to have it removed.
Missile: A locust unit with a SFX attachment
Buff: Slow with 0% slow (Does nothing)
What dosen't work: The buff is for some reason instantly removed and therefore the target takes the damage instantly, this really buggs me.
Here is the code:
Ini
Loop
I know it's a lot of code but it dosen't take too long to read it, please help me on this one im stuck deep.
+rep for sollutions
The buff is supposed to only be able to be active at one target at a time, when a new unit receives it the last is supposed to have it removed.
Missile: A locust unit with a SFX attachment
Buff: Slow with 0% slow (Does nothing)
What dosen't work: The buff is for some reason instantly removed and therefore the target takes the damage instantly, this really buggs me.
Here is the code:
Ini
Code:
Spirit Leech
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Spirit Leech
Actions
Unit - Remove SL_Missile from the game
-------- - --------
Special Effect - Create a special effect attached to the hand, left of (Triggering unit) using Abilities\Spells\NightElf\SpiritOfVengeance\SpiritOfVengeanceBirthMissile.mdl
Special Effect - Destroy (Last created special effect)
-------- - --------
Set SL_Target = (Target unit of ability being cast)
Set TempPoint = (Position of (Triggering unit))
-------- - --------
Unit - Create 1 Mana Leech for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
Animation - Play (Last created unit)'s walk animation
Unit - Add Crow Form to (Last created unit)
Animation - Change (Last created unit) flying height to 125.00 at 0.00
Unit - Remove Crow Form from (Last created unit)
Animation - Change (Last created unit)'s vertex coloring to (5.00%, 5.00%, 100.00%) with 45.00% transparency
Special Effect - Create a special effect attached to the head of (Last created unit) using Abilities\Weapons\SpiritOfVengeanceMissile\SpiritOfVengeanceMissile.mdl
Unit - Turn collision for (Last created unit) Off
Set SL_Missile = (Last created unit)
-------- - --------
Trigger - Turn on SL Hit <gen>
Custom script: call RemoveLocation(udg_TempPoint)
Loop
Code:
SL loop
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
-------- Missile, Hit target --------
Set TempPoint = (Position of SL_Target)
Set TempPoint2 = (Position of SL_Missile)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between TempPoint and TempPoint2) Less than or equal to 50.00
Then - Actions
-------- - --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Leeched_Target Not equal to No unit
Then - Actions
Unit - Remove Mana Leech buff from Leeched_Target
Unit - Cause Caster to damage Leeched_Target, dealing (SL_Damage[1] + SL_Damage[2]) damage of attack type Spells and damage type Normal
Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
Special Effect - Destroy (Last created special effect)
-------- Text --------
Floating Text - Create floating text that reads ((((String((Integer(SL_Damage[1])))) + + ) + (String((Integer(SL_Damage[2]))))) + !) above Leeched_Target with Z offset 0.00, using font size 10.00, color (10.00%, 15.00%, 100.00%), and 0.00% transparency
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
-------- - --------
Set Leeched_Target = No unit
Else - Actions
-------- - --------
Set SL_Damage[1] = 0.00
Set SL_Damage[2] = 0.00
Special Effect - Create a special effect at TempPoint2 using Abilities\Spells\NightElf\SpiritOfVengeance\SpiritOfVengeanceBirthMissile.mdl
Special Effect - Destroy (Last created special effect)
Unit - Create 1 Spell Dummy for (Owner of SL_Missile) at TempPoint2 facing Default building facing degrees
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Unit - Add Mana Leech to (Last created unit)
Unit - Order (Last created unit) to Human Sorceress - Slow SL_Target
Unit - Remove SL_Missile from the game
-------- - --------
Set SL_Target = No unit
-------- - --------
Else - Actions
Set TempPointA[3] = (TempPoint2 offset by 4.60 towards (Angle from TempPoint2 to TempPoint) degrees)
Unit - Move SL_Missile instantly to TempPointA[3], facing (Angle from TempPoint2 to TempPoint) degrees
Custom script: call RemoveLocation(udg_TempPointA[3])
Custom script: call RemoveLocation(udg_TempPoint)
Custom script: call RemoveLocation(udg_TempPoint2)
-------- Who is Hit? --------
Set TempGroup = (Units in (Entire map) matching (((Matching unit) Not equal to Leeched_Target) and (((Matching unit) has buff Mana Leech ) Equal to True)))
Unit Group - Pick every unit in TempGroup and do (Actions)
Loop - Actions
Set Leeched_Target = (Picked unit)
-------- Buff still on? --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Leeched_Target has buff Mana Leech ) Equal to False
Then - Actions
Unit - Remove Mana Leech buff from Leeched_Target
Unit - Cause Caster to damage Leeched_Target, dealing (SL_Damage[1] + SL_Damage[2]) damage of attack type Spells and damage type Normal
Special Effect - Create a special effect attached to the chest of Leeched_Target using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
Special Effect - Destroy (Last created special effect)
Floating Text - Create floating text that reads ((((String((Integer(SL_Damage[1])))) + + ) + (String((Integer(SL_Damage[2]))))) + !) above Leeched_Target with Z offset 0.00, using font size 10.00, color (10.00%, 15.00%, 100.00%), and 0.00% transparency
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
Set SL_Damage[1] = 0.00
Set SL_Damage[2] = 0.00
Set Leeched_Target = No unit
Else - Actions
-------- Mana Difference --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SL_ManaCheck Equal to 1
Then - Actions
Set SL_ManaCheck = 2
Set SL_MP[1] = (Mana of Leeched_Target)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SL_MP[2] Less than SL_MP[1]
Then - Actions
Set SL_Damage[1] = (SL_Damage[1] + (SL_MP[1] - SL_MP[2]))
Else - Actions
Set SL_Damage[2] = (SL_Damage[2] + (SL_MP[2] - SL_MP[1]))
Else - Actions
Set SL_ManaCheck = 1
Set SL_MP[2] = (Mana of Leeched_Target)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SL_MP[2] Less than SL_MP[1]
Then - Actions
Set SL_Damage[1] = (SL_Damage[1] + (SL_MP[1] - SL_MP[2]))
Else - Actions
Set SL_Damage[2] = (SL_Damage[2] + (SL_MP[2] - SL_MP[1]))
I know it's a lot of code but it dosen't take too long to read it, please help me on this one im stuck deep.
+rep for sollutions