• 🏆 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!

Hero: Shadow Assassin [Four Spells] 1.0c

  • Like
Reactions: Santa_Claus.
Hello! It feels like it was a long time since I uploaded something here. So today, I had nothing to do so I created a hero for fun. The hero got three basic spells (with three levels) and one ultimate spell (with one level). All spells are triggered and don't worry, they are MUI and LEAKLESS! (Screenshot is outdated)

Spells:


BTNPossession.png

Turn out yourself into an invulnerable shadow and glide to a targeted enemie unit. When you're in contact with the targeted unit you'll deal damage to it.|nLasts x seconds.
Level 1 - 40 damage each attack and last 10 seconds.
Level 2 - 80 damage each attack and last 12.5 seconds.
Level 3 - 120 damage each attack and last 15 seconds.


  • Walk of Shadows Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Walk of Shadows
    • Actions
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WoS_Index[2] Less than or equal to 0
        • Then - Actions
          • Trigger - Turn on Walk of Shadows Loop <gen>
        • Else - Actions
      • Set WoS_Index[1] = (WoS_Index[1] + 1)
      • Set WoS_Index[2] = (WoS_Index[2] + 1)
      • Set WoS_Off[WoS_Index[1]] = False
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • Set SystemPoint[0] = (Position of (Triggering unit))
      • Set SystemPoint[1] = (Position of (Target unit of ability being cast))
      • Set WoS_Caster[WoS_Index[1]] = (Triggering unit)
      • Set WoS_TargetedUnit[WoS_Index[1]] = (Target unit of ability being cast)
      • Set WoS_Angle[WoS_Index[1]] = (Angle from SystemPoint[0] to SystemPoint[1])
      • Set WoS_AttackTimer[WoS_Index[1]] = 1.00
      • Set WoS_ShadowEffectTimer[WoS_Index[1]] = 1.00
      • Unit - Turn collision for WoS_Caster[WoS_Index[1]] Off
      • Unit - Make WoS_Caster[WoS_Index[1]] Invulnerable
      • Animation - Change WoS_Caster[WoS_Index[1]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
      • -------- - - - - - - - - - - - --------
      • -------- CHANGE TO WHAT YOU WANT --------
      • -------- - - - - - - - - - - - --------
      • -------- THIS IS THE EFFECT THAT WILL APPEAR WHEN THE CASTING UNIT ATTACKS THE TARGETED UNIT --------
      • Set WoS_AttackEffect[WoS_Index[1]] = Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
      • -------- THIS IS THE EFFECT THAT WILL APPEAR AT THE LOCATION OF THE HERO --------
      • Set WoS_ShadowEffect[WoS_Index[1]] = Abilities\Spells\Human\CloudOfFog\CloudOfFog.mdl
      • -------- THIS IS THE DURATION OF THE SPAWNED EFFECTS (NOT ATTACKEFFECT) --------
      • Set WoS_ShadowEffectDuration[WoS_Index[1]] = 1.00
      • -------- THIS IS THE DELAY (IN SECONDS) WHEN A NEW SHADOWEFFECT SHALL BE CREATED --------
      • Set WoS_ShadowEffectCreatingDelay[WoS_Index[1]] = 0.40
      • -------- THIS IS THE DAMAGE THE SPELL WILL DO EACH ATTACK --------
      • Set WoS_Damage[WoS_Index[1]] = (40.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))
      • -------- THIS IS THE SPEED OF THE CASTING UNIT --------
      • Set WoS_Speed[WoS_Index[1]] = 12.50
      • -------- THIS IS THE AMOUNT OF INCREASED SPEED THE CASTING UNIT WILL GET OVER TIME --------
      • Set WoS_SpeedIncreasement[WoS_Index[1]] = 0.06
      • -------- THIS IS THE MAX SPEED OF THE CASTING UNIT --------
      • Set WoS_MaxSpeed[WoS_Index[1]] = 20.00
      • -------- THIS IS HOW MUCH THE CASTING UNITS SPEED WILL BE DECREASED ON AN ATTACK --------
      • Set WoS_OnAttackSpeedDecrease[WoS_Index[1]] = 7.50
      • -------- THIS IS THE DURATION OF THE SPELL --------
      • Set WoS_SpellDuration[WoS_Index[1]] = (7.50 + (2.50 x (Real((Level of (Ability being cast) for (Triggering unit))))))
      • -------- THIS IS THE ATTACKRANGE OF THE SPELL --------
      • Set WoS_AttackRange[WoS_Index[1]] = 128.00
      • -------- - - - - - - - - - - - --------
      • -------- REMOVE LEAKS --------
      • -------- - - - - - - - - - - - --------
      • Custom script: call RemoveLocation(udg_SystemPoint[0])
      • Custom script: call RemoveLocation(udg_SystemPoint[1])
  • Walk of Shadows Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer WoS_Index[3]) from 1 to WoS_Index[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • WoS_Off[WoS_Index[3]] Equal to False
            • Then - Actions
              • -------- - - - - - - - - - - - --------
              • -------- SET LOCATIONS FOR THE SPELL --------
              • -------- - - - - - - - - - - - --------
              • Set SystemPoint[0] = (Position of WoS_Caster[WoS_Index[3]])
              • Set SystemPoint[1] = (Position of WoS_TargetedUnit[WoS_Index[3]])
              • -------- - - - - - - - - - - - --------
              • -------- CALCULATE THE NEW ANGLE --------
              • -------- - - - - - - - - - - - --------
              • Set WoS_Angle[WoS_Index[3]] = (Angle from SystemPoint[0] to SystemPoint[1])
              • -------- - - - - - - - - - - - --------
              • -------- CALCULATE THE NEW SPEED --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • WoS_Speed[WoS_Index[3]] Greater than or equal to WoS_MaxSpeed[WoS_Index[3]]
                • Then - Actions
                  • Set WoS_Speed[WoS_Index[3]] = WoS_MaxSpeed[WoS_Index[3]]
                • Else - Actions
                  • Set WoS_Speed[WoS_Index[3]] = (WoS_Speed[WoS_Index[3]] + WoS_SpeedIncreasement[WoS_Index[3]])
              • -------- - - - - - - - - - - - --------
              • -------- THIS IS THE LOCATION YOUR HERO WILL MOVE TO --------
              • -------- - - - - - - - - - - - --------
              • Set SystemPoint[2] = (SystemPoint[0] offset by WoS_Speed[WoS_Index[3]] towards WoS_Angle[WoS_Index[3]] degrees)
              • Unit - Move WoS_Caster[WoS_Index[3]] instantly to SystemPoint[2]
              • -------- - - - - - - - - - - - --------
              • -------- CREATE THE SHADOWEFFECTS --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • WoS_ShadowEffectTimer[WoS_Index[3]] Greater than or equal to WoS_ShadowEffectCreatingDelay[WoS_Index[3]]
                • Then - Actions
                  • Set WoS_ShadowEffectTimer[WoS_Index[3]] = 0.00
                  • Special Effect - Create a special effect at SystemPoint[2] using WoS_ShadowEffect[WoS_Index[3]]
                  • Set tempSESSpecialEffect = (Last created special effect)
                  • Set tempSESTimer = WoS_ShadowEffectDuration[WoS_Index[3]]
                  • Trigger - Run Add Special Effect to System <gen> (checking conditions)
                • Else - Actions
                  • Set WoS_ShadowEffectTimer[WoS_Index[3]] = (WoS_ShadowEffectTimer[WoS_Index[3]] + 0.03)
              • -------- - - - - - - - - - - - --------
              • -------- DAMAGE THE UNIT IF IN RANGE BUT THE ATTACKTIMER MUST BE 1 --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • WoS_AttackTimer[WoS_Index[3]] Greater than or equal to 1.00
                • Then - Actions
                  • Set SystemUnitGroup[0] = (Units within WoS_AttackRange[WoS_Index[3]] of SystemPoint[2] matching ((Matching unit) Equal to WoS_TargetedUnit[WoS_Index[3]]))
                  • Unit Group - Pick every unit in SystemUnitGroup[0] 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
                        • Then - Actions
                          • Set WoS_AttackTimer[WoS_Index[3]] = 0.00
                          • -------- - - - - - - - - - - - --------
                          • -------- WHEN THE HERO ATTACKS A UNIT IT WILL HAVE ITS SPEED DECREASED --------
                          • -------- - - - - - - - - - - - --------
                          • Set WoS_Speed[WoS_Index[3]] = (WoS_Speed[WoS_Index[3]] - WoS_OnAttackSpeedDecrease[WoS_Index[3]])
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • WoS_Speed[WoS_Index[3]] Less than or equal to 0.00
                            • Then - Actions
                              • Set WoS_Speed[WoS_Index[3]] = 0.00
                            • Else - Actions
                          • -------- - - - - - - - - - - - --------
                          • -------- DAMAGE ACTIONS --------
                          • -------- - - - - - - - - - - - --------
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using WoS_AttackEffect[WoS_Index[3]]
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Cause WoS_Caster[WoS_Index[3]] to damage (Picked unit), dealing WoS_Damage[WoS_Index[3]] damage of attack type Spells and damage type Normal
                        • Else - Actions
                  • Custom script: call DestroyGroup(udg_SystemUnitGroup[0])
                • Else - Actions
                  • Set WoS_AttackTimer[WoS_Index[3]] = (WoS_AttackTimer[WoS_Index[3]] + 0.03)
              • -------- - - - - - - - - - - - --------
              • -------- CALCULATE THE DURATION OF THE SPELL --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • WoS_SpellDuration[WoS_Index[3]] Less than or equal to 0.00
                • Then - Actions
                  • Animation - Change WoS_Caster[WoS_Index[3]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                  • Unit - Turn collision for WoS_Caster[WoS_Index[3]] On
                  • Unit - Make WoS_Caster[WoS_Index[3]] Vulnerable
                  • Set WoS_Off[WoS_Index[3]] = True
                  • Set WoS_Index[2] = (WoS_Index[2] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • WoS_Index[2] Less than or equal to 0
                    • Then - Actions
                      • Set WoS_Index[1] = 0
                      • Trigger - Turn off Walk of Shadows Loop <gen>
                    • Else - Actions
                • Else - Actions
                  • Set WoS_SpellDuration[WoS_Index[3]] = (WoS_SpellDuration[WoS_Index[3]] - 0.03)
              • -------- - - - - - - - - - - - --------
              • -------- CHECKS IF THE TARGETED UNIT IS DEAD --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (WoS_TargetedUnit[WoS_Index[3]] is alive) Equal to False
                • Then - Actions
                  • -------- - - - - - - - - - - - --------
                  • -------- IF THE TARGETED UNIT IS DEAD THE CASTER WILL STOP DO THE SPELL --------
                  • -------- - - - - - - - - - - - --------
                  • Unit - Turn collision for WoS_Caster[WoS_Index[3]] On
                  • Unit - Make WoS_Caster[WoS_Index[3]] Vulnerable
                  • Animation - Change WoS_Caster[WoS_Index[3]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                  • Set WoS_Off[WoS_Index[3]] = True
                  • Set WoS_Index[2] = (WoS_Index[2] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • WoS_Index[2] Less than or equal to 0
                    • Then - Actions
                      • Set WoS_Index[1] = 0
                      • Trigger - Turn off Walk of Shadows Loop <gen>
                    • Else - Actions
                • Else - Actions
              • -------- - - - - - - - - - - - --------
              • -------- REMOVE LEAKS --------
              • -------- - - - - - - - - - - - --------
              • Custom script: call RemoveLocation(udg_SystemPoint[0])
              • Custom script: call RemoveLocation(udg_SystemPoint[1])
              • Custom script: call RemoveLocation(udg_SystemPoint[2])
            • Else - Actions




6591_120_80.gif

Select an enemie target unit and start to suck all it's shadows. When the targeted unit has no shadows left the unit will be completely invisible and the spell will deal damage and return the shadows. The spell will break if the caster and the targeted unit is to far away from eachother.
Level 1 - Deals 200 damage.
Level 2 - Deals 400 damage.
Level 3 - Deals 600 damage.


  • Shadow Drain Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shadow Drain
    • Actions
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SD_Index[2] Less than or equal to 0
        • Then - Actions
          • Trigger - Turn on Shadow Drain Loop <gen>
        • Else - Actions
      • Set SD_Index[1] = (SD_Index[1] + 1)
      • Set SD_Index[2] = (SD_Index[2] + 1)
      • Set SD_Off[SD_Index[1]] = False
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • Set SystemPoint[0] = (Position of (Triggering unit))
      • Set SystemPoint[1] = (Position of (Target unit of ability being cast))
      • Set SD_Caster[SD_Index[1]] = (Triggering unit)
      • Set SD_TargetedUnit[SD_Index[1]] = (Target unit of ability being cast)
      • Set SD_Timer[SD_Index[1]] = 0.00
      • Lightning - Create a Finger of Death lightning effect from source SystemPoint[0] to target SystemPoint[1]
      • Set SD_LightningEffect[SD_Index[1]] = (Last created lightning effect)
      • Lightning - Change color of SD_LightningEffect[SD_Index[1]] to (0.00 0.00 1.00) with 1.00 alpha
      • -------- - - - - - - - - - - - --------
      • -------- CHANGE TO WHAT YOU WANT --------
      • -------- - - - - - - - - - - - --------
      • -------- THIS IS THE EFFECT THAT WILL APPEAR WHEN THIS SPELL DEALS DAMAGE --------
      • Set SD_DamageEffect[SD_Index[1]] = Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
      • -------- THIS IS THE MAXIMUM DISTANCE THE CASTER AND THE TARGETING UNIT CAN BE TO EACHOTHER --------
      • -------- IF THE CASTING UNIT AND THE TARGETED UNIT HAVE A DISTANCE MORE THEN THIS VALUE FROM --------
      • -------- EACHOTHER THE SPELL WILL BREAK --------
      • Set SD_MaxDistance[SD_Index[1]] = 1200.00
      • -------- THE AMOUNT OF DAMAGE THE SPELL WILL DO WHEN THE DURATION OF THE SPELL SUCCEED --------
      • Set SD_Damage[SD_Index[1]] = (200.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))
      • -------- TIME IT WILL HAVE TO TAKE FOR THE SPELL TO "LOAD" UNTIL IT DEALS DAMAGE TO THE TARGETED UNIT --------
      • Set SD_TimeToDoDamage[SD_Index[1]] = 10.00
      • -------- - - - - - - - - - - - --------
      • -------- REMOVE LEAKS --------
      • -------- - - - - - - - - - - - --------
      • Custom script: call RemoveLocation(udg_SystemPoint[0])
      • Custom script: call RemoveLocation(udg_SystemPoint[1])
  • Shadow Drain Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SD_Index[3]) from 1 to SD_Index[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SD_Off[SD_Index[3]] Equal to False
            • Then - Actions
              • -------- - - - - - - - - - - - --------
              • -------- CALCULATES THE TIME UNTIL THE SPELL WILL DEAL DAMAGE --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SD_Timer[SD_Index[3]] Greater than or equal to SD_TimeToDoDamage[SD_Index[3]]
                • Then - Actions
                  • -------- - - - - - - - - - - - --------
                  • -------- CREATE EFFECT AND DAMAGE THE TARGETED UNIT --------
                  • -------- - - - - - - - - - - - --------
                  • Special Effect - Create a special effect attached to the origin of SD_TargetedUnit[SD_Index[3]] using SD_DamageEffect[SD_Index[3]]
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Cause SD_Caster[SD_Index[3]] to damage SD_TargetedUnit[SD_Index[3]], dealing SD_Damage[SD_Index[3]] damage of attack type Spells and damage type Normal
                  • Animation - Change SD_TargetedUnit[SD_Index[3]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                  • Set SD_Off[SD_Index[3]] = True
                  • Set SD_Index[2] = (SD_Index[2] - 1)
                  • Lightning - Destroy SD_LightningEffect[SD_Index[3]]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SD_Index[2] Less than or equal to 0
                    • Then - Actions
                      • Set SD_Index[1] = 0
                      • Trigger - Turn off Shadow Drain Loop <gen>
                    • Else - Actions
                • Else - Actions
                  • -------- - - - - - - - - - - - --------
                  • -------- CHANGES THE VISIBILITY EFFECT FOR THE TARGETED UNIT --------
                  • -------- - - - - - - - - - - - --------
                  • Animation - Change SD_TargetedUnit[SD_Index[3]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with (SD_Timer[SD_Index[3]] x (100.00 / SD_TimeToDoDamage[SD_Index[3]]))% transparency
                  • -------- - - - - - - - - - - - --------
                  • -------- INCREASE THE TIMER AND SET LOCATIONS FOR THE SPELL --------
                  • -------- - - - - - - - - - - - --------
                  • Set SD_Timer[SD_Index[3]] = (SD_Timer[SD_Index[3]] + 0.03)
                  • Set SystemPoint[0] = (Position of SD_Caster[SD_Index[3]])
                  • Set SystemPoint[1] = (Position of SD_TargetedUnit[SD_Index[3]])
                  • -------- - - - - - - - - - - - --------
                  • -------- CHECKS IF THE DISTANCE FROM THE CASTING UNIT AND THE TARGETED UNIT IS LONGER THAN MAXDISTANCE --------
                  • -------- ASLO CHECKS IF ONE OF THE UNITS IS DEAD --------
                  • -------- IF IT IS, THE SPELL WILL BREAK --------
                  • -------- - - - - - - - - - - - --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • (Distance between SystemPoint[0] and SystemPoint[1]) Greater than or equal to SD_MaxDistance[SD_Index[3]]
                          • (SD_Caster[SD_Index[3]] is alive) Equal to False
                          • (SD_TargetedUnit[SD_Index[3]] is alive) Equal to False
                    • Then - Actions
                      • Animation - Change SD_TargetedUnit[SD_Index[3]]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                      • Set SD_Off[SD_Index[3]] = True
                      • Set SD_Index[2] = (SD_Index[2] - 1)
                      • Lightning - Destroy SD_LightningEffect[SD_Index[3]]
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SD_Index[2] Less than or equal to 0
                        • Then - Actions
                          • Set SD_Index[1] = 0
                          • Trigger - Turn off Shadow Drain Loop <gen>
                        • Else - Actions
                    • Else - Actions
                      • -------- - - - - - - - - - - - --------
                      • -------- CHANGES THE POSITION OF THE LIGHTNING EFFECT, THIS IS A SMALL CUSTOM SCRIPT (JASS) AND SHOULD NOT BE EDITED. --------
                      • -------- - - - - - - - - - - - --------
                      • Custom script: call MoveLightningEx(udg_SD_LightningEffect[udg_SD_Index[3]], true,GetLocationX(udg_SystemPoint[0]), GetLocationY(udg_SystemPoint[0]), 50, GetLocationX(udg_SystemPoint[1]), GetLocationY(udg_SystemPoint[1]), 50)
                  • -------- - - - - - - - - - - - --------
                  • -------- REMOVE LEAKS --------
                  • -------- - - - - - - - - - - - --------
                  • Custom script: call RemoveLocation(udg_SystemPoint[0])
                  • Custom script: call RemoveLocation(udg_SystemPoint[1])
            • Else - Actions




BTNEvasion.png

This unit has Knowledge of Shadows; it has an increased movement speed and will blind enemie units if they're attacked from behind and cause them to have a chance to miss an attack.|nThe blind effect lasts 8 seconds.
Level 1 - Increases movementspeed by 5% and cause enemies to have a 75% chance to miss an attack if backstabbed.
Level 2 - Increases movementspeed by 10% and cause enemies to have a 85% chance to miss an attack if backstabbed.
Level 3 - Increases movementspeed by 15% and cause enemies to have a 95% chance to miss an attack if backstabbed.


  • Knowledge of Shadows
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Level of Knowledge of Shadows for (Attacking unit)) Greater than 0
      • ((Attacking unit) belongs to an enemy of (Owner of (Attacked unit))) Equal to True
    • Actions
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • Set SystemPoint[0] = (Position of (Attacking unit))
      • Set KoS_Angle[0] = (Facing of (Attacking unit))
      • Set KoS_Angle[1] = (Facing of (Attacked unit))
      • -------- - - - - - - - - - - - --------
      • -------- CHANGE TO WHAT YOU WANT --------
      • -------- - - - - - - - - - - - --------
      • -------- THE SPECIAL EFFECT THAT WILL APPEAR ON THE ATTACKED UNIT WHEN YOU BACKSTAB IT --------
      • Set KOS_BackstabEffect = Abilities\Spells\NightElf\shadowstrike\shadowstrike.mdl
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • -------- - - - - - - - - - - - --------
      • -------- CHECKS IF THE ATTACKING UNIT STANDS SOMEWHERE BEHIND THE ATTACKED UNIT --------
      • -------- - - - - - - - - - - - --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • KoS_Angle[0] Greater than or equal to (KoS_Angle[1] - 35.00)
              • KoS_Angle[0] Less than or equal to (KoS_Angle[1] + 35.00)
        • Then - Actions
          • -------- - - - - - - - - - - - --------
          • -------- CREATE THE BACKSTAB EFFECT AND ADD IT TO THE SPECIAL SYSTEM --------
          • -------- - - - - - - - - - - - --------
          • Special Effect - Create a special effect attached to the overhead of (Attacked unit) using KOS_BackstabEffect
          • Set tempSESSpecialEffect = (Last created special effect)
          • Set tempSESTimer = 1.00
          • Trigger - Run Add Special Effect to System <gen> (checking conditions)
          • -------- - - - - - - - - - - - --------
          • -------- CREATES A DUMMY THAT WILL CAST THE DUMMY ABILITY AT THE ATTACKED UNIT --------
          • -------- - - - - - - - - - - - --------
          • Unit - Create 1 Knowledge of Shadow; Blind Dummy for (Owner of (Attacking unit)) at SystemPoint[0] facing KoS_Angle[0] degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Shadow Backstab (Blind) to (Last created unit)
          • Unit - Set level of Shadow Backstab (Blind) for (Last created unit) to (Level of (Knowledge of Shadows) for (Attacking unit))
          • Unit - Order (Last created unit) to Undead Banshee - Curse (Attacked unit)
        • Else - Actions
      • -------- - - - - - - - - - - - --------
      • -------- REMOVE LEAKS --------
      • -------- - - - - - - - - - - - --------
      • Custom script: call RemoveLocation(udg_SystemPoint[0])




BTNWandOfShadowSight.png

You love the shadows, you must have them! When activated all units around you will be afflicted by your Shadow Drain. The time it have to take to damage is reduced to 5 seconds by this ability from 10 and deals the same damage as your Shadow Drain.


  • Love the Shadows
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Love the Shadows
    • Actions
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • Set SystemPoint[2] = (Position of (Triggering unit))
      • Set SystemUnitGroup[0] = (Units within 800.00 of SystemPoint[2] matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))
      • Unit Group - Pick every unit in SystemUnitGroup[0] 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
            • Then - Actions
              • -------- - - - - - - - - - - - --------
              • -------- THIS IS ACTUALLY THE SAME ACTIONS THAT YOU CAN FIND IN THE TRIGGER [SHADOW DRAIN CAST] --------
              • -------- BUT THOSE ACTIONS ARE MODIFIED TO SUIT THIS SPELL --------
              • -------- - - - - - - - - - - - --------
              • -------- - - - - - - - - - - - --------
              • -------- DO NOT CHANGE --------
              • -------- - - - - - - - - - - - --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SD_Index[2] Less than or equal to 0
                • Then - Actions
                  • Trigger - Turn on Shadow Drain Loop <gen>
                • Else - Actions
              • Set SD_Index[1] = (SD_Index[1] + 1)
              • Set SD_Index[2] = (SD_Index[2] + 1)
              • Set SD_Off[SD_Index[1]] = False
              • -------- - - - - - - - - - - - --------
              • -------- DO NOT CHANGE --------
              • -------- - - - - - - - - - - - --------
              • Set SystemPoint[0] = (Position of (Triggering unit))
              • Set SystemPoint[1] = (Position of (Picked unit))
              • Set SD_Caster[SD_Index[1]] = (Triggering unit)
              • Set SD_TargetedUnit[SD_Index[1]] = (Picked unit)
              • Set SD_Timer[SD_Index[1]] = 0.00
              • Lightning - Create a Finger of Death lightning effect from source SystemPoint[0] to target SystemPoint[1]
              • Set SD_LightningEffect[SD_Index[1]] = (Last created lightning effect)
              • Lightning - Change color of SD_LightningEffect[SD_Index[1]] to (0.00 0.00 1.00) with 1.00 alpha
              • -------- - - - - - - - - - - - --------
              • -------- CHANGE TO WHAT YOU WANT --------
              • -------- - - - - - - - - - - - --------
              • -------- THIS IS THE EFFECT THAT WILL APPEAR WHEN THIS SPELL DEALS DAMAGE --------
              • Set SD_DamageEffect[SD_Index[1]] = Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
              • -------- THIS IS THE MAXIMUM DISTANCE THE CASTER AND THE TARGETING UNIT CAN BE TO EACHOTHER --------
              • -------- IF THE CASTING UNIT AND THE TARGETED UNIT HAVE A DISTANCE MORE THEN THIS VALUE FROM --------
              • -------- EACHOTHER THE SPELL WILL BREAK --------
              • Set SD_MaxDistance[SD_Index[1]] = 1200.00
              • -------- THE AMOUNT OF DAMAGE THE SPELL WILL DO WHEN THE DURATION OF THE SPELL SUCCEED --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Shadow Drain for (Triggering unit)) Greater than 0
                • Then - Actions
                  • Set SD_Damage[SD_Index[1]] = (200.00 x (Real((Level of Shadow Drain for (Triggering unit)))))
                • Else - Actions
                  • Set SD_Damage[SD_Index[1]] = 100.00
              • -------- TIME IT WILL HAVE TO TAKE FOR THE SPELL TO "LOAD" UNTIL IT DEALS DAMAGE TO THE TARGETED UNIT --------
              • Set SD_TimeToDoDamage[SD_Index[1]] = 5.00
              • -------- - - - - - - - - - - - --------
              • -------- REMOVE LEAKS --------
              • -------- - - - - - - - - - - - --------
              • Custom script: call RemoveLocation(udg_SystemPoint[0])
              • Custom script: call RemoveLocation(udg_SystemPoint[1])
            • Else - Actions
      • -------- - - - - - - - - - - - --------
      • -------- REMOVE LEAKS --------
      • -------- - - - - - - - - - - - --------
      • Custom script: call RemoveLocation(udg_SystemPoint[2])
      • Custom script: call DestroyGroup(udg_SystemUnitGroup[0])




  • Add Special Effect to System
    • Events
    • Conditions
    • Actions
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SES_Index[2] Less than or equal to 0
        • Then - Actions
          • Trigger - Turn on SpecialEffectSystemLoop <gen>
        • Else - Actions
      • Set SES_Index[1] = (SES_Index[1] + 1)
      • Set SES_Index[2] = (SES_Index[2] + 1)
      • Set SES_Off[SES_Index[1]] = False
      • Set SES_SpecialEffect[SES_Index[1]] = tempSESSpecialEffect
      • Set SES_Timer[SES_Index[1]] = tempSESTimer
      • -------- - - - - - - - - - - - --------
      • -------- DO NOT CHANGE --------
      • -------- - - - - - - - - - - - --------
      • Custom script: set udg_tempSESSpecialEffect = null
      • Custom script: set udg_tempSESTimer = 0.00
  • SpecialEffectSystemLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SES_Index[3]) from 1 to SES_Index[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SES_Off[SES_Index[3]] Equal to False
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SES_Timer[SES_Index[3]] Less than or equal to 0.00
                • Then - Actions
                  • Special Effect - Destroy SES_SpecialEffect[SES_Index[3]]
                  • Set SES_Off[SES_Index[3]] = True
                  • Set SES_Index[2] = (SES_Index[2] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SES_Index[2] Less than or equal to 0
                    • Then - Actions
                      • Set SES_Index[1] = 0
                      • Trigger - Turn off SpecialEffectSystemLoop <gen>
                    • Else - Actions
                • Else - Actions
                  • Set SES_Timer[SES_Index[3]] = (SES_Timer[SES_Index[3]] - 0.03)
            • Else - Actions


Please post a comment and rate! :D



VERSION 1.0a
> Release

VERSION 1.0b
> Fixed an issue with Love the Shadows

VERSION 1.0c
> Fixed an issue with Knowledge of Shadows


Keywords:
Shadow, Assassin, Spells, Abilities, Backstab, Drain, Life, Mana, Ghost, Love, Walk, of, the, cool, fun, nice, special, AoE, Area, Effect, target, uni
Contents

Shadow Assassin - Spells (Map)

Reviews
17:40, 30th Nov 2009 TriggerHappy: Effects were pretty nice. Coding was good, and from what I could see I did not see any leaks. I sort of rushed reviewing this spell, I have ran out of time so if I missed something drop me a message.

Moderator

M

Moderator

17:40, 30th Nov 2009
TriggerHappy:

Effects were pretty nice.
Coding was good, and from what I could see I did not see any leaks.

I sort of rushed reviewing this spell, I have ran out of time so if I missed something drop me a message.
 
Level 19
Joined
Aug 16, 2007
Messages
881
Nice spells, Hum ,one question , how do you make custom lightning effect?

Thanks! I'ts not a custom lightning effect, it's the Finger of Death lightning effect but I've changed it's color with:
  • Lightning - Change color of SD_LightningEffect[SD_Index[1]] to (0.00 0.00 1.00) with 1.00 alph
:)


UPDATED THIS SPELLPACK TO VERSION 1.0b!

And please, any comments?! :D
 
Last edited:
Level 1
Joined
Aug 3, 2009
Messages
501
Nice spells for something along the lines of "Specter" - DotA , as I can see you using the model. But "Knowledge of Shadows" is a bit OP : "Level 1 - Increases movementspeed by 5% and cause enemies to have a 75% chance to miss an attack if backstabbed.
Level 2 - Increases movementspeed by 10% and cause enemies to have a 85% chance to miss an attack if backstabbed.
Level 3 - Increases movementspeed by 15% and cause enemies to have a 95% chance to miss an attack if backstabbed." - Either reduce the duration for lvl 1 to a 5 second-blind and then gradually increasing it by 1 second, or *in my opinion* : "Level 1 - Increases movementspeed by 4% and cause enemies to deal 10% less damage and have a 45% chance to miss an attack if backstabbed.
Level 2 - Increases movementspeed by 8% and cause enemies to deal 15% less damage and have a 60% chance to miss an attack if backstabbed.
Level 3 - Increases movementspeed by 12%(16% maybe) and cause enemies deal 20% less damage and have a 75% chance to miss an attack if backstabbed." - Just a suggestion.
 
Level 19
Joined
Aug 16, 2007
Messages
881
Nice spells for something along the lines of "Specter" - DotA , as I can see you using the model. But "Knowledge of Shadows" is a bit OP : "Level 1 - Increases movementspeed by 5% and cause enemies to have a 75% chance to miss an attack if backstabbed.
Level 2 - Increases movementspeed by 10% and cause enemies to have a 85% chance to miss an attack if backstabbed.
Level 3 - Increases movementspeed by 15% and cause enemies to have a 95% chance to miss an attack if backstabbed." - Either reduce the duration for lvl 1 to a 5 second-blind and then gradually increasing it by 1 second, or *in my opinion* : "Level 1 - Increases movementspeed by 4% and cause enemies to deal 10% less damage and have a 45% chance to miss an attack if backstabbed.
Level 2 - Increases movementspeed by 8% and cause enemies to deal 15% less damage and have a 60% chance to miss an attack if backstabbed.
Level 3 - Increases movementspeed by 12%(16% maybe) and cause enemies deal 20% less damage and have a 75% chance to miss an attack if backstabbed." - Just a suggestion.

I'm not playing DotA so I don't really know who that hero is. And about the spell is OP, I don't think so actually. It's kinda hard to get a backstab and if a person want to edit this spell, he's free to do that and change it, maybe in the way you said. :) Thanks for the comment!
 
Level 19
Joined
Aug 16, 2007
Messages
881
real138 said:
looks good didn really take a look at coding dont have time.
also i completely agree about dota its WAY overrated.

Thanks, just take a look when you got time, some trigger feedback is always nice! :)

Kingz said:
@Dota

It is a fine map, i dunno why people continue to flame it here on the hive :p

@the spell

Indexing is nice, keep it up =)

Yes, I haven't said it's bad, it's very well done but as myself I don't find it entertaining and I'm not flaming it :)

And yes, indexing is nice that's why I'm using it :)


UPDATED THIS SPELLPACK TO VERSION 1.0c!

And please any comments, I want some feedback! :)
 
Level 2
Joined
Nov 15, 2009
Messages
10
Well done, deffinatly using this hero set-up in my next map.
Small suggestion..
Let Knowledge of Shadows have a small life steal effect, maybe 5% damage done per attack?
Or..
Make it when Shadow Drain ends, it heals the caster for a % of the damage done.

Just suggestions, would'nt mind seeing them tho.

4/5
 
Level 19
Joined
Aug 16, 2007
Messages
881
Well done, deffinatly using this hero set-up in my next map.
Small suggestion..
Let Knowledge of Shadows have a small life steal effect, maybe 5% damage done per attack?
Or..
Make it when Shadow Drain ends, it heals the caster for a % of the damage done.

Just suggestions, would'nt mind seeing them tho.

4/5

Well, I can add a life-steal bonus to the abilities, but I don't really have time for it right now. If you wan't a life-steal effect, you could try add it yourself maybe? :)

Thanks for the comment!
 
Top