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

Esdo's "Plasma Grenade" spell v1.0c

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: ILH
Plasma Grenade:

Use the spell to throw the grenade. The grenade has an included bio-magnet, so that it will stick to the first unit it touches. The grenade won't stick to terrain, and if a unit walks over it when its on the ground, the grenade will stick to that unit. Takes 4.5 seconds to explode and, upon explosion, deals high health and mana damage to all nearby units.

Full GUI, MUI, Lagless, Leakless.

Fully configurable (PlasmaGrenade_Config trigger).

I hope you enjoy.

CODE:

  • PlasmaGrenadeConfig
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set PlasmaGrenade_Damage = 300.00
      • Set PlasmaGrenade_DmgLvL = 75.00
      • -------- DmG and EMP LvLs are the extra damage done for every level of the skill. --------
      • Set PlasmaGrenade_EMP = 300.00
      • Set PlasmaGrenade_EMPLvL = 75.00
      • -------- EMP is the MANA DAMAGE, or the mana taken out of units affected by the explosion --------
      • Set PlasmaGrenade_Fuse = 4.50


  • PlasmaGrenadeArc
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Plasma Grenade
    • Actions
      • Custom script: local real Hyp
      • Custom script: local real SINE
      • Custom script: local real COSINE
      • Custom script: local real End_Z
      • Custom script: local real Distance
      • Custom script: local real Height
      • Set PlasmaGrenade_Index = (PlasmaGrenade_Index + 1)
      • Set PlasmaGrenade_Timer[PlasmaGrenade_Index] = 4.50
      • Set PlasmaGrenade_Caster[PlasmaGrenade_Index] = (Triggering unit)
      • Set PlasmaGrenade_CasterPoint = (Position of PlasmaGrenade_Caster[PlasmaGrenade_Index])
      • Unit - Create 1 Grenade for (Owner of PlasmaGrenade_Caster[PlasmaGrenade_Index]) at PlasmaGrenade_CasterPoint facing Default building facing degrees
      • Set PlasmaGrenade_Bomb[PlasmaGrenade_Index] = (Last created unit)
      • Set PlasmaGrenade_DidStick[PlasmaGrenade_Index] = False
      • Trigger - Turn on PlasmaGrenadeBlast <gen>
      • Trigger - Turn on PlasmaGrenadeFollow <gen>
      • Trigger - Turn on PlasmaGrenadeStick <gen>
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BS_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on PlasmaGrenadeArcLoop <gen>
        • Else - Actions
      • Set BS_Point[0] = (Position of (Triggering unit))
      • Set BS_Point[1] = (Target point of ability being cast)
      • Set BS_Point[2] = (BS_Point[0] offset by 70.00 towards (Angle from BS_Point[0] to BS_Point[1]) degrees)
      • Set BS_MissileCount = 1
      • For each (Integer BS_MC) from 1 to BS_MissileCount, do (Actions)
        • Loop - Actions
          • Set BS_Skip = (BS_Skip + 1)
          • Set BS_Times = (BS_Times + 1)
          • Set BS_On[BS_Times] = True
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_Hero[BS_Times] = (Triggering unit)
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_Angle[BS_Times] = (Angle from BS_Point[0] to BS_Point[1])
          • Set BS_MaxDistance[BS_Times] = (Distance between BS_Point[1] and BS_Point[2])
          • Set BS_DistanceToTravel[BS_Times] = BS_MaxDistance[BS_Times]
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Height of Arc is a fourth of range. if you will set this to a number and not a portion of distance, then missile will fly too high --------
          • -------- at short distances and this will create a feel like it moves faster than usual. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_ArcHeight[BS_Times] = (BS_MaxDistance[BS_Times] x 0.25)
          • Set BS_Level[BS_Times] = (Level of Unknown (A001) for (Triggering unit))
          • Set BS_Damage[BS_Times] = ((Random real number between 150.00 and 200.00) + (50.00 x (Real(BS_Level[BS_Times]))))
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Change Area of Effect variable to true, if you want missile to hit multiple targets. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_AoE[BS_Times] = False
          • Set BS_AoE_Radius[BS_Times] = 150.00
          • Set BS_Range[BS_Times] = 1500.00
          • Set BS_Colision[BS_Times] = 75.00
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Change 60 to unit "height" (not flying) to make caster aim in head. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set udg_BS_StartZ[udg_BS_Times] = GetLocationZ(udg_BS_Point[0]) + 55
          • Custom script: set End_Z = GetLocationZ(udg_BS_Point[1])
          • Custom script: set Distance = DistanceBetweenPoints(udg_BS_Point[2],udg_BS_Point[1])
          • Custom script: if udg_BS_StartZ[udg_BS_Times] >= End_Z then
          • Custom script: set udg_BS_Up[udg_BS_Times] = false
          • Custom script: set End_Z = ( End_Z + GetRandomReal(40.00, 85.00) )
          • Custom script: set Height = ( udg_BS_StartZ[udg_BS_Times] - End_Z )
          • Custom script: else
          • Custom script: set udg_BS_Up[udg_BS_Times] = true
          • Custom script: set End_Z = ( End_Z + GetRandomReal(60.00, 85.00) )
          • Custom script: set Height = ( End_Z - udg_BS_StartZ[udg_BS_Times] )
          • Custom script: endif
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Lets check if missile fly up or down. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set Hyp = SquareRoot(( ( Distance * Distance ) + ( Height * Height ) ))
          • Custom script: set SINE = ( Distance / Hyp )
          • Custom script: set COSINE = ( Height / Hyp )
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- HYPSpeed is hypotinuse movement per time interval. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_HYPSpeed[BS_Times] = 40.00
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Because we know hypotinuse speed, SINE, COSINE, calculation of Height Speed and distance speed will calculate now. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set udg_BS_Speed[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * SINE )
          • Custom script: set udg_BS_SpeedZ[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * COSINE )
          • Set BS_Missile[BS_Times] = PlasmaGrenade_Bomb[PlasmaGrenade_Index]
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- In Object Data dummy unit have no movement type. Like that it will not change height when get close to trees and nautrial buildings. --------
          • -------- But it must to change height. Adding and Removing Storm Crown ability will help. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Unit - Add Storm Crow Form to (Last created unit)
          • Unit - Remove Storm Crow Form from (Last created unit)
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Cleaning leaks --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation(udg_PlasmaGrenade_CasterPoint)
      • Custom script: call RemoveLocation ( udg_BS_Point[0] )
      • Custom script: call RemoveLocation ( udg_BS_Point[1] )
      • Custom script: call RemoveLocation ( udg_BS_Point[2] )



  • PlasmaGrenadeStick
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PlasmaGrenade_LoopInteger) from 1 to PlasmaGrenade_Index, do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: 1
          • Set PlasmaGrenade_Timer[PlasmaGrenade_LoopInteger] = (PlasmaGrenade_Timer[PlasmaGrenade_LoopInteger] - 0.01)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PlasmaGrenade_Timer[PlasmaGrenade_LoopInteger] Less than or equal to 4.40
              • PlasmaGrenade_DidStick[PlasmaGrenade_LoopInteger] Equal to False
            • Then - Actions
              • Set PlasmaGrenade_BombPoint = (Position of PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger])
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 80.00 of PlasmaGrenade_BombPoint matching (((Matching unit) is alive) Equal to True)) and do (Actions)
                • Loop - Actions
                  • Set PlasmaGrenade_DidStick[PlasmaGrenade_LoopInteger] = True
                  • Set PlasmaGrenade_StickUnit[PlasmaGrenade_LoopInteger] = (Picked unit)
              • Custom script: call RemoveLocation(udg_PlasmaGrenade_BombPoint)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PlasmaGrenade_Index Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions



  • PlasmaGrenadeFollow
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PlasmaGrenade_LoopInteger) from 1 to PlasmaGrenade_Index, do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: 2
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PlasmaGrenade_DidStick[PlasmaGrenade_LoopInteger] Equal to True
            • Then - Actions
              • Set PlasmaGrenade_StickPoint = (Position of PlasmaGrenade_StickUnit[PlasmaGrenade_LoopInteger])
              • Unit - Move PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger] instantly to PlasmaGrenade_StickPoint
              • Custom script: call RemoveLocation(udg_PlasmaGrenade_StickPoint)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PlasmaGrenade_Index Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions




  • PlasmaGrenadeBlast
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PlasmaGrenade_LoopInteger) from 1 to PlasmaGrenade_Index, do (Actions)
        • Loop - Actions
          • Game - Display to (All players) the text: 3
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PlasmaGrenade_Timer[PlasmaGrenade_LoopInteger] Less than or equal to 0.00
              • (PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger] is alive) Equal to True
            • Then - Actions
              • Set PlasmaGrenade_BombPoint = (Position of PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger])
              • Unit - Kill PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger]
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 300.00 of PlasmaGrenade_BombPoint) and do (Actions)
                • Loop - Actions
                  • Unit - Cause PlasmaGrenade_Caster[PlasmaGrenade_LoopInteger] to damage (Picked unit), dealing 500.00 damage of attack type Spells and damage type Normal
                  • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - 500.00)
              • Set PlasmaGrenade_Timer[PlasmaGrenade_LoopInteger] = PlasmaGrenade_Timer[PlasmaGrenade_Index]
              • Set PlasmaGrenade_StickUnit[PlasmaGrenade_LoopInteger] = PlasmaGrenade_StickUnit[PlasmaGrenade_Index]
              • Set PlasmaGrenade_Caster[PlasmaGrenade_LoopInteger] = PlasmaGrenade_Caster[PlasmaGrenade_Index]
              • Set PlasmaGrenade_Bomb[PlasmaGrenade_LoopInteger] = PlasmaGrenade_Bomb[PlasmaGrenade_Index]
              • Set PlasmaGrenade_DidStick[PlasmaGrenade_LoopInteger] = PlasmaGrenade_DidStick[PlasmaGrenade_Index]
              • Set PlasmaGrenade_LoopInteger = (PlasmaGrenade_LoopInteger - 1)
              • Set PlasmaGrenade_Index = (PlasmaGrenade_Index - 1)
              • Custom script: call RemoveLocation(udg_PlasmaGrenade_BombPoint)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PlasmaGrenade_Index Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions





  • PlasmaGrenadeArcLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer BS) from 1 to BS_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • BS_On[BS] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BS_Range[BS] Less than or equal to 0.00
                • Then - Actions
                  • Set BS_On[BS] = False
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- Starting Recycling Indexes --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BS Less than BS_Times
                    • Then - Actions
                      • Set BS_On[BS] = BS_On[BS_Times]
                      • Set BS_On[BS] = BS_On[BS_Times]
                      • Set BS_Missile[BS] = BS_Missile[BS_Times]
                      • Set BS_Hero[BS] = BS_Hero[BS_Times]
                      • Set BS_Range[BS] = BS_Range[BS_Times]
                      • Set BS_Speed[BS] = BS_Speed[BS_Times]
                      • Set BS_HYPSpeed[BS] = BS_HYPSpeed[BS_Times]
                      • Set BS_SpeedZ[BS] = BS_SpeedZ[BS_Times]
                      • Set BS_StartZ[BS] = BS_StartZ[BS_Times]
                      • Set BS_Damage[BS] = BS_Damage[BS_Times]
                      • Set BS_Angle[BS] = BS_Angle[BS_Times]
                      • Set BS_Colision[BS] = BS_Colision[BS_Times]
                      • Set BS_Level[BS] = BS_Level[BS_Times]
                      • Set BS_MaxDistance[BS] = BS_MaxDistance[BS_Times]
                      • Set BS_DistanceToTravel[BS] = BS_DistanceToTravel[BS_Times]
                      • Set BS_Parabola[BS] = BS_Parabola[BS_Times]
                      • Set BS_ArcHeight[BS] = BS_ArcHeight[BS_Times]
                      • Set BS_AoE[BS] = BS_AoE[BS_Times]
                      • Set BS_Up[BS] = BS_Up[BS_Times]
                    • Else - Actions
                  • Set BS = (BS - 1)
                  • Set BS_Times = (BS_Times - 1)
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- End of Recycling Indexes --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • Set BS_Skip = (BS_Skip - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BS_Skip Equal to 0
                    • Then - Actions
                      • Set BS_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set BS_Point[3] = (Position of BS_Missile[BS])
                  • Set BS_Point[4] = (BS_Point[3] offset by BS_Speed[BS] towards BS_Angle[BS] degrees)
                  • Set BS_DistanceToTravel[BS] = (BS_DistanceToTravel[BS] - BS_Speed[BS])
                  • Unit - Move BS_Missile[BS] instantly to BS_Point[4]
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- If missile comes to black areas around map, than range seted to zero. --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains BS_Point[4]) Equal to False
                    • Then - Actions
                      • Set BS_Range[BS] = 0.00
                    • Else - Actions
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Missile traveled some range. Lets set remaining range. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Set BS_Range[BS] = (BS_Range[BS] - BS_HYPSpeed[BS])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Need to check height of point where missile traveled to calculate debug height and make missile movement "real" --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Custom script: set udg_BS_DebugZ[udg_BS] = GetLocationZ(udg_BS_Point[4])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Height of missile will change at diferent way when it fly up/down. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • BS_Up[BS] Equal to False
                        • Then - Actions
                          • Set BS_StartZ[BS] = (BS_StartZ[BS] - BS_SpeedZ[BS])
                        • Else - Actions
                          • Set BS_StartZ[BS] = (BS_StartZ[BS] + BS_SpeedZ[BS])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Calculation of height that missile must have. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Set BS_Parabola[BS] = (((4.00 x BS_ArcHeight[BS]) / BS_MaxDistance[BS]) x ((BS_MaxDistance[BS] - BS_DistanceToTravel[BS]) x (BS_DistanceToTravel[BS] / BS_MaxDistance[BS])))
                      • Set BS_Debug[BS] = ((BS_StartZ[BS] - BS_DebugZ[BS]) + BS_Parabola[BS])
                      • Animation - Change BS_Missile[BS] flying height to BS_Debug[BS] at 0.00
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Missile flying height is zero and it hit the ground. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • BS_Debug[BS] Less than or equal to 0.00
                        • Then - Actions
                          • Set BS_Range[BS] = 0.00
                        • Else - Actions
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Not zero yet? Pick units to damage someone. --------
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • Set BS_Group[BS] = (Units within BS_Colision[BS] of BS_Point[4] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is Mechanical) Equal to False)) and (((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is dead) Equal to Fa
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Someone is picked, then deal damage. --------
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Number of units in BS_Group[BS]) Greater than 0
                            • Then - Actions
                              • Unit Group - Pick every unit in (Random 1 units from BS_Group[BS]) and do (Actions)
                                • Loop - Actions
                                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                  • -------- I have seted height of unit to 85. It Must be diferent for units of diferent type. --------
                                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • And - All (Conditions) are true
                                        • Conditions
                                          • BS_Debug[BS] Greater than or equal to 0.00
                                          • BS_Debug[BS] Less than or equal to 85.00
                                    • Then - Actions
                                      • Set BS_Range[BS] = 0.00
                                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                      • -------- 75 to 85 is height of head of unit. Head may be diferent for all unit types. --------
                                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • And - All (Conditions) are true
                                            • Conditions
                                              • BS_Debug[BS] Greater than or equal to 75.00
                                              • BS_Debug[BS] Less than or equal to 85.00
                                        • Then - Actions
                                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                          • -------- Ten x damage at headshot! --------
                                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                          • Floating Text - Create floating text that reads HEADSHOT! at BS_Point[3] with Z offset 120.00, using font size 15.00, color (100.00%, 50.00%, 50.00%), and 0.00% transparency
                                          • Floating Text - Set the velocity of (Last created floating text) to 100.00 towards BS_Angle[BS] degrees
                                          • Floating Text - Change (Last created floating text): Disable permanence
                                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                                          • Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
                                        • Else - Actions
                                    • Else - Actions
                            • Else - Actions
                          • Custom script: call DestroyGroup ( udg_BS_Group[udg_BS] )
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- Kill leaks. --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • Custom script: call RemoveLocation ( udg_BS_Point[3] )
                  • Custom script: call RemoveLocation ( udg_BS_Point[4] )
            • Else - Actions


VERSION HISTORY:

Update 1.0c - Added configuration trigger and 4 levels to the spell. Fixed code.
Update 1.0b - Uploaded.


CREDITS:

esdo - Idea of the skill, triggering.
NTWar (at epicwar.com) - Bullet Arc system.


Keywords:
grenade, bomb, boom, explosion, halo, plasma, stick, glue, blue bomb, stick bomb, plasma grenade, blue, skillshot, shot.
Contents

Just another Warcraft III map (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. 14:34, 12th Jun 2014 BPower: The configuration trigger is poor, you should also support various ability leves, explosion aoe, .. Stuff like "last created unit" or "TriggeringUnit" should...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

14:34, 12th Jun 2014
BPower:
The configuration trigger is poor, you should also support various ability leves, explosion aoe, ..
Stuff like "last created unit" or "TriggeringUnit" should be store into a variable if used more than once.
Remove the text messages.
 
Level 5
Joined
Oct 2, 2013
Messages
95
Your tags are broken.

You need to add a config trigger. So people can easily change things like damage / time / effects / whatever else.

Anything used twice or more should be stored. Example: Picked unit.

This spell also looks very similar to your other grenade spell.


Its very similar because its also a grenade and uses the same arc system. But that's it. The idea behind this one is to be a "skillshot" spell that, if you miss you target, you can get yourself, your allies or no one damaged.

I'm gonna do the efficiency thing.

Also, i dunno whats up with the tags. Tried to update the file a few times but nothing seems to fix em.
 
Level 5
Joined
Oct 2, 2013
Messages
95
Won't it cause lag?

I dunno. But actually, that trigg will only get active while there's a live grenade on the map.

I think setting the period to bigger values will allow fast units to cross the path of a thrown grenade without it sticking to them.

Or is there any other method?

Oh and I fixed the tags.
 
Level 5
Joined
Oct 2, 2013
Messages
95
you should use 0.03 timer not 0.01
Units are not that fast. If you think they are then increase the range at which it checks to see if it sticks to a unit. Also you need a config trigger.

Well, I just tested the stick trigger with a 0.03 timer. It skips units very often (especially when they are very close to the caster), so, not practical.
 
Top