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!
My first spellpack. When I first started, I didn't know much about spell making, and so eventually i ended up with 6 heroes with 7 spells each, since I didn't feel happy with majority of them, I cut off the first 5 heroes. So here I'm showing you my last spells which are probably the best I made so far. I also tried to make environment as pretty as possible.
Thanks to:
WILL THE ALMIGHTY
JetFangInferno
shamanyouranus
tranquil
callahan
12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.
Bribe:
Using Player 1 (Red) as the dummy owner is a bad idea as it can populate that guy's food count/score.
"Unit Group - Pick every unit in (Units of type ("
You forgot a "set...
12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.
Bribe:
Using Player 1 (Red) as the dummy owner is a bad idea as it can populate that guy's food count/score.
"Unit Group - Pick every unit in (Units of type ("
You forgot a "set bj_wantDestroyGroup = true" before this line.
These two lines leak locations:
Lightning - Create a Finger of Death lightning effect from source (Position of bw_dummy_array[bw_int]) to target (Position of bw_dummy_array[(bw_int + 1)])
Else -
Lightning - Create a Finger of Death lightning effect from source (Position of bw_dummy_array[bw_int]) to target (Position of bw_dummy_array[1])
"Countdown Timer - Start bw_timer as a One-shot timer that will expire in 2.00 seconds"
bw_timer is just one timer for all casts which means it won't be MUI when cast more than once.
Just a quick glance at your other spells I can see plenty of MUI problems and leaks.
Please post codes by using
(WITHOUT THE @'s)
[@HIDDEN="CODE"]
[@TRIGGER]
(YOUR CODE)
[/TRIGGER]
[@/HIDDEN]
You can copy the trigger by using "copy as text"
Select the trigger, move your mouse inside the trigger, scroll up, right click the name an select "Copy as text"
EDIT:
Although this isn't MUI it's one of the best ideas/effects i've ever seen. If you make them MUI this will be a fav spellpack ^^)b
Please remove all imported data. Spells should use the pre-generated models created by Blizzard.
Blast wave
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Blast wave
Actions
Set Bw_caster = (Triggering unit)
Set Bw_check = False
Set Bw_loc = (Position of Bw_caster)
Set Bw_angle = 0.00
Set bw_int = 1
For each (Integer A) from 1 to 24, do (Actions)
Loop - Actions
Unit - Create 1 bw dummy for Player 1 (Red) at (Bw_loc offset by 100.00 towards Bw_angle degrees) facing Bw_angle degrees
Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
Unit - Add Crow Form to (Last created unit)
Unit - Remove Crow Form from (Last created unit)
Unit Group - Add (Last created unit) to bw_dummy_grp
Set bw_dummy_array[bw_int] = (Last created unit)
Set Bw_angle = (Bw_angle + 15.00)
Set bw_angle_array[bw_int] = (bw_angle_array[(bw_int - 1)] + 15.00)
Set bw_int = (bw_int + 1)
Set bw_int = 1
Unit Group - Pick every unit in (Units of type ) and do (Actions)
Loop - Actions
Unit - Make (Picked unit) face Bw_caster over 0.01 seconds
For each (Integer B) from 1 to 24, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bw_int Equal to 23
Then - Actions
Lightning - Create a Finger of Death lightning effect from source (Position of bw_dummy_array[bw_int]) to target (Position of bw_dummy_array[(bw_int + 1)])
Else - Actions
Lightning - Create a Finger of Death lightning effect from source (Position of bw_dummy_array[bw_int]) to target (Position of bw_dummy_array[1])
Set bw_lightning[bw_int] = (Last created lightning effect)
Set bw_int = (bw_int + 1)
Trigger - Turn on Bw move <gen>
Countdown Timer - Start bw_timer as a One-shot timer that will expire in 2.00 seconds
Bw timer
Events
Time - bw_timer expires
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Bw_check Equal to False
Then - Actions
Set Bw_check = True
Countdown Timer - Start bw_timer as a One-shot timer that will expire in 2.00 seconds
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in bw_grp) Greater than 0
Then - Actions
For each (Integer A) from 1 to (Number of units in bw_grp), do (Actions)
Loop - Actions
Unit - Add Bw aura to Bw_caster
Unit - Set level of Bw aura for Bw_caster to bw_int
Set bw_int = (bw_int + 1)
Else - Actions
Unit Group - Remove all units from bw_grp
Countdown Timer - Start bw_timer2 as a One-shot timer that will expire in 10.00 seconds
Bw aura
Events
Time - bw_timer2 expires
Conditions
Actions
Unit - Remove Bw aura from Bw_caster
Bw move
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Bw_check Equal to True
Then - Actions
Set Bw_loc = (Position of Bw_caster)
Set Bw_offset = (Bw_offset + 10.00)
For each (Integer A) from 1 to 24, do (Actions)
Loop - Actions
Unit - Move bw_dummy_array[bw_int] instantly to (Bw_loc offset by Bw_offset towards bw_angle_array[bw_int] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bw_int Equal to 24
Then - Actions
Lightning - Move bw_lightning[bw_int] to source (Position of bw_dummy_array[bw_int]) and target (Position of bw_dummy_array[1])
Else - Actions
Lightning - Move bw_lightning[bw_int] to source (Position of bw_dummy_array[bw_int]) and target (Position of bw_dummy_array[(bw_int + 1)])
Set bw_int = (bw_int + 1)
Unit Group - Pick every unit in (Units within 100.00 of (Position of bw_dummy_array[bw_int]) matching ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is in bw_grp) Equal to False
Then - Actions
Unit - Create 1 Spell dummy 2 for Player 1 (Red) at Bw_loc facing (Position of (Picked unit))
Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
Unit Group - Add (Picked unit) to bw_grp
Else - Actions
Else - Actions
Set Bw_loc = (Position of Bw_caster)
Set Bw_offset = (Bw_offset - 10.00)
For each (Integer A) from 1 to 24, do (Actions)
Loop - Actions
Unit - Move bw_dummy_array[bw_int] instantly to (Bw_loc offset by Bw_offset towards bw_angle_array[bw_int] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bw_int Equal to 24
Then - Actions
Lightning - Move bw_lightning[bw_int] to source (Position of bw_dummy_array[bw_int]) and target (Position of bw_dummy_array[1])
Else - Actions
Lightning - Move bw_lightning[bw_int] to source (Position of bw_dummy_array[bw_int]) and target (Position of bw_dummy_array[(bw_int + 1)])
Set bw_int = (bw_int + 1)
Unit Group - Pick every unit in (Units within 100.00 of (Position of bw_dummy_array[bw_int]) matching ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is in bw_grp) Equal to False
Then - Actions
Unit - Create 1 Spell dummy 2 for Player 1 (Red) at Bw_loc facing (Position of (Picked unit))
Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
Unit Group - Add (Picked unit) to bw_grp
Else - Actions
Set bw_int = 1
Chain lightning
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to 'Chain' lightning
Actions
Set cl_caster = (Triggering unit)
Set cl_dummy_z = 60.00
Set cl_bonus = 10.00
Set cl_phase1_angle = ((Facing of cl_caster) - 90.00)
Set cl_loc = ((Position of cl_caster) offset by 100.00 towards cl_phase1_angle degrees)
Unit - Create 1 cl dummy for Player 1 (Red) at (cl_loc offset by 200.00 towards (cl_phase1_angle - 90.00) degrees) facing (Position of cl_caster)
Set cl_loc = ((Position of cl_caster) offset by 250.00 towards cl_phase2_anglez[1] degrees)
Unit - Create 1 cl dummy for Player 1 (Red) at ((Position of cl_caster) offset by 250.00 towards (cl_phase2_anglez[1] - 45.00) degrees) facing (Position of (Triggering unit))
Unit - Add Crow Form to (Last created unit)
Unit - Remove Crow Form from (Last created unit)
Special Effect - Create a special effect attached to the chest of (Last created unit) using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
Set cl_dummy_array[2] = (Last created unit)
Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
Set cl_phase2_anglez[2] = 0.00
Custom script: set udg_cl_light[2] = AddLightningEx("CLPB",true,GetUnitX(udg_cl_dummy_array[1]),GetUnitY(udg_cl_dummy_array[1]),60,GetUnitX(udg_cl_dummy_array[2]),GetUnitY(udg_cl_dummy_array[2]),60)
Custom script: set udg_cl_light[3] = AddLightningEx("FORK",true,GetUnitX(udg_cl_dummy_array[1]),GetUnitY(udg_cl_dummy_array[1]),60,GetUnitX(udg_cl_dummy_array[2]),GetUnitY(udg_cl_dummy_array[2]),60)
Set cl_loc = (cl_loc offset by 10.00 towards cl_phase2_anglez[1] degrees)
Set cl_phase2_anglez[2] = (cl_phase2_anglez[2] + 8.00)
Unit Group - Pick every unit in (Units within 180.00 of cl_loc matching ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False)))) and do (Actions)
Loop - Actions
Unit Group - Add (Picked unit) to cl_grp
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in cl_grp) Greater than 0
Then - Actions
Set cl_phase = 3
Set cl_target = (Random unit from cl_grp)
Set cl_phase3_anglez[1] = (Angle from cl_loc to (Position of cl_target))
Set cl_phase3_anglez[2] = (cl_phase3_anglez[1] - 90.00)
Set cl_phase3_anglez[3] = (cl_phase3_anglez[1] + 90.00)
Set cl_phase3_anglez[4] = 250.00
Set cl_loc = (Position of cl_target)
Special Effect - Create a special effect attached to the chest of cl_target using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
Set cl_effects[2] = (Last created special effect)
Special Effect - Create a special effect attached to the origin of cl_target using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
Set cl_effects[3] = (Last created special effect)
Special Effect - Create a special effect attached to the head of cl_target using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
Set cl_effects[4] = (Last created special effect)
Special Effect - Create a special effect attached to the chest of cl_target using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
Set cl_effects[5] = (Last created special effect)
Lightning - Destroy cl_light[2]
Lightning - Destroy cl_light[3]
Unit - Create 1 Spell dummy 2 for Player 1 (Red) at cl_loc facing (Position of cl_target)
Unit - Order (Last created unit) to Orc Shaman - Purge cl_target
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Unit - Move cl_dummy_array[1] instantly to (cl_loc offset by 200.00 towards cl_phase3_anglez[2] degrees)
Unit - Move cl_dummy_array[2] instantly to (cl_loc offset by 200.00 towards cl_phase3_anglez[3] degrees)
Custom script: set udg_cl_light[4] = AddLightningEx("CLPB",true,GetUnitX(udg_cl_target),GetUnitY(udg_cl_target),GetUnitFlyHeight(udg_cl_target),GetUnitX(udg_cl_dummy_array[1]),GetUnitY(udg_cl_dummy_array[1]),GetUnitFlyHeight(udg_cl_dummy_array[1]))
Custom script: set udg_cl_light[5] = AddLightningEx("CLPB",true,GetUnitX(udg_cl_target),GetUnitY(udg_cl_target),GetUnitFlyHeight(udg_cl_target),GetUnitX(udg_cl_dummy_array[2]),GetUnitY(udg_cl_dummy_array[2]),GetUnitFlyHeight(udg_cl_dummy_array[2]))
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
cl_phase Equal to 3
Then - Actions
Unit - Move cl_dummy_array[1] instantly to (cl_loc offset by cl_phase3_anglez[4] towards cl_phase3_anglez[2] degrees)
Unit - Move cl_dummy_array[2] instantly to (cl_loc offset by (cl_phase3_anglez[4] - 50.00) towards cl_phase3_anglez[3] degrees)
Special Effect - Create a special effect attached to the chest of cl_dummy_array[1] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of cl_dummy_array[2] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
Special Effect - Destroy (Last created special effect)
Set cl_phase3_anglez[2] = (cl_phase3_anglez[2] + 7.00)
Set cl_phase3_anglez[3] = (cl_phase3_anglez[3] - 7.00)
Set cl_phase3_anglez[4] = (cl_phase3_anglez[4] - 1.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
cl_phase3_anglez[4] Less than 5.00
Then - Actions
Unit Group - Add cl_dummy_array[1] to cl_temp_grp
Unit Group - Add cl_dummy_array[2] to cl_temp_grp
Unit - Remove cl_dummy_array[1] from the game
Unit - Remove cl_dummy_array[2] from the game
Lightning - Destroy cl_light[4]
Lightning - Destroy cl_light[5]
Special Effect - Destroy cl_effects[2]
Special Effect - Destroy cl_effects[3]
Special Effect - Destroy cl_effects[4]
Special Effect - Destroy cl_effects[5]
Custom script: call DestroyGroup(udg_cl_temp_grp)
Custom script: call RemoveLocation(udg_cl_loc)
Unit Group - Remove all units from cl_grp
Trigger - Turn off (This trigger)
Else - Actions
Else - Actions
Bulletstorms leash GUI
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Bulletstorm's Leash with Thumper
Actions
Set bsl_caster = (Triggering unit)
Set bsl_loc = (Position of bsl_caster)
Set bsl_distance = (Distance between bsl_loc and (Target point of ability being cast))
Set bsl_offset = (bsl_distance / 20.00)
Set bsl_height = 40.00
Set bsl_bonus = 40.00
Set bsl_angle = (Angle from bsl_loc to (Target point of ability being cast))
Set bsl_i = 0
Set bsl_phase = 0
Set bsl_light_i = 0
Set bsl_tloc = (Target point of ability being cast)
Set Thumper_ON = False
Set b_portal = False
Unit - Remove Bulletstorm's Leash with Thumper from bsl_caster
Unit - Remove 'Chain' lightning from bsl_caster
Unit - Add Thumper to bsl_caster
For each (Integer A) from 1 to 20, do (Actions)
Loop - Actions
Unit - Create 1 bsl dummy for Player 1 (Red) at (bsl_loc offset by bsl_offset towards bsl_angle degrees) facing bsl_loc
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit) flying height to bsl_height at 2500.00
Unit Group - Add (Last created unit) to bsl_dummy_grp
Set bsl_x[bsl_i] = (X of (Position of (Last created unit)))
Set bsl_y[bsl_i] = (Y of (Position of (Last created unit)))
Set bsl_array[bsl_i] = (Last created unit)
Set bsl_offset = (bsl_offset + (bsl_distance / 20.00))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Less than or equal to 8
Then - Actions
Set bsl_height = (bsl_height + bsl_bonus)
Set bsl_bonus = (bsl_bonus - 5.00)
Else - Actions
Set bsl_height = (bsl_height - bsl_bonus)
Set bsl_bonus = (bsl_bonus + 5.00)
Set bsl_i = (bsl_i + 1)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxx --------
-------- xxxxxxxxxxxxx --------
-------- xxxxxxxxxxxxxxxxxxxxxxxxxx --------
Set bsl_height = 40.00
Set bsl_bonus = 40.00
Set bsl_offset = (bsl_distance / 20.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between ((Position of blue_portal[1]) offset by (0.00, 100.00)) and bsl_tloc) Less than or equal to 50.00
Then - Actions
Set bsl_portal = True
Set bsl_blue = True
For each (Integer A) from 1 to 20, do (Actions)
Loop - Actions
Unit - Create 1 bsl dummy for Player 1 (Red) at (((Position of yellow_portal[1]) offset by (0.00, 100.00)) offset by bsl_offset towards bsl_angle degrees) facing bsl_loc
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit) flying height to bsl_height at 2500.00
Unit Group - Add (Last created unit) to bsl_dummy_grp
Set bsl_x[bsl_i] = (X of (Position of (Last created unit)))
Set bsl_y[bsl_i] = (Y of (Position of (Last created unit)))
Set bsl_array[bsl_i] = (Last created unit)
Set bsl_offset = (bsl_offset + (bsl_distance / 20.00))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Less than or equal to 28
Then - Actions
Set bsl_height = (bsl_height + bsl_bonus)
Set bsl_bonus = (bsl_bonus - 5.00)
Else - Actions
Set bsl_height = (bsl_height - bsl_bonus)
Set bsl_bonus = (bsl_bonus + 5.00)
Set bsl_i = (bsl_i + 1)
Trigger - Turn on BSL Portal case <gen>
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between ((Position of yellow_portal[1]) offset by (0.00, 100.00)) and bsl_tloc) Less than or equal to 50.00
Then - Actions
Set bsl_portal = True
Set bsl_blue = False
For each (Integer A) from 1 to 20, do (Actions)
Loop - Actions
Unit - Create 1 bsl dummy for Player 1 (Red) at (((Position of blue_portal[1]) offset by (0.00, 100.00)) offset by bsl_offset towards bsl_angle degrees) facing bsl_loc
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit) flying height to bsl_height at 2500.00
Unit Group - Add (Last created unit) to bsl_dummy_grp
Set bsl_x[bsl_i] = (X of (Position of (Last created unit)))
Set bsl_y[bsl_i] = (Y of (Position of (Last created unit)))
Set bsl_array[bsl_i] = (Last created unit)
Set bsl_offset = (bsl_offset + (bsl_distance / 20.00))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Less than or equal to 28
Then - Actions
Set bsl_height = (bsl_height + bsl_bonus)
Set bsl_bonus = (bsl_bonus - 5.00)
Else - Actions
Set bsl_height = (bsl_height - bsl_bonus)
Set bsl_bonus = (bsl_bonus + 5.00)
Set bsl_i = (bsl_i + 1)
Trigger - Turn on BSL Portal case <gen>
Else - Actions
Set bsl_portal = False
Trigger - Turn on BSL go <gen>
Set bsl_i = 0
Set bsl_phase = 1
BSL go
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_phase Equal to 1
Then - Actions
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx(udg_BLS,true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+2)],udg_bsl_y[(udg_bsl_i)+2],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+2]))
Set bsl_light_i = (bsl_light_i + 1)
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx("CLPB",true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+2)],udg_bsl_y[(udg_bsl_i)+2],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+2]))
Set bsl_light_i = (bsl_light_i + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Less than or equal to 15
Then - Actions
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx(udg_BLS,true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+4)],udg_bsl_y[(udg_bsl_i)+4],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+4]))
Set bsl_light_i = (bsl_light_i + 1)
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx("CLPB",true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+4)],udg_bsl_y[(udg_bsl_i)+4],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+4]))
Set bsl_light_i = (bsl_light_i + 1)
Else - Actions
Set bsl_i = (bsl_i + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Equal to 18
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Thumper_ON Equal to True
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Set bsl_target = (Random unit from (Units within 150.00 of bsl_tloc matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True))))
Special Effect - Create a special effect at (bsl_loc offset by bsl_distance towards bsl_angle degrees) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
Special Effect - Destroy (Last created special effect)
Sound - Play mksm_get_the_fuck_over_here <gen>
Unit - Remove Positive buffs from bsl_target
Unit - Remove Thumper from bsl_caster
Unit - Add Bulletstorm's Leash with Thumper to bsl_caster
Unit - Move bsl_target instantly to (Position of bsl_array[bsl_unit_i])
Animation - Change bsl_target flying height to (Current flying height of bsl_array[bsl_unit_i]) at 2500.00
Set bsl_i = (bsl_i - 1)
Set bsl_unit_i = (bsl_unit_i - 1)
Set bsl_light_i = (bsl_light_i - 4)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Equal to 0
Then - Actions
Unit - Remove Thumper from bsl_caster
Unit - Add Bulletstorm's Leash with Thumper to bsl_caster
Unit - Add 'Chain' lightning to bsl_caster
Trigger - Turn off (This trigger)
Else - Actions
BSL Portal case
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_phase Equal to 1
Then - Actions
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx(udg_BLS,true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+2)],udg_bsl_y[(udg_bsl_i)+2],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+2]))
Set bsl_light_i = (bsl_light_i + 1)
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx("CLPB",true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+2)],udg_bsl_y[(udg_bsl_i)+2],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+2]))
Set bsl_light_i = (bsl_light_i + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Less than or equal to 35
Then - Actions
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx(udg_BLS,true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+4)],udg_bsl_y[(udg_bsl_i)+4],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+4]))
Set bsl_light_i = (bsl_light_i + 1)
Custom script: set udg_bsl_light_array[udg_bsl_light_i] = AddLightningEx("CLPB",true,udg_bsl_x[udg_bsl_i],udg_bsl_y[udg_bsl_i],GetUnitFlyHeight(udg_bsl_array[udg_bsl_i]),udg_bsl_x[(udg_bsl_i+4)],udg_bsl_y[(udg_bsl_i)+4],GetUnitFlyHeight(udg_bsl_array[(udg_bsl_i)+4]))
Set bsl_light_i = (bsl_light_i + 1)
Else - Actions
Set bsl_i = (bsl_i + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Equal to 16
Then - Actions
Set bsl_i = 20
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Equal to 38
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Thumper_ON Equal to True
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_blue Equal to True
Then - Actions
Set bsl_target = (Random unit from (Units within 150.00 of (((Position of yellow_portal[1]) offset by (0.00, 100.00)) offset by bsl_distance towards bsl_angle degrees) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True))
Special Effect - Create a special effect at (((Position of yellow_portal[1]) offset by (0.00, 100.00)) offset by bsl_distance towards bsl_angle degrees) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
Special Effect - Destroy (Last created special effect)
Else - Actions
Set bsl_target = (Random unit from (Units within 150.00 of (((Position of blue_portal[1]) offset by (0.00, 100.00)) offset by bsl_distance towards bsl_angle degrees) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) a
Special Effect - Create a special effect at (((Position of blue_portal[1]) offset by (0.00, 100.00)) offset by bsl_distance towards bsl_angle degrees) using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
Special Effect - Destroy (Last created special effect)
Sound - Play mksm_get_the_fuck_over_here <gen>
Unit - Remove Positive buffs from bsl_target
Unit - Remove Thumper from bsl_caster
Unit - Add Bulletstorm's Leash with Thumper to bsl_caster
Unit - Move bsl_target instantly to (Position of bsl_array[bsl_unit_i])
Animation - Change bsl_target flying height to (Current flying height of bsl_array[bsl_unit_i]) at 2500.00
Set bsl_i = (bsl_i - 1)
Set bsl_unit_i = (bsl_unit_i - 1)
Set bsl_light_i = (bsl_light_i - 4)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_i Equal to 0
Then - Actions
Unit - Remove Thumper from bsl_caster
Unit - Add Bulletstorm's Leash with Thumper to bsl_caster
Unit - Add 'Chain' lightning to bsl_caster
Trigger - Turn off (This trigger)
Else - Actions
Thumper
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Thumper
Actions
Set Thumper_ON = True
Set tli = 0
Set tui = 0
Unit - Create 1 bsl dummy for Player 1 (Red) at (bsl_loc offset by bsl_distance towards bsl_angle degrees) facing bsl_loc
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Unit Group - Add (Last created unit) to bsl_dummy_grp
Unit - Create 1 thumper dummy for Player 1 (Red) at (Position of bsl_array[tui]) facing (Position of (Triggering unit))
Set bsl_array[50] = (Last created unit)
Unit Group - Add (Last created unit) to bsl_dummy_grp
Unit - Add a 1.00 second Generic expiration timer to bsl_array[50]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bsl_portal Equal to True
Then - Actions
Trigger - Turn on Thumper Portal case <gen>
Else - Actions
Trigger - Turn on Thumper go <gen>
Thumper go
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Unit - Move bsl_array[50] instantly to (Position of bsl_array[tui])
Animation - Change bsl_array[50] flying height to (Current flying height of bsl_array[tui]) at 2500.00
Special Effect - Create a special effect attached to the chest of bsl_array[50] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of bsl_array[50] using war3mapImported\EMPBomb.mdx
Special Effect - Destroy (Last created special effect)
Set tui = (tui + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tui Equal to 20
Then - Actions
Set thump_angle = 0.00
Special Effect - Create a special effect at bsl_tloc using war3mapImported\AncientExplode.mdx
Set bsl_SE[0] = (Last created special effect)
Set Thumper_grp = (Units within 500.00 of bsl_tloc matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True)))
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (bsl_tloc offset by 150.00 towards thump_angle degrees) using war3mapImported\WhiteChakraExplosion.mdx
Set bsl_SE[(Integer A)] = (Last created special effect)
Set thump_angle = (thump_angle + 60.00)
Set bsl_phase = 3
Trigger - Turn on BSL go <gen>
Set bsl_target = No unit
Set tec = 0
Set thumper_height = 30.00
Set Tup = True
Trigger - Turn on Thumper up <gen>
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Unit - Cause bsl_caster to damage (Picked unit), dealing 300.00 damage of attack type Spells and damage type Normal
Unit - Pause (Picked unit)
Set thumper_se[tec] = (Last created special effect)
Set tec = (tec + 1)
Trigger - Turn on Thumper effects <gen>
Trigger - Turn on Thumper up <gen>
Trigger - Turn off (This trigger)
Else - Actions
Thumper Portal case
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Unit - Move bsl_array[50] instantly to (Position of bsl_array[tui])
Animation - Change bsl_array[50] flying height to (Current flying height of bsl_array[tui]) at 2500.00
Special Effect - Create a special effect attached to the chest of bsl_array[50] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of bsl_array[50] using war3mapImported\EMPBomb.mdx
Special Effect - Destroy (Last created special effect)
Set tui = (tui + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tui Equal to 40
Then - Actions
Set thump_angle = 0.00
Special Effect - Create a special effect at (Position of bsl_array[50]) using war3mapImported\AncientExplode.mdx
Set Thumper_grp = (Units within 500.00 of (Position of bsl_array[50]) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True)))
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
Special Effect - Create a special effect at ((Position of bsl_array[50]) offset by 150.00 towards thump_angle degrees) using war3mapImported\WhiteChakraExplosion.mdx
Set thump_angle = (thump_angle + 60.00)
Set bsl_phase = 3
Trigger - Turn on BSL go <gen>
Set bsl_target = No unit
Set tec = 0
Set thumper_height = 30.00
Set Tup = True
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Unit - Cause bsl_caster to damage (Picked unit), dealing 300.00 damage of attack type Spells and damage type Normal
Unit - Pause (Picked unit)
Set thumper_se[tec] = (Last created special effect)
Set tec = (tec + 1)
Trigger - Turn on Thumper up <gen>
Trigger - Turn on Thumper effects <gen>
Trigger - Turn off (This trigger)
Else - Actions
Thumper effects
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Special Effect - Create a special effect attached to the chest of (Picked unit) using war3mapImported\Stars_lightning_.MDX
Special Effect - Destroy (Last created special effect)
Thumper up
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by (thumper_height x 0.30) towards (Angle from bsl_tloc to (Position of (Picked unit))) degrees)
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + thumper_height) at 2500.00
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
thumper_height Less than or equal to 2.00
Then - Actions
Trigger - Turn on Thumper down <gen>
Set tec = 0
For each (Integer A) from 1 to (Number of units in Thumper_grp), do (Actions)
Loop - Actions
Special Effect - Destroy thumper_se[tec]
Set tec = (tec + 1)
Trigger - Turn off (This trigger)
Else - Actions
Set thumper_height = (thumper_height x 0.95)
Thumper down
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by (thumper_height x 0.50) towards (Angle from bsl_tloc to (Position of (Picked unit))) degrees)
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) - thumper_height) at 2500.00
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
thumper_height Greater than or equal to 25.00
Then - Actions
Unit Group - Pick every unit in Thumper_grp and do (Actions)
Loop - Actions
Unit - Unpause (Picked unit)
Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by (thumper_height x 0.50) towards (Angle from bsl_tloc to (Position of (Picked unit))) degrees)
Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 2500.00
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between ((Position of blue_portal[1]) offset by (0.00, 100.00)) and b_tloc) Less than or equal to 50.00
Then - Actions
Set b_blue = True
Set b_portal = True
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between ((Position of yellow_portal[1]) offset by (0.00, 100.00)) and b_tloc) Less than or equal to 50.00
Then - Actions
Set b_blue = False
Set b_portal = True
Else - Actions
Set b_portal = False
Trigger - Turn on bouncer move <gen>
bouncer move
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Unit - Move b_dummy instantly to ((Position of b_dummy) offset by (b_distance / 100.00) towards b_angle degrees)
Animation - Change b_dummy flying height to (b_height + b_bonus) at 2500.00
Special Effect - Create a special effect attached to the chest of b_dummy using war3mapImported\FireBlast.mdx
Special Effect - Destroy (Last created special effect)
Set b_bonus = (b_bonus - 0.25)
Set b_height = (b_height + b_bonus)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of b_dummy) and b_tloc) Less than or equal to 5.00
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
b_portal Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
b_blue Equal to True
Then - Actions
Unit - Move b_dummy instantly to ((Position of yellow_portal[1]) offset by (0.00, 100.00))
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by 400.00 towards b_angle degrees)
Environment - Create a 0.20 second Temporary crater deformation at ((Position of blue_portal[1]) offset by (0.00, 100.00)) with radius 150.00 and depth 300.00
Set b_bonus = 12.00
Set b_height = 30.00
Trigger - Turn on bouncer jump <gen>
Trigger - Turn off (This trigger)
Else - Actions
Unit - Move b_dummy instantly to ((Position of blue_portal[1]) offset by (0.00, 100.00))
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by 400.00 towards b_angle degrees)
Environment - Create a 0.20 second Temporary crater deformation at ((Position of yellow_portal[1]) offset by (0.00, 100.00)) with radius 150.00 and depth 300.00
Set b_bonus = 12.00
Set b_height = 30.00
Trigger - Turn on bouncer jump <gen>
Trigger - Turn off (This trigger)
Else - Actions
Special Effect - Create a special effect at (Position of b_dummy) using war3mapImported\FireNova.mdx
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at (Position of b_dummy) using war3mapImported\FireNova2.mdx
Special Effect - Destroy (Last created special effect)
Unit - Create 1 Spell dummy 3 for Player 1 (Red) at (Position of b_dummy) facing (Position of b_dummy)
Unit Group - Add (Last created unit) to b_dummy_grp
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
Set b_bonus = 12.00
Set b_height = 30.00
Trigger - Turn on bouncer jump <gen>
Trigger - Turn off (This trigger)
Else - Actions
bouncer jump
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Animation - Change b_dummy flying height to (b_height + b_bonus) at 2500.00
Special Effect - Create a special effect attached to the chest of b_dummy using war3mapImported\FireBlast.mdx
Special Effect - Destroy (Last created special effect)
Set b_bonus = (b_bonus - 0.20)
Set b_height = (b_height + b_bonus)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
b_height Less than or equal to 10.00
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of b_dummy) and (Position of blue_portal[1])) Less than or equal to 150.00
Then - Actions
Environment - Create a 0.20 second Temporary crater deformation at ((Position of blue_portal[1]) offset by (0.00, 100.00)) with radius 100.00 and depth 300.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of b_dummy) and (Position of yellow_portal[1])) Less than or equal to 150.00
Then - Actions
Environment - Create a 0.20 second Temporary crater deformation at ((Position of yellow_portal[1]) offset by (0.00, 100.00)) with radius 100.00 and depth 300.00
Else - Actions
Special Effect - Create a special effect at (Position of b_dummy) using war3mapImported\FireNova.mdx
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at (Position of b_dummy) using war3mapImported\FireNova2.mdx
Special Effect - Destroy (Last created special effect)
Unit - Create 1 Spell dummy 3 for Player 1 (Red) at (Position of b_dummy) facing (Position of b_dummy)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit Group - Add (Last created unit) to b_dummy_grp
Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
b_height Less than or equal to 2.00
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of b_dummy) and (Position of blue_portal[1])) Less than or equal to 150.00
Then - Actions
Unit - Move b_dummy instantly to ((Position of yellow_portal[1]) offset by (0.00, 100.00))
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (b_x, b_y))
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between (Position of b_dummy) and (Position of yellow_portal[1])) Less than or equal to 150.00
Then - Actions
Unit - Move b_dummy instantly to ((Position of blue_portal[1]) offset by (0.00, 100.00))
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (b_x, b_y))
Else - Actions
Set b_bonus = 12.00
Set b_height = 30.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(b_dummy is alive) Equal to False
Then - Actions
Unit - Create 1 Lava Spawn (Level 3) for Player 1 (Red) at (Position of b_dummy) facing (Player 1 (Red) start location)
Unit Group - Add (Last created unit) to b_dummy_grp
Animation - Change (Last created unit)'s animation speed to 150.00% of its original speed
Unit - Kill (Last created unit)
Special Effect - Destroy b_effects[0]
Special Effect - Destroy b_effects[1]
Special Effect - Destroy b_effects[2]
Special Effect - Destroy b_effects[3]
Custom script: call RemoveLocation(udg_b_loc)
Custom script: call RemoveLocation(udg_b_tloc)
Custom script: call DestroyGroup(udg_b_dummy_grp)
Set b_ON = False
Camera - Reset camera for Player 1 (Red) to standard game-view over 0.00 seconds
Trigger - Turn off (This trigger)
Else - Actions
bouncer up
Events
Player - Player 1 (Red) Presses the Up Arrow key
Conditions
b_ON Equal to True
Actions
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (0.00, 6000.00))
Camera - Lock camera target for Player 1 (Red) to b_dummy, offset by (0.00, 0.00) using The unit's rotation
Set b_x = 0.00
Set b_y = 6000.00
bouncer down
Events
Player - Player 1 (Red) Presses the Down Arrow key
Conditions
b_ON Equal to True
Actions
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (0.00, -6000.00))
Camera - Lock camera target for Player 1 (Red) to b_dummy, offset by (0.00, 0.00) using The unit's rotation
Set b_x = 0.00
Set b_y = -6000.00
bouncer left
Events
Player - Player 1 (Red) Presses the Left Arrow key
Conditions
b_ON Equal to True
Actions
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (-6000.00, 0.00))
Camera - Lock camera target for Player 1 (Red) to b_dummy, offset by (0.00, 0.00) using The unit's rotation
Set b_x = -6000.00
Set b_y = 0.00
bouncer right
Events
Player - Player 1 (Red) Presses the Right Arrow key
Conditions
b_ON Equal to True
Actions
Unit - Order b_dummy to Move To ((Position of b_dummy) offset by (6000.00, 0.00))
Camera - Lock camera target for Player 1 (Red) to b_dummy, offset by (0.00, 0.00) using The unit's rotation
Set b_x = 6000.00
Set b_y = 0.00
The storm
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to The storm
Actions
Set ts_caster = (Triggering unit)
Set ts_angle = 0.00
Set ts_loc = (Position of ts_caster)
Set tsi = 0
Set ts_height = 0.00
Set ts_light_i = 0
Animation - Play ts_caster's channel animation
For each (Integer A) from 1 to 210, do (Actions)
Loop - Actions
Unit - Create 1 bsl dummy for Player 1 (Red) at (ts_loc offset by 300.00 towards ts_angle degrees) facing (Position of (Triggering unit))
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Unit Group - Add (Last created unit) to ts_dummy_grp
Animation - Change (Last created unit) flying height to ts_height at 2500.00
Set tsd[tsi] = (Last created unit)
Set ts_angle = (ts_angle + 10.00)
Set ts_height = (ts_height + 5.00)
Set tsi = (tsi + 1)
For each (Integer A) from 1 to 18, do (Actions)
Loop - Actions
Unit - Create 1 Cod obstacle dummy for Player 1 (Red) at ((Position of (Triggering unit)) offset by 320.00 towards (20.00 x (Real((Integer A)))) degrees) facing (Position of (Triggering unit))
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Unit Group - Add (Last created unit) to ts_dummy_grp
Set cod_rot_angle = (cod_rot_angle + 20.00)
Set tsi = 0
Set ts_angle = 0.00
Set ts_height = 0.00
Unit - Create 1 thumper dummy for Player 1 (Red) at (ts_loc offset by 300.00 towards ts_angle degrees) facing ts_loc
Unit Group - Add (Last created unit) to ts_dummy_grp
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Set tsd[300] = (Last created unit)
Trigger - Turn on storm go <gen>
Trigger - Turn on storm specials <gen>
storm go
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Custom script: set udg_ts_light[udg_tsi]=AddLightningEx(udg_TSL,true,GetUnitX(udg_tsd[udg_tsi]),GetUnitY(udg_tsd[udg_tsi]),GetUnitFlyHeight(udg_tsd[udg_tsi]),GetUnitX(udg_tsd[(udg_tsi)+1]),GetUnitY(udg_tsd[(udg_tsi)+1]),GetUnitFlyHeight(udg_tsd[(udg_tsi)+1]))
Unit - Move tsd[300] instantly to (ts_loc offset by 300.00 towards ts_angle degrees)
Animation - Change tsd[300] flying height to ts_height at 2500.00
Special Effect - Create a special effect attached to the chest of tsd[300] using war3mapImported\EMPBomb.mdx
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of tsd[300] using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
Special Effect - Destroy (Last created special effect)
Set ts_angle = (ts_angle + 10.00)
Set ts_height = (ts_height + 5.00)
Set tsi = (tsi + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
tsi Equal to 209
Then - Actions
Set tsi = 0
For each (Integer A) from 1 to 36, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (ts_loc offset by 300.00 towards (10.00 x (Real((Integer A)))) degrees) using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
Special Effect - Destroy (Last created special effect)
For each (Integer A) from 1 to (ts_light_i + 6), do (Actions)
Loop - Actions
Special Effect - Destroy ts_SE[(Integer A)]
Trigger - Turn off storm specials <gen>
Trigger - Turn off (This trigger)
Else - Actions
storm specials
Events
Time - Every 0.50 seconds of game time
Conditions
Actions
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (ts_loc offset by 150.00 towards (60.00 x (Real((Integer A)))) degrees) using war3mapImported\Lightnings Long.mdx
Set ts_SE[ts_light_i] = (Last created special effect)
Set ts_light_i = (ts_light_i + 1)
Unit Group - Pick every unit in (Units within 300.00 of ts_loc matching ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
Loop - Actions
Unit - Cause ts_caster to damage (Picked unit), dealing 50.00 damage of attack type Spells and damage type Normal
Special Effect - Create a special effect at ts_loc using war3mapImported\LightningWrath.mdx
Special Effect - Destroy (Last created special effect)
Force cannon
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Force cannon
Actions
Set fci = 0
Set fc_target[fci] = (Target unit of ability being cast)
Set fc_offset[fci] = 15.00
Set fc_angle[fci] = (Angle from (Position of (Triggering unit)) to (Position of fc_target[fci]))
Unit - Create 1 Fc dummy for Player 1 (Red) at ((Position of (Triggering unit)) offset by 50.00 towards fc_angle[0] degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit)'s animation speed to 200.00% of its original speed
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy2 for Player 1 (Red) at ((Position of (Triggering unit)) offset by 50.00 towards fc_angle[fci] degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy3 for Player 1 (Red) at ((Position of (Triggering unit)) offset by 350.00 towards fc_angle[fci] degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy4 for Player 1 (Red) at ((Position of (Triggering unit)) offset by 100.00 towards (fc_angle[0] + 10.00) degrees) facing (fc_angle[0] + 10.00) degrees
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Make (Last created unit) face ((Facing of (Last created unit)) + 170.00) over 2.00 seconds
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy4 for Player 1 (Red) at ((Position of (Triggering unit)) offset by 100.00 towards (fc_angle[0] - 10.00) degrees) facing (fc_angle[0] - 10.00) degrees
Unit - Make (Last created unit) face ((Facing of (Last created unit)) - 170.00) over 2.00 seconds
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy5 for Player 1 (Red) at ((Position of (Triggering unit)) offset by 50.00 towards fc_angle[fci] degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Trigger - Run Force cannon pick <gen> (ignoring conditions)
Trigger - Turn on force cannon push <gen>
First time FC
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Force cannon
Actions
Game - Display to Player Group - Player 1 (Red) the text: I'd suggest trying ...
Cinematic - Ping minimap for Player Group - Player 1 (Red) at (Center of (Region centered at (Position of Forest Troll 0521 <gen>) with size (1.00, 1.00))) for 10.00 seconds
Trigger - Turn off (This trigger)
Force cannon pick
Events
Conditions
Actions
Set fci = (fci + 1)
Set fc_target[fci] = (Random unit from (Units within 500.00 of (Position of fc_target[(fci - 1)]) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True)) and ((((Matching unit) is alive) Equal to Tr
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
fc_target[fci] Not equal to No unit
Then - Actions
Set fc_offset[fci] = 15.00
Set fc_angle[fci] = (Angle from (Position of fc_target[(fci - 1)]) to (Position of fc_target[fci]))
Unit Group - Add fc_target[fci] to fc_grp
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 50.00 towards (Facing of fc_target[fci]) degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
Animation - Change (Last created unit)'s animation speed to 200.00% of its original speed
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy2 for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 50.00 towards (Facing of fc_target[fci]) degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy3 for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 200.00 towards (Facing of fc_target[fci]) degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy4 for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 100.00 towards (fc_angle[fci] + 10.00) degrees) facing (fc_angle[fci] + 10.00) degrees
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Make (Last created unit) face ((Facing of (Last created unit)) + 170.00) over 2.00 seconds
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy4 for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 100.00 towards (fc_angle[fci] - 10.00) degrees) facing (fc_angle[fci] - 10.00) degrees
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Make (Last created unit) face ((Facing of (Last created unit)) - -170.00) over 2.00 seconds
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Fc dummy5 for Player 1 (Red) at ((Position of fc_target[(fci - 1)]) offset by 50.00 towards (Facing of fc_target[fci]) degrees) facing (Position of fc_target[0])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Animation - Change (Last created unit)'s size to (50.00%, 50.00%, 50.00%) of its original size
-------- xxxxxxxxxxxxxxxxxxxxxxxxxxx --------
Unit - Create 1 Spell dummy 2 for Player 1 (Red) at (Position of fc_target[fci]) facing (Position of fc_target[fci])
Unit Group - Add (Last created unit) to fc_dummy_grp
Unit - Order (Last created unit) to Neutral - Firebolt fc_target[fci]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in (Units within 500.00 of (Position of fc_target[fci]) matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and ((((Matching unit) belongs to an enemy of Player 1 (Red)) Equal to True) Greater than 0
Then - Actions
Wait 0.10 seconds
Trigger - Run (This trigger) (ignoring conditions)
For each (Integer A) from 0 to (Number of units in fc_grp), do (Actions)
Loop - Actions
Unit - Move fc_target[(Integer A)] instantly to ((Position of fc_target[(Integer A)]) offset by fc_offset[(Integer A)] towards fc_angle[(Integer A)] degrees)
Set fc_offset[(Integer A)] = (fc_offset[(Integer A)] x 0.95)
Unit - Create 1 Yellow portal dummy for Player 1 (Red) at ((Target point of ability being cast) offset by (0.00, -100.00)) facing 90.00 degrees
Set yellow_portal[1] = (Last created unit)
Unit Group - Add (Last created unit) to portal_dummy_grp
Unit - Create 1 Yellow portal dummy for Player 1 (Red) at ((Target point of ability being cast) offset by (0.00, 110.00)) facing 270.00 degrees
Set yellow_portal[2] = (Last created unit)
Unit Group - Add (Last created unit) to portal_dummy_grp
Unit - Remove Yellow portal from (Triggering unit)
Unit - Add Blue Portal to (Triggering unit)
Trigger - Turn on Portals <gen>
Portals
Events
Time - Every 0.10 seconds of game time
Conditions
Actions
Set Portal_target = (Random unit from (Units within 50.00 of ((Position of blue_portal[1]) offset by (0.00, 100.00)) matching (((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is A Hero) Equal to True) or (((Matching unit) belongs to an ally of Player 1
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Portal_target Not equal to No unit
Then - Actions
Unit - Move Portal_target instantly to ((Position of yellow_portal[1]) offset by (0.00, 100.00))
Environment - Create a 0.20 second Temporary crater deformation at ((Position of blue_portal[1]) offset by (0.00, 100.00)) with radius 100.00 and depth 300.00
Set p_offset = 15.00
Set p_unit_h = 15.00
Trigger - Turn on Portal UM <gen>
Trigger - Turn off (This trigger)
Else - Actions
Set Portal_target = (Random unit from (Units within 50.00 of ((Position of yellow_portal[1]) offset by (0.00, 100.00)) matching (((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is A Hero) Equal to True) or (((Matching unit) belongs to an ally of Player
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Portal_target Not equal to No unit
Then - Actions
Unit - Move Portal_target instantly to ((Position of blue_portal[1]) offset by (0.00, 100.00))
Environment - Create a 0.20 second Temporary crater deformation at ((Position of yellow_portal[1]) offset by (0.00, 100.00)) with radius 100.00 and depth 300.00
Set p_offset = 15.00
Set p_unit_h = 15.00
Trigger - Turn on Portal UM <gen>
Trigger - Turn off (This trigger)
Else - Actions
Portal UM
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Unit - Move Portal_target instantly to ((Position of Portal_target) offset by p_offset towards (Facing of Portal_target) degrees)
Animation - Change Portal_target flying height to ((Current flying height of Portal_target) + p_unit_h) at 2500.00
Set p_offset = (p_offset x 0.95)
Set p_unit_h = (p_unit_h - 0.50)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
p_offset Less than or equal to 1.00
p_unit_h Less than 5.00
Then - Actions
Animation - Change Portal_target flying height to 0.00 at 1000.00
Unit Group - Pick every unit in (Units of type ) and do (Actions)
Loop - Actions
Unit - Make (Picked unit) face Bw_caster over 0.01 seconds
//
//
//You need to put it inside the Loop - right now, its not doing anything. Also, it isn't actually doing anything anyways, as its returning null because 'Units of Type .,..' does not exist.
//
//Example:
Unit Group - Pick every unit in (Units of type ) and do (Actions)
Loop - Actions
Unit - Make (Picked unit) face Bw_caster over 0.01 seconds
==============================
For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions
Never use (Integer A) - always use a variable as its more efficient.
Also, 210 is too high for a loop, try to keep it below 40
For each (Integer A) from 1 to 210, do (Actions)
Loop - Actions
==============================
Set Bw_loc = (Position of Bw_caster)
I do not see you destroying this location. - This is called a memory leak, and memory leaks cause lagg. Destroy it via:
Custom script: call RemoveLocation(udg_Bw_loc)
Put that at the end of the trigger, or loop, and it'll remove the memory leak.
Also, (Point (YourVariable) offset by XXX) leaks, unless set to another variable, and then destroying it.
Set bsl_angle = (Angle from bsl_loc to (Target point of ability being cast))
//Leaks
==============================
Wait 0.60 seconds
In most cases, waits make your spells non-MUI, unless you're using locals... but then it makes the spell inefficient. Waits are bad, try to avoid them. I suggest you use a integer and a loop that increases the integer until it reaches your wanted delay.
==============================
Time - Every 0.01 seconds of game time
.01 is too fast. The most efficient loop is .03, and you shouldn't see any real difference visually.
==============================
Unit Group - Pick every unit in (Units within 512.00 of (Center of (Playable map area))) and do (Actions)
Loop - Actions
//
//This leaks, unless you're using a variable... to avoid it, do this:
//
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within 512.00 of (Center of (Playable map area))) and do (Actions)
Loop - Actions
==============================
Your should aim for naming variables to be self explanatory, or provide documentation on what it does. Many of your variables are three letters like 'tsd', which is hard to understand when another configures the ability.
==============================
When dealing with (Last Created Unit) or (Picked Unit), or really any (____), if you use it more than twice, it is usually more efficient to set it to a variable and substitute the (_____) with the variable.
==============================
I highly suggest that you do not use:
Player - Player 1 (Red) Presses the (KEY)
Mostly because it'll conflict with systems, such as a movement system. Some entire games are based upon these systems, and this could very easily conflict with it.
-you set some variables to 0 at the spell cast trigger, if you recycle them you should better do it at the end;
-you should store a level of ability in a temp variable;
-you should really create more variables to make the spell a lot easier to configure;
-you leak some unitgroups and some set to variables, those that are destroyed right after they are used you could replace the variable where you set the group with the custom script: set bj_wantDestroyGroup = true - it destroys the group after it's no longer used;
-haha, you create some dummies for owner of player 1 red lol;
-some triggers only work for player 1 red;
-hmm you also lock camera for some reason...;
-in unit groups you also pick structures and dead units!;
There's still a lot of things that need to be set, but to much triggers. I suggest you to upload first only one spell, so then people will concentrate only on one thing and it will be easier to help you... Your spells aren't MUI and some of them leak (well almost all but you kinda destroy some leaks), so i suggest you to read some tutorials: http://www.hiveworkshop.com/forums/...279/multi-instancible-gui-spell-making-34393/ http://www.hiveworkshop.com/forums/triggers-scripts-269/things-leak-35124/
But the spells look kinda cool, can't test them though...=(
Well, hope you'll improve them!
And this was said but please remove the imports it's against the rules!
Won't rate it but lets give you some rep for start! Just don't give up!
Just by looking at these, I can tell they're not MUI (Multi Unit Instanceable)
Those links Archangel gave you are VERY useful for beginners.
Hashtables are pretty easy to work with for GUIers
But, you do have the option to skip GUI and go straight to JASS if you like ^^ (Just Another Scripting Syntax)
"Chain" Lightning is by far the coolest visual from this spellpack. One problem is that it seems to have infinite range. It should probably stop after a while if it doesn't hit anything.
I'll just comment on Trigger A
- Createunit for Player1 is too specific, make it Triggering player
- I really dont see the point of bw_int (well you indexed it but its the wrong way)
- Leak >>> Bw_loc offset by 100.00
- The picked unit should inside the unit group you were pickin
- Leak >>> Position of bw_dummy_array and you have to destroy the lightning as well
- You're spamming IntegerA & B, better use integer variable
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.