Spellpack Hero: Time Mage

Sil3nt

SUP?
Reaction score
134
I started this hero about 3 weeks ago, planning on creating a full detailed hero which included a skin, all custom ability icons and a unique storyline. The idea got boring after the first week and I slowly progressed doing bits and pieces every few days or so. I'm releasing it now because i really can't be bothered trying to finish it off.

I guess this is more of a 'spell pack'. It contains a spell book with 3 time locking spells and a resistance spell which grants a form of immunity to the time lock spells.

Screenshots are kind of a bit useless since they are kind of instant.

Credits go to Tinki3 for template and Flare for MUI with GUI tutorial.
---------------------------------------------------------------
Implementation
To implement you must copy all variables, abilities, buffs, dummy, units and sounds for the triggers to function properly.
All Abilties/Variables/etc used are listed in the Trigger Comment window of each trigger used.

The above implementation are instructions for implementing the spells, as it is.

Modification of the abilities in the object editor as well as the trigger editor may be needed because the time lock spells only have 1 level and are contained in 1 spellbook. Modification is also needed to make the time lock spells standalone.

---------------------------------------------------------------

Known bugs (which I am either too lazy to fix, or don't know how)

-If a unit is time locked whilst already time locked, Whichever duration reaches 0 first will unfreeze the unit.
-Time Lock (radius) mui-ness is quite buggy and not fully mui. Sometimes iits mui sometimes its not, don't ask why.

Spells

Time Lock (Single)
Iroh channels his power to lock a single target in time.|n|nLocks the target unit in time for 3 seconds preventing all actions.|n|n|c006ba5d27 second cooldown.|r
Code:
Time Lock Single
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Time Lock (Single) 
    Actions
        -------- MUI --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI_Value Less than 1000
            Then - Actions
                Set MUI_Value = (MUI_Value + 1)
            Else - Actions
                Set MUI_Value = 1
        -------- Set Variables --------
        Set TLS_Target[MUI_Value] = (Target unit of ability being cast)
        Set tmp_point = (Position of TLS_Target[MUI_Value])
        Set TLS_DurationDisplay[MUI_Value] = 3
        Set TLS_CurrentDuration[MUI_Value] = 3.00
        -------- First Floating Text --------
        Floating Text - Create floating text that reads (String(TLS_DurationDisplay[MUI_Value])) above TLS_Target[MUI_Value] with Z offset 0.00, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
        Floating Text - Change (Last created floating text): Disable permanence
        Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
        Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
        Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        -------- Effects --------
        Sound - Play PossessionMissileHit1 <gen> at 100.00% volume, located at tmp_point with Z offset 0.00
        -------- Dummy Cast Buff --------
        -------- Check If Resistance Is Learnt --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Resistance  for TLS_Target[MUI_Value]) Less than 1
            Then - Actions
                Animation - Change TLS_Target[MUI_Value]'s animation speed to 0.00% of its original speed
                Unit - Pause TLS_Target[MUI_Value]
                Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                Unit - Add Time Lock (Buff)  to (Last created unit)
                Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn TLS_Target[MUI_Value]
                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            Else - Actions
                Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                Unit - Add Time Lock (Resist)  to (Last created unit)
                Unit - Set level of Time Lock (Resist)  for (Last created unit) to (Level of Resistance  for TLS_Target[MUI_Value])
                Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn TLS_Target[MUI_Value]
                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                Animation - Change TLS_Target[MUI_Value]'s animation speed to 100.00% of its original speed
        -------- Check If Resistance Is Learnt --------
        -------- Add To Dummy Group --------
        Set tmp_point = (Center of (Playable map area))
        Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
        Unit - Set the custom value of (Last created unit) to MUI_Value
        Unit Group - Add (Last created unit) to TLS_UGroup
        Custom script:   call RemoveLocation (udg_tmp_point)

Code:
Time Lock Single Check
    Events
        Time - Every 0.01 seconds of game time
    Conditions
        (Number of units in TLS_UGroup) Greater than 0
    Actions
        Unit Group - Pick every unit in TLS_UGroup and do (Actions)
            Loop - Actions
                Set tmp_integer = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Or - Any (Conditions) are true
                            Conditions
                                TLS_CurrentDuration[tmp_integer] Equal to 2.00
                                TLS_CurrentDuration[tmp_integer] Equal to 1.00
                    Then - Actions
                        Set TLS_DurationDisplay[tmp_integer] = (TLS_DurationDisplay[tmp_integer] - 1)
                        -------- The -1 is to fix a bug with the reals rounding up (unexplained) --------
                        -------- Floating Text --------
                        Floating Text - Create floating text that reads (String(TLS_DurationDisplay[tmp_integer])) above TLS_Target[tmp_integer] with Z offset 0.00, using font size 12.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                        Floating Text - Change (Last created floating text): Disable permanence
                        Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                        Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
                        Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((TLS_Target[tmp_integer] is dead) Equal to True) or (TLS_CurrentDuration[tmp_integer] Less than or equal to 0.00)
                    Then - Actions
                        -------- Effects --------
                        Animation - Change TLS_Target[tmp_integer]'s animation speed to 100.00% of its original speed
                        Unit - Unpause TLS_Target[tmp_integer]
                        Unit - Remove Time Locked  buff from TLS_Target[tmp_integer]
                        Unit - Remove Time Locked (Resist)  buff from TLS_Target[tmp_integer]
                        Unit Group - Remove (Picked unit) from TLS_UGroup
                        Unit - Remove (Picked unit) from the game
                        Set TLS_DurationDisplay[tmp_integer] = 0
                        Set TLS_CurrentDuration[tmp_integer] = 0.00
                    Else - Actions
                        Set TLS_CurrentDuration[tmp_integer] = (TLS_CurrentDuration[tmp_integer] - 0.01)

Time Lock (Area)
Further practice now allows Iroh to once again lock targets within an area rather than a single target.|n|nLocks all units in a 400 diameter in time for 2 seconds preventing all actions. Does not affect time mages.|n|n|c006ba5d28 second cooldown.|r

Code:
Time Lock Area
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Time Lock (Area) 
    Actions
        -------- MUI --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI_Value Less than 1000
            Then - Actions
                Set MUI_Value = (MUI_Value + 1)
            Else - Actions
                Set MUI_Value = 1
        -------- Set Variables --------
        Set TLA_Point[MUI_Value] = (Target point of ability being cast)
        Set TLA_Targets[MUI_Value] = (Units within 200.00 of TLA_Point[MUI_Value] matching (((Matching unit) is alive) Equal to True))
        Set TLA_DurationDisplay[MUI_Value] = 2
        Set TLA_CurrentDuration[MUI_Value] = 2.00
        -------- First Floating Text --------
        Floating Text - Create floating text that reads (String(TLA_DurationDisplay[MUI_Value])) at TLA_Point[MUI_Value] with Z offset 0.00, using font size 12.00, color (42.00%, 55.00%, 100.00%), and 0.00% transparency
        Floating Text - Change (Last created floating text): Disable permanence
        Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
        Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
        Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
        -------- Effects --------
        Sound - Play PossessionMissileHit1 <gen> at 100.00% volume, located at TLA_Point[MUI_Value] with Z offset 0.00
        -------- Unit Effects --------
        Unit Group - Pick every unit in TLA_Targets[MUI_Value] and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Picked unit) Equal to (Casting unit)
                    Then - Actions
                        Unit - Order (Picked unit) to Stop
                    Else - Actions
                -------- Dummy Cast Buff --------
                Set tmp_point = (Position of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Resistance  for (Picked unit)) Less than 1
                    Then - Actions
                        Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
                        Unit - Pause (Picked unit)
                        Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                        Unit - Add Time Lock (Buff)  to (Last created unit)
                        Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Picked unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                    Else - Actions
                        -------- Check If Resistance Is Learnt --------
                        Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                        Unit - Add Time Lock (Resist)  to (Last created unit)
                        Unit - Set level of Time Lock (Resist)  for (Last created unit) to (Level of Resistance  for (Picked unit))
                        Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Picked unit)
                        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                        Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                        Unit - Unpause (Picked unit)
                        -------- Check If Resistance Is Learnt --------
        -------- Add To Dummy Group --------
        Set tmp_point = (Center of (Playable map area))
        Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
        Unit - Set the custom value of (Last created unit) to MUI_Value
        Unit Group - Add (Last created unit) to TLA_UGroup
        Custom script:   call RemoveLocation (udg_tmp_point)

Code:
Time Lock Area Check
    Events
        Time - Every 0.01 seconds of game time
    Conditions
        (Number of units in TLA_UGroup) Greater than 0
    Actions
        Unit Group - Pick every unit in TLA_UGroup and do (Actions)
            Loop - Actions
                Set tmp_integer = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        TLA_CurrentDuration[tmp_integer] Equal to 1.00
                    Then - Actions
                        Set TLA_DurationDisplay[tmp_integer] = ((Integer(TLA_CurrentDuration[tmp_integer])) + 1)
                        -------- The +1 is to fix a bug with the reals rounding up (unexplained) --------
                        -------- Floating Text --------
                        Floating Text - Create floating text that reads (String(TLA_DurationDisplay[tmp_integer])) at TLA_Point[tmp_integer] with Z offset 0.00, using font size 12.00, color (42.00%, 55.00%, 100.00%), and 0.00% transparency
                        Floating Text - Change (Last created floating text): Disable permanence
                        Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                        Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
                        Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        TLA_CurrentDuration[tmp_integer] Less than or equal to 0.00
                    Then - Actions
                        Unit Group - Pick every unit in TLA_Targets[tmp_integer] and do (Actions)
                            Loop - Actions
                                -------- Effects --------
                                Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                                Unit - Unpause (Picked unit)
                                Unit - Remove Time Locked  buff from (Picked unit)
                                Unit - Remove Time Locked (Resist)  buff from (Picked unit)
                        Unit Group - Remove (Picked unit) from TLA_UGroup
                        Unit - Remove (Picked unit) from the game
                        -------- Leaks --------
                        Set TLA_CurrentDuration[tmp_integer] = 0.00
                        Set TLA_DurationDisplay[tmp_integer] = 0
                        Custom script:   call DestroyGroup (udg_TLA_Targets[udg_tmp_integer])
                        Custom script:   call RemoveLocation (udg_TLA_Point[udg_tmp_integer])
                    Else - Actions
                        Set TLA_CurrentDuration[tmp_integer] = (TLA_CurrentDuration[tmp_integer] - 0.01)

Time Lock (Radius)
Iroh channels his mana into a concentrated orb of energy in front of his position. The orb rapidly grows and explodes in 3 seconds, freezing all units within a 600 radius for 4 seconds and dealing damage to all enemies equal to Int x 2. A maximum of 245 mana is channeled into the orb of time after spell is casted.|n|n|c006ba5d225 second cooldown.|r

Code:
Time Lock Radius
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Time Lock (Radius) 
    Actions
        -------- MUI --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                MUI_Value Less than 1000
            Then - Actions
                Set MUI_Value = (MUI_Value + 1)
            Else - Actions
                Set MUI_Value = 1
        -------- Set Variables --------
        Set TLR_Caster[MUI_Value] = (Casting unit)
        Set TLR_CasterPoint[MUI_Value] = (Position of TLR_Caster[MUI_Value])
        Set TLR_OrbPoint[MUI_Value] = (TLR_CasterPoint[MUI_Value] offset by 300.00 towards (Facing of TLR_Caster[MUI_Value]) degrees)
        Set TLR_CurrentOrbSize[MUI_Value] = 100.00
        Set TLR_OrbDuration[tmp_integer] = 0.00
        Set TLR_CurrentDuration[MUI_Value] = 4.00
        Set TLR_DurationDisplay[MUI_Value] = 4
        -------- Create Orb/Effects --------
        Unit - Create 1 Dummy Ball for Neutral Passive at TLR_OrbPoint[MUI_Value] facing Default building facing degrees
        Set TLR_Orb[MUI_Value] = (Last created unit)
        Unit - Set the custom value of (Last created unit) to MUI_Value
        Unit Group - Add (Last created unit) to TLR_OrbGroup
        -------- Leaks --------
        Custom script:   call RemoveLocation (udg_TLR_CasterPoint[udg_MUI_Value])

Code:
Enlarge Orbs
    Events
        Time - Every 0.03 seconds of game time
    Conditions
        (Number of units in TLR_OrbGroup) Greater than 0
    Actions
        Unit Group - Pick every unit in TLR_OrbGroup and do (Actions)
            Loop - Actions
                Set tmp_integer = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        TLR_OrbDuration[tmp_integer] Greater than or equal to 3.00
                    Then - Actions
                        Unit - Kill TLR_Orb[tmp_integer]
                        Animation - Change TLR_Orb[tmp_integer]'s animation speed to 150.00% of its original speed
                        -------- Freeze Targets --------
                        Set TLR_Targets[tmp_integer] = (Units within 500.00 of TLR_OrbPoint[tmp_integer] matching (((Matching unit) is alive) Equal to True))
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                TLR_IsLocked[tmp_integer] Equal to False
                            Then - Actions
                                Unit Group - Pick every unit in TLR_Targets[tmp_integer] and do (Actions)
                                    Loop - Actions
                                        Set tmp_point = (Position of (Picked unit))
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                (Level of Resistance  for (Picked unit)) Less than 1
                                            Then - Actions
                                                Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                                                Unit - Add Time Lock (Buff)  to (Last created unit)
                                                Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Picked unit)
                                                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                                                Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
                                                Unit - Pause (Picked unit)
                                            Else - Actions
                                                -------- Check If Resistance Is Learnt --------
                                                Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                                                Unit - Add Time Lock (Resist)  to (Last created unit)
                                                Unit - Set level of Time Lock (Resist)  for (Last created unit) to (Level of Resistance  for (Picked unit))
                                                Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Picked unit)
                                                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                                                -------- Check If Resistance Is Learnt --------
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                ((Picked unit) belongs to an enemy of (Owner of TLR_Caster[tmp_integer])) Equal to True
                                            Then - Actions
                                                Unit - Cause TLR_Caster[tmp_integer] to damage (Picked unit), dealing ((Real((Intelligence of TLR_Caster[tmp_integer] (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal
                                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        TLR_OrbDuration[tmp_integer] Greater than or equal to 3.50
                                    Then - Actions
                                        Unit Group - Remove TLR_Orb[tmp_integer] from TLR_OrbGroup
                                        Unit - Remove TLR_Orb[tmp_integer] from the game
                                        -------- Remove Orb --------
                                        Set TLR_Orb[tmp_integer] = No unit
                                    Else - Actions
                            Else - Actions
                        Set TLR_IsLocked[tmp_integer] = True
                        -------- Check If Sound Is Played --------
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                TLR_PlaySound[tmp_integer] Equal to False
                            Then - Actions
                                Sound - Play DarkSummoningLaunch1 <gen> at 100.00% volume, located at TLR_OrbPoint[tmp_integer] with Z offset 0.00
                                Sound - Play DeathCoilSpecialArt1 <gen> at 100.00% volume, located at TLR_OrbPoint[tmp_integer] with Z offset 0.00
                                Set TLR_PlaySound[tmp_integer] = True
                                -------- Check If Sound Is Played --------
                                -------- If used to check for duration so that the death animation is displayed before removed --------
                                -------- First Floating Text --------
                                Floating Text - Create floating text that reads (String(TLR_DurationDisplay[tmp_integer])) at TLR_OrbPoint[tmp_integer] with Z offset 0.00, using font size 12.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                                Floating Text - Change (Last created floating text): Disable permanence
                                Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                                Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
                                Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                                -------- Add To Dummy Group --------
                                Set tmp_point = (Center of (Playable map area))
                                Unit - Create 1 Dummy for Neutral Passive at tmp_point facing Default building facing degrees
                                Unit - Set the custom value of (Last created unit) to tmp_integer
                                Unit Group - Add (Last created unit) to TLR_UGroup
                            Else - Actions
                    Else - Actions
                        -------- Grow --------
                        Set TLR_CurrentOrbSize[tmp_integer] = (TLR_CurrentOrbSize[tmp_integer] + 2.30)
                        Animation - Change TLR_Orb[tmp_integer]'s size to (TLR_CurrentOrbSize[tmp_integer]%, TLR_CurrentOrbSize[tmp_integer]%, TLR_CurrentOrbSize[tmp_integer]%) of its original size
                        Set TLR_OrbDuration[tmp_integer] = (TLR_OrbDuration[tmp_integer] + 0.03)

Code:
Time Lock Radius Check
    Events
        Time - Every 0.01 seconds of game time
    Conditions
        (Number of units in TLR_UGroup) Greater than 0
    Actions
        Unit Group - Pick every unit in TLR_UGroup and do (Actions)
            Loop - Actions
                Set tmp_integer = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Or - Any (Conditions) are true
                            Conditions
                                TLR_CurrentDuration[tmp_integer] Equal to 3.00
                                TLR_CurrentDuration[tmp_integer] Equal to 2.00
                                TLR_CurrentDuration[tmp_integer] Equal to 1.00
                    Then - Actions
                        Set TLR_DurationDisplay[tmp_integer] = ((Integer(TLR_CurrentDuration[tmp_integer])) + 1)
                        -------- The -1 is to fix a bug with the reals rounding up (unexplained) --------
                        -------- Floating Text --------
                        Floating Text - Create floating text that reads (String(TLR_DurationDisplay[tmp_integer])) at TLR_OrbPoint[tmp_integer] with Z offset 0.00, using font size 12.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                        Floating Text - Change (Last created floating text): Disable permanence
                        Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                        Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
                        Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        TLR_CurrentDuration[tmp_integer] Less than or equal to 0.00
                    Then - Actions
                        Unit Group - Pick every unit in TLR_Targets[tmp_integer] and do (Actions)
                            Loop - Actions
                                -------- Effects --------
                                Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                                Animation - Change (Picked unit) turn speed to 0.50
                                Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
                                Unit - Unpause (Picked unit)
                                Unit - Remove Time Locked  buff from (Picked unit)
                                Unit - Remove Time Locked (Resist)  buff from (Picked unit)
                        Unit Group - Remove (Picked unit) from TLR_UGroup
                        Unit - Remove (Picked unit) from the game
                        -------- Leaks --------
                        Custom script:   call DestroyGroup (udg_TLR_Targets[udg_tmp_integer])
                        Custom script:   call RemoveLocation (udg_TLR_OrbPoint[udg_tmp_integer])
                    Else - Actions
                        Set TLR_CurrentDuration[tmp_integer] = (TLR_CurrentDuration[tmp_integer] - 0.01)

Well, enjoy =]

Update!
-Used the conditions suggested by flare.
-fixed some coding on the Time Lock Single spell.
-changed the dummy model to none.mdl
 

Attachments

  • Time Mage.w3x
    68.9 KB · Views: 251

Sil3nt

SUP?
Reaction score
134
Theyre kind of instant.. with a floating text for duration of freeze time. However i'll try to add a screenie of the Radius one tommorow. A bit lazy right now =/

edit - @ uberplayer
Hmm.. Maybe a mod can just rename it to 'spellpack' then. I'm only submitting them because i'm most likely not going to finish the hero.
 

Flare

Stops copies me!
Reaction score
662
Code:
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in TLS_UGroup) Greater than 0
            Then - Actions

BOOOOO. Add that condition to the triggers main conditions for a) simplicity, so you don't clutter your main trigger actions with another if/then/else and b) so your trigger(s) don't fire needlessly. You have a few 0.01s periodic events, and if triggers are firing needlessly, lag can ensue (whether periodic events lag if they don't do anything, I'm not really sure)

I'll take a look at the map once I've had my lunch.
 

Sil3nt

SUP?
Reaction score
134
I did that before, dont know why i changed it .. As for the 0.01s it hasn't caused me any lag yet so I'll just leave it like that i guess..


UPDATED
 

vypur85

Hibernate
Reaction score
803
Code:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
        (Number of units in YourGroup) Equal to 0
    Then - Actions
        Trigger - Turn off (This trigger)
    Else - Actions
I would suggest using this condition after the Unit Group loop in the periodic trigger (the periodic trigger must be initially off). And add a turn on trigger at the 'Start the effect of ability' trigger. This prevents the trigger to be unnecessary turned on when not needed, or when the hero is not in use. Flare's condition may also work but the trigger is still continually running. :)

Code:
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        TLA_CurrentDuration[tmp_integer] Less than or equal to 0.00
                    Then - Actions
                        Unit Group - Pick every unit in TLA_Targets[tmp_integer] and do (Actions)
                            Loop - Actions
                                -------- Effects --------
                                Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
                                Unit - Unpause (Picked unit)
                                Unit - Remove Time Locked  buff from (Picked unit)
                                Unit - Remove Time Locked (Resist)  buff from (Picked unit)
[B]                        Unit Group - Remove (Picked unit) from TLA_UGroup[/B]
[I]                        Unit - Remove (Picked unit) from the game[/I]
                        -------- Leaks --------
                        Set TLA_CurrentDuration[tmp_integer] = 0.00
                        Set TLA_DurationDisplay[tmp_integer] = 0
                        Custom script:   call DestroyGroup (udg_TLA_Targets[udg_tmp_integer])
                        Custom script:   call RemoveLocation (udg_TLA_Point[udg_tmp_integer])
The bolded line is not required because you've already remove the unit. Both lines also works in removing units from Unit Group.
 

Flare

Stops copies me!
Reaction score
662
@vypur: turning off a periodic trigger for an MUI ability is very risky. if you turn off the trigger when unit A no longer needs the periodic, but unit B still needs it, the effect of unit B's cast will be cancelled early.

adding the Number of Units > 0 works just fine since primary conditions prevent triggers from doing anything but recognising the event (i think), unless the conditions are fulfilled ofc


and ye, theres no need to remove a dummy from a UG then remove it from the game. if a unit doesnt exist, it cant be in unit groups
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top