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!
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 ...)
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)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.