• 🏆 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!

Push Ball v1.00

  • Like
Reactions: QuantumMatter
Push Ball

A wave of force that push enemies back and making them make a circle. Dealing 1 damage every 0.2 second in AOE of 500 range and dealing damage in AOE of 250.

Level 1 - 5 damage every 0.2 second (AOE 250).
Level 2 - 10 damage every 0.2 second (AOE 250).
Level 3 - 15 damage every 0.2 second (AOE 250).

======================================================

I wanted to make something with nice special effects and i think i did it...

======================================================

  • Push Ball
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Push Ball
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • GB_Indexs[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Push Ball Loop <gen>
        • Else - Actions
      • Set GB_Indexs[0] = (GB_Indexs[0] + 1)
      • Set GB_Indexs[1] = (GB_Indexs[1] + 1)
      • -------- Setting Everything --------
      • -------- --------------------------------------------------------------------------------- --------
      • -------- Don't Change anything here --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Caster[GB_Indexs[0]] = (Triggering unit)
      • Set GB_Casting_Point[GB_Indexs[0]] = (Position of (Triggering unit))
      • Set GB_Target_Point = (Target point of ability being cast)
      • Set GB_Angle[GB_Indexs[0]] = (Angle from GB_Casting_Point[GB_Indexs[0]] to GB_Target_Point)
      • Set GB_Distance[GB_Indexs[0]] = 1000.00
      • Set GB_Reached_Distance[GB_Indexs[0]] = 0.00
      • Set GB_Range[GB_Indexs[0]] = 0.00
      • Set GB_Off_Boolean[GB_Indexs[0]] = True
      • -------- --------------------------------------------------------------------------------- --------
      • -------- Here you can change the Speed of the ball --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Moving_Range[GB_Indexs[0]] = 20.00
      • -------- --------------------------------------------------------------------------------- --------
      • -------- This is where you change the Turning Speed (to make them do circle) --------
      • -------- 0 = no circle just pushing --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Turning_Rate[GB_Indexs[0]] = 60.00
      • -------- --------------------------------------------------------------------------------- --------
      • -------- This is for changing the Damage (this is a damage every 0.03 sec) --------
      • -------- The 250 AOE is Multiplied by the Level... --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Damage_250_AOE = 5.00
      • Set GB_Damage_500_AOE = 1.00
      • -------- --------------------------------------------------------------------------------- --------
      • -------- This is for the special Effects --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Special_Effect_Units = Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
      • Set GB_Special_Effect_Ball = Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
      • -------- --------------------------------------------------------------------------------- --------
      • -------- This is the Knockback Speed --------
      • -------- --------------------------------------------------------------------------------- --------
      • Set GB_Knockback_Speed = 10.00
      • -------- --------------------------------------------------------------------------------- --------
      • -------- Don't change anything in the Push Ball Loop Trigger --------
      • -------- --------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation(udg_GB_Target_Point)
  • Push Ball Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer GB_Indexs[2]) from 1 to GB_Indexs[0], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • GB_Off_Boolean[GB_Indexs[2]] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • GB_Reached_Distance[GB_Indexs[2]] Greater than or equal to GB_Distance[GB_Indexs[2]]
                • Then - Actions
                  • Custom script: call RemoveLocation(udg_GB_Casting_Point[udg_GB_Indexs[2]])
                  • Set GB_Off_Boolean[GB_Indexs[2]] = False
                  • Set GB_Indexs[1] = (GB_Indexs[1] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • GB_Indexs[1] Equal to 0
                    • Then - Actions
                      • Set GB_Indexs[0] = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set GB_Range[GB_Indexs[2]] = (GB_Range[GB_Indexs[2]] + GB_Moving_Range[GB_Indexs[2]])
                  • Set GB_Moving_Point = (GB_Casting_Point[GB_Indexs[2]] offset by GB_Range[GB_Indexs[2]] towards GB_Angle[GB_Indexs[2]] degrees)
                  • -------- Special Effect of the Ball --------
                  • Special Effect - Create a special effect at GB_Moving_Point using GB_Special_Effect_Ball
                  • Special Effect - Destroy (Last created special effect)
                  • Set GB_Unit_Group = (Units within 500.00 of GB_Moving_Point matching ((((Matching unit) is alive) Equal to True) and ((((Owner of (Matching unit)) is an enemy of (Owner of GB_Caster[GB_Indexs[2]])) Equal to True) and (((Matching unit) is A structure) Equal to False))))
                  • Unit Group - Pick every unit in GB_Unit_Group and do (Actions)
                    • Loop - Actions
                      • -------- 500 AOE range damage --------
                      • Unit - Cause GB_Caster[GB_Indexs[2]] to damage (Picked unit), dealing GB_Damage_500_AOE damage of attack type Spells and damage type Normal
                      • -------- Setting everything to make move the units --------
                      • Set GB_Custom_Value = (Custom value of (Picked unit))
                      • Set GB_Unit[GB_Custom_Value] = (Picked unit)
                      • Set GB_Unit_Point[GB_Custom_Value] = (Position of GB_Unit[GB_Custom_Value])
                      • -------- Special Effect on the units --------
                      • Set GB_100 = (Random integer number between 1 and 100)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • GB_100 Less than or equal to 50
                        • Then - Actions
                          • Special Effect - Create a special effect at GB_Unit_Point[GB_Custom_Value] using GB_Special_Effect_Units
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                      • Set GB_Unit_Angle[GB_Custom_Value] = (Angle from GB_Moving_Point to GB_Unit_Point[GB_Custom_Value])
                      • Set GB_Unit_Moving_Point[GB_Custom_Value] = (GB_Unit_Point[GB_Custom_Value] offset by GB_Knockback_Speed towards (GB_Unit_Angle[GB_Custom_Value] + GB_Turning_Rate[GB_Indexs[2]]) degrees)
                      • -------- Moving the units --------
                      • Unit - Move GB_Unit[GB_Custom_Value] instantly to GB_Unit_Moving_Point[GB_Custom_Value]
                  • -------- The Group that will recieve the 250 AOE range Damage --------
                  • Set GB_Unit_Group_2 = (Units within 250.00 of GB_Moving_Point matching ((((Matching unit) is alive) Equal to True) and ((((Owner of (Matching unit)) is an enemy of (Owner of GB_Caster[GB_Indexs[2]])) Equal to True) and (((Matching unit) is A structure) Equal to False))))
                  • Unit Group - Pick every unit in GB_Unit_Group_2 and do (Actions)
                    • Loop - Actions
                      • -------- Dealing the damage --------
                      • Unit - Cause GB_Caster[GB_Indexs[2]] to damage (Picked unit), dealing (GB_Damage_250_AOE x (Real((Level of Push Ball for GB_Caster[GB_Indexs[2]])))) damage of attack type Spells and damage type Normal
                  • -------- Setting the time --------
                  • Set GB_Reached_Distance[GB_Indexs[2]] = (GB_Moving_Range[GB_Indexs[2]] + GB_Reached_Distance[GB_Indexs[2]])
                  • -------- Removing the Leaks --------
                  • Custom script: call RemoveLocation(udg_GB_Unit_Moving_Point[udg_GB_Custom_Value])
                  • Custom script: call RemoveLocation(udg_GB_Unit_Point[udg_GB_Custom_Value])
                  • Custom script: call RemoveLocation(udg_GB_Moving_Point)
                  • Custom script: call DestroyGroup(udg_GB_Unit_Group)
                  • Custom script: call DestroyGroup(udg_GB_Unit_Group_2)
            • Else - Actions
=================================================================

Version 0.2 Fixed the lag.

Version 0.3 added documentation

Version 0.4 Fixed the Building bug

Version 0.5 Fixed the ''enemy'' bug

Version 0.6 Better documentation and ezier to configure the spell

Version 1.0 I just found out why my MUI Indexing wasnt working... fixed it.. now its rly in MUI


Keywords:
Push Ball, Force, Mage, Magic, Spell, Special Effect, Gravity.
Contents

Push Ball (Map)

Reviews
17:28, 27th Nov 2009 TriggerHappy: The push effect is a little early, though it's minor so this is approved.
Status
Not open for further replies.

Moderator

M

Moderator

17:28, 27th Nov 2009
TriggerHappy:

The push effect is a little early, though it's minor so this is approved.
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
well.. the distance isnt smaller when they are near the wave.. just the circle is more little... and its to make it make more damage.. cuz if they just go out of the 250 AOE in like 0.01 sec... it wont do any damage...

its a Close range spell

the lag is maybe cuz of the mass effects... going to see if i can reduce that

Ok, i fixed it
 
Last edited:
Level 31
Joined
Sep 11, 2009
Messages
1,812
you want me to use more arrays?

the only place i dont use Arrays is for the damage no?

I think its simplier to not make an array for the damage... cuz when i was noob (maybe u think im still), when i was seeing all these arrays i was... WTF what is what... but i was changing the damage rly ez

Version 0.3 Added documentation

God.. it was long.. i made the documentation for all the 5 spells i posted...
 
Last edited:
Level 31
Joined
Sep 11, 2009
Messages
1,812
Oh oops.. i said Arrays?? sry... lol.. thats what i was talking about... (im re-starting making triggers... so.. i forgot that it was variables and that the arrays was the lil number..) but yeah... the only place i didnt use variables was for the damage... idk.. i prefer to see a number on the damage place.. i always found that ezier this way
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
lol.. this is the only bug.. but its becuz of my new update... by fixing a bug.. i made another... its a rly simple condition bug.... just gotta fix a condition and it will be ok.. gimme 5 mins...

and why did u think it would bug.. dont think im that noob...

Updated... should be good now... (i dont stop making lil unattention bugs... idk why!!!!!)

Version 0.6 rly rly Ezier to configure and a better documentation
 
Last edited:
Status
Not open for further replies.
Top