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

Green Ball

Green Ball

Launch a green projectile that deals damage to enemy units in 250 AOE range.
Level 1 - 100 damage.
Level 2 - 200 damage.
Level 3 - 300 damage.

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

Triggered in GUI, MUI, Leakless.

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

  • GB Init
    • Events
      • Time - Elapsed game time is 0.01 seconds
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Here you can change the Speed of the projectile --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Projectile_Speed = 17.00
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Here you can change the Right/Left Turning --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Turning = (45.00 / P_Projectile_Speed)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Here you change change the Up/Down motion of the projectile --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Arc = (210.00 / P_Projectile_Speed)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- here you can change the AOE of the Projectile Explosion --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Aoe_Explosion = 250.00
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- here you can change the Special Effects --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Explosion_Effect = Units\NightElf\Wisp\WispExplode.mdl
      • Set P_Explosion_Effect2 = Objects\Spawnmodels\Undead\UCancelDeath\UCancelDeath.mdl
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Here you can change the damage --------
      • -------- The Damage will be multiplied by the level of the ability. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Damage = 100.00
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
  • Casting a GB
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Green Ball
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Don't change anything in this trigger. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Index_P[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on GB Loop <gen>
        • Else - Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Indexs --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set Index_P[0] = (Index_P[0] + 1)
      • Set Index_P[1] = (Index_P[1] + 1)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting Points --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Caster[Index_P[0]] = (Triggering unit)
      • Set P_Caster_Point[Index_P[0]] = (Position of P_Caster[Index_P[0]])
      • Set P_Target_Point = (Target point of ability being cast)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting Angle --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Angle[Index_P[0]] = (Angle from P_Caster_Point[Index_P[0]] to P_Target_Point)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting remaining distance --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Remaining_Distance[Index_P[0]] = (Distance between P_Caster_Point[Index_P[0]] and P_Target_Point)
      • Set P_Creating_Point = (P_Caster_Point[Index_P[0]] offset by 20.00 towards P_Angle[Index_P[0]] degrees)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Here i set the level. dont change it. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_Level[Index_P[0]] = (Level of (Ability being cast) for (Triggering unit))
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Reseting everything --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Set P_AT_Time[Index_P[0]] = 0.24
      • Set P_Condition_Integer[Index_P[0]] = 0
      • Set P_Up_Down_Int[Index_P[0]] = 0
      • Set P_Range[Index_P[0]] = 20.00
      • Set P_Integer_Heigh[Index_P[2]] = 0
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting what if it will go right or left first --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 1 and 2) Equal to 1
        • Then - Actions
          • Set P_Turning_Boo[Index_P[0]] = True
          • Set P_Integer[Index_P[0]] = 1
        • Else - Actions
          • Set P_Turning_Boo[Index_P[0]] = False
          • Set P_Integer[Index_P[2]] = 0
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting if it will go up or down first. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 1 and 2) Equal to 1
        • Then - Actions
          • Set P_Arc_Up_Boo[Index_P[0]] = True
        • Else - Actions
          • Set P_Arc_Up_Boo[Index_P[0]] = False
      • Set P_Run_Boolean[Index_P[0]] = True
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Creating the Projectile --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at P_Creating_Point facing Default building facing degrees
      • Unit - Deny shared vision of (Last created unit) to (Owner of (Triggering unit))
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Making unit flying --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Unit - Add Storm Crow Form to (Last created unit)
      • Unit - Remove Storm Crow Form from (Last created unit)
      • Animation - Change (Last created unit) flying height to 100.00 at 0.00
      • Set P_Dummy_Unit[Index_P[0]] = (Last created unit)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Setting heigh. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • Custom script: set udg_P_Projectile_Heigh[udg_Index_P[0]] = GetLocationZ(udg_P_Creating_Point)
      • Custom script: set udg_P_Projectile_Heigh4[udg_Index_P[0]] = GetLocationZ(udg_P_Target_Point)
      • Set P_Projectile_Heigh2 = (P_Projectile_Heigh[Index_P[0]] + (Current flying height of (Last created unit)))
      • Set P_Projectile_Heigh3[Index_P[0]] = (P_Projectile_Heigh2 - P_Projectile_Heigh[Index_P[0]])
      • Animation - Change (Last created unit) flying height to P_Projectile_Heigh3[Index_P[0]] at 0.00
      • Custom script: call RemoveLocation(udg_P_Target_Point)
      • Custom script: call RemoveLocation(udg_P_Creating_Point)
  • GB Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • -------- Dont change anything in this trigger --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
      • For each (Integer Index_P[2]) from 1 to Index_P[0], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • P_Run_Boolean[Index_P[2]] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (P_Projectile_Heigh3[Index_P[2]] - P_Projectile_Heigh5[Index_P[2]]) Less than or equal to 10.00
                • Then - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Setting everything for the Explosion --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Set P_Current_Point = (Position of P_Dummy_Unit[Index_P[2]])
                  • Set P_Damaged_Group = (Units within P_Aoe_Explosion of P_Current_Point matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of P_Dummy_Unit[Index_P[2]])) Equal to True))))
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Creating cool Special Effects --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Special Effect - Create a special effect at P_Current_Point using P_Explosion_Effect
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect at P_Current_Point using P_Explosion_Effect2
                  • Special Effect - Destroy (Last created special effect)
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Dealing damage to group --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Unit Group - Pick every unit in P_Damaged_Group and do (Actions)
                    • Loop - Actions
                      • Unit - Cause P_Caster[Index_P[2]] to damage (Picked unit), dealing (P_Damage x (Real(P_Level[Index_P[2]]))) damage of attack type Spells and damage type Normal
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Removing Leaks --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Custom script: call DestroyGroup(udg_P_Damaged_Group)
                  • Custom script: call RemoveLocation(udg_P_Current_Point)
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Removing the unto --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Unit - Remove P_Dummy_Unit[Index_P[2]] from the game
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Making the this integer not able to run the trigger --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Set Index_P[1] = (Index_P[1] - 1)
                  • Set P_Run_Boolean[Index_P[2]] = False
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Removing Leak --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Custom script: call RemoveLocation(udg_P_Caster_Point[udg_Index_P[2]])
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Turning off the Trigger --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Index_P[1] Equal to 0
                    • Then - Actions
                      • Set Index_P[0] = 0
                      • Trigger - Turn off GB Loop <gen>
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • P_Remaining_Distance[Index_P[2]] Less than or equal to (4.00 x P_Projectile_Speed)
                    • Then - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Making the projectile fall down --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Setting everything to make move the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Set P_Range[Index_P[2]] = (P_Range[Index_P[2]] + P_Projectile_Speed)
                      • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Moving the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Setting everything for the heigh of the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Custom script: set udg_P_Projectile_Heigh5[udg_Index_P[2]] = GetLocationZ(udg_P_Moving_Point)
                      • Set P_Projectile_Heigh3[Index_P[2]] = ((P_Projectile_Heigh[Index_P[2]] + (Current flying height of P_Dummy_Unit[Index_P[2]])) - P_Projectile_Heigh5[Index_P[2]])
                      • Set P_Integer_Heigh[Index_P[2]] = (P_Integer_Heigh[Index_P[2]] + 1)
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Changing the heigh of the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to (P_Projectile_Heigh3[Index_P[2]] - ((Real(P_Integer_Heigh[Index_P[2]])) x 15.00)) at 0.00
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Removing Leaks --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Custom script: call RemoveLocation(udg_P_Moving_Point)
                    • Else - Actions
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Moving the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Setting everything to move the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Set P_Range[Index_P[2]] = (P_Range[Index_P[2]] + P_Projectile_Speed)
                      • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Moving the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Setting Heigh --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Custom script: set udg_P_Projectile_Heigh5[udg_Index_P[2]] = GetLocationZ(udg_P_Moving_Point)
                      • Custom script: call RemoveLocation(udg_P_Moving_Point)
                      • Set P_Projectile_Heigh3[Index_P[2]] = ((P_Projectile_Heigh[Index_P[2]] + (Current flying height of P_Dummy_Unit[Index_P[2]])) - P_Projectile_Heigh5[Index_P[2]])
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Changing heigh of the Projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to P_Projectile_Heigh3[Index_P[2]] at 0.00
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • P_Arc_Up_Boo[Index_P[2]] Equal to True
                        • Then - Actions
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • -------- Making go Up then down the Projectile --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • P_AT_Time[Index_P[2]] Greater than or equal to 0.12
                            • Then - Actions
                              • Set P_Projectile_Heigh3[Index_P[0]] = (P_Projectile_Heigh3[Index_P[2]] + P_Arc)
                              • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to P_Projectile_Heigh3[Index_P[2]] at 0.00
                            • Else - Actions
                              • Set P_Projectile_Heigh3[Index_P[0]] = (P_Projectile_Heigh3[Index_P[2]] - P_Arc)
                              • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to P_Projectile_Heigh3[Index_P[2]] at 0.00
                        • Else - Actions
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • -------- Making go Down than Up the Projectile --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • P_AT_Time[Index_P[2]] Greater than or equal to 0.12
                            • Then - Actions
                              • Set P_Projectile_Heigh3[Index_P[0]] = (P_Projectile_Heigh3[Index_P[2]] - P_Arc)
                              • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to P_Projectile_Heigh3[Index_P[2]] at 0.00
                            • Else - Actions
                              • Set P_Projectile_Heigh3[Index_P[0]] = (P_Projectile_Heigh3[Index_P[2]] + P_Arc)
                              • Animation - Change P_Dummy_Unit[Index_P[2]] flying height to P_Projectile_Heigh3[Index_P[2]] at 0.00
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • P_Turning_Boo[Index_P[2]] Equal to True
                        • Then - Actions
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • -------- Making go Left then Right the Projectile --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • P_AT_Time[Index_P[2]] Greater than or equal to 0.12
                            • Then - Actions
                              • Set P_Angle[Index_P[0]] = (P_Angle[Index_P[2]] + P_Turning)
                              • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                              • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                            • Else - Actions
                              • Set P_Angle[Index_P[0]] = (P_Angle[Index_P[2]] - P_Turning)
                              • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                              • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                          • Custom script: call RemoveLocation(udg_P_Moving_Point)
                        • Else - Actions
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • -------- Making go Right than Left the Projectile --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • P_AT_Time[Index_P[2]] Greater than or equal to 0.12
                            • Then - Actions
                              • Set P_Angle[Index_P[0]] = (P_Angle[Index_P[2]] - P_Turning)
                              • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                              • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                            • Else - Actions
                              • Set P_Angle[Index_P[0]] = (P_Angle[Index_P[2]] + P_Turning)
                              • Set P_Moving_Point = (P_Caster_Point[Index_P[2]] offset by P_Range[Index_P[2]] towards P_Angle[Index_P[2]] degrees)
                              • Unit - Move P_Dummy_Unit[Index_P[2]] instantly to P_Moving_Point
                          • Custom script: call RemoveLocation(udg_P_Moving_Point)
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • -------- Reseting everything to make go right/left, Up/Down the projectile --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • P_AT_Time[Index_P[2]] Less than or equal to 0.00
                        • Then - Actions
                          • Set P_AT_Time[Index_P[2]] = 0.24
                          • Set P_Integer[Index_P[2]] = (P_Integer[Index_P[2]] + 1)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • P_Integer[Index_P[2]] Equal to 2
                            • Then - Actions
                              • Set P_Turning_Boo[Index_P[2]] = False
                              • Set P_Integer[Index_P[2]] = 0
                            • Else - Actions
                              • Set P_Turning_Boo[Index_P[2]] = True
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Random integer number between 1 and 2) Equal to 1
                            • Then - Actions
                              • Set P_Arc_Up_Boo[Index_P[0]] = True
                            • Else - Actions
                              • Set P_Arc_Up_Boo[Index_P[0]] = False
                        • Else - Actions
                          • Set P_AT_Time[Index_P[2]] = (P_AT_Time[Index_P[2]] - 0.03)
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • -------- Setting remaining Distance --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------
                  • Set P_Remaining_Distance[Index_P[2]] = (P_Remaining_Distance[Index_P[2]] - P_Projectile_Speed)
            • Else - Actions
Keywords:
Green Ball, Missile, Projectile, Undead, Explosion, AOE.
Contents

Green Ball (Map)

Reviews
19:53, 4th Jan 2010 The_Reborn_Devil: The triggers look good and there are no leaks. Status: Approved Rating: Useful

Moderator

M

Moderator

19:53, 4th Jan 2010
The_Reborn_Devil:
The triggers look good and there are no leaks.

Status: Approved
Rating: Useful
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
This doesn't qualify as a missile system because the init trigger defines some core values, and those values are then used for every single usage of the "system".

The proper usage would be if those values were in the trigger when the unit starts the effect of an ability :p

This system offers nothing more than a zip-zap movement of a missile which is rarely used anyway.
Basic things THIS "system" lacks:
-Parabola
-Arc movement
-A good implementation
-Trails
-I can't see if this system uses index recycling, if it doesn't then it really isn't efficent as it could in theory get over the maximum array value
-The model of the projectile isn't adjustable, it is HIGHLY object editor dependant instead of being string dependant only

On the end this deserves a 2/5 at the most.
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
hmm.. the index is coming back to 0 at the same place that i turn off the trigger.

Wtf? u cant change the model in the Trigger so its bad? its rly ez to go in object editor.

Why does it needs a Parabola?

what is trails?

what u mean by good Implementation?

I'll just recall it a Green Ball. and it wont be a Projectile System anymore so this doesnt need any Parabola (witch isnt needed for a Projectile system too)

The proper usage would be if those values were in the trigger when the unit starts the effect of an ability :p
Isnt it Ezier for the user to change values the way i made it?
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
All good systems allow you to simply define a model with a string, also they only require 1, i repeat 1 UNIT, not 1 unit per missile type.

Recycling indexes doesn't mean it resets when there are no active instances, it means when 1 projectile finishes it's part the next one will take it's index.

kola said:
Why does it needs a Parabola?

what is trails?

what u mean by good Implementation?

You can leave all that out and i doubt you will get more than a 2/5.

No offense but people should stop spamming systems that already exist :p

There should be only 2-3 missile systems max on this site, not 1 per each spell maker -.-

Why can't people just make something new?

EDIT:

I don't like showing off but i am lazy to find more missile systems, and i can easily find my own any time:
click here to see it, hope you learn more about it, and abandon the idea of spamming missile systems
 
Last edited:
Level 25
Joined
Jun 5, 2008
Messages
2,572
-.-

Changing the name doesn't do anything, we already got 9 other missile/projectile systems here on the hive....
And if you post this as a spell, then it is really a simple one :p

Recycling should be included, at least if you want it to be efficent :p

-Trail: a missile creates a trail of SFX as it moves

-Better implementation: Your system is much more restricting than other missile/projectile systems as it is much object orianteted and a user would need to have a lot of trouble to actualy make more than 1 missile movements with it.

Please go here and see what systems look like:
search results for missile/projectile under system category
 
Top