• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Winter wrath v1.01b

I found an old spell on my computer, but the coding was so awful that I couldn't believe I've done it, so I decided to recode it. Because I found the new version really fun, I decided to share it here, so peoples can enjoy it, use it, and maybe, learn from it.

Features:
-GUI
-Highly customizable
-Support any amount of level
-Leakless (There is somes leaks that I could have missed)
-Not laggy (except if you spam it like if you could gain 1$ each time you use the spell)
-Eye candy ?

Description:
Summons a pillar of ice at the targeted location, the pillar creates 9/10/11/... orbs which will form an expanding ring, when the distance between the pillar and the orbs is equal to 1000/1200/1400/... the orbs will go back to the pillar and form another ring which will expand and this continously for 10/13/16/... seconds, when an ennemy unit touch an orb she takes 300/400/500/... points of damage.


  • Winter Wrath Configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Creating the hashtable --------
      • Table de hachage - Create a hashtable
      • Set WW_Hashtable = (Last created hashtable)
      • -------- Setting the "handle" dummy type --------
      • Set WW_Handle_Type = Handle (Winter wrath)
      • -------- Setting the "pillar" dummy type --------
      • Set WW_Pillar_Type = Dummy 2 (Winter wrath)
      • -------- Setting the "orb" dummy type --------
      • Set WW_Orbs_Type = Dummy (Winter wrath)
      • -------- Setting how far of the pillar the orbs can go --------
      • Set WW_Distance_Base = 800.00
      • Set WW_Distance_Level = 200.00
      • -------- Setting how fast the orbs are moving --------
      • Set WW_Speed_Base = 15.00
      • Set WW_Speed_Level = 5.00
      • -------- Setting how fast the orbs rotate --------
      • Set WW_Rotation_Base = 1.00
      • Set WW_Rotation_Level = 1.00
      • -------- Setting the amount of damage an unit takes when she collide with an orb --------
      • Set WW_Damage_Base = 200.00
      • Set WW_Damage_Level = 100.00
      • -------- Setting which kind of damage the units will take --------
      • Set WW_Damage_Type = Glace
      • Set WW_Attack_Type = Magie
      • -------- Setting the caster ability --------
      • Set WW_Ability = Winter wrath
      • -------- Setting how close to the orbs the units must be to be damaged --------
      • Set WW_Range_Base = 90.00
      • Set WW_Range_Level = 0.00
      • -------- Setting the amount of orbs --------
      • Set WW_DummyAmount_Base = 8
      • Set WW_DummyAmount_Level = 1
      • -------- Setting how long the spell last --------
      • Set WW_Duration_Base = 7.00
      • Set WW_Duration_Level = 3.00
      • -------- Setting the effect when the spell end --------
      • Set WW_EndEffect = Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
      • -------- Setting the other end effect --------
      • Set WW_EndEffect2 = Abilities\Spells\Undead\FreezingBreath\FreezingBreathMissile.mdl
      • -------- Setting the the effect when an unit is damaged --------
      • Set WW_Damage_Effect = Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
      • -------- Setting the the sound when the pillar disappears --------
      • Set WW_Sound = FrostNovaTarget1 <gen>
  • Winter Wrath Cast
    • Events
      • Unit - A unit Initiate the effect of an ability
    • Conditions
      • (Ability being cast) Equal to  WW_Ability
    • Actions
      • -------- setting all integer to 0 to ensure there won't be any bugs --------
      • Set WW_LoopA = 0
      • Set WW_TmpInteger = 0
      • Set WW_TmpInteger2 = 0
      • -------- Setting the caster --------
      • Set WW_TmpCaster = (Triggering unit)
      • Set WW_TmpOwner = (Triggering player)
      • -------- Setting the location of the caster --------
      • Set WW_TmpPoint = (Position of WW_TmpCaster)
      • -------- Creating the handle dummy --------
      • Unit - Create 1 WW_Handle_Type for WW_TmpOwner at WW_TmpPoint facing Orientation default build facing degrees
      • Set WW_TmpHandle = (Last created unit)
      • -------- Saving the handle of the caster --------
      • Hashtable - Save Handle OfWW_TmpCaster as (Key Caster) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- Setting the integers --------
      • Set WW_TmpInteger = (Level of WW_Ability for WW_TmpCaster)
      • Set WW_TmpInteger2 = (WW_DummyAmount_Base + (WW_DummyAmount_Level x WW_TmpInteger))
      • -------- Saving the integers --------
      • Hashtable - Save WW_TmpInteger2 as (Key OrbAmount) of (Key WW_TmpHandle) in WW_Hashtable
      • Hashtable - Save WW_TmpInteger as (Key Abilitylevel) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- Adding the handle dummy to the group so the spell is MUI --------
      • Unitgroup - Add (Last created unit) to WW_FC_Group
      • -------- Setting the target point of the ability --------
      • Set WW_TmpPoint2 = (Target point of ability being cast)
      • -------- Creating the pillar and saving him --------
      • Unit - Create 1 WW_Pillar_Type for (Owner of WW_TmpCaster) at WW_TmpPoint2 facing default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as (Key Pillar) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The range --------
      • Set WW_TmpReal = (WW_Range_Base + (WW_Range_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key Range) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- Angle + creating the orbs --------
      • Set WW_TmpReal = ((Angle from WW_TmpPoint to WW_TmpPoint2) - (360.00 / (Real((Load (Key OrbAmount) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • For each (Integer WW_LoopA) from 1 to WW_TmpInteger2, do (Actions)
        • Loop - Actions
          • Set WW_TmpInteger = (WW_LoopA + ((WW_TmpInteger2 x 2) + 1))
          • Set WW_TmpReal = (WW_TmpReal + (360.00 / (Real(WW_TmpInteger2))))
          • Unit - Create 1 WW_Orbs_Type for WW_TmpOwner at WW_TmpPoint2 facing WW_TmpReal degrees
          • Custom script: set udg_WW_TmpTrigger = CreateTrigger( )
          • Hashtable - Save Handle OfWW_TmpTrigger as WW_TmpInteger of (Key WW_TmpHandle) in WW_Hashtable
          • Custom script: call TriggerAddCondition( LoadTriggerHandle( udg_WW_Hashtable, GetHandleId(udg_WW_TmpHandle), udg_WW_TmpInteger ), Condition( function WW_TT_Group ) )
          • Custom script: call TriggerRegisterUnitInRange( LoadTriggerHandle( udg_WW_Hashtable, GetHandleId(udg_WW_TmpHandle), udg_WW_TmpInteger ), GetLastCreatedUnit(), LoadReal( udg_WW_Hashtable, GetHandleId(udg_WW_TmpHandle), StringHash("Range") ), null )
          • Hashtable - Save Handle Of(Last created unit) as WW_LoopA of (Key WW_TmpHandle) in WW_Hashtable
          • Hashtable - Save WW_TmpReal as (WW_LoopA + (Load (Key OrbAmount) of (Key WW_TmpHandle) from WW_Hashtable)) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The distance --------
      • Set WW_TmpReal = (WW_Distance_Base + (WW_Distance_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key MaxDistance) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The duration --------
      • Set WW_TmpReal = (WW_Duration_Base + (WW_Duration_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key Duration) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The damage --------
      • Set WW_TmpReal = (WW_Damage_Base + (WW_Damage_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key Damage) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The speed --------
      • Set WW_TmpReal = (WW_Speed_Base + (WW_Speed_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key Speed) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- The rotation --------
      • Set WW_TmpReal = (WW_Rotation_Base + (WW_Rotation_Level x (Real((Load (Key Abilitylevel) of (Key WW_TmpHandle) from WW_Hashtable)))))
      • Hashtable - Save WW_TmpReal as (Key Rotation) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- the distance --------
      • Hashtable - Save 0.00 as (Key Distance) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- the boolean --------
      • Hashtable - Save FALSE as (Key Return) of (Key WW_TmpHandle) in WW_Hashtable
      • -------- turning on the loop --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Winter Wrath Loop <gen> is on) Equal to  FALSE
        • Then - Actions
          • Trigger - Turn on Winter Wrath Loop <gen>
        • Else - Actions
      • -------- clearing the leaks --------
      • Custom script: call RemoveLocation( udg_WW_TmpPoint )
      • Custom script: call RemoveLocation( udg_WW_TmpPoint2 )
      • Custom script: set udg_WW_TmpHandle = null
  • Winter Wrath Loop
    • Events
      • Timer - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unitgroup - Pick every unit in WW_FC_Group and do (Actions)
        • Loop - Actions
          • Set WW_TmpHandle2 = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load (Key Duration) of (Key WW_TmpHandle2) from WW_Hashtable) Greater than  0.00
            • Then - Actions
              • Set WW_TmpReal = ((Load (Key Duration) of (Key WW_TmpHandle2) from WW_Hashtable) - 0.03)
              • Table de hachage - Save WW_TmpReal as (Key Duration) of (Key WW_TmpHandle2) in WW_Hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) Lesser than  (Load (Key MaxDistance) of (Key WW_TmpHandle2) from WW_Hashtable)
                  • (Load (Key Return) of (Key WW_TmpHandle2) from WW_Hashtable) Equal to  FALSE
                • Then - Actions
                  • Set WW_TmpReal = ((Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) + (Load (Key Speed) of (Key WW_TmpHandle2) from WW_Hashtable))
                  • Hashtable - Save WW_TmpReal as (Key Distance) of (Key WW_TmpHandle2) in WW_Hashtable
                  • Set WW_TmpPoint = (Position of (Load (Key Pillar) of (Key WW_TmpHandle2) in WW_Hashtable))
                  • Set WW_TmpInteger = (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)
                  • For each (Integer WW_LoopA) from 1 to (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable), do (Actions)
                    • Loop - Actions
                      • Set WW_TmpReal = ((Load (WW_LoopA + WW_TmpInteger) of (Key WW_TmpHandle2) from WW_Hashtable) + (Load (Key Rotation) of (Key WW_TmpHandle2) from WW_Hashtable))
                      • Hashtable - Save WW_TmpReal as (WW_LoopA + (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)) of (Key WW_TmpHandle2) in WW_Hashtable
                      • Set WW_TmpPoint2 = (Position of (Load WW_LoopA of (Key WW_TmpHandle2) in WW_Hashtable))
                      • Set WW_TmpPoint3 = (WW_TmpPoint offset by (Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) towards (Load (WW_LoopA + (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)) of (Key WW_TmpHandle2) from WW_Hashtable) degrees)
                      • Set WW_TmpX = (X of WW_TmpPoint3)
                      • Set WW_TmpY = (Y of WW_TmpPoint3)
                      • Custom script: call SetUnitX( LoadUnitHandle( udg_WW_Hashtable, GetHandleId( udg_WW_TmpHandle2 ), udg_WW_LoopA ), udg_WW_TmpX )
                      • Custom script: call SetUnitY( LoadUnitHandle( udg_WW_Hashtable, GetHandleId( udg_WW_TmpHandle2 ), udg_WW_LoopA ), udg_WW_TmpY )
                      • Custom script: call RemoveLocation( udg_WW_TmpPoint2 )
                      • Custom script: call RemoveLocation( udg_WW_TmpPoint3 )
                  • Custom script: call RemoveLocation( udg_WW_TmpPoint )
                • Else - Actions
                  • Hashtable - Save TRUE as (Key Return) of (Key WW_TmpHandle2) in WW_Hashtable
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) Greater than  0.00
                      • (Load (Key Return) of (Key WW_TmpHandle2) from WW_Hashtable) Equal to  TRUE
                    • Then - Actions
                      • Set WW_TmpReal = ((Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) - (Load (Key Speed) of (Key WW_TmpHandle2) from WW_Hashtable))
                      • Hashtable - Save WW_TmpReal as (Key Distance) of (Key WW_TmpHandle2) in WW_Hashtable
                      • Set WW_TmpPoint = (Position of (Load (Key Pillar) of (Key WW_TmpHandle2) in WW_Hashtable))
                      • Set WW_TmpInteger = (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)
                      • For each (Integer WW_LoopA) from 1 to (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable), do (Actions)
                        • Loop - Actions
                          • Set WW_TmpReal = ((Load (WW_LoopA + WW_TmpInteger) of (Key WW_TmpHandle2) from WW_Hashtable) + (Load (Key Rotation) of (Key WW_TmpHandle2) from WW_Hashtable))
                          • Hashtable - Save WW_TmpReal as (WW_LoopA + (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)) of (Key WW_TmpHandle2) in WW_Hashtable
                          • Set WW_TmpPoint2 = (Position of (Load WW_LoopA of (Key WW_TmpHandle2) in WW_Hashtable))
                          • Set WW_TmpPoint3 = (WW_TmpPoint offset by (Load (Key Distance) of (Key WW_TmpHandle2) from WW_Hashtable) towards (Load (WW_LoopA + (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable)) of (Key (Picked unit)) from WW_Hashtable) degrees)
                          • Set WW_TmpX = (X of WW_TmpPoint3)
                          • Set WW_TmpY = (Y of WW_TmpPoint3)
                          • Custom script: call SetUnitX( LoadUnitHandle( udg_WW_Hashtable, GetHandleId( udg_WW_TmpHandle2 ), udg_WW_LoopA ), udg_WW_TmpX )
                          • Custom script: call SetUnitY( LoadUnitHandle( udg_WW_Hashtable, GetHandleId( udg_WW_TmpHandle2 ), udg_WW_LoopA ), udg_WW_TmpY )
                          • Custom script: call RemoveLocation( udg_WW_TmpPoint2 )
                          • Custom script: call RemoveLocation( udg_WW_TmpPoint3 )
                      • Custom script: call RemoveLocation( udg_WW_TmpPoint )
                    • Else - Actions
                      • Hashtable - Save FALSE as (Key Return) of (Key WW_TmpHandle2) in WW_Hashtable
            • Else - Actions
              • For each (Integer WW_LoopA) from 1 to (Load (Key OrbAmount) of (Key WW_TmpHandle2) from WW_Hashtable), do (Actions)
                • Loop - Actions
                  • Set WW_TmpPoint = (Position of (Load WW_LoopA of (Key WW_TmpHandle2) in WW_Hashtable))
                  • Set WW_TmpInteger2 = (Load (Key Orbamount) of (Key WW_TmpHandle2) from WW_Hashtable)
                  • Set WW_TmpInteger = (WW_LoopA + ((WW_TmpInteger2 x 2) + 1))
                  • Custom script: call DestroyTrigger( LoadTriggerHandle( udg_WW_Hashtable, GetHandleId(udg_WW_TmpHandle2), udg_WW_TmpInteger ) )
                  • Unit - Remove (Load WW_LoopA of (Key WW_TmpHandle2) in WW_Hashtable) from the game
                  • Set WW_TmpX = (X of WW_TmpPoint)
                  • Set WW_TmpY = (Y of WW_TmpPoint)
                  • Custom script: call DestroyEffect(AddSpecialEffect( udg_WW_EndEffect, udg_WW_TmpX, udg_WW_TmpY ) )
                  • Custom script: call DestroyEffect(AddSpecialEffect( udg_WW_EndEffect2, udg_WW_TmpX, udg_WW_TmpY ) )
                  • Custom script: call RemoveLocation( udg_WW_TmpPoint )
              • Set WW_TmpPoint = (Position of (Load (Key Pillar) of (Key WW_TmpHandle2) in WW_Hashtable))
              • Set WW_TmpX = (X of WW_TmpPoint)
              • Set WW_TmpY = (Y of WW_TmpPoint)
              • Unit - Remove (Load (Key Pillar) of (Key WW_TmpHandle2) in WW_Hashtable) from the game
              • Sound - Play WW_Sound at 100.00% volume, located at WW_TmpPoint with Z offset 0.00
              • Sound - Destroy WW_Sound
              • Custom script: call DestroyEffect(AddSpecialEffect( udg_WW_EndEffect, udg_WW_TmpX, udg_WW_TmpY ) )
              • Custom script: call DestroyEffect(AddSpecialEffect( udg_WW_EndEffect2, udg_WW_TmpX, udg_WW_TmpY ) )
              • Set WW_TmpUnits = (Picked unit)
              • Unitgroup - Remove WW_TmpUnits from WW_FC_Group
              • Unit - Remove WW_TmpUnits from the game
              • Hashtable - Clear all child hashtables of child (Key WW_TmpHandle2) in WW_Hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in WW_FC_Group) Equal to  0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Custom script: call RemoveLocation( udg_WW_TmpPoint )
              • Custom script: set udg_WW_TmpUnits = null
              • Custom script: set udg_WW_TmpHandle2 = null
JASS:
function WW_TT_Checkingifenemy takes nothing returns boolean
    return IsUnitEnemy(GetTriggerUnit(), GetOwningPlayer(LoadUnitHandle( udg_WW_Hashtable, GetHandleId(GetEnumUnit()), StringHash("Caster") )))
endfunction

function WW_TT_Damageenemies takes nothing returns nothing
    local weapontype udg_WW_Weapon_Type = WEAPON_TYPE_METAL_LIGHT_SLICE
    if WW_TT_Checkingifenemy() == true then
        call UnitDamageTarget( LoadUnitHandle( udg_WW_Hashtable, GetHandleId(GetEnumUnit()), StringHash("Caster") ), GetTriggerUnit(), LoadReal( udg_WW_Hashtable, GetHandleId(GetEnumUnit()), StringHash("Damage") ), true, false, udg_WW_Attack_Type, udg_WW_Damage_Type, udg_WW_Weapon_Type )
        set udg_WW_TmpX = GetUnitX( GetTriggerUnit(  ) )
        set udg_WW_TmpY = GetUnitY( GetTriggerUnit(  ) )
        call DestroyEffect(AddSpecialEffect( udg_WW_Damage_Effect, udg_WW_TmpX, udg_WW_TmpY ) )
    else
    endif
endfunction

function WW_TT_Group takes nothing returns nothing
    call ForGroup( udg_WW_Group, function WW_TT_Damageenemies )
endfunction

I tried to translate the events/conditions/actions to english but it couldn't be equal to the english version in the english editor.


-1.00: Uploaded the spell
-1.00b: Slightly improved performances and added the turning off of the loop
-1.00c: Slightly improved performances
-1.00d: Improved performances a very little bit more
-1.01: Changed the damage trigger to dynamic triggers, added sound.
-1.01b: Removed action leak, now there is no problem (I hope)



(I seriously need to improve my knowledge of the BBcode of this site for making better presentations)

Keywords:
Awesome, frost themed, effects, circular, bosses, unicorns, ugly terrain, demon, lord, Lord_Demon_X, cookies
Contents

Winter wrath 1.01 (Map)

Reviews
Winter wrath v1.01b | Reviewed by Maker | 6th Oct 2013 APPROVED The spell works and it is MUI Add importing instructions into the map The frost things could make some sound Winter wrath v1.00d |...

Moderator

M

Moderator


Winter wrath v1.01b | Reviewed by Maker | 6th Oct 2013
APPROVED


126248-albums6177-picture66521.png


  • The spell works and it is MUI
126248-albums6177-picture66523.png


  • Add importing instructions into the map
  • The frost things could make some sound
[tr]



Winter wrath v1.00d | Reviewed by Maker | 27th Feb 2013
NEEDS FIX


126248-albums6177-picture66522.png


  • You are leaking events
126248-albums6177-picture66523.png


  • Instead of "(Number of units in WW_FC_Group) Equal to 1",
    use "Trigger is turned on". Number of units in group is slow
  • The ability has no follow through time so the cast animation
    looks bad
  • The learned icon is misplaced in the command card
  • There could be a sound effect
  • You should flush the child hashtable when the spell is over
[tr]
 
Level 4
Joined
Nov 13, 2012
Messages
28
Sorry, I know this isn't really readable (Because my WE isn't in english and I won't change the language.)

@Rheiko: So I looked at the change you've suggested and I have a question:
Why did you told me to change triggering unit to picked unit in the damage trigger when it make the spell dealing 0 damage to the targets which encounter the orbs ?

@Wrda: I didn't test it online so I can't tell you if it will lag online.

@JakeZinc: Why I am turning on the loop when the group is equal to 1 ?
Because Maker and Mag told me to do this way and because two others reasons:
-The loop is initially off, so if I don't turn it on, the spell will never works
-If the loop run while there isn't any units in the group, it will allow memory for nothing which can makes the game running slower.

@All: Unfortunatly, you have to download the spell to have the triggers in english. When/If the spell get approved, I swear you could pm me the finals triggers so everyone will be able to read it easily.
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Sorry, I know this isn't really readable (Because my WE isn't in english and I won't change the language.)

@Rheiko: So I looked at the change you've suggested and I have a question:
Why did you told me to change triggering unit to picked unit in the damage trigger when it make the spell dealing 0 damage to the targets which encounter the orbs ?

@Wrda: I didn't test it online so I can't tell you if it will lag online.

@JakeZinc: Why I am turning on the loop when the group is equal to 1 ?
Because Maker and Mag told me to do this way and because two others reasons:
-The loop is initially off, so if I don't turn it on, the spell will never works
-If the loop run while there isn't any units in the group, it will allow memory for nothing which can makes the game running slower.

@All: Unfortunatly, you have to download the spell to have the triggers in english. When/If the spell get approved, I swear you could pm me the finals triggers so everyone will be able to read it easily.

Oops my bad xD, sorry for my mistakes because I can't read the triggers carefully.
 
Level 4
Joined
Nov 13, 2012
Messages
28
@Rheiko:
Each time an orb is created, I add to the damage trigger an event with "An unit comes with X range of (last created unit).
And it "takes" a triggering unit because it's the "global pointer" (I don't really remember the name) for the units come enought closer to the orbs.

(This explanation isn't really great, but I hope you'll understand because I don't see how to explain it with more clarity.)
 
Level 16
Joined
Jul 31, 2012
Messages
2,217

Review

Suggestions

Rating

Judgement

My Words

A really nice spell, a little normal, but well executed
Only one bad point: the orbs don't always hit units they sometimes pass over units without damaging them
Add an Effect when the unit gets damaged
225233-albums6523-picture74071.jpg
225233-albums6523-picture74103.jpg
If You want me to review an Update of This Spell, Please Notifiy me this by VM or PM
 
Last edited:
Top