• Check out the results of the Techtree Contest #19!
  • 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.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Eye Beam

Level 25
Joined
Feb 9, 2009
Messages
1,814
lightninglist.PNG

(credits to @-Derp- for his Lightning Tutorial and this handy image.)


Config
  • Eye Beam Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set EyBe_Config_Ability[0] = Eye Beam
      • Set EyBe_Config_Damage[0] = 30.00
      • Set EyBe_Config_Duration[0] = 5.00
      • Set EyBe_Config_Effect_Path[0] = Abilities\Weapons\IllidanMissile\IllidanMissile.mdl
      • Set EyBe_Config_Effect_Path[1] = Abilities\Spells\Items\AIfb\AIfbSpecialArt.mdl
      • Set EyBe_Config_Height[0] = 80.00
      • Set EyBe_Config_Periodic = 0.05
      • Set EyBe_Config_Range[0] = 1050.00
      • Set EyBe_Config_Width[0] = 96.00
      • Trigger - Add to Eye Beam Periodic <gen> the event (Time - Every EyBe_Config_Periodic seconds of game time)
Cast
  • Eye Beam Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Eye Beam
    • Actions
      • Set EyBe_Index = (EyBe_Index + 1)
      • Set EyBe_Point[0] = (Position of (Triggering unit))
      • Set EyBe_Point[1] = (Target point of ability being cast)
      • Set EyBe_Point[2] = (EyBe_Point[0] offset by EyBe_Config_Range[0] towards (Angle from EyBe_Point[0] to EyBe_Point[1]) degrees)
      • Custom script: set udg_EyBe_Point_Z_Height = GetLocationZ(udg_EyBe_Point[0])
      • Set EyBe_XYZ[1] = (X of EyBe_Point[0])
      • Set EyBe_XYZ[2] = (Y of EyBe_Point[0])
      • Set EyBe_XYZ[3] = ((Current flying height of EyBe_Caster[EyBe_Loop]) + EyBe_Config_Height[0])
      • Custom script: set udg_EyBe_Point_Z_Height = GetLocationZ(udg_EyBe_Point[2])
      • Set EyBe_XYZ2[1] = (X of EyBe_Point[2])
      • Set EyBe_XYZ2[2] = (Y of EyBe_Point[2])
      • Set EyBe_XYZ2[3] = (EyBe_Config_Height[0] + EyBe_Point_Z_Height)
      • Custom script: set udg_EyBe_Lightning[(udg_EyBe_Index)] = AddLightningEx("MBUR", true, udg_EyBe_XYZ[1], udg_EyBe_XYZ[2], udg_EyBe_XYZ[3], udg_EyBe_XYZ2[1], udg_EyBe_XYZ2[2], udg_EyBe_XYZ2[3])
      • Set EyBe_Damage[EyBe_Index] = EyBe_Config_Damage[0]
      • Set EyBe_Duration[EyBe_Index] = EyBe_Config_Duration[0]
      • Set EyBe_Caster[EyBe_Index] = (Triggering unit)
      • Unit - Set EyBe_Caster[EyBe_Index] movement speed to 0.01
      • Unit - Make EyBe_Caster[EyBe_Loop] face EyBe_Point[2] over 0.00 seconds
      • Special Effect - Create a special effect at EyBe_Point[2] using EyBe_Config_Effect_Path[0]
      • Special Effect - Set Scale of (Last created special effect) to 2.50
      • Set EyBe_Point_Node[EyBe_Index] = (Last created special effect)
      • Special Effect - Set Position - Z of (Last created special effect) to (EyBe_Point_Z_Height + EyBe_Config_Height[0])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • EyBe_Index Equal to 1
        • Then - Actions
          • Trigger - Turn on Eye Beam Periodic <gen>
          • Trigger - Turn on Eye Beam Change Targeting Direction <gen>
        • Else - Actions
      • Custom script: call RemoveLocation(udg_EyBe_Point[0])
      • Custom script: call RemoveLocation(udg_EyBe_Point[1])
      • Custom script: call RemoveLocation(udg_EyBe_Point[2])
Periodic
  • Eye Beam Periodic
    • Events
    • Conditions
    • Actions
      • For each (Integer EyBe_Loop) from 1 to EyBe_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • EyBe_Duration[EyBe_Loop] Less than or equal to 0.00
                  • (EyBe_Caster[EyBe_Loop] is alive) Equal to False
                  • (EyBe_Caster[EyBe_Loop] has buff Stunned) Equal to True
                  • (EyBe_Caster[EyBe_Loop] has buff Stunned (Pause)) Equal to True
                  • (EyBe_Caster[EyBe_Loop] has buff Silence) Equal to True
                  • (EyBe_Caster[EyBe_Loop] has buff Sleep) Equal to True
            • Then - Actions
              • -------- --------
              • Lightning - Destroy EyBe_Lightning[EyBe_Loop]
              • Special Effect - Destroy EyBe_Point_Node[EyBe_Loop]
              • Unit - Set EyBe_Caster[EyBe_Index] movement speed to (Default movement speed of EyBe_Caster[EyBe_Loop])
              • -------- --------
              • Set EyBe_Damage[EyBe_Loop] = EyBe_Damage[EyBe_Index]
              • Set EyBe_Duration[EyBe_Loop] = EyBe_Duration[EyBe_Index]
              • Set EyBe_Caster[EyBe_Loop] = EyBe_Caster[EyBe_Index]
              • Set EyBe_Point_Node[EyBe_Loop] = EyBe_Point_Node[EyBe_Index]
              • Set EyBe_Lightning[EyBe_Loop] = EyBe_Lightning[EyBe_Index]
              • Set EyBe_Loop = (EyBe_Loop - 1)
              • Set EyBe_Index = (EyBe_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • EyBe_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                  • Trigger - Turn off Eye Beam Change Targeting Direction <gen>
                • Else - Actions
            • Else - Actions
              • Set EyBe_Point[3] = (Position of EyBe_Caster[EyBe_Loop])
              • Set EyBe_Point[5] = (Point((Position - X of EyBe_Point_Node[EyBe_Loop]), (Position - Y of EyBe_Point_Node[EyBe_Loop])))
              • -------- --------
              • Custom script: set udg_EyBe_Point_Z_Height = GetLocationZ(udg_EyBe_Point[3])
              • Set EyBe_XYZ[4] = (X of EyBe_Point[3])
              • Set EyBe_XYZ[5] = (Y of EyBe_Point[3])
              • Set EyBe_XYZ[6] = ((Current flying height of EyBe_Caster[EyBe_Loop]) + EyBe_Config_Height[0])
              • Custom script: set udg_EyBe_Point_Z_Height = GetLocationZ(udg_EyBe_Point[5])
              • Set EyBe_XYZ2[4] = (X of EyBe_Point[5])
              • Set EyBe_XYZ2[5] = (Y of EyBe_Point[5])
              • Set EyBe_XYZ2[6] = (EyBe_Config_Height[0] + EyBe_Point_Z_Height)
              • Custom script: call MoveLightningEx(udg_EyBe_Lightning[(udg_EyBe_Loop)], true, udg_EyBe_XYZ[4], udg_EyBe_XYZ[5], udg_EyBe_XYZ[6], udg_EyBe_XYZ2[4], udg_EyBe_XYZ2[5], udg_EyBe_XYZ2[6])
              • -------- --------
              • Unit - Make EyBe_Caster[EyBe_Loop] face EyBe_Point[5] over 0.05 seconds
              • -------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (EyBe_Duration[EyBe_Loop] mod 0.50) Equal to 0.45
                • Then - Actions
                  • -------- Width --------
                  • Set EyBe_Enum_Value[0] = EyBe_Config_Width[0]
                  • -------- Width --------
                  • Set EyBe_Enum_Point[1] = EyBe_Point[3]
                  • Set EyBe_Enum_Point[2] = EyBe_Point[5]
                  • Set EyBe_Enum_Point[3] = (EyBe_Enum_Point[1] offset by EyBe_Config_Range[0] towards (Angle from EyBe_Enum_Point[1] to EyBe_Enum_Point[2]) degrees)
                  • Set EyBe_Enum_Value[1] = (X of EyBe_Enum_Point[1])
                  • Set EyBe_Enum_Value[2] = (Y of EyBe_Enum_Point[1])
                  • Set EyBe_Enum_Value[3] = (X of EyBe_Enum_Point[3])
                  • Set EyBe_Enum_Value[4] = (Y of EyBe_Enum_Point[3])
                  • -------- Midpoint --------
                  • Set EyBe_Enum_Point[4] = (Point(((EyBe_Enum_Value[3] + EyBe_Enum_Value[1]) / 2.00), ((EyBe_Enum_Value[4] + EyBe_Enum_Value[2]) / 2.00)))
                  • -------- Midpoint --------
                  • -------- --------
                  • -------- Distance --------
                  • Set EyBe_Enum_Value[5] = (Distance between EyBe_Enum_Point[3] and EyBe_Enum_Point[1])
                  • -------- Distance --------
                  • -------- --------
                  • -------- --------
                  • -------- --------
                  • -------- --------
                  • -------- set bj_wantDestroyGroup = true --------
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within ((EyBe_Enum_Value[5] / 2.00) + EyBe_Enum_Value[0]) of EyBe_Enum_Point[4]) and do (Actions)
                    • Loop - Actions
                      • -------- C --------
                      • Set EyBe_Enum_Point[5] = (Position of (Picked unit))
                      • -------- Cx --------
                      • Set EyBe_Enum_Value[6] = (X of EyBe_Enum_Point[5])
                      • -------- Cy --------
                      • Set EyBe_Enum_Value[7] = (Y of EyBe_Enum_Point[5])
                      • -------- --------
                      • -------- ABx --------
                      • Set EyBe_Enum_Value[8] = (EyBe_Enum_Value[3] - EyBe_Enum_Value[1])
                      • -------- ABy --------
                      • Set EyBe_Enum_Value[9] = (EyBe_Enum_Value[4] - EyBe_Enum_Value[2])
                      • -------- --------
                      • -------- ACx --------
                      • Set EyBe_Enum_Value[10] = (EyBe_Enum_Value[6] - EyBe_Enum_Value[1])
                      • -------- ACy --------
                      • Set EyBe_Enum_Value[11] = (EyBe_Enum_Value[7] - EyBe_Enum_Value[2])
                      • -------- --------
                      • -------- Distance Along Line --------
                      • Set EyBe_Enum_Value[12] = (((EyBe_Enum_Value[8] x EyBe_Enum_Value[10]) + (EyBe_Enum_Value[11] x EyBe_Enum_Value[9])) / (Square root(((EyBe_Enum_Value[8] x EyBe_Enum_Value[8]) + (EyBe_Enum_Value[9] x EyBe_Enum_Value[9])))))
                      • -------- --------
                      • -------- Distance From Line --------
                      • Set EyBe_Enum_Value[13] = (((EyBe_Enum_Value[8] x EyBe_Enum_Value[11]) - (EyBe_Enum_Value[10] x EyBe_Enum_Value[9])) / (Square root(((EyBe_Enum_Value[8] x EyBe_Enum_Value[8]) + (EyBe_Enum_Value[9] x EyBe_Enum_Value[9])))))
                      • -------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • And - All (Conditions) are true
                            • Conditions
                              • EyBe_Enum_Value[12] Less than or equal to EyBe_Enum_Value[5]
                              • EyBe_Enum_Value[12] Greater than or equal to 0.00
                              • EyBe_Enum_Value[13] Greater than (EyBe_Enum_Value[0] / -2.00)
                              • EyBe_Enum_Value[13] Less than (EyBe_Enum_Value[0] / 2.00)
                              • ((Picked unit) is A structure) Equal to False
                              • ((Picked unit) is Magic Immune) Equal to False
                              • ((Picked unit) is dead) Equal to False
                              • ((Picked unit) belongs to an ally of (Triggering player)) Equal to False
                              • (Picked unit) Not equal to EyBe_Caster[EyBe_Loop]
                        • Then - Actions
                          • Unit - Cause EyBe_Caster[EyBe_Loop] to damage (Picked unit), dealing (EyBe_Damage[EyBe_Loop] x 0.50) damage of attack type Spells and damage type Universal
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using EyBe_Config_Effect_Path[1]
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                      • Custom script: call RemoveLocation(udg_EyBe_Enum_Point[5])
                  • Custom script: call RemoveLocation(udg_EyBe_Enum_Point[1])
                  • Custom script: call RemoveLocation(udg_EyBe_Enum_Point[2])
                  • Custom script: call RemoveLocation(udg_EyBe_Enum_Point[3])
                  • Custom script: call RemoveLocation(udg_EyBe_Enum_Point[4])
                • Else - Actions
              • Set EyBe_Duration[EyBe_Loop] = (EyBe_Duration[EyBe_Loop] - EyBe_Config_Periodic)
              • Unit - Order EyBe_Caster[EyBe_Loop] to Hold Position
              • Custom script: call RemoveLocation(udg_EyBe_Point[3])
              • Custom script: call RemoveLocation(udg_EyBe_Point[5])
              • Custom script: call RemoveLocation(udg_EyBe_Point[6])
Issue Order - Change Targeting direction
  • Eye Beam Change Targeting Direction
    • Events
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Level of EyBe_Config_Ability[0] for (Triggering unit)) Greater than 0
      • (Issued order) Equal to (Order(smart))
    • Actions
      • For each (Integer EyBe_Loop) from 1 to EyBe_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • EyBe_Caster[EyBe_Loop] Equal to (Triggering unit)
            • Then - Actions
              • Set EyBe_Point[7] = (Position of EyBe_Caster[EyBe_Loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Target unit of issued order) Equal to No unit
                • Then - Actions
                  • Set EyBe_Point[4] = (Target point of issued order)
                • Else - Actions
                  • Set EyBe_Point[4] = (Position of (Target unit of issued order))
              • Set EyBe_Point[8] = (EyBe_Point[7] offset by EyBe_Config_Range[0] towards (Angle from EyBe_Point[7] to EyBe_Point[4]) degrees)
              • Special Effect - Set Position of EyBe_Point_Node[EyBe_Loop] to EyBe_Point[8]
              • Special Effect - Set Position - Z of EyBe_Point_Node[EyBe_Loop] to (EyBe_Point_Z_Height + EyBe_Config_Height[0])
              • Unit - Make (Triggering unit) face EyBe_Point[4] over 0.05 seconds
              • Custom script: call RemoveLocation(udg_EyBe_Point[4])
              • Custom script: call RemoveLocation(udg_EyBe_Point[7])
              • Custom script: call RemoveLocation(udg_EyBe_Point[8])
            • Else - Actions

Attachments

Last edited:
Back
Top