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

Seraphic Star v1.36

This is A recreation of yet another ff Boss spell casted by kuja: 'Seraphic Star' he didn't have this in ther origional game however he recieved it in the later ff game final fantasy dissidia.

The main idea was to recreate it's effect rather than appearance as apperance would take far too long and would probably cause mass lag from over sfx.

For a basic outline of what it does, it Creates a projectile, This projectile moves to the target point, It then grows. during this proccess it is using 3D Gravity to pull in all nearby units into it's centre.

After bursting it's boundaries it will explode causing 3D knockback on all units within it's area which is also calculated in 3D.

No damage or effects (stun and suchlike) are caused via custom data, the only use in the object editor was the casting spell and the dummies required.

Many aspects of this spell are changed per level and has a very confusing set of triggers for some people so as large amount of documentation has been added saying what you can/shouldn't touch. Uses the hashtables and relies heavily upon them.


  • Creating the hashtable
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- This is one trigger, you Just Dont mess with. --------
      • -------- * --------
      • Hashtable - Create a hashtable
      • -------- * --------
      • Set Sepharic_Star_Hashtable = (Last created hashtable)
      • -------- * --------
      • Countdown Timer - Start Intervals as a Repeating timer that will expire in 0.03 seconds
  • Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Ultimate Serapharic Star
        • Then - Actions
          • -------- * --------
          • Set Currant_intstances = (Currant_intstances + 1)
          • -------- * --------
          • Set Temp_Point = (Position of (Triggering unit))
          • -------- * --------
          • -------- Change this to your dummy unit (missile) --------
          • Unit - Create 1 Core for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_2) degrees
          • -------- Set this to match the centre fly height of your 'sphere' --------
          • Animation - Change (Last created unit) flying height to 400.00 at 0.00
          • -------- Chanage this to effect the overall spell duration --------
          • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          • -------- * --------
          • -------- This is the 'Growth tier' --------
          • Hashtable - Save 0 as 1 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- Gravity Strength for this tier --------
          • Hashtable - Save 1 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- Reserve checker --------
          • -------- For casting this spell --------
          • Hashtable - Save 1337 as 1337 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- Set this to your dummy ability for your spell (damage is calculated primarily from this --------
          • Unit - Set level of Sepharic Star (Ultimate dummy) for (Last created unit) to (Level of Ultimate Serapharic Star for (Triggering unit))
          • -------- Sets the standard size --------
          • Hashtable - Save 100.00 as 3500 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • Set Gravity_Unit_ID = (Last created unit)
          • -------- * --------
          • Set Gravity_unit = (Last created unit)
          • -------- This unit is for the facing angle of your sfx if you choose to use something other than the stock --------
          • -------- For your conviniance --------
          • Unit - Create 1 Target Dummy for (Owner of (Triggering unit)) at Temp_Point facing 0.00 degrees
          • -------- Set this to your spells duration --------
          • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
          • Set Target_Dummy = (Last created unit)
          • -------- * --------
          • -------- For additional information on this area, open the first 'if then else' function --------
          • Set Degrees_set = 0.00
          • -------- Set this to the amount of 'points' of your circle --------
          • -------- The points being were the surrounding Sfx is created --------
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • -------- To create a differant shape, you only need to change this to make it, for exmaple to create a cylindrical shape on all layers this should be the same --------
              • -------- For and hour glass, It should start hiegh, get smaller, then larger again. --------
              • -------- Experiment and see what shapes you can make --------
              • -------- Set this the distance you wish this layer to be away from you centre --------
              • -------- as this is the lowest layer it should have the lowest distance --------
              • Set Temp_Point_2 = (Temp_Point offset by 250.00 towards Degrees_set degrees)
              • -------- Change the sfx to your surrounding sfx dummy --------
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • -------- Set this to the duration of your spell --------
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • -------- Set this layers fly height --------
              • -------- again as this is the lowest layer it should be the smallest --------
              • Animation - Change (Last created unit) flying height to 100.00 at 0.00
              • -------- Set this to 360/your points on your sphere --------
              • -------- I used 12 points so I did this --------
              • -------- 360/12 = 30 --------
              • Set Degrees_set = (Degrees_set + 30.00)
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
              • -------- As standard the Fly height increase by 100 per layer --------
              • -------- And the distance from the centre by 50 --------
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 300.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 200.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 400.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 400.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 350.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 300.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 350.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 500.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 300.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 600.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Set Degrees_set = 0.00
          • For each (Integer Debug) from 1 to 12, do (Actions)
            • Loop - Actions
              • Set Temp_Point_2 = (Temp_Point offset by 250.00 towards Degrees_set degrees)
              • Unit - Create 1 Sfx 2 (ulti) for (Owner of (Triggering unit)) at Temp_Point_2 facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • Unit - Add a 12.00 second Generic expiration timer to (Last created unit)
              • Animation - Change (Last created unit) flying height to 600.00 at 0.00
              • Set Degrees_set = (Degrees_set + 30.00)
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- Set this to your spawn sfx --------
          • Unit - Create 1 Sfx spawn (Ulti) for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_2) degrees
          • -------- This just needs to be a short time --------
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • -------- * --------
          • Trigger - Turn on Loop <gen>
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Sepharic Star
        • Then - Actions
          • -------- * --------
          • Set Currant_intstances = (Currant_intstances + 1)
          • -------- * --------
          • Set Temp_Point = (Position of (Triggering unit))
          • -------- * --------
          • Set Temp_Point_2 = (Target point of ability being cast)
          • -------- Change this to your dummy unit (missile) --------
          • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_2) degrees
          • -------- Chanage this to effect the overall spell duration --------
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • -------- * --------
          • -------- This is the 'Growth tier' --------
          • Hashtable - Save 0 as 1 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • Hashtable - Save (Distance between Temp_Point and Temp_Point_2) as 0 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- Gravity Strength for this tier --------
          • Hashtable - Save 1 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
          • -------- Set this to your dummy ability for your spell (damage is calculated primarily from this --------
          • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star for (Triggering unit))
          • -------- * --------
          • Trigger - Turn on Loop <gen>
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
        • Else - Actions
  • Loop
    • Events
      • Time - Intervals expires
    • Conditions
    • Actions
      • -------- CAUTION --------
      • -------- THIS SECTION IS INCREDABLY CONFUSING --------
      • -------- PROCEED WITH CARE --------
      • -------- Set to your dummy missile --------
      • Set Temp_Group = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Equal to Core) and ((Load 1337 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Equal to 1337)))
      • -------- Dont change what unit group this picks --------
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • -------- * --------
          • Set Gravity_unit = (Picked unit)
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- * --------
          • Set Temp_Point_2 = (Temp_Point offset by (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) towards (Facing of (Picked unit)) degrees)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than or equal to 2.00
            • Then - Actions
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • -------- Set the 155 number to your spells distance per level --------
              • Set Temp_Group_2 = (Units within (400.00 x (Real((Level of Sepharic Star (Ultimate dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Grav
              • -------- * --------
              • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
                • Loop - Actions
                  • -------- * --------
                  • Set Temp_Point = (Position of (Picked unit))
                  • -------- * --------
                  • Hashtable - Save Handle OfTemp_Point as 9 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point)
              • Custom script: call DestroyGroup (udg_Temp_Group_2)
            • Else - Actions
              • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- * --------
          • Set Gravity_Unit_ID = (Picked unit)
          • -------- * --------
          • Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- * --------
          • Hashtable - Save Handle OfTemp_Point as 9 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- Set this to your spells Aoe --------
          • Set Temp_Group_2 = (Units within (400.00 x (Real((Level of Sepharic Star (Ultimate dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Grav
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- Dont change what unit group this picks --------
          • -------- * --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than or equal to 2.00
            • Then - Actions
              • -------- Set the 155 number to your spells distance per level --------
              • Set Temp_Group_2 = (Units within (400.00 x (Real((Level of Sepharic Star (Ultimate dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Grav
              • -------- * --------
              • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
                • Loop - Actions
                  • -------- * --------
                  • Set Temp_Point = (Position of (Picked unit))
                  • -------- * --------
                  • Hashtable - Save Handle OfTemp_Point as 9 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point)
              • Custom script: call DestroyGroup (udg_Temp_Group_2)
            • Else - Actions
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- * --------
          • Set Gravity_Unit_ID = (Picked unit)
          • -------- * --------
          • Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- * --------
          • Hashtable - Save Handle OfTemp_Point as 9 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- Set this to your spells Aoe --------
          • Set Temp_Group_2 = (Units within (400.00 x (Real((Level of Sepharic Star (Ultimate dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Grav
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- Dont change what unit group this picks --------
          • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
            • Loop - Actions
              • -------- * --------
              • Unit - Turn collision for (Picked unit) Off
              • -------- * --------
              • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Hashtable - Save (Default flying height of (Picked unit)) as 11 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
              • -------- Damage formula --------
              • -------- Set the '20' to your landing damage of the units (will affect air units as well) --------
              • Hashtable - Save (160 x (Level of Sepharic Star (Ultimate dummy) for Gravity_unit)) as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit - Add Crow Form to (Picked unit)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 25 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
                • Then - Actions
                  • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Incinerate\IncinerateBuff.mdl
                  • Hashtable - Save Handle Of(Last created special effect) as 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • Hashtable - Save 1 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
                  • (Gravity_unit is alive) Equal to True
                • Then - Actions
                  • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
                  • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
                  • (Gravity_unit is alive) Equal to True
                • Then - Actions
                  • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
                  • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • -------- * --------
              • Unit - Remove Crow Form from (Picked unit)
              • -------- * --------
              • Set Temp_Point = (Position of Gravity_unit)
              • -------- * --------
              • Set Temp_Point_2 = (Position of (Picked unit))
              • -------- * --------
              • Unit - Move (Picked unit) instantly to Temp_Point_2, facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • -------- Damage calculator set the '250' to your damage --------
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (250.00 x (Real((Level of Sepharic Star (Dummy) for (Triggering unit))))))
              • -------- Gravity per level calculator --------
              • -------- Keep the number low --------
              • Hashtable - Save (2 x (Level of Sepharic Star (Ultimate dummy) for Gravity_unit)) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call DestroyGroup (udg_Temp_Group_2)
      • -------- * --------
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • -------- * --------
      • -------- Set to your dummy missile --------
      • Set Temp_Group = (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Projectile))
      • -------- Dont change what unit group this picks --------
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • -------- * --------
          • Set Gravity_unit = (Picked unit)
          • -------- It's best not to change this --------
          • -------- It controlls distance traveled by your missile --------
          • Set Sepharic_Star_Speed = ((Integer((Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) / 2)
          • -------- * --------
          • Hashtable - Save (Real(Sepharic_Star_Speed)) as 0 of (Key (Picked unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- * --------
          • Set Temp_Point_2 = (Temp_Point offset by (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) towards (Facing of (Picked unit)) degrees)
          • -------- * --------
          • Unit - Move (Picked unit) instantly to Temp_Point_2
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than or equal to 2.00
            • Then - Actions
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • -------- Set the 155 number to your spells distance per level --------
              • Set Temp_Group_2 = (Units within (155.00 x (Real((Level of Sepharic Star (Dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Gravity_unit)
              • -------- * --------
              • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
                • Loop - Actions
                  • -------- * --------
                  • Set Temp_Point = (Position of (Picked unit))
                  • -------- * --------
                  • Hashtable - Save Handle OfTemp_Point as 9 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point)
              • Custom script: call DestroyGroup (udg_Temp_Group_2)
            • Else - Actions
              • Custom script: call RemoveLocation (udg_Temp_Point)
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- * --------
          • Set Gravity_Unit_ID = (Picked unit)
          • -------- * --------
          • Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- * --------
          • Hashtable - Save Handle OfTemp_Point as 9 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
          • -------- Set this to your spells Aoe --------
          • Set Temp_Group_2 = (Units within (155.00 x (Real((Level of Sepharic Star (Dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Gravity_unit)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point_2)
          • -------- Dont change what unit group this picks --------
          • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
            • Loop - Actions
              • -------- * --------
              • Unit - Turn collision for (Picked unit) Off
              • -------- * --------
              • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Hashtable - Save (Default flying height of (Picked unit)) as 11 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
              • -------- Damage formula --------
              • -------- Set the '20' to your landing damage of the units (will affect air units as well) --------
              • Hashtable - Save (20 x (Level of Sepharic Star (Dummy) for Gravity_unit)) as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit - Add Crow Form to (Picked unit)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 25 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
                • Then - Actions
                  • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Incinerate\IncinerateBuff.mdl
                  • Hashtable - Save Handle Of(Last created special effect) as 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • Hashtable - Save 1 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
                  • (Gravity_unit is alive) Equal to True
                • Then - Actions
                  • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
                  • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
                  • (Gravity_unit is alive) Equal to True
                • Then - Actions
                  • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
                  • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                • Else - Actions
              • -------- * --------
              • Unit - Remove Crow Form from (Picked unit)
              • -------- * --------
              • Set Temp_Point = (Position of Gravity_unit)
              • -------- * --------
              • Set Temp_Point_2 = (Position of (Picked unit))
              • -------- * --------
              • Unit - Move (Picked unit) instantly to Temp_Point_2, facing (Angle from Temp_Point_2 to Temp_Point) degrees
              • -------- Damage calculator set the '-100' to your damage (make sure you start it with a - or it will --------
              • -------- Be a healing spell --------
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (100.00 x (Real((Level of Sepharic Star (Dummy) for (Triggering unit))))))
              • -------- Gravity per level calculator --------
              • -------- Keep the number low --------
              • Hashtable - Save (2 x (Level of Sepharic Star (Dummy) for Gravity_unit)) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point_2)
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call DestroyGroup (udg_Temp_Group_2)
      • -------- * --------
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • Set Temp_Group = (Units in (Playable map area) matching (((Matching unit) is in Returning_to_normal_fly_height) Equal to True))
      • -------- Dont change what unit group this picks --------
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • -------- * --------
          • Unit - Add Crow Form to (Picked unit)
          • -------- * --------
          • Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
            • Then - Actions
              • -------- Rise calculation --------
              • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x 1.50)) at 0.00
              • -------- * --------
              • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
                  • (Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
                • Then - Actions
                  • -------- * --------
                  • Hashtable - Save 0.00 as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
                  • -------- * --------
                  • Set Temp_Point = (Position of (Picked unit))
                  • -------- Change to your landing sfx --------
                  • Special Effect - Create a special effect at Temp_Point using Objects\Spawnmodels\Human\FragmentationShards\FragBoomSpawn.mdl
                  • -------- * --------
                  • Special Effect - Destroy (Last created special effect)
                  • -------- * --------
                  • Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
                  • -------- * --------
                  • Unit - Cause (Load 100 of (Key (Picked unit)) in (Last created hashtable)) to damage (Picked unit), dealing (Real((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
                  • -------- * --------
                  • Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                  • -------- * --------
                  • Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
                  • -------- * --------
                  • Unit - Turn collision for (Picked unit) On
                  • -------- * --------
                  • Hashtable - Save -1 as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • Set Currant_intstances = (Currant_intstances - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Currant_intstances Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
            • Then - Actions
              • -------- Fall caluculation --------
              • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
              • -------- * --------
              • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
                  • (Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
                • Then - Actions
                  • -------- * --------
                  • Hashtable - Save 0.00 as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
                  • -------- * --------
                  • Set Temp_Point = (Position of (Picked unit))
                  • -------- Change to landing Sfx --------
                  • Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Other\Charm\CharmTarget.mdl
                  • -------- * --------
                  • Special Effect - Destroy (Last created special effect)
                  • -------- * --------
                  • Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
                  • -------- * --------
                  • Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                  • -------- * --------
                  • Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
                  • -------- * --------
                  • Unit - Turn collision for (Picked unit) On
                  • -------- * --------
                  • Unit - Cause (Picked unit) to damage (Picked unit), dealing (Real((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
                  • -------- * --------
                  • Hashtable - Save -1 as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • Set Currant_intstances = (Currant_intstances - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Currant_intstances Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
          • -------- * --------
          • Unit - Remove Crow Form from (Picked unit)
      • -------- * --------
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • -------- * --------
      • Set Temp_Group = (Units in (Playable map area) matching ((Load 7 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Greater than or equal to 1))
      • -------- Dont change what unit group this picks --------
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • -------- * --------
          • Set Temp_Point = (Position of (Picked unit))
          • -------- Knockback speed --------
          • Set Temp_Point_2 = (Temp_Point offset by 10.00 towards (Facing of (Picked unit)) degrees)
          • -------- * --------
          • Unit - Move (Picked unit) instantly to Temp_Point_2
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is A flying unit) Equal to True
              • (Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than 10
            • Then - Actions
              • -------- * --------
              • Unit - Add Crow Form to (Picked unit)
              • -------- Flying unit knockback upwards calculation --------
              • Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x 2.50)) at 0.00
              • -------- * --------
              • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit - Remove Crow Form from (Picked unit)
            • Else - Actions
          • -------- * --------
          • Hashtable - Save ((Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - 1) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point_2)
      • -------- * --------
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • -------- * --------
      • Set Temp_Group = (Units in (Playable map area) matching ((Load 25 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Equal to 1))
      • -------- Dont change what unit group this picks --------
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • -------- Damage dealt (increases every second of spell duration) --------
          • Hashtable - Save ((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + 1) as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than 0
            • Then - Actions
              • Hashtable - Save 0 as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
            • Else - Actions
          • -------- This part cancels damage to units that evaded the initial gravity effect --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 55 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 5
            • Then - Actions
              • -------- * --------
              • Hashtable - Save 0 as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Hashtable - Save 0 as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
              • -------- * --------
              • Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
            • Else - Actions
          • -------- * --------
          • Hashtable - Save ((Load 55 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + 1) as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
      • -------- * --------
      • Custom script: call DestroyGroup (udg_Temp_Group)
  • Death replace
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Core
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1337 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 1337
            • Then - Actions
              • -------- * --------
              • Set Gravity_Unit_ID = (Triggering unit)
              • -------- * --------
              • Set Temp_Point = (Position of (Triggering unit))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 3500 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Less than or equal to 1920.00
                • Then - Actions
                  • -------- Change this to your dummy centre --------
                  • -------- the thing that 'grows' --------
                  • Unit - Create 1 Core for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
                  • -------- Gravity, You could change this but chances are you'll make it far too strong --------
                  • Hashtable - Save 3 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
                  • -------- checker --------
                  • Hashtable - Save 1337 as 1337 of (Key (Last created unit)) in Sepharic_Star_Hashtable
                  • -------- Set this to your dummy ability --------
                  • Unit - Add Sepharic Star (Ultimate dummy) to (Last created unit)
                  • -------- Set this to your dummy ability --------
                  • Unit - Set level of Sepharic Star (Ultimate dummy) for (Last created unit) to (Level of Sepharic Star (Ultimate dummy) for (Triggering unit))
                  • -------- If you don't want to get a pen/pencil and some paper to figure out new size/duration calculations. --------
                  • -------- You shouldn't touch this at all --------
                  • -------- **** --------
                  • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                  • -------- Set this to 1920/your spells duration (x2) --------
                  • -------- For me it lasts 12 second so I did 12x2 = 24 --------
                  • -------- 1920/24 = 80 --------
                  • Hashtable - Save ((Load 3500 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) + 80.00) as 3500 of (Key (Last created unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Animation - Change (Last created unit)'s size to ((Load 3500 of (Key (Last created unit)) from Sepharic_Star_Hashtable)%, (Load 3500 of (Key (Last created unit)) from Sepharic_Star_Hashtable)%, (Load 3500 of (Key (Last created unit)) from Sepharic_Star_Hashtable)%) of its original size
                  • -------- Set This to the centre of your Circle/shape (as fly height) --------
                  • Animation - Change (Last created unit) flying height to 400.00 at 0.00
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Load 3500 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Greater than 1920.00
                    • Then - Actions
                      • -------- Your Explosion sfx --------
                      • Unit - Create 1 Sfx 1 for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
                      • -------- Makes the Sfx alot bigger, If it's too big or too small still, change this --------
                      • Animation - Change (Last created unit)'s size to (700.00%, 700.00%, 700.00%) of its original size
                      • -------- This doesn't matter, Just so long as it isn't intant/ under 3 seconds you should be fine --------
                      • Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
                      • -------- * --------
                      • Set Temp_Group = (Units within 400.00 of Temp_Point matching (((Owner of (Matching unit)) Not equal to (Owner of (Triggering unit))) and (((Load 10 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Greater than or equal to 100.00) and ((Load 10 of (Key (Matching unit)) f
                      • -------- this is a complex part --------
                      • Unit Group - Pick every unit in Temp_Group and do (Actions)
                        • Loop - Actions
                          • Hashtable - Save Handle Of(Last created unit) as 100 of (Key (Picked unit)) in (Last created hashtable)
                          • -------- * --------
                          • Set Temp_Point_2 = (Position of (Picked unit))
                          • -------- * --------
                          • Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
                          • -------- * --------
                          • Unit - Move (Picked unit) instantly to Temp_Point_2, facing (Angle from Temp_Point to Temp_Point_2) degrees
                          • -------- Damage calculation --------
                          • -------- Set the first number you see --------
                          • -------- to your multiplyer --------
                          • Hashtable - Save (250 x (Level of Sepharic Star (Ultimate dummy) for (Triggering unit))) as 200 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                          • -------- * --------
                          • Unit - Cause (Load 100 of (Key (Picked unit)) in (Last created hashtable)) to damage (Picked unit), dealing (Real((Load 200 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
                          • -------- Knockback multiplyer --------
                          • -------- Same as above --------
                          • Hashtable - Save (160 x (Level of Sepharic Star (Ultimate dummy) for (Triggering unit))) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                          • -------- * --------
                          • Custom script: call RemoveLocation (udg_Temp_Point_2)
                      • -------- * --------
                      • Custom script: call DestroyGroup (udg_Temp_Group)
                      • -------- * --------
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • Else - Actions
              • -------- * --------
              • Hashtable - Save 400.00 as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Unit - Remove (Triggering unit) from the game
            • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Triggering unit)) Equal to Sfx 2 (ulti)
            • Then - Actions
              • Special Effect - Destroy (Load 4000 of (Key (Triggering unit)) in Sepharic_Star_Hashtable)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Projectile
        • Then - Actions
          • -------- set the condition to your Missile sfx --------
          • -------- It's important that this section is in reverse order --------
          • -------- Fith - second stage are the same, change them as appropriate --------
          • -------- Tier control --------
          • -------- * --------
          • Set Gravity_Unit_ID = (Triggering unit)
          • -------- * --------
          • Set Temp_Point = (Position of (Triggering unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 5
            • Then - Actions
              • -------- Your Explosion sfx --------
              • Unit - Create 1 Sfx 1 for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • Hashtable - Save 1 as 5 of (Key (Picked unit)) in Sepharic_Star_Hashtable
              • -------- * --------
              • Unit - Add a 15.00 second Generic expiration timer to (Last created unit)
              • -------- * --------
              • Set Temp_Group = (Units within 200.00 of Temp_Point matching (((Owner of (Matching unit)) Not equal to (Owner of (Triggering unit))) and (((Load 10 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Greater than or equal to 100.00) and ((Load 10 of (Key (Matching unit)) f
              • -------- this is a complex part --------
              • Unit Group - Pick every unit in Temp_Group and do (Actions)
                • Loop - Actions
                  • Hashtable - Save Handle Of(Last created unit) as 100 of (Key (Picked unit)) in (Last created hashtable)
                  • -------- * --------
                  • Set Temp_Point_2 = (Position of (Picked unit))
                  • -------- * --------
                  • Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
                  • -------- * --------
                  • Unit - Move (Picked unit) instantly to Temp_Point_2, facing (Angle from Temp_Point to Temp_Point_2) degrees
                  • -------- Damage calculation --------
                  • -------- Set the first number you see --------
                  • -------- to your multiplyer --------
                  • Hashtable - Save (100 x (Level of Sepharic Star (Dummy) for (Triggering unit))) as 200 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • Unit - Cause (Load 100 of (Key (Picked unit)) in (Last created hashtable)) to damage (Picked unit), dealing (Real((Load 200 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
                  • -------- Knockback multiplyer --------
                  • -------- Same as above --------
                  • Hashtable - Save (60 x (Level of Sepharic Star (Dummy) for (Triggering unit))) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
                  • -------- * --------
                  • Custom script: call RemoveLocation (udg_Temp_Point_2)
              • -------- * --------
              • Custom script: call DestroyGroup (udg_Temp_Group)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 4
            • Then - Actions
              • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • -------- Stage identity --------
              • Hashtable - Save 5 as 1 of (Key (Last created unit)) in (Last created hashtable)
              • -------- Gravity strength for this tier --------
              • Hashtable - Save 6 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
              • -------- set to your dummy ability --------
              • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star (Dummy) for (Triggering unit))
              • -------- Growth size --------
              • Animation - Change (Last created unit)'s size to (350.00%, 350.00%, 350.00%) of its original size
              • -------- * --------
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 3
            • Then - Actions
              • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • Hashtable - Save 4 as 1 of (Key (Last created unit)) in (Last created hashtable)
              • Hashtable - Save 5 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
              • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star (Dummy) for (Triggering unit))
              • Animation - Change (Last created unit)'s size to (300.00%, 300.00%, 300.00%) of its original size
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 2
            • Then - Actions
              • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • Hashtable - Save 3 as 1 of (Key (Last created unit)) in (Last created hashtable)
              • Hashtable - Save 4 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
              • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star (Dummy) for (Triggering unit))
              • Animation - Change (Last created unit)'s size to (250.00%, 250.00%, 250.00%) of its original size
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 1
            • Then - Actions
              • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • Hashtable - Save 2 as 1 of (Key (Last created unit)) in (Last created hashtable)
              • Hashtable - Save 3 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
              • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star (Dummy) for (Triggering unit))
              • Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 1 of (Key (Triggering unit)) from Sepharic_Star_Hashtable) Equal to 0
            • Then - Actions
              • -------- Sets the base angle for your surrounding sfx --------
              • Set Angle_setter = 0.00
              • -------- Creates sfx before the other sfx --------
              • Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
              • -------- * --------
              • Special Effect - Destroy (Last created special effect)
              • For each (Integer Debug) from 1 to 5, do (Actions)
                • Loop - Actions
                  • -------- Creates the surrounding sfx --------
                  • Unit - Create 1 Sfx 2 for (Owner of (Triggering unit)) at Temp_Point facing Angle_setter degrees
                  • -------- Set this to your spells duration --------
                  • Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
                  • -------- Change this to match your 'star --------
                  • -------- Formula: --------
                  • -------- 360/side of star --------
                  • Set Angle_setter = (Angle_setter + 72.00)
              • -------- The rest is the same --------
              • -------- as The others --------
              • Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Facing of (Triggering unit)) degrees
              • Hashtable - Save 2 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
              • Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star (Dummy) for (Triggering unit))
              • Hashtable - Save 1 as 1 of (Key (Last created unit)) in (Last created hashtable)
              • Animation - Change (Last created unit)'s size to (150.00%, 150.00%, 150.00%) of its original size
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
          • -------- * --------
          • Hashtable - Save (Default flying height of (Last created unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
          • -------- * --------
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • Unit - Remove (Triggering unit) from the game
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Triggering unit)) Equal to Sfx 1
            • Then - Actions
              • -------- set the condition to your surrounding sfx --------
              • Unit - Remove (Triggering unit) from the game
            • Else - Actions



v1.36
Just noticed that in an experiment I was doing a long long time ago I accidently left it there without removing the remnents of it, hence this upate which changed it from 'unit starts channeling' back to 'starts the effect of'
man the an embrassing mistake >_>'
V1.35
Added ultimate version with extra eye candy
Fixed a leak
Lowered amount of general lag by changing the sfx model
Now there is 0% chance of getting killed.
Added alot of documentation about modifing the ulti version.

V1.20
Fixed to only Leak
Moved the '
  • Custom script: call DestroyGroup (udg_Temp_Group_2)
'
To it's correct position

V1.15
Minor Changes
Fixed the 'sfx but no moving' bug
Loop now turns off when not in use
Compacted the death replace trigger

V1.01
Fixed bounty bug


Now it has an ultimate version.

Give me Credits if you use this spell in your map plz.

Enjoy :)

Keywords:
FF, Final, Fantasy, Final Fantasy, Kuja, Zidane, Dissidia, Seraphic, Star, Seraphic Star, nine, 9, FFIX, FF9, FF1X, Explosion, Bewm, Boom, Bang, Blast
Contents

Serapharic Star (Map)

Reviews
20:11, 8th Dec 2009 The_Reborn_Devil: The triggering looks good and there are no leaks. The effects are really nice. Status: Approved Rating: Recommended

Moderator

M

Moderator

20:11, 8th Dec 2009
The_Reborn_Devil:
The triggering looks good and there are no leaks.
The effects are really nice.

Status: Approved
Rating: Recommended
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
It's a lot of code to plough through...this is what I spotted at first:

  • Hashtable - Save 0 as 1 of (Key (Last created unit)) in (Last created hashtable)
In the "begins channeling" -trigger.

Also when you do this:

  • Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
    • Loop - Actions
      • -------- * --------
      • Set Temp_Point = (Position of (Picked unit))
      • -------- * --------
      • Hashtable - Save Handle OfTemp_Point as 9 of (Key (Picked unit)) in Sepharic_Star_Hashtable
  • -------- * --------
  • Custom script: call RemoveLocation (udg_Temp_Point)
You remove the last location that is stored to the hashtable. Is it supposed to go that way?

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
      • (Gravity_unit is alive) Equal to True
    • Then - Actions
      • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
      • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
    • Else - Actions
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
      • (Gravity_unit is alive) Equal to True
    • Then - Actions
      • Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
      • Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
    • Else - Actions
What happens if it's equal? You could perhaps set the latter IF/THEN/ELSE to the first IF/THEN/ELSE's ELSE branch.

Sometimes some units get the effect, but they do not float around or get knocked back. Maybe because they hit the ground? (flying height == 0)

The spell looks cool.

The tooltip is messed up and you can select the orbs. Give them locust or something.

The loop runs all the time even when the spell is not active. Turn that trigger on/off when needed.

In "Death Replace" you could put those stage checks to the else branch of the previous check so it doesn't run all the checks every time.

You also have some redundant code in that trigger, Set Temp_Point = (Position of (Triggering unit)) seems like that at least.

I'd rate this 3/5 as of now. It has potential for better rating. It's a good spell, I hope you optimize the code a bit :)
 
Last edited:
Well out of all 'last created hashtable' errors that was the only one as far as I can see.
(Fixed)

As for selectable projectiles, it's cos at the start I need to move them and I Cannot remember how to pick them without making them selectable, maybe i'll find another way, who knows :p

Will be updating shortly.

Also I'm aware of the eaffect but not the gravity, for that i do not understnad as the areas are identical in theory thast shouldn't happen and there appears to be no way of curing that without me making the gravity area larger than the effect area, which i do not wish to do s it would affect the overall damage calculation. however i can think of an easy solution.
(Fixed)

The death replace one I'm actually already remaking to do that and I was gonna update once i had finished it.
(changed)

As for the thing of them being equal, then the unit's flying wont change, however it will still be pulled, Also regardless of that it wont have an effect on the knockback height changes.

I only seperate things like this because I find it makes it slightly easier to read.
There isn't so much of a point as attaching the second to the first But if it's necessary I will.
 
Last edited:
Level 16
Joined
Jul 4, 2008
Messages
1,106
Hello there! I'm going to reviewe your spell by now.
Have fun. :)

Review

Current Job: Done!

Triggering:
- Leaks: Yes, It has leaks. For total leak count, you'll just press the button below: "Leaks"
- Eye-Candy: Some.
- Documentation: Well there is one.. But it doesn't tell everything that it COULD tell. Mostly your documentation is -----*-----'s.
- User Friendly: Maybe? No. It uses hastables, meaning it isn't user friendly to me and few others.
- Usability: No idea.

In-Game:
- Eye-Candy: Amazin. More green I request!
- Testmap: Boooriiiing!
- User Friendly: It is not user friendly one, The hero may even die in there, or am I wrong?



[trigger=""]
Init
Events
Unit - A unit Begins channeling an ability
Conditions
(Ability being cast) Equal to Sepharic Star
Actions
-------- * --------
Set Currant_intstances = (Currant_intstances + 1)
-------- * --------
Set Temp_Point = (Position of (Triggering unit))
-------- * --------
Set Temp_Point_2 = (Target point of ability being cast)
-------- Change this to your dummy unit (missile) --------
Unit - Create 1 Projectile for (Owner of (Triggering unit)) at Temp_Point facing (Angle from Temp_Point to Temp_Point_2) degrees
-------- Chanage this to effect the overall spell duration --------
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-------- * --------
-------- This is the 'Growth tier' --------
Hashtable - Save 0 as 1 of (Key (Last created unit)) in Sepharic_Star_Hashtable
-------- * --------
Hashtable - Save (Distance between Temp_Point and Temp_Point_2) as 0 of (Key (Last created unit)) in Sepharic_Star_Hashtable
-------- Gravity Strength for this tier --------
Hashtable - Save 1 as 2 of (Key (Last created unit)) in Sepharic_Star_Hashtable
-------- Set this to your dummy ability for your spell (damage is calculated primarily from this --------
Unit - Set level of Sepharic Star (Dummy) for (Last created unit) to (Level of Sepharic Star for (Triggering unit))
-------- * --------
Trigger - Turn on Loop <gen>
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point_2)
[/trigger]
This trigger leaks, wrong order to remove points. Causes what? Doesn't remove some of stuff instantly but later, causing commotion.
Temp_Point_2 first, then Temp_Point.

[trigger=""]
Loop
Events
Time - Intervals expires
Conditions
Actions
-------- CAUTION --------
-------- THIS SECTION IS INCREDABLY CONFUSING --------
-------- PROCEED WITH CARE --------
-------- Set to your dummy missile --------
Set Temp_Group = (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Projectile))
-------- Dont change what unit group this picks --------
Unit Group - Pick every unit in Temp_Group and do (Actions)
Loop - Actions
-------- * --------
Set Gravity_unit = (Picked unit)
-------- It's best not to change this --------
-------- It controlls distance traveled by your missile --------
Set Sepharic_Star_Speed = ((Integer((Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) / 2)
-------- * --------
Hashtable - Save (Real(Sepharic_Star_Speed)) as 0 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- * --------
Set Temp_Point_2 = (Temp_Point offset by (Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) towards (Facing of (Picked unit)) degrees)
-------- * --------
Unit - Move (Picked unit) instantly to Temp_Point_2
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 0 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than or equal to 2.00
Then - Actions
-------- Set the 155 number to your spells distance per level --------
Set Temp_Group_2 = (Units within (155.00 x (Real((Level of Sepharic Star (Dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Gravity_unit)
-------- * --------
Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
Loop - Actions
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- * --------
Hashtable - Save Handle OfTemp_Point as 9 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
Custom script: call DestroyGroup (udg_Temp_Group_2)
Else - Actions
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- * --------
Set Gravity_Unit_ID = (Picked unit)
-------- * --------
Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
-------- * --------
Hashtable - Save Handle OfTemp_Point as 9 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
-------- Set this to your spells Aoe --------
Set Temp_Group_2 = (Units within (155.00 x (Real((Level of Sepharic Star (Dummy) for Gravity_unit)))) of Temp_Point matching ((((Owner of (Matching unit)) is an ally of (Owner of Gravity_unit)) Equal to False) and ((Owner of (Matching unit)) Not equal to (Owner of Gravity_unit)
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point_2)
-------- Dont change what unit group this picks --------
Unit Group - Pick every unit in Temp_Group_2 and do (Actions)
Loop - Actions
-------- * --------
Unit - Turn collision for (Picked unit) Off
-------- * --------
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Hashtable - Save (Default flying height of (Picked unit)) as 11 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Hashtable - Save (Current flying height of Gravity_unit) as 10 of (Key Gravity_Unit_ID) in Sepharic_Star_Hashtable
-------- Damage formula --------
-------- Set the '20' to your landing damage of the units (will affect air units as well) --------
Hashtable - Save (20 x (Level of Sepharic Star (Dummy) for Gravity_unit)) as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Unit - Add Crow Form to (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 25 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
Then - Actions
Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Orc\Voodoo\VoodooAuraTarget.mdl
Hashtable - Save Handle Of(Last created special effect) as 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Hashtable - Save 1 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
(Gravity_unit is alive) Equal to True
Then - Actions
Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 10 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)
(Gravity_unit is alive) Equal to True
Then - Actions
Animation - Change (Picked unit) flying height to ((Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + (Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable)))) at 0.00
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Else - Actions
-------- * --------
Unit - Remove Crow Form from (Picked unit)
-------- * --------
Set Temp_Point = (Position of Gravity_unit)
-------- * --------
Set Temp_Point_2 = (Position of (Picked unit))
-------- * --------
Unit - Move (Picked unit) instantly to Temp_Point_2, facing (Angle from Temp_Point_2 to Temp_Point) degrees
-------- Damage calculator set the '-100' to your damage (make sure you start it with a - or it will --------
-------- Be a healing spell --------
Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (100.00 x (Real((Level of Sepharic Star (Dummy) for (Triggering unit))))))
-------- Gravity per level calculator --------
-------- Keep the number low --------
Hashtable - Save (2 x (Level of Sepharic Star (Dummy) for Gravity_unit)) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point_2)
-------- * --------
Custom script: call DestroyGroup (udg_Temp_Group_2)
-------- * --------
Custom script: call DestroyGroup (udg_Temp_Group)
-------- * --------
Set Temp_Group = (Units in (Playable map area) matching (((Matching unit) is in Returning_to_normal_fly_height) Equal to True))
-------- Dont change what unit group this picks --------
Unit Group - Pick every unit in Temp_Group and do (Actions)
Loop - Actions
-------- * --------
Unit - Add Crow Form to (Picked unit)
-------- * --------
Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
Then - Actions
-------- Rise calculation --------
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x 1.50)) at 0.00
-------- * --------
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
(Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
Then - Actions
-------- * --------
Hashtable - Save 0.00 as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- Change to your landing sfx --------
Special Effect - Create a special effect at Temp_Point using Objects\Spawnmodels\Human\FragmentationShards\FragBoomSpawn.mdl
-------- * --------
Special Effect - Destroy (Last created special effect)
-------- * --------
Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
-------- * --------
Unit - Cause (Load 100 of (Key (Picked unit)) in (Last created hashtable)) to damage (Picked unit), dealing (Real((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
-------- * --------
Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
-------- * --------
Unit - Turn collision for (Picked unit) On
-------- * --------
Hashtable - Save -1 as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Set Currant_intstances = (Currant_intstances - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Currant_intstances Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
Then - Actions
-------- Fall caluculation --------
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
-------- * --------
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Unit Group - Add (Picked unit) to Returning_to_normal_fly_height
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 10 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Less than (Load 11 of (Key (Picked unit)) from Sepharic_Star_Hashtable)
(Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 0
Then - Actions
-------- * --------
Hashtable - Save 0.00 as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x -1.50)) at 0.00
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- Change to landing Sfx --------
Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Other\Charm\CharmTarget.mdl
-------- * --------
Special Effect - Destroy (Last created special effect)
-------- * --------
Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
-------- * --------
Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Unit Group - Remove (Picked unit) from Returning_to_normal_fly_height
-------- * --------
Unit - Turn collision for (Picked unit) On
-------- * --------
Unit - Cause (Picked unit) to damage (Picked unit), dealing (Real((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable))) damage of attack type Spells and damage type Normal
-------- * --------
Hashtable - Save -1 as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Set Currant_intstances = (Currant_intstances - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Currant_intstances Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Else - Actions
-------- * --------
Unit - Remove Crow Form from (Picked unit)
-------- * --------
Custom script: call DestroyGroup (udg_Temp_Group)
-------- * --------
Set Temp_Group = (Units in (Playable map area) matching ((Load 7 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Greater than or equal to 1))
-------- Dont change what unit group this picks --------
Unit Group - Pick every unit in Temp_Group and do (Actions)
Loop - Actions
-------- * --------
Set Temp_Point = (Position of (Picked unit))
-------- Knockback speed --------
Set Temp_Point_2 = (Temp_Point offset by 10.00 towards (Facing of (Picked unit)) degrees)
-------- * --------
Unit - Move (Picked unit) instantly to Temp_Point_2
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is A flying unit) Equal to True
(Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than 10
Then - Actions
-------- * --------
Unit - Add Crow Form to (Picked unit)
-------- Flying unit knockback upwards calculation --------
Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) + ((Real((Load 2 of (Key Gravity_Unit_ID) from Sepharic_Star_Hashtable))) x 2.50)) at 0.00
-------- * --------
Hashtable - Save (Current flying height of (Picked unit)) as 10 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Unit - Remove Crow Form from (Picked unit)
Else - Actions
-------- * --------
Hashtable - Save ((Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) - 1) as 7 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point)
-------- * --------
Custom script: call RemoveLocation (udg_Temp_Point_2)
-------- * --------
Custom script: call DestroyGroup (udg_Temp_Group)
-------- * --------
Set Temp_Group = (Units in (Playable map area) matching ((Load 25 of (Key (Matching unit)) from Sepharic_Star_Hashtable) Equal to 1))
-------- Dont change what unit group this picks --------
Unit Group - Pick every unit in Temp_Group and do (Actions)
Loop - Actions
-------- Damage dealt (increases every second of spell duration) --------
Hashtable - Save ((Load 50 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + 1) as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 7 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Greater than 0
Then - Actions
Hashtable - Save 0 as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Else - Actions
-------- This part cancels damage to units that evaded the initial gravity effect --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 55 of (Key (Picked unit)) from Sepharic_Star_Hashtable) Equal to 5
Then - Actions
-------- * --------
Hashtable - Save 0 as 50 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Hashtable - Save 0 as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Special Effect - Destroy (Load 20 of (Key (Picked unit)) in Sepharic_Star_Hashtable)
-------- * --------
Hashtable - Save 0 as 25 of (Key (Picked unit)) in Sepharic_Star_Hashtable
Else - Actions
-------- * --------
Hashtable - Save ((Load 55 of (Key (Picked unit)) from Sepharic_Star_Hashtable) + 1) as 55 of (Key (Picked unit)) in Sepharic_Star_Hashtable
-------- * --------
Custom script: call DestroyGroup (udg_Temp_Group)

[/trigger]

Same with the other trigger, Wrong orders my friend! Fix them, If a variable that is using a variable gets removed before the other variable is removed, it leaks. Ok, I bet you didn't understand, let me explain.
[trigger=""]
set TempPointA = GG_LOCATION
set TempPointB = ((TempPointA), 60, 50)
call RemoveLocation(udg_TempPointA)
call RemoveLocation(udg_TempPointB)
[/trigger]
Result - Leak

[trigger=""]
set TempPointA = GG_LOCATION
set TempPointB = ((TempPointA), 60, 50)
call RemoveLocation(udg_TempPointB)
call RemoveLocation(udg_TempPointA)
[/trigger]
Result - Fixed Leak

{ = 3/5}
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
OffGraphic, what you are saying about leaks is total shit. Locations are separate objects, and if you look at how polar projection BJ works you will see that they are totally unlinked and freestanding objects which share nothing in common next to one's cordinates were derived from the others.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
OffGraphic, um but his does not leak? Really what your argument was for a leak makes no sense. Order in which things are removed does not mater one bit as long as they are removed (as long as you do remove them eventually). Like I said locations are independant objects with no link to each other.

Honestly, whoever told you that that was the case was eithor someone who should not be telling people or was incrediably stupid.
 
well anyway, I Shall soon be updating it, with an Ultimate version attasched as well (much more eyecandy larger area, more damage knockback etc.) And I shall improve what I can.

Also the '*'s reprisent things that shouldn't be touched if you still want it to work :p

Editr: Paradox, The lag your experiancing Is most likely down to the sfx, which when used on many unit may generate lag, to stop that lag The sfx needs to be replaced with something with less particles/polies etc. Also many units moving on the same poistion causes a lower in fps, but for this spell to work, that is unavoidable.

as for you Pharaoh, I honerstly dont know whats gone wrong there, Try Downloading it again.

Update will be momentarily. with A 'better' sfx for the gravity effect (as the currant one was causing lag) and an Ultimate version of the spell (not casted from a distance)
(Done)
 
Last edited:
Well, I'm getting no lag whatsoever, I honestly don't know why your getting lag unless your either using an old/ low spec. Computer, and besides the second one is always going to be more likely to generate more lag, it has a larger area therefore pulling more units It's also made of many more sfx fragements as it were, I beleive the same reasons as before apply, If you can find a cause in the triggering then I will fix it, But seeing as you havn't supplied a problem in the triggering, then it's either sfx or your comp. having low specs. Neither of which truly link to the triggers, as the sfx model can be changed in object data, and generally having many units in the map lowers fsp, same as large amounts of sfx etc.

If you do find a problem with the triggers though, tell me so I can fix it and Reduce that lag of yours.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
You using a apple OS with mac WC3? If so then complain to blizzard.
If you are using any kind of capped computer system (very old or laptop), it may be this spell is too demanding for your PC to run.

This spell does not crash a WC3 TFT 1.24c Windows version running on windows 7 64 bit ultimate.

Bug 1 - When using the big orb ability, you can select the dummy effect and view its hitpoint bar. This has nothing to do with the spells triggering but still makes it look shoddy. I advise adding locust to the dummy.
Bug 2 - When using the big orb ability, units can bash your hero around (move him not damage him), resulting in him even becomming stuck inside a group of units. I advise turning off the afected units collision while under the effect of the ability, or making it a propper channel ability so the caster can not move without it collapsing.
 
Level 3
Joined
Nov 14, 2010
Messages
27
I Found a bug :)

When u kill and blow enemy till then is all OK,,, but after that when the corpes decay ur spell pick corpes too :) and dont do nothing to corpes becouse they are alredy death...
Can u fix that or that isn't a bug? anyway its a great spell .. 5/5.. keep working :)
 
Level 17
Joined
Nov 13, 2006
Messages
1,814
ultimate seraphic ability make kinda 15-20 sec lagg to me....

only to me? i just level uped to max level and tryed on demo map and bang kinda freezed the whole wc3 till a enough long time


i used MAC, and it lagged me a lot (2nd spell), only 8 frames / sec

i think its mac's wc3.

anyways, the first skill also absorbed dead units? looks bad when it pulls corpses.

for me worst and i got window xp so i doubt coz of ur mac :p
 
Top