• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Essence of Shade

Essence of Shade

The hero release the shade which having reached the enemy, attacks it, damage then comes back in a body of the hero.
Level 1 - 150 damage.
Level 2 - 200 damage.
Level 3 - 250 damage.

  • Essence of Shade A
    • События
      • Боевая единица - A unit РџСЂРёРІРѕРґРёС‚ способность РІ действие
    • Условия
      • (Ability being cast) равно Essence of Shade
    • Действия
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Если - Условия
          • ES_Switch равно 0
        • РўРѕ - Действия
          • Триггер - Turn on Essence of Shade B <gen>
        • Р&#152;наче - Действия
      • -------- -------- --------
      • Set ES_CastNumber = (ES_CastNumber + 1)
      • Set ES_Switch = (ES_Switch + 1)
      • Set ES_Off[ES_CastNumber] = Да
      • -------- -------- --------
      • Set ES_Caster[ES_CastNumber] = (Triggering unit)
      • Set ES_Target[ES_CastNumber] = (Target unit of ability being cast)
      • -------- -------- --------
      • Set ES_Speed[ES_CastNumber] = 50.00
      • Set ES_Damage[ES_CastNumber] = (100.00 + (50.00 x (Real((Level of Essence of Shade for ES_Caster[ES_CastNumber])))))
      • Set ES_Vector[ES_CastNumber] = Да
      • -------- -------- --------
      • Set ES_Point[0] = (Position of ES_Caster[ES_CastNumber])
      • Set ES_Point[1] = (Position of ES_Target[ES_CastNumber])
      • -------- -------- --------
      • Set ES_Distance[ES_CastNumber] = (Distance between ES_Point[0] and ES_Point[1])
      • Set ES_Angle[ES_CastNumber] = (Angle from ES_Point[1] to ES_Point[0])
      • -------- -------- --------
      • Боевая единица - Create 1 Effect: Essence for (Owner of ES_Caster[ES_CastNumber]) at ES_Point[0] facing Стандартная ориентация зданий degrees
      • Set ES_Shade[ES_CastNumber] = (Last created unit)
      • Анимация - Change (Last created unit)'s vertex coloring to (0.00%, 0.00%, 0.00%) with 25.00% transparency
      • Боевая единица - Add Essence of Shade Fx to (Last created unit)
      • Боевая единица - Turn collision for (Last created unit) Откл.
      • Анимация - Play (Last created unit)'s channel animation
      • -------- -------- --------
      • Custom script: call RemoveLocation (udg_ES_Point[0])
      • Custom script: call RemoveLocation (udg_ES_Point[1])
  • Essence of Shade B
    • События
      • Время - Every 0.04 seconds of game time
    • Условия
    • Действия
      • For each (Integer ES) from 1 to ES_CastNumber, do (Actions)
        • Цикл - Действия
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • Если - Условия
              • ES_Off[ES] равно Да
            • РўРѕ - Действия
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Если - Условия
                  • ES_Vector[ES] равно Да
                • РўРѕ - Действия
                  • Set ES_Point[2] = (Position of ES_Target[ES])
                  • Set ES_Distance[ES] = (ES_Distance[ES] - ES_Speed[ES])
                  • Set ES_Point[3] = (ES_Point[2] offset by ES_Distance[ES] towards ES_Angle[ES] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • Если - Условия
                      • ES_Spam[ES] равно 3
                    • РўРѕ - Действия
                      • Set ES_Spam[ES] = 0
                      • Спецэффект - Create a special effect at ES_Point[3] using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
                      • Спецэффект - Destroy (Last created special effect)
                    • Р&#152;наче - Действия
                      • Set ES_Spam[ES] = (ES_Spam[ES] + 1)
                  • Боевая единица - Move ES_Shade[ES] instantly to ES_Point[3], facing (ES_Angle[ES] + 180.00) degrees
                  • Custom script: call RemoveLocation (udg_ES_Point[2])
                  • Custom script: call RemoveLocation (udg_ES_Point[3])
                • Р&#152;наче - Действия
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Если - Условия
                  • ES_Vector[ES] равно Нет
                • РўРѕ - Действия
                  • Set ES_Point[6] = (Position of ES_Caster[ES])
                  • Set ES_Distance[ES] = (ES_Distance[ES] - ES_Speed[ES])
                  • Set ES_Point[7] = (ES_Point[6] offset by ES_Distance[ES] towards ES_Angle[ES] degrees)
                  • Боевая единица - Move ES_Shade[ES] instantly to ES_Point[7], facing (ES_Angle[ES] + 180.00) degrees
                  • Custom script: call RemoveLocation (udg_ES_Point[6])
                  • Custom script: call RemoveLocation (udg_ES_Point[7])
                • Р&#152;наче - Действия
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Если - Условия
                  • ES_Distance[ES] меньше или равно 100.00
                  • ES_Vector[ES] равно Да
                • РўРѕ - Действия
                  • Боевая единица - Turn collision for ES_Target[ES] Откл.
                  • Set ES_Point[4] = (Position of ES_Shade[ES])
                  • Set ES_Point[5] = (Position of ES_Caster[ES])
                  • Set ES_Distance[ES] = (Distance between ES_Point[4] and ES_Point[5])
                  • Set ES_Angle[ES] = (Angle from ES_Point[4] to ES_Point[5])
                  • Set ES_Angle[ES] = (ES_Angle[ES] + 180.00)
                  • Боевая единица - Cause ES_Shade[ES] to damage ES_Target[ES], dealing ES_Damage[ES] damage of attack type Заклинание and damage type Обычный
                  • Спецэффект - Create a special effect attached to the origin of ES_Target[ES] using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Спецэффект - Destroy (Last created special effect)
                  • Set ES_Vector[ES] = Нет
                  • Custom script: call RemoveLocation (udg_ES_Point[4])
                  • Custom script: call RemoveLocation (udg_ES_Point[5])
                • Р&#152;наче - Действия
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Если - Условия
                  • ES_Vector[ES] равно Нет
                  • ES_Distance[ES] меньше или равно 100.00
                • РўРѕ - Действия
                  • Set ES_Off[ES] = Нет
                  • Set ES_Switch = (ES_Switch - 1)
                  • Спецэффект - Create a special effect attached to the origin of ES_Caster[ES] using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Спецэффект - Destroy (Last created special effect)
                  • Боевая единица - Remove ES_Shade[ES] from the game
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • Если - Условия
                      • ES_Switch равно 0
                    • РўРѕ - Действия
                      • Set ES_CastNumber = 0
                      • Триггер - Turn off Essence of Shade B <gen>
                    • Р&#152;наче - Действия
                • Р&#152;наче - Действия
            • Р&#152;наче - Действия
Spell MUI

Keywords:
Essence, Soul, Missile
Contents

Essence (Map)

Reviews
23:31, 16th Jun 2010 Hanky: Looks useful enough for users who like using GUI spells which are leakless and MUI. But you could improve the indexing system.

Moderator

M

Moderator

23:31, 16th Jun 2010
Hanky:
Looks useful enough for users who like using GUI spells which are leakless and MUI. But you could improve the indexing system.
 
Intresting, I shall edit this post once I have gone over the triggers :p

Here are the triggers in english so we can all understand btw:

  • Essence of Shade A
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Essence of Shade
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ES_Switch Equal to 0
        • Then - Actions
          • Trigger - Turn on Essence of Shade B <gen>
        • Else - Actions
      • -------- -------- --------
      • Set ES_CastNumber = (ES_CastNumber + 1)
      • Set ES_Switch = (ES_Switch + 1)
      • Set ES_Off[ES_CastNumber] = True
      • -------- -------- --------
      • Set ES_Caster[ES_CastNumber] = (Triggering unit)
      • Set ES_Target[ES_CastNumber] = (Target unit of ability being cast)
      • -------- -------- --------
      • Set ES_Speed[ES_CastNumber] = 50.00
      • Set ES_Damage[ES_CastNumber] = (100.00 + (50.00 x (Real((Level of Essence of Shade for ES_Caster[ES_CastNumber])))))
      • Set ES_Vector[ES_CastNumber] = True
      • -------- -------- --------
      • Set ES_Point[0] = (Position of ES_Caster[ES_CastNumber])
      • Set ES_Point[1] = (Position of ES_Target[ES_CastNumber])
      • -------- -------- --------
      • Set ES_Distance[ES_CastNumber] = (Distance between ES_Point[0] and ES_Point[1])
      • Set ES_Angle[ES_CastNumber] = (Angle from ES_Point[1] to ES_Point[0])
      • -------- -------- --------
      • Unit - Create 1 Effect: Essence for (Owner of ES_Caster[ES_CastNumber]) at ES_Point[0] facing Default building facing degrees
      • Set ES_Shade[ES_CastNumber] = (Last created unit)
      • Animation - Change (Last created unit)'s vertex coloring to (0.00%, 0.00%, 0.00%) with 25.00% transparency
      • Unit - Add Essence of Shade Fx to (Last created unit)
      • Unit - Turn collision for (Last created unit) Off
      • Animation - Play (Last created unit)'s channel animation
      • -------- -------- --------
      • Custom script: call RemoveLocation (udg_ES_Point[0])
      • Custom script: call RemoveLocation (udg_ES_Point[1])
  • Essence of Shade B
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer ES) from 1 to ES_CastNumber, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ES_Off[ES] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ES_Vector[ES] Equal to True
                • Then - Actions
                  • Set ES_Point[2] = (Position of ES_Target[ES])
                  • Set ES_Distance[ES] = (ES_Distance[ES] - ES_Speed[ES])
                  • Set ES_Point[3] = (ES_Point[2] offset by ES_Distance[ES] towards ES_Angle[ES] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ES_Spam[ES] Equal to 3
                    • Then - Actions
                      • Set ES_Spam[ES] = 0
                      • Special Effect - Create a special effect at ES_Point[3] using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • Set ES_Spam[ES] = (ES_Spam[ES] + 1)
                  • Unit - Move ES_Shade[ES] instantly to ES_Point[3], facing (ES_Angle[ES] + 180.00) degrees
                  • Custom script: call RemoveLocation (udg_ES_Point[2])
                  • Custom script: call RemoveLocation (udg_ES_Point[3])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ES_Vector[ES] Equal to False
                • Then - Actions
                  • Set ES_Point[6] = (Position of ES_Caster[ES])
                  • Set ES_Distance[ES] = (ES_Distance[ES] - ES_Speed[ES])
                  • Set ES_Point[7] = (ES_Point[6] offset by ES_Distance[ES] towards ES_Angle[ES] degrees)
                  • Unit - Move ES_Shade[ES] instantly to ES_Point[7], facing (ES_Angle[ES] + 180.00) degrees
                  • Custom script: call RemoveLocation (udg_ES_Point[6])
                  • Custom script: call RemoveLocation (udg_ES_Point[7])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ES_Distance[ES] Less than or equal to 100.00
                  • ES_Vector[ES] Equal to True
                • Then - Actions
                  • Unit - Turn collision for ES_Target[ES] Off
                  • Set ES_Point[4] = (Position of ES_Shade[ES])
                  • Set ES_Point[5] = (Position of ES_Caster[ES])
                  • Set ES_Distance[ES] = (Distance between ES_Point[4] and ES_Point[5])
                  • Set ES_Angle[ES] = (Angle from ES_Point[4] to ES_Point[5])
                  • Set ES_Angle[ES] = (ES_Angle[ES] + 180.00)
                  • Unit - Cause ES_Shade[ES] to damage ES_Target[ES], dealing ES_Damage[ES] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect attached to the origin of ES_Target[ES] using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set ES_Vector[ES] = False
                  • Custom script: call RemoveLocation (udg_ES_Point[4])
                  • Custom script: call RemoveLocation (udg_ES_Point[5])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ES_Vector[ES] Equal to False
                  • ES_Distance[ES] Less than or equal to 100.00
                • Then - Actions
                  • Unit - Turn collision for ES_Target[ES] On
                  • Set ES_Off[ES] = False
                  • Set ES_Switch = (ES_Switch - 1)
                  • Special Effect - Create a special effect attached to the origin of ES_Caster[ES] using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Remove ES_Shade[ES] from the game
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ES_Switch Equal to 0
                    • Then - Actions
                      • Set ES_CastNumber = 0
                      • Trigger - Turn off Essence of Shade B <gen>
                    • Else - Actions
                • Else - Actions
            • Else - Actions
Edit: hmm, looks pretty good, nothing I can find in the triggers to point out and it looks pretty gd. 4/5 :p
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
The spell is pretty cool. However I'd look into a few things:

*Change 0.04 seconds to 0.03 seconds. 0.04 doesn't look smooth to me.
*You have edited Reincarnation (Neutral Hostile) ability. Make it a custom ability.
*The "shade" created in the first trigger has facing of "default building facing", which makes it turn to the target when it's moving. Create it facing angle from caster to target.
*You don't need to disable the collision, the unit has Locust; the collision is off by default.
 
Level 9
Joined
Jul 9, 2008
Messages
67
Maker, thanks, in first variant of spell shade moves target to caster (like a Hook) but if cast it on the same target was effect bug, so I maded simple damage, but forget about collision =S

when I use period 0.02 or 0.03 other user always talking:"use period 0.04 or higher" =)
 
Top