- Joined
- Dec 16, 2017
- Messages
- 347
Hello guys, i am trying to make a spell that heals in some AOE that is represented by a field(as SFX), and i want to give a buff to every unit that enters in the area, and remove the buff when the unit leaves the area but i am not sure how to do it, this is what i got so far without the buff. The spell is based of Silence.
-
Holy Word Sanctify Cast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Holy Word: Sanctify NEW
-
Actions
- Set HWS_Index = (HWS_Index + 1)
- Set HWS_Caster[HWS_Index] = (Triggering unit)
- Set HWS_Target[HWS_Index] = (Target point of ability being cast)
- Set HWS_Heal[HWS_Index] = (25.00 + (45.00 x (Real((Level of (Ability being cast) for HWS_Caster[HWS_Index])))))
- Set HWS_Duration[HWS_Index] = 10
- Unit - Create 1 Dummy Empty for (Owner of HWS_Caster[HWS_Index]) at HWS_Target[HWS_Index] facing 0.00 degrees
- Set HWS_Dummy[HWS_Index] = (Last created unit)
- Special Effect - Create a special effect attached to the origin of HWS_Dummy[HWS_Index] using BlessedField.mdx
- Set HWS_SFX[HWS_Index] = (Last created special effect)
- Animation - Change HWS_Dummy[HWS_Index]'s size to (150.00%, 150.00%, 150.00%) of its original size
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- HWS_Index Equal to 1
-
Then - Actions
- Trigger - Turn on Holy Word Sanctify Loop <gen>
- Else - Actions
-
If - Conditions
-
Events
-
Holy Word Sanctify Loop
-
Events
- Time - Every 1.00 seconds of game time
- Conditions
-
Actions
-
For each (Integer HWS_Loop) from 1 to HWS_Index, do (Actions)
-
Loop - Actions
- Set HWS_Duration[HWS_Loop] = (HWS_Duration[HWS_Loop] - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- HWS_Duration[HWS_Loop] Greater than or equal to 0
-
Then - Actions
- Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 300.00 of HWS_Target[HWS_Loop]) and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked unit) is alive) Equal to True
- ((Picked unit) belongs to an ally of (Owner of HWS_Caster[HWS_Loop])) Equal to True
-
Then - Actions
- Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + HWS_Heal[HWS_Loop])
- Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Else - Actions
- Custom script: call RemoveLocation(udg_HWS_Target[udg_HWS_Loop])
- Unit - Add a 0.10 second Generic expiration timer to HWS_Dummy[HWS_Loop]
- Special Effect - Destroy HWS_SFX[HWS_Loop]
- Set HWS_Caster[HWS_Loop] = HWS_Caster[HWS_Index]
- Set HWS_SFX[HWS_Loop] = HWS_SFX[HWS_Index]
- Set HWS_Dummy[HWS_Loop] = HWS_Dummy[HWS_Index]
- Set HWS_Target[HWS_Loop] = HWS_Target[HWS_Index]
- Set HWS_Duration[HWS_Loop] = HWS_Duration[HWS_Index]
- Set HWS_Heal[HWS_Loop] = HWS_Heal[HWS_Index]
- Set HWS_Index = (HWS_Index - 1)
- Set HWS_Loop = (HWS_Loop - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- HWS_Index Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
If - Conditions
-
Loop - Actions
-
For each (Integer HWS_Loop) from 1 to HWS_Index, do (Actions)
-
Events