• 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.

Soul Spell Pack

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Soul Catcher...
Made by Silver Dust
Special thanks to
Deny Dirgantara

Keywords:
Soul
Contents

Shadow and Hell Scream (Map)

Reviews
07:25, 13th Jun 2014 BPower: I recommend you to check out some basics about coding in wc3. Things that leak and Dynamic Indexing Rejected, because there are too many major critical issues (waits, leaks, not MUI ...)

Moderator

M

Moderator

07:25, 13th Jun 2014
BPower:
I recommend you to check out some basics about coding in wc3.
Things that leak and Dynamic Indexing

Rejected, because there are too many major critical issues (waits, leaks, not MUI ...)
 
Level 10
Joined
Aug 21, 2010
Messages
316
This will be rejected,each spell uses wait.
Not MUI
Too many memory leaks
Soul Slayer has six triggers(That's a little too much) All can be done with only one trg.Same thing with Hide Attack...

And post trgs man.


  • Soul Thef Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Soul Thef [Q]
    • Actions
      • Set ST_Caster = (Casting unit)
      • Set ST_Target = (Target unit of ability being cast)
      • Set ST_Point = (Position of ST_Target)
      • Set ST_UT[1] = Soul thef
      • Set ST_UT[2] = Circle Out
      • Unit - Pause ST_Caster
      • Unit - Make ST_Caster Invulnerable
      • Unit - Pause ST_Target
      • Unit - Hide ST_Target
      • Animation - Play ST_Caster's spell channel animation
      • Unit - Create 1 ST_UT[2] for (Owner of ST_Caster) at ST_Point facing Default building facing degrees
      • Set ST_Dummy[2] = (Last created unit)
      • Wait 0.25 seconds
      • Animation - Play ST_Caster's spell channel animation
      • Unit - Create 1 ST_UT[1] for (Owner of ST_Caster) at ST_Point facing Default building facing degrees
      • Set ST_Dummy[1] = (Last created unit)
      • Wait 3.50 seconds
      • Animation - Play ST_Caster's spell channel animation
      • call RemoveLocation(udg_ST_Point)
      • Special Effect - Create a special effect at (Position of ST_Dummy[1]) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
      • Set ST_Effect = (Last created special effect)
      • call DestroyEffect(udg_ST_Effect)
      • Unit - Cause ST_Caster to damage ST_Target, dealing 500.00 damage of attack type Spells and damage type Normal
      • Unit - Remove ST_Dummy[1] from the game
      • Unit - Remove ST_Dummy[2] from the game
      • Unit - Unpause ST_Caster
      • Unit - Make ST_Caster Vulnerable
      • Unit - Unpause ST_Target
      • Unit - Unhide ST_Target
  • Hide Attack Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Hide Attack [W]
    • Actions
      • -------- Almost all start Set Caster Right :D --------
      • Set HA_Caster = (Casting unit)
      • -------- Then Target. --------
      • Set HA_Target = (Target unit of ability being cast)
      • -------- The use of this HA_Integer is to make HIDE ATTACK end. --------
      • -------- when it reaches the Limit :D --------
      • Set HA_Integer = 0
      • -------- Then Char2x hehehehe I mean style the warning that the target is selected. :D --------
      • Special Effect - Create a special effect attached to the overhead of HA_Target using Abilities\Spells\Undead\Curse\CurseTarget.mdl
      • Set HA_Effect[1] = (Last created special effect)
      • Unit - Add HIDE ATTACK [X] to HA_Caster
      • -------- Then Disable to avoid promblems. --------
      • Player - Disable Hide Attack [W] for (Owner of HA_Caster)
      • -------- Then Trigger SYS. --------
      • Trigger - Turn on HIDE ATTACK cast <gen>
      • Trigger - Turn on HIDE ATTACK end <gen>
      • Trigger - Turn on HIDE ATTACK end1 <gen>
      • -------- Then the Duration of Spell --------
      • Wait 30.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (HA_Target is alive) Equal to True
        • Then - Actions
          • Trigger - Turn off HIDE ATTACK end <gen>
          • Trigger - Turn off HIDE ATTACK end1 <gen>
          • Trigger - Turn off HIDE ATTACK cast <gen>
          • call RemoveLocation(udg_HA_PointT)
          • call DestroyEffect(udg_HA_Effect[1])
          • call DestroyEffect(udg_HA_Effect[2])
          • Player - Enable Hide Attack [W] for (Owner of HA_Caster)
          • Unit - Remove HIDE ATTACK [X] from HA_Caster
        • Else - Actions
          • Do nothing
  • HIDE ATTACK cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to HIDE ATTACK [X]
    • Actions
      • Set HA_Integer = (HA_Integer + 1)
      • Set HA_PointT = (Position of HA_Target)
      • Unit - Pause HA_Target
      • Special Effect - Create a special effect at HA_PointT using Abilities\Spells\Undead\DeathPact\DeathPactTarget.mdl
      • Set HA_Effect[2] = (Last created special effect)
      • Special Effect - Destroy HA_Effect[2]
      • Wait 0.25 seconds
      • Unit - Cause HA_Caster to damage HA_Target, dealing 50.00 damage of attack type Spells and damage type Normal
      • Unit - Create 1 DT Blue for (Owner of HA_Caster) at HA_PointT facing (Position of HA_Caster)
      • Set HA_Dummy = (Last created unit)
      • Unit - Add a 1.00 second Generic expiration timer to HA_Dummy
      • Wait 1.00 seconds
      • Unit - Unpause HA_Target
  • HIDE ATTACK end
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
      • HA_Integer Greater than or equal to (5 + (Hero level of HA_Caster))
    • Actions
      • Trigger - Turn off (This trigger)
      • Trigger - Turn off HIDE ATTACK end1 <gen>
      • Trigger - Turn off HIDE ATTACK cast <gen>
      • call RemoveLocation(udg_HA_PointT)
      • call DestroyEffect(udg_HA_Effect[1])
      • call DestroyEffect(udg_HA_Effect[2])
      • Player - Enable Hide Attack [W] for (Owner of HA_Caster)
      • Unit - Remove HIDE ATTACK [X] from HA_Caster
  • HIDE ATTACK end1
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Dying unit) Equal to HA_Target
    • Actions
      • Trigger - Turn off (This trigger)
      • Trigger - Turn off HIDE ATTACK end <gen>
      • Trigger - Turn off HIDE ATTACK cast <gen>
      • call RemoveLocation(udg_HA_PointT)
      • call DestroyEffect(udg_HA_Effect[1])
      • call DestroyEffect(udg_HA_Effect[2])
      • Player - Enable Hide Attack [W] for (Owner of HA_Caster)
      • Unit - Remove HIDE ATTACK [X] from HA_Caster
  • HIDE ATTACK dummyR
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Dying unit) Equal to HA_Dummy
    • Actions
      • Unit - Remove (Dying unit) from the game
  • Spirit BOMB
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • ((Attacked unit) has buff Spirit BOMB ) Equal to True
      • ((Attacking unit) is A Hero) Equal to True
    • Actions
      • Set SB_Target = (Attacked unit)
      • Set SB_Attacker = (Attacking unit)
      • Set SB_Point = (Position of SB_Target)
      • Set SB_Real[1] = 100.00
      • Set SB_Real[2] = 100.00
      • Set SB_Real[3] = 100.00
      • Set SB_Real[4] = 100.00
      • Set SB_Real[5] = 100.00
      • Set SB_Real[6] = 100.00
      • Unit - Pause SB_Target
      • Unit - Make SB_Target Invulnerable
      • Player - Disable Spirit BOMB for (Owner of SB_Attacker)
      • Trigger - Turn on Spirit BOMB Loop <gen>
      • Trigger - Turn off (This trigger)
  • Spirit BOMB Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
      • (SB_Target has buff Spirit BOMB ) Equal to True
    • Actions
      • Set SB_Real[1] = (SB_Real[1] - 5.00)
      • Set SB_Real[2] = (SB_Real[2] - 5.00)
      • Set SB_Real[3] = (SB_Real[3] + 5.00)
      • Set SB_Real[4] = (SB_Real[4] + 5.00)
      • Set SB_Real[5] = (SB_Real[5] + 5.00)
      • Set SB_Real[6] = (SB_Real[6] + 5.00)
      • Animation - Change SB_Target's vertex coloring to (SB_Real[1]%, SB_Real[2]%, SB_Real[3]%) with 0.00% transparency
      • Animation - Change SB_Target's size to (SB_Real[4]%, SB_Real[5]%, SB_Real[6]%) of its original size
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • SB_Real[2] Equal to 0.00
              • SB_Real[3] Equal to 0.00
        • Then - Actions
          • Unit - Remove Spirit BOMB buff from SB_Target
          • Trigger - Turn off (This trigger)
          • Unit - Unpause SB_Target
          • Unit - Make SB_Target Vulnerable
          • Player - Enable Spirit BOMB for (Owner of SB_Attacker)
          • Animation - Change SB_Target's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
          • Animation - Change SB_Target's size to (100.00%, 100.00%, 100.00%) of its original size
          • Unit - Cause SB_Attacker to damage SB_Target, dealing 500.00 damage of attack type Spells and damage type Normal
          • Unit - Create 1 Blue Explosion for (Owner of SB_Attacker) at SB_Point facing SB_Point
          • Set SB_Dummy = (Last created unit)
          • Unit - Add a 4.00 second Generic expiration timer to SB_Dummy
          • Special Effect - Create a special effect at SB_Point using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
          • call RemoveLocation(udg_SB_Point)
          • Wait 4.00 seconds
          • Unit - Remove SB_Dummy from the game
          • Trigger - Turn on Spirit BOMB <gen>
        • Else - Actions
  • Soul Slayer Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Soul Slayer [R]
    • Actions
      • Set SS_Caster = (Casting unit)
      • Set SS_Caster_Temp_Loc = (Position of SS_Caster)
      • Set SS_Size = 0.00
      • Set SS_FireDegree = 0.00
      • Set SS_UT[1] = Spell
      • Set SS_UT[2] = Soul thef
      • Set SS_UT[3] = Fire Dummy
      • Set SS_UT[4] = Spell1
      • Set SS_UT[5] = Spell2
      • Set SS_UT[6] = Spell3
      • Set SS_Sound[1] = Warning <gen>
      • Set SS_Sound[2] = ArtilleryCorpseExplodeDeath1 <gen>
      • Sound - Set volume of SS_Sound[1] to 100.00%
      • Sound - Set volume of SS_Sound[2] to 100.00%
      • Special Effect - Create a special effect attached to the overhead of SS_Caster using Abilities\Spells\Human\ControlMagic\ControlMagicTarget.mdl
      • Set SS_SE[1] = (Last created special effect)
      • Set SS_group = (Units within 600.00 of (Position of SS_Caster) matching (((Matching unit) belongs to an ally of (Owner of SS_Caster)) Not equal to True))
      • Unit - Create 1 SS_UT[1] for (Owner of SS_Caster) at (Position of SS_Caster) facing (Position of (Triggering unit))
      • Set SS_Dummy[1] = (Last created unit)
      • Unit - Add a 12.00 second Generic expiration timer to SS_Dummy[1]
      • Unit - Create 1 SS_UT[4] for (Owner of SS_Caster) at (Position of SS_Caster) facing (Position of (Triggering unit))
      • Set SS_Dummy[4] = (Last created unit)
      • Unit - Add a 12.00 second Generic expiration timer to SS_Dummy[4]
      • Unit - Create 1 SS_UT[5] for (Owner of SS_Caster) at (Position of SS_Caster) facing (Position of (Triggering unit))
      • Set SS_Dummy[5] = (Last created unit)
      • Unit - Add a 12.00 second Generic expiration timer to SS_Dummy[5]
      • Unit - Create 1 SS_UT[6] for (Owner of SS_Caster) at (Position of SS_Caster) facing (Position of (Triggering unit))
      • Set SS_Dummy[6] = (Last created unit)
      • Unit - Add a 12.00 second Generic expiration timer to SS_Dummy[6]
      • Unit - Pause SS_Caster
      • Unit - Make SS_Caster Invulnerable
      • Animation - Play SS_Caster's spell attack animation
      • Player - Disable Soul Slayer [R] for (Owner of SS_Caster)
      • Trigger - Turn on Soul Slayer Spell Round Size <gen>
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Trigger - Run Soul Slayer Fire Effects <gen> (checking conditions)
      • Wait 1.00 seconds
      • Animation - Play SS_Caster's channel animation
  • Soul Slayer Spell Round Size
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Set SS_Size = (SS_Size + 10.00)
      • Animation - Change SS_Dummy[1]'s size to (SS_Size%, SS_Size%, SS_Size%) of its original size
      • Animation - Change SS_Dummy[4]'s size to (SS_Size%, SS_Size%, SS_Size%) of its original size
      • Animation - Change SS_Dummy[5]'s size to (SS_Size%, SS_Size%, SS_Size%) of its original size
      • Animation - Change SS_Dummy[6]'s size to (SS_Size%, SS_Size%, SS_Size%) of its original size
      • Set SS_Pause_Temp_Loc = (Position of SS_Caster)
      • Set SS_GPause = (Units within SS_Size of SS_Pause_Temp_Loc matching (((Matching unit) belongs to an ally of (Owner of SS_Caster)) Not equal to True))
      • set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in SS_GPause and do (Actions)
        • Loop - Actions
          • Set SS_Event_PU[1] = (Picked unit)
          • Unit - Pause SS_Event_PU[1]
          • Animation - Change SS_Event_PU[1]'s animation speed to 0.00% of its original speed
          • Special Effect - Create a special effect attached to the overhead of SS_Event_PU[1] using Abilities\Spells\Undead\Curse\CurseTarget.mdl
          • Set SS_SE[2] = (Last created special effect)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SS_Size Equal to 600.00
        • Then - Actions
          • Animation - Play SS_Caster's spell attack animation
          • Trigger - Turn off (This trigger)
          • Wait 3.00 seconds
          • Animation - Play SS_Caster's spell attack animation
          • Floating Text - Create floating text that reads xxxx==Soul Slayer==... at SS_Caster_Temp_Loc with Z offset 0.00, using font size 12.00, color (100.00%, 0.00%, 100.00%), and 0.00% transparency
          • Set SS_FT = (Last created floating text)
          • Floating Text - Set the velocity of SS_FT to 100.00 towards 270.00 degrees
          • Unit - Make SS_Caster face 270.00 over 0.01 seconds
          • Camera - Pan camera for (Owner of SS_Caster) to SS_Caster_Temp_Loc over 0.01 seconds
          • Camera - Set (Owner of SS_Caster)'s camera Distance to target to 500.00 over 0.01 seconds
          • Sound - Play SS_Sound[1]
          • Wait 2.00 seconds
          • Animation - Play SS_Caster's spell attack animation
          • Trigger - Run Soul Slayer Event <gen> (checking conditions)
          • Camera - Reset camera for (Owner of SS_Caster) to standard game-view over 1.00 seconds
          • Floating Text - Destroy SS_FT
        • Else - Actions
  • Soul Slayer Fire Effects
    • Events
    • Conditions
    • Actions
      • Set SS_FireDegree = (SS_FireDegree + 45.00)
      • Set SS_FireDegreePoint = (SS_Caster_Temp_Loc offset by 600.00 towards SS_FireDegree degrees)
      • Unit - Create 1 SS_UT[3] for (Owner of SS_Caster) at SS_FireDegreePoint facing SS_Caster_Temp_Loc
      • Set SS_Dummy[3] = (Last created unit)
      • Unit - Add a 9.00 second Generic expiration timer to SS_Dummy[3]
  • Soul Slayer Event
    • Events
    • Conditions
    • Actions
      • Animation - Play SS_Caster's spell attack animation
      • Set SS_ST_Enter = (Units within SS_Size of (Position of SS_Caster) matching (((Matching unit) belongs to an ally of (Owner of SS_Caster)) Not equal to True))
      • set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in SS_ST_Enter and do (Actions)
        • Loop - Actions
          • Set SS_Event_PU[2] = (Picked unit)
          • Set SS_PU_Temp_Loc = (Position of SS_Event_PU[2])
          • Unit - Create 1 SS_UT[2] for (Owner of SS_Caster) at SS_PU_Temp_Loc facing (Position of SS_Caster)
          • Sound - Play SS_Sound[2] at 100.00% volume, attached to SS_Event_PU[2]
          • Set SS_Dummy[2] = (Last created unit)
          • Unit - Add a 3.50 second Generic expiration timer to SS_Dummy[2]
      • Wait 4.00 seconds
      • call DestroyGroup(udg_SS_ST_Enter)
      • call RemSoul Slayer Event2
    • Events
    • Conditions
    • Actions
      • Animation - Play SS_Caster's spell attack animation
      • Set SS_ST_Enter = (Units within SS_Size of (Position of SS_Caster) matching (((Matching unit) belongs to an ally of (Owner of SS_Caster)) Not equal to True))
      • set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in SS_ST_Enter and do (Actions)
        • Loop - Actions
          • Unit - Unpause (Picked unit)
          • Set SS_UP_Event2_Temp_Loc = (Position of (Picked unit))
          • Special Effect - Create a special effect at SS_UP_Event2_Temp_Loc using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
          • Set SS_SE[3] = (Last created special effect)
          • Animation - Change SS_Event_PU[1]'s animation speed to 100.00% of its original speed
          • Unit - Cause SS_Caster to damage (Picked unit), dealing 9999.00 damage of attack type Spells and damage type Normal
      • Unit - Unpause SS_Caster
      • Unit - Make SS_Caster Vulnerable
      • call DestroyEffect(udg_SS_SE[1])
      • call DestroyEffect(udg_SS_SE[2])
      • call DestroyEffect(udg_SS_SE[3])
      • call DestroyGroup(udg_SS_ST_Enter)
      • call DestroyGroup(udg_SS_group)
      • call DestroyGroup(udg_SS_GPause)
      • call RemoveLocation(udg_SS_PU_Temp_Loc)
      • call RemoveLocation(udg_SS_FireDegreePoint)
      • call RemoveLocation(udg_SS_Caster_Temp_Loc)
      • call RemoveLocation(udg_SS_Pause_Temp_Loc)
      • call RemoveLocation(udg_SS_UP_Event2_Temp_Loc)
      • Wait 5.00 seconds
      • Player - Enable Soul Slayer [R] for (Owner of SS_Caster)
  • oveLocation(udg_SS_PU_Temp_Loc)
    • Trigger - Run Soul Slayer Event2 <gen> (checking conditions)
  • Soul Slayer RD
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[1]
        • Then - Actions
          • Wait 3.00 seconds
          • Unit - Remove SS_Dummy[1] from the game
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[2]
        • Then - Actions
          • Wait 2.00 seconds
          • Unit - Remove SS_Dummy[2] from the game
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[3]
        • Then - Actions
          • Wait 3.00 seconds
          • Unit - Remove SS_Dummy[3] from the game
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[4]
        • Then - Actions
          • Wait 3.00 seconds
          • Unit - Remove SS_Dummy[4] from the game
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[5]
        • Then - Actions
          • Wait 3.00 seconds
          • Unit - Remove SS_Dummy[5] from the game
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Dying unit)) Equal to SS_UT[6]
        • Then - Actions
          • Wait 2.00 seconds
          • Unit - Remove SS_Dummy[6] from the game
        • Else - Actions
 
Top