• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Diablo 2 "little Spellpack" v1.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Diablo 2 "little Spellpack"

Simple line spells, inspirated by Diablo 2. Spells from my Projekt, Diablo Vortex.
all spells are in GUI, using allmost the same kind of spell making here.. ;D

all spells are simple.. but maybe any1 need them :)


Spells:

#Fire Ball
--A SImple Fireball Spell, has a chance to knockback units in AoE.
  • Fireball init
    • Events
      • Unit - A unit Starts the effect of ability
    • Conditions
      • (Ability being cast) Equal to (==) Fireball
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'If' conditions
          • FB_Register_SIZE equal (==) 0
        • 'THEN' actions
          • Trigger - Turn on Fire ball loop <gen>
        • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FB_Register_SIZE = (FB_Register_SIZE + 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • FB_Register_SIZE greater than (>) FB_Register_MAX
          • 'THEN' actions
            • Set FB_Register [FB_Register_SIZE] = FB_Register_SIZE
            • Set FB_Register_MAX = FB_Register_SIZE
          • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FB_INT = FB_Register [FB_Register_SIZE]
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FB_Ability_point1 = (Position of (Triggering unit))
      • Set FB_Ability_point2 = (Target point of ability being cast)
      • Set FB_Angle [FB_INT] = (Angle from FB_Ability_point1 to FB_Ability_point2)
      • Set FB_CasterUnit [FB_INT] = (Triggering unit)
      • Set FB_CastedAbility [FB_INT] = (Ability being cast)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- UNIT / MISSILE --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Unit - Create 1 Fireball for (Owner of FB_CasterUnit [FB_INT]) at FB_Ability_point1 facing FB_Angle [FB_INT] degrees
      • Unit - Turn collision for (Last created unit) from
      • Unit - Move (Last created unit) instantly to FB_Ability_point1, facing FB_Angle [FB_INT] degrees
      • Set FB_MissleUNIT [FB_INT] = (Last created unit)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • CONFIG -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FB_WhatDamage [FB_INT] = (100 x (Level of FB_CastedAbility [FB_INT] for FB_CasterUnit [FB_INT]))
      • Set FB_TravelSpeed &#8203;&#8203;[FB_INT] = 17.00
      • Set FB_MaxRange [FB_INT] = 1500.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FB_AlreadyTraveled [FB_INT] = 0.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • LEAK CLEAN -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Custom script: call RemoveLocation (udg_FB_Ability_point1)
      • Custom script: call RemoveLocation (udg_FB_Ability_point2)
  • Fire ball loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Thurs Multiple ActionsFor each (Integer FB_LOOP) from 1 to FB_Register_SIZE, do (Actions)
        • Grinding - Actions
          • -------- This let everything look cleaner. --------
          • Set FB_INT = FB_Register [FB_LOOP]
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
          • -------- Condition ... --------
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • 'If' conditions
                • FB_AlreadyTraveled [FB_INT] Less than (<) FB_MaxRange [FB_INT]
              • 'THEN' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Actions -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set FB_Ability_point1 = (Position of FB_MissleUNIT [FB_INT])
                • Set FB_Ability_point2 = (FB_Ability_point1 offset by FB_TravelSpeed &#8203;&#8203;[FB_INT] towards FB_Angle [FB_INT] degrees)
                • Set FB_AlreadyTraveled [FB_INT] = (FB_AlreadyTraveled [FB_INT] + FB_TravelSpeed &#8203;&#8203;[FB_INT])
                • Unit - Move FB_MissleUNIT [FB_INT] instantly to FB_Ability_point2, facing FB_Angle [FB_INT] degrees
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • -------- -------- Action
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 140.00 of FB_Ability_point2) and do (Actions)
                  • Grinding - Actions
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                    • -------- -------- CONDITON
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'If' conditions
                          • Multiple condition sand - All (Conditions) are true
                            • Conditions
                              • ((Picked unit) belongs to an enemy of (Owner of FB_CasterUnit [FB_INT])) equal (==) True
                              • ((Picked unit) is alive) Equal (==) True
                              • ((Picked unit) is Magic Immune) Equal To (! =) True
                              • ((Picked unit) is A ZBW building) equal to (! =) True
                        • 'THEN' actions
                          • Unit - Cause FB_CasterUnit [FB_INT] to damage (Picked unit), dealing (Real (FB_WhatDamage [FB_INT])) damage of attack type Spells and damage type Normal
                          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities \ Spells \ Other \ Incinerate \ FireLordDeathExplode.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set TEMPpoint = (Position of (Picked unit))
                          • Custom script: set bj_wantDestroyGroup = true
                          • Unit Group - Pick every unit in (Units within 200.00 of TEMPpoint) and do (Actions)
                            • Grinding - Actions
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • -------- -------- CONDITON
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • 'If' conditions
                                    • Multiple condition sand - All (Conditions) are true
                                      • Conditions
                                        • ((Picked unit) belongs to an enemy of (Owner of FB_CasterUnit [FB_INT])) equal (==) True
                                        • ((Picked unit) is alive) Equal (==) True
                                        • ((Picked unit) is Magic Immune) Equal To (! =) True
                                        • ((Picked unit) is A ZBW building) equal to (! =) True
                                  • 'THEN' actions
                                    • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                      • 'If' conditions
                                        • (Random integer number between 1 and 100) Less than or equal (<=) 25
                                      • 'THEN' actions
                                        • Set KBA_Caster = FB_CasterUnit [FB_INT]
                                        • Set KBA_TargetUnit = (Picked unit)
                                        • Set KBA_StartingPosition = EA_Ability_point2
                                        • Set KBA_Level = 1
                                        • Set KBA_Speed &#8203;&#8203;= 7.00
                                        • Set KBA_DistancePerLevel = 150.00
                                        • Set KBA_SpecialEffects [1] = Abilities \ Spells \ Other \ BreathOfFire \ BreathOfFireDamage.mdl
                                        • Set KBA_SpecialEffects [2] = Abilities \ Weapons \ RedDragonBreath \ RedDragonMissile.mdl
                                        • Set KBA_DestroyTrees = True
                                        • Trigger - Run Cast A Knock Back <gen> (checking conditions)
                                      • 'ELSE' actions
                                  • 'ELSE' actions
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Deactivate -------- -------- skill
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set FB_AlreadyTraveled [FB_INT] = FB_MaxRange [FB_INT]
                        • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • LEAK CLEAN -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: call RemoveLocation (udg_TempPoint)
                • Custom script: call RemoveLocation (udg_FB_Ability_point1)
                • Custom script: call RemoveLocation (udg_FB_Ability_point2)
              • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Unit - Kill FB_MissleUNIT [FB_INT]
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set FB_Register [FB_LOOP] = FB_Register [FB_Register_SIZE]
                • Set FB_Register [FB_Register_SIZE] = FB_INT
                • Set FB_Register_SIZE = (FB_Register_SIZE - 1)
                • Set FB_LOOP = (FB_LOOP - 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- Turn off the trigger. --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • FB_Register_SIZE equal (==) 0
          • 'THEN' actions
            • Trigger - Turn off (This trigger)
          • 'ELSE' actions
#Lightning Fury
--Creates a powerful lightning bolt that releases multiple lightning bolts from target .
  • Lightning Fury init
    • Events
      • Unit - A unit Starts the effect of ability
    • Conditions
      • (Ability being cast) Equal to (==) Lightning Fury
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'If' conditions
          • LF_Register_SIZE equal (==) 0
        • 'THEN' actions
          • Trigger - Turn on Lightning fury loop <gen>
        • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set LF_Register_SIZE = (LF_Register_SIZE + 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • LF_Register_SIZE greater than (>) LF_Register_MAX
          • 'THEN' actions
            • Set LF_Register [LF_Register_SIZE] = LF_Register_SIZE
            • Set LF_Register_MAX = LF_Register_SIZE
          • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set LF_INT = LF_Register [LF_Register_SIZE]
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set LF_Ability_point1 = (Position of (Triggering unit))
      • Set LF_Ability_point2 = (Target point of ability being cast)
      • Set LF_Angle [LF_INT] = (Angle from LF_Ability_point1 to LF_Ability_point2)
      • Set LF_CasterUnit [LF_INT] = (Triggering unit)
      • Set LF_CastedAbility [LF_INT] = (Ability being cast)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- UNIT / MISSILE --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Unit - Create 1 Lightning for (Owner of LF_CasterUnit [LF_INT]) at LF_Ability_point1 facing LF_Angle [LF_INT] degrees
      • Unit - Turn collision for (Last created unit) from
      • Unit - Move (Last created unit) instantly to LF_Ability_point1, facing LF_Angle [LF_INT] degrees
      • Set LF_MissleUNIT [LF_INT] = (Last created unit)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • CONFIG -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set LF_TravelSpeed &#8203;&#8203;[LF_INT] = 17.00
      • Set LF_MaxRange [LF_INT] = 1500.00
      • Set LF_WhatDamage [LF_INT] = (90 x (Level of EA_CastedAbility [EA_INT] for EA_CasterUnit [EA_INT]))
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set LF_AlreadyTraveled [LF_INT] = 0.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • LEAK CLEAN -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Custom script: call RemoveLocation (udg_LF_Ability_point1)
      • Custom script: call RemoveLocation (udg_LF_Ability_point2)
  • Lightning fury loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Thurs Multiple ActionsFor each (Integer LF_LOOP) from 1 to LF_Register_SIZE, do (Actions)
        • Grinding - Actions
          • -------- This let everything look cleaner. --------
          • Set LF_INT = LF_Register [LF_LOOP]
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
          • -------- Condition ... --------
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • 'If' conditions
                • LF_AlreadyTraveled [LF_INT] Less than (<) LF_MaxRange [LF_INT]
              • 'THEN' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Actions -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set LF_Ability_point1 = (Position of LF_MissleUNIT [LF_INT])
                • Set LF_Ability_point2 = (LF_Ability_point1 offset by LF_TravelSpeed &#8203;&#8203;[LF_INT] towards LF_Angle [LF_INT] degrees)
                • Set LF_AlreadyTraveled [LF_INT] = (LF_AlreadyTraveled [LF_INT] + LF_TravelSpeed &#8203;&#8203;[LF_INT])
                • Unit - Move LF_MissleUNIT [LF_INT] instantly to LF_Ability_point2, facing LF_Angle [LF_INT] degrees
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • -------- -------- Action
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 140.00 of LF_Ability_point2) and do (Actions)
                  • Grinding - Actions
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                    • -------- -------- CONDITON
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'If' conditions
                          • Multiple condition sand - All (Conditions) are true
                            • Conditions
                              • ((Picked unit) belongs to an enemy of (Owner of LF_CasterUnit [LF_INT])) equal (==) True
                              • ((Picked unit) is alive) Equal (==) True
                              • ((Picked unit) is Magic Immune) Equal To (! =) True
                              • ((Picked unit) is a building) equal to (! =) True
                        • 'THEN' actions
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • -------- -------- DAMAGE
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Unit - Cause LF_CasterUnit [LF_INT] to damage (Picked unit), dealing (Real (LF_WhatDamage [LF_INT])) damage of attack type Spells and damage type Normal
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities \ Weapons \ Bolt \ BoltImpact.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set TEMPpoint = (Position of (Picked unit))
                          • Custom script: set bj_wantDestroyGroup = true
                          • Unit Group - Pick every unit in (Units within 650.00 of TEMPpoint) and do (Actions)
                            • Grinding - Actions
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • -------- -------- CONDITON
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • 'If' conditions
                                    • Multiple condition sand - All (Conditions) are true
                                      • Conditions
                                        • ((Picked unit) belongs to an enemy of (Owner of LF_CasterUnit [LF_INT])) equal (==) True
                                        • ((Picked unit) is alive) Equal (==) True
                                        • ((Picked unit) is Magic Immune) Equal To (! =) True
                                        • ((Picked unit) is a building) equal to (! =) True
                                  • 'THEN' actions
                                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                    • -------- Here we make a dummy cast at units in range --------
                                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                    • Unit - Create 1 Dummy for Universal (Owner of LF_CasterUnit [LF_INT]) at LF_Ability_point2 requirement for buildings facing orientation (270.0) degrees
                                    • Unit - Add a 1:50 second default expiration timer to (Last created unit)
                                    • Unit - Add lightning fury (bolts) DUMMY to (Last created unit)
                                    • Unit - Set level of lightning fury (bolts) DUMMY for (Last created unit) to (Level of Lightning Fury for LF_CasterUnit [LF_INT])
                                    • Set TEMPpoint = (Position of (Picked unit))
                                    • Unit - Order (Last created unit) to Neutral - frost breath TEMPpoint
                                    • Custom script: call RemoveLocation (udg_TempPoint)
                                  • 'ELSE' actions
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Deactivate -------- -------- skill
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set LF_AlreadyTraveled [LF_INT] = LF_MaxRange [LF_INT]
                        • 'ELSE' actions
                • Custom script: call RemoveLocation (udg_TempPoint)
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • LEAK CLEAN -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: call RemoveLocation (udg_LF_Ability_point1)
                • Custom script: call RemoveLocation (udg_LF_Ability_point2)
              • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Unit - Kill LF_MissleUNIT [LF_INT]
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set LF_Register [LF_LOOP] = LF_Register [LF_Register_SIZE]
                • Set LF_Register [LF_Register_SIZE] = LF_INT
                • Set LF_Register_SIZE = (LF_Register_SIZE - 1)
                • Set LF_LOOP = (LF_LOOP - 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- Turn off the trigger. --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • LF_Register_SIZE equal (==) 0
          • 'THEN' actions
            • Trigger - Turn off (This trigger)
          • 'ELSE' actions
look at 0.50 seconds.

#Exploding Arrow
--Adds fire damage to normal arrows and explodes on impact. (AoE damage)
  • Exploding arrow init
    • Events
      • Unit - A unit Starts the effect of ability
    • Conditions
      • (Ability being cast) Equal to (==) Exploding Arrow
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'If' conditions
          • EA_Register_SIZE equal (==) 0
        • 'THEN' actions
          • Trigger - Turn on exploding arrow loop <gen>
        • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set EA_Register_SIZE = (EA_Register_SIZE + 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • EA_Register_SIZE greater than (>) EA_Register_MAX
          • 'THEN' actions
            • Set EA_Register [EA_Register_SIZE] = EA_Register_SIZE
            • Set EA_Register_MAX = EA_Register_SIZE
          • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set EA_INT = EA_Register [EA_Register_SIZE]
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set EA_Ability_point1 = (Position of (Triggering unit))
      • Set EA_Ability_point2 = (Target point of ability being cast)
      • Set EA_Angle [EA_INT] = (Angle from EA_Ability_point1 to EA_Ability_point2)
      • Set EA_CasterUnit [EA_INT] = (Triggering unit)
      • Set EA_CastedAbility [EA_INT] = (Ability being cast)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- UNIT / MISSILE --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Unit - Create 1 Exploding Arrow for (Owner of EA_CasterUnit [EA_INT]) at EA_Ability_point1 facing EA_Angle [EA_INT] degrees
      • Unit - Turn collision for (Last created unit) from
      • Unit - Move (Last created unit) instantly to EA_Ability_point1, facing EA_Angle [EA_INT] degrees
      • Set EA_MissleUNIT [EA_INT] = (Last created unit)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • CONFIG -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set EA_TravelSpeed &#8203;&#8203;[EA_INT] = 17.00
      • Set EA_MaxRange [EA_INT] = 1500.00
      • Set EA_WhatDamage [EA_INT] = (50 x (Level of EA_CastedAbility [EA_INT] for EA_CasterUnit [EA_INT]))
      • Set EA_WhatDamage2 [EA_INT] = (30 x (Level of EA_CastedAbility [EA_INT] for EA_CasterUnit [EA_INT]))
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set EA_AlreadyTraveled [EA_INT] = 0.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • LEAK CLEAN -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Custom script: call RemoveLocation (udg_EA_Ability_point1)
      • Custom script: call RemoveLocation (udg_EA_Ability_point2)
  • exploding arrow loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Thurs Multiple ActionsFor each (Integer EA_LOOP) from 1 to EA_Register_SIZE, do (Actions)
        • Grinding - Actions
          • -------- This let everything look cleaner. --------
          • Set EA_INT = EA_Register [EA_LOOP]
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
          • -------- Condition ... --------
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • 'If' conditions
                • EA_AlreadyTraveled [EA_INT] Less than (<) EA_MaxRange [EA_INT]
              • 'THEN' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Actions -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set EA_Ability_point1 = (Position of EA_MissleUNIT [EA_INT])
                • Set EA_Ability_point2 = (EA_Ability_point1 offset by EA_TravelSpeed &#8203;&#8203;[EA_INT] towards EA_Angle [EA_INT] degrees)
                • Set EA_AlreadyTraveled [EA_INT] = (EA_AlreadyTraveled [EA_INT] + EA_TravelSpeed &#8203;&#8203;[EA_INT])
                • Unit - Move EA_MissleUNIT [EA_INT] instantly to EA_Ability_point2, facing EA_Angle [EA_INT] degrees
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • -------- -------- Action
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 140.00 of EA_Ability_point2) and do (Actions)
                  • Grinding - Actions
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                    • -------- -------- CONDITON
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'If' conditions
                          • Multiple condition sand - All (Conditions) are true
                            • Conditions
                              • ((Picked unit) belongs to an enemy of (Owner of EA_CasterUnit [EA_INT])) equal (==) True
                              • ((Picked unit) is alive) Equal (==) True
                              • ((Picked unit) is Magic Immune) Equal To (! =) True
                              • ((Picked unit) is a building) equal to (! =) True
                        • 'THEN' actions
                          • Unit - Cause EA_CasterUnit [EA_INT] to damage (Picked unit), dealing (Real (EA_WhatDamage [EA_INT])) damage of attack type Spells and damage type Normal
                          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities \ Spells \ Other \ Doom \ DoomDeath.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • -------- -------- Action
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set TEMPpoint = (Position of (Picked unit))
                          • Custom script: set bj_wantDestroyGroup = true
                          • Unit Group - Pick every unit in (Units within 350.00 of TEMPpoint) and do (Actions)
                            • Grinding - Actions
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • -------- -------- CONDITON
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                  • 'If' conditions
                                    • Multiple condition sand - All (Conditions) are true
                                      • Conditions
                                        • ((Picked unit) belongs to an enemy of (Owner of EA_CasterUnit [EA_INT])) equal (==) True
                                        • ((Picked unit) is alive) Equal (==) True
                                        • ((Picked unit) is Magic Immune) Equal To (! =) True
                                        • ((Picked unit) is a building) equal to (! =) True
                                  • 'THEN' actions
                                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                    • -------- Damage (all units in AOE) --------
                                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                                    • Unit - Cause EA_CasterUnit [EA_INT] to damage (Picked unit), dealing (Real (EA_WhatDamage2 [EA_INT])) damage of attack type Spells and damage type Normal
                                    • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities \ Spells \ Orc \ FeralSpirit \ feralspiritdone.mdl
                                    • Special Effect - Destroy (Last created special effect)
                                  • 'ELSE' actions
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Deactivate -------- -------- skill
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set EA_AlreadyTraveled [EA_INT] = EA_MaxRange [EA_INT]
                        • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • LEAK CLEAN -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: call RemoveLocation (udg_TempPoint)
                • Custom script: call RemoveLocation (udg_EA_Ability_point1)
                • Custom script: call RemoveLocation (udg_EA_Ability_point2)
              • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Unit - Kill EA_MissleUNIT [EA_INT]
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set EA_Register [EA_LOOP] = EA_Register [EA_Register_SIZE]
                • Set EA_Register [EA_Register_SIZE] = EA_INT
                • Set EA_Register_SIZE = (EA_Register_SIZE - 1)
                • Set EA_LOOP = (EA_LOOP - 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- Turn off the trigger. --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • EA_Register_SIZE equal (==) 0
          • 'THEN' actions
            • Trigger - Turn off (This trigger)
          • 'ELSE' actions
#Freezing Arrow
--Enchants an arrow to deliver cold damage that freezes any monsters near the point of impact.
  • Freezing arrow init
    • Events
      • Unit - A unit Starts the effect of ability
    • Conditions
      • (Ability being cast) Equal to (==) Freezing Arrow
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'If' conditions
          • FA_Register_SIZE equal (==) 0
        • 'THEN' actions
          • Trigger - Turn on Freezing arrow loop <gen>
        • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FA_Register_SIZE = (FA_Register_SIZE + 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • FA_Register_SIZE greater than (>) FA_Register_MAX
          • 'THEN' actions
            • Set FA_Register [FA_Register_SIZE] = FA_Register_SIZE
            • Set FA_Register_MAX = FA_Register_SIZE
          • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FA_INT = FA_Register [FA_Register_SIZE]
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FA_Ability_point1 = (Position of (Triggering unit))
      • Set FA_Ability_point2 = (Target point of ability being cast)
      • Set FA_Angle [FA_INT] = (Angle from FA_Ability_point1 to FA_Ability_point2)
      • Set FA_CasterUnit [FA_INT] = (Triggering unit)
      • Set FA_CastedAbility [FA_INT] = (Ability being cast)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- UNIT / MISSILE --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Unit - Create 1 Freezing Arrow for (Owner of FA_CasterUnit [FA_INT]) at FA_Ability_point1 facing FA_Angle [FA_INT] degrees
      • Unit - Turn collision for (Last created unit) from
      • Unit - Move (Last created unit) instantly to FA_Ability_point1, facing FA_Angle [FA_INT] degrees
      • Set FA_MissleUNIT [FA_INT] = (Last created unit)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • CONFIG -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FA_TravelSpeed &#8203;&#8203;[FA_INT] = 17.00
      • Set FA_MaxRange [FA_INT] = 1500.00
      • Set FA_WhatDamage [FA_INT] = (25 x (Level of FA_CastedAbility [FA_INT] for FA_CasterUnit [FA_INT]))
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set FA_AlreadyTraveled [FA_INT] = 0.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • LEAK CLEAN -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Custom script: call RemoveLocation (udg_FA_Ability_point1)
      • Custom script: call RemoveLocation (udg_FA_Ability_point2)
  • Freezing arrow loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Thurs Multiple ActionsFor each (Integer FA_LOOP) from 1 to FA_Register_SIZE, do (Actions)
        • Grinding - Actions
          • -------- This let everything look cleaner. --------
          • Set FA_INT = FA_Register [FA_LOOP]
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
          • -------- Condition ... --------
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • 'If' conditions
                • FA_AlreadyTraveled [FA_INT] Less than (<) FA_MaxRange [FA_INT]
              • 'THEN' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Actions -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set FA_Ability_point1 = (Position of FA_MissleUNIT [FA_INT])
                • Set FA_Ability_point2 = (FA_Ability_point1 offset by FA_TravelSpeed &#8203;&#8203;[FA_INT] towards FA_Angle [FA_INT] degrees)
                • Set FA_AlreadyTraveled [FA_INT] = (FA_AlreadyTraveled [FA_INT] + FA_TravelSpeed &#8203;&#8203;[FA_INT])
                • Unit - Move FA_MissleUNIT [FA_INT] instantly to FA_Ability_point2, facing FA_Angle [FA_INT] degrees
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • -------- -------- Action
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 140.00 of FA_Ability_point2) and do (Actions)
                  • Grinding - Actions
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                    • -------- -------- CONDITON
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'If' conditions
                          • Multiple condition sand - All (Conditions) are true
                            • Conditions
                              • ((Picked unit) belongs to an enemy of (Owner of FA_CasterUnit [FA_INT])) equal (==) True
                              • ((Picked unit) is alive) Equal (==) True
                              • ((Picked unit) is Magic Immune) Equal To (! =) True
                              • ((Picked unit) is a building) equal to (! =) True
                        • 'THEN' actions
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • -------- -------- DAMAGE
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Unit - Cause FA_CasterUnit [FA_INT] to damage (Picked unit), dealing (Real (FA_WhatDamage [FA_INT])) damage of attack type Spells and damage type Normal
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities \ Spells \ Undead \ frost armor \ FrostArmorDamage.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • -------- Here we let dummy cast a spell at the target --------
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set TEMPpoint = (Position of FA_CasterUnit [FA_INT])
                          • Unit - Create 1 Dummy for Universal (Owner of FA_CasterUnit [FA_INT]) at TEMPpoint requirement for buildings facing orientation (270.0) degrees
                          • Custom script: call RemoveLocation (udg_TempPoint)
                          • Unit - Add a 1:50 second default expiration timer to (Last created unit)
                          • Unit - Add Dummy Freezing Arrow to (Last created unit)
                          • Unit - Set level of Freezing Arrow DUMMY for (Last created unit) to (Level of Freezing Arrow for FA_CasterUnit [FA_INT])
                          • Unit - Order (Last created unit) to Neutral Alchemist - 'acid bomb' (Picked unit)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Deactivate -------- -------- skill
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set FA_AlreadyTraveled [FA_LOOP] = FA_MaxRange [FA_INT]
                        • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • LEAK CLEAN -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: call RemoveLocation (udg_FA_Ability_point1)
                • Custom script: call RemoveLocation (udg_FA_Ability_point2)
              • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Unit - Kill FA_MissleUNIT [FA_INT]
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set FA_Register [FA_LOOP] = FA_Register [FA_Register_SIZE]
                • Set FA_Register [FA_Register_SIZE] = FA_INT
                • Set FA_Register_SIZE = (FA_Register_SIZE - 1)
                • Set FA_LOOP = (FA_LOOP - 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- Turn off the trigger. --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • FA_Register_SIZE equal (==) 0
          • 'THEN' actions
            • Trigger - Turn off (This trigger)
          • 'ELSE' actions
#Holy Bolt
--A Bolt which will heal a friendly unit, or damage an enemy.
  • Holy Bolt init
    • Events
      • Unit - A unit Starts the effect of ability
    • Conditions
      • (Ability being cast) Equal to (==) Holy Bolt
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'If' conditions
          • HB_Register_SIZE equal (==) 0
        • 'THEN' actions
          • Trigger - Turn on Holy Bolt loop <gen>
        • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set HB_Register_SIZE = (HB_Register_SIZE + 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • HB_Register_SIZE greater than (>) HB_Register_MAX
          • 'THEN' actions
            • Set HB_Register [HB_Register_SIZE] = HB_Register_SIZE
            • Set HB_Register_MAX = HB_Register_SIZE
          • 'ELSE' actions
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set HB_INT = HB_Register [HB_Register_SIZE]
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - SETUP - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set HB_Ability_point1 = (Position of (Triggering unit))
      • Set HB_Ability_point2 = (Target point of ability being cast)
      • Set HB_Angle [HB_INT] = (Angle from HB_Ability_point1 to HB_Ability_point2)
      • Set HB_CasterUnit [HB_INT] = (Triggering unit)
      • Set HB_CastedAbility [HB_INT] = (Ability being cast)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- UNIT / MISSILE --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Unit - Create 1 Holy Bolt for (Owner of HB_CasterUnit [HB_INT]) at HB_Ability_point1 facing HB_Angle [HB_INT] degrees
      • Unit - Turn collision for (Last created unit) from
      • Unit - Move (Last created unit) instantly to HB_Ability_point1, facing HB_Angle [HB_INT] degrees
      • Set HB_MissleUNIT [HB_INT] = (Last created unit)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- - --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • CONFIG -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- What damage HEAL = / / = WhatDamage2 DAMAGE --------
      • Set HB_WhatDamage [HB_INT] = (20 x (Level of HB_CasterUnit [HB_INT]))
      • Set HB_WhatDamage2 [HB_INT] = (20 x (Level of HB_CasterUnit [HB_INT]))
      • Set HB_TravelSpeed &#8203;&#8203;[HB_INT] = 17.00
      • Set HB_MaxRange [HB_INT] = 1500.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Set HB_AlreadyTraveled [HB_INT] = 0.00
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • LEAK CLEAN -------- --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • Custom script: call RemoveLocation (udg_HB_Ability_point1)
      • Custom script: call RemoveLocation (udg_HB_Ability_point2)
  • Holy Bolt loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Thurs Multiple ActionsFor each (Integer HB_LOOP) from 1 to HB_Register_SIZE, do (Actions)
        • Grinding - Actions
          • -------- This let everything look cleaner. --------
          • Set HB_INT = HB_Register [HB_LOOP]
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
          • -------- Condition ... --------
          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
            • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • 'If' conditions
                • HB_AlreadyTraveled [HB_INT] Less than (<) HB_MaxRange [HB_INT]
              • 'THEN' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Actions -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set HB_Ability_point1 = (Position of HB_MissleUNIT [HB_INT])
                • Set HB_Ability_point2 = (HB_Ability_point1 offset by HB_TravelSpeed &#8203;&#8203;[HB_INT] towards HB_Angle [HB_INT] degrees)
                • Set HB_AlreadyTraveled [HB_INT] = (HB_AlreadyTraveled [HB_INT] + HB_TravelSpeed &#8203;&#8203;[HB_INT])
                • Unit - Move HB_MissleUNIT [HB_INT] instantly to HB_Ability_point2, facing HB_Angle [HB_INT] degrees
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • -------- -------- Action
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 120.00 of HB_Ability_point2) and do (Actions)
                  • Grinding - Actions
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                    • -------- -------- CONDITON
                    • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'If' conditions
                          • Multiple condition sand - All (Conditions) are true
                            • Conditions
                              • ((Picked unit) is alive) Equal (==) True
                              • (Picked unit) equal to (! =) HB_CasterUnit [HB_INT]
                              • ((Picked unit) is Magic Immune) Equal To (! =) True
                              • ((Picked unit) is a building) equal to (! =) True
                        • 'THEN' actions
                          • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • 'If' conditions
                              • ((Picked unit) belongs to an ally of (Owner of HB_CasterUnit [HB_INT])) equal (==) True
                            • 'THEN' actions
                              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities \ Spells \ Orc \ EtherealForm \ SpiritWalkerChange.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • -------- "HEAL" --------
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (Real (HB_WhatDamage [HB_INT])))
                              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities \ Spells \ Human \ Resurrect \ ResurrectTarget.mdl
                              • Special Effect - Destroy (Last created special effect)
                            • 'ELSE' actions
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • -------- "DAMAGE" --------
                              • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                              • Unit - Cause HB_CasterUnit [HB_INT] to damage (Picked unit), dealing (Real (HB_WhatDamage2 [HB_INT])) damage of attack type Spells and damage type Normal
                              • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities \ Spells \ Demon \ dark portal \ DarkPortalTarget.mdl
                              • Special Effect - Destroy (Last created special effect)
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Deactivate -------- -------- skill
                          • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                          • Set HB_AlreadyTraveled [HB_INT] = HB_MaxRange [HB_INT]
                        • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • LEAK CLEAN -------- --------
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Custom script: call RemoveLocation (udg_HB_Ability_point1)
                • Custom script: call RemoveLocation (udg_HB_Ability_point2)
              • 'ELSE' actions
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Unit - Kill HB_MissleUNIT [HB_INT]
                • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
                • Set HB_Register [HB_LOOP] = HB_Register [HB_Register_SIZE]
                • Set HB_Register [HB_Register_SIZE] = HB_INT
                • Set HB_Register_SIZE = (HB_Register_SIZE - 1)
                • Set HB_LOOP = (HB_LOOP - 1)
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
      • -------- Turn off the trigger. --------
      • -------- ------------------------------------------ -------------------------------------------------- ------------------------------- --------
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • 'If' conditions
            • HB_Register_SIZE equal (==) 0
          • 'THEN' actions
            • Trigger - Turn off (This trigger)
          • 'ELSE' actions


Credits: in the map!
should be lagless, MUI & leakless.
Please give credits if use them in your map ^^:p



Changelog
v1.0 first..

v1.0b leaks fixed.., casting unit => triggering unit..,
"KB_GeneralIntegers[2]" and "KB_GeneralIntegers[1]" are now normal variables (no array..)

v1.1 2 new spells: fire ball, holy bolt.
NOT using (Custom value of (unit)) anymore!!!
now using "bj_wantDestroyGroup = true" !!


Keywords:
diablo spell arrow fury line amazon bow freezing exploding lightning holy fire ball
Contents

"Spellpack" - Diablo 2 (Map)

Reviews
12.12 IcemanBo: For long time as NeedsFix. Rejected. Bribe: That knockback system in-use is quite bad. "KB_GeneralIntegers[2]" and "KB_GeneralIntegers[1]" should be two normal variables, not arrays. This improves performance and readability...

Moderator

M

Moderator

12.12
IcemanBo: For long time as NeedsFix. Rejected.

Bribe:

That knockback system in-use is quite bad. "KB_GeneralIntegers[2]" and "KB_GeneralIntegers[1]" should be two normal variables, not arrays. This improves performance and readability.

This is using (Custom value of (unit)) which breaks a lot of compatibility with other systems (unnacceptable).

Unit - Order (Last created unit) to Neutral - Breath Of Frost (Position of (Picked unit))

- Leaks (Position of (Picked unit))

Set DAT_CasterLoc = ((Position of DAT_Caster[DAT_Counts]) offset by 100.00 towards (DAT_Angle2 - 20.00) degrees)

- Leaks (Position of DAT_Caster[DAT_Counts])

- You do that twice

(Owner of DAT_Caster[DAT_Counts]) -> (Triggering player)

It is also much more efficient and readable to use the "bj_wantDestroyGroup = true" custom script instead of the "Group set/pick/destroy" method.

Maker:
In the looping triggerrs, only do the turn off cound when you subtract from the integer, not during every loop.
Remove the ANDs in
Conditions
And
Condition1
Condition2
Condition3
 
Level 4
Joined
Feb 20, 2011
Messages
57
Freezing Arrow:
Couldnt you just make a Storm Bolt change missle to frost arrow and when it hits change the Target: Stunned to Target: Frost Nova?????
I tried it it works and looks very realastic compared to it
Exploding Arrow:
Storm Bolt> Missle Arrow(Tower)> Target: Kaboom(Goblin Zepper thing) and get a trigger: ___ Cast an ablitity > Abiltity= Exploding Arrow> Set (targetedunit) back 4> special effect at ability(end of projectile) using> Kaboom???
.... srry but 2/5 :thumbs_down::thumbs_down: and its in German........... y is that? ( dont say its cuz ur from germany) Get a translater :p
 
Last edited:
Level 4
Joined
Jul 22, 2010
Messages
74
Freezing Arrow:
Couldnt you just make a Storm Bolt change missle to frost arrow and when it hits change the Target: Stunned to Target: Frost Nova?????
I tried it it works and looks very realastic compared to it
Exploding Arrow:
Storm Bolt> Missle Arrow(Tower)> Target: Kaboom(Goblin Zepper thing)
....


well that was my old variant of the spells (exploding & freezing arrow), well

first, if i use storm bolt, then you have got a target (unit), (my spell has got ground target, so you can cast where ever you want..) and stormbolt, it will allways hit, thats boring. And freezing arrow should freeze all units in a AoE of the target.. not only the target.


Storm Bolt> Missle Arrow(Tower)> Target: Kaboom(Goblin Zepper thing)

the same thing with your storm bolt..
and again, it should make a AoE damage.. not only the target.


and btw, in Diablo 2, that spells can be casted where ever you want.. not only at the target ;)


cr4ck4r
 
Level 4
Joined
Feb 20, 2011
Messages
57
the target can be selected as ground/unit/hero/debris/ WALLS
if you cast that ability when your in a Box it will go threw the walls and out.
in Diablo 2 it hits a wall and freezes/explodes.
Storm Bolt can change target and so can Flaming/Frost/Dark arrows to ground and cast range too which allows you to cast anywhere. and you could just remove targets:units/heros and only have ground. and then ur Range/AoE effect of the Trigger would hit around it with splash dmg setting.
I also got a Question... if u use Shockwave > missle> arrow> target> kaboom/nova it would only hit in a straight line and deal to units infront of it and change the Distance to as far as you want like in D2 correct?
and why did u post a (real) Diablo 2 LoD video instead of the usage of your ability??? :ogre_icwydt:

This spell has not been approved in the resource section and is not guaranteed to be working. ( Wonder why....)

and if it says... Diablo 2 "little Spellpack" why did u post it in Spells category and not packs?????
http://www.hiveworkshop.com/forums/packs.php
 
Level 4
Joined
Feb 20, 2011
Messages
57
im checking the missle type/range/aoe
on Diablo 2
okay i checked it
Exploding Arrow: Explodes on UNITS and WALLS and sparks for about 1/2 a second
Freezing Arrow: Freezes on UNITS and WALLS also and freezes(stuns) them for about 3 seconds and is a shockwave effect so it goes until the range stops not on Ground until the missle area stops and hits a unti or wall.
try making a more advanced one like Multi Shot that adds 1 arrow/per lvl or the one that allows you to shoot in every direction. :goblin_sleep:
 
Level 4
Joined
Jul 22, 2010
Messages
74
the target can be selected as ground/unit/hero/debris/ WALLS
if you cast that ability when your in a Box it will go threw the walls and out.
in Diablo 2 it hits a wall and freezes/explodes.
Storm Bolt can change target and so can Flaming/Frost/Dark arrows to ground and cast range too which allows you to cast anywhere. and you could just remove targets:units/heros and only have ground. and then ur Range/AoE effect of the Trigger would hit around it with splash dmg setting.
I also got a Question... if u use Shockwave > missle> arrow> target> kaboom/nova it would only hit in a straight line and deal to units infront of it and change the Distance to as far as you want like in D2 correct?
and why did u post a (real) Diablo 2 LoD video instead of the usage of your ability??? :ogre_icwydt:

This spell has not been approved in the resource section and is not guaranteed to be working. ( Wonder why....)

and if it says... Diablo 2 "little Spellpack" why did u post it in Spells category and not packs?????
http://www.hiveworkshop.com/forums/packs.php


--Storm bolt requeres still a objekt on which you have to cast, and change the target will not make a stormbolt skill to a shockwave..

--on shockwave you can change the effect if the shockwave hit a unit, if you set the range as far you want, so it will fly at the end of the map, and this is not d2, an arrow should not go through 121321 units....

-- an original video, that people can see, how it should look like, because not all know the game & the spells .. (diablo 2)

-- i posted it to, GUI - spellpacks, you can filter it out, just select there "spellpack" ..




im checking the missle type/range/aoe
on Diablo 2
okay i checked it
Exploding Arrow: Explodes on UNITS and WALLS and sparks for about 1/2 a second
Freezing Arrow: Freezes on UNITS and WALLS also and freezes(stuns) them for about 3 seconds and is a shockwave effect so it goes until the range stops not on Ground until the missle area stops and hits a unti or wall.
try making a more advanced one like Multi Shot that adds 1 arrow/per lvl or the one that allows you to shoot in every direction. :goblin_sleep:


ok i will make it stop at cliffs/walls ..

i will try multishot, but later ;)

sorry for my bad english, if dont understand anything, just ask again ;)


cr4ck4r
 
Top