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

Dancing Flame 1.3 [GUI]

Description:

Creates circling fire clouds which burn nearby enemies and regularly burst flames on large area.
Level 1 - 1 rotation.
Level 2 - 2 rotations.
Level 3 - 3 rotations.

Changelog:

1.0 - Relased
1.1 - Fixed minor leaks
1.2 - Fixed dummy leak
1.3 - Made spell MUI again

  • Dancing Flame Init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set DancingFlameHashtable = (Last created hashtable)
  • Dancing Flame Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dancing Flame
    • Actions
      • Set TempPlayer = (Triggering player)
      • Set TempUnit = (Triggering unit)
      • Set DancingFlameID = (Key (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (TempUnit is in DancingFlameGroup) Equal to True
        • Then - Actions
          • Set DancingFlame[1] = (Load 1 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[2] = (Load 2 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[3] = (Load 3 of DancingFlameID in DancingFlameHashtable)
          • Unit - Remove DancingFlame[1] from the game
          • Unit - Remove DancingFlame[2] from the game
          • Unit - Remove DancingFlame[3] from the game
          • Hashtable - Clear all child hashtables of child DancingFlameID in DancingFlameHashtable
        • Else - Actions
          • Unit Group - Add TempUnit to DancingFlameGroup
          • Trigger - Turn on Dancing Flame Spin <gen>
          • Trigger - Turn on Dancing Flame Tail <gen>
      • Set TempLoc = (Position of TempUnit)
      • Unit - Create 1 Dancing Flame for TempPlayer at TempLoc facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 1 of DancingFlameID in DancingFlameHashtable
      • Unit - Create 1 Dancing Flame for TempPlayer at TempLoc facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 2 of DancingFlameID in DancingFlameHashtable
      • Unit - Create 1 Dancing Flame for TempPlayer at TempLoc facing Default building facing degrees
      • Hashtable - Save Handle Of(Last created unit) as 3 of DancingFlameID in DancingFlameHashtable
      • Custom script: call RemoveLocation(udg_TempLoc)
      • -------- Angle 1 --------
      • Hashtable - Save 0.00 as 4 of DancingFlameID in DancingFlameHashtable
      • -------- Angle 2 --------
      • Hashtable - Save 2.09 as 5 of DancingFlameID in DancingFlameHashtable
      • -------- Angle 3 --------
      • Hashtable - Save 4.18 as 6 of DancingFlameID in DancingFlameHashtable
      • -------- Step --------
      • Hashtable - Save 5.00 as 7 of DancingFlameID in DancingFlameHashtable
      • -------- Step 2 --------
      • Hashtable - Save -0.05 as 8 of DancingFlameID in DancingFlameHashtable
      • -------- Distance --------
      • Hashtable - Save 0.00 as 9 of DancingFlameID in DancingFlameHashtable
      • -------- Spins --------
      • Hashtable - Save (1 + (Level of Dancing Flame for TempUnit)) as 10 of DancingFlameID in DancingFlameHashtable
  • Dancing Flame Spin
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DancingFlameGroup and do (Actions)
        • Loop - Actions
          • Set DancingFlameID = (Key (Picked unit))
          • Set TempUnit = (Picked unit)
          • Set TempPlayer = (Owner of TempUnit)
          • Set DancingFlame[1] = (Load 1 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[2] = (Load 2 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[3] = (Load 3 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlameAngle[1] = (Load 4 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameAngle[2] = (Load 5 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameAngle[3] = (Load 6 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameStep = (Load 7 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameStep2 = (Load 8 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameDistance = (Load 9 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameSpins = (Load 10 of DancingFlameID from DancingFlameHashtable)
          • Set DancingFlameAngle[1] = (DancingFlameAngle[1] + 0.03)
          • Set DancingFlameAngle[2] = (DancingFlameAngle[2] + 0.03)
          • Set DancingFlameAngle[3] = (DancingFlameAngle[3] + 0.03)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DancingFlameStep Greater than or equal to 5.00
            • Then - Actions
              • Set DancingFlameStep2 = -0.05
              • Set DancingFlameStep = 5.00
              • Set DancingFlameDistance = 0.00
              • Set DancingFlameSpins = (DancingFlameSpins - 1)
              • Set TempLoc = (Position of TempUnit)
              • For each (Integer TempInt) from 1 to 6, do (Actions)
                • Loop - Actions
                  • Unit - Create 1 Dancing Flame Caster for TempPlayer at TempLoc facing ((Real(TempInt)) x 60.00) degrees
                  • Set TempLoc2 = (TempLoc offset by 100.00 towards ((Real(TempInt)) x 60.00) degrees)
                  • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire TempLoc2
                  • Custom script: call RemoveLocation(udg_TempLoc2)
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • Custom script: call RemoveLocation(udg_TempLoc)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DancingFlameStep Less than or equal to -5.00
                • Then - Actions
                  • Set DancingFlameStep2 = 0.05
                  • Set DancingFlameStep = -5.00
                  • Set DancingFlameDistance = 0.00
                  • Set DancingFlameSpins = (DancingFlameSpins - 1)
                  • Set TempLoc = (Position of TempUnit)
                  • For each (Integer TempInt) from 1 to 6, do (Actions)
                    • Loop - Actions
                      • Unit - Create 1 Dancing Flame Caster for TempPlayer at TempLoc facing ((Real(TempInt)) x 60.00) degrees
                      • Set TempLoc2 = (TempLoc offset by 100.00 towards ((Real(TempInt)) x 60.00) degrees)
                      • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire TempLoc2
                      • Custom script: call RemoveLocation(udg_TempLoc2)
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Custom script: call RemoveLocation(udg_TempLoc)
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DancingFlameSpins Equal to 0
            • Then - Actions
              • Unit - Remove DancingFlame[1] from the game
              • Unit - Remove DancingFlame[2] from the game
              • Unit - Remove DancingFlame[3] from the game
              • Hashtable - Clear all child hashtables of child DancingFlameID in DancingFlameHashtable
              • Unit Group - Remove TempUnit from DancingFlameGroup
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in DancingFlameGroup) Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                  • Trigger - Turn off Dancing Flame Tail <gen>
                • Else - Actions
            • Else - Actions
          • Set DancingFlameStep = (DancingFlameStep + DancingFlameStep2)
          • Set DancingFlameDistance = (DancingFlameDistance + DancingFlameStep)
          • Custom script: call SetUnitX(udg_DancingFlame[1], GetUnitX(udg_TempUnit) + udg_DancingFlameDistance * Cos(udg_DancingFlameAngle[1]))
          • Custom script: call SetUnitY(udg_DancingFlame[1], GetUnitY(udg_TempUnit) + udg_DancingFlameDistance * Sin(udg_DancingFlameAngle[1]))
          • Custom script: call SetUnitX(udg_DancingFlame[2], GetUnitX(udg_TempUnit) + udg_DancingFlameDistance * Cos(udg_DancingFlameAngle[2]))
          • Custom script: call SetUnitY(udg_DancingFlame[2], GetUnitY(udg_TempUnit) + udg_DancingFlameDistance * Sin(udg_DancingFlameAngle[2]))
          • Custom script: call SetUnitX(udg_DancingFlame[3], GetUnitX(udg_TempUnit) + udg_DancingFlameDistance * Cos(udg_DancingFlameAngle[3]))
          • Custom script: call SetUnitY(udg_DancingFlame[3], GetUnitY(udg_TempUnit) + udg_DancingFlameDistance * Sin(udg_DancingFlameAngle[3]))
          • Hashtable - Save DancingFlameAngle[1] as 4 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameAngle[2] as 5 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameAngle[3] as 6 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameStep as 7 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameStep2 as 8 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameDistance as 9 of DancingFlameID in DancingFlameHashtable
          • Hashtable - Save DancingFlameSpins as 10 of DancingFlameID in (Last created hashtable)
  • Dancing Flame Tail
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DancingFlameGroup and do (Actions)
        • Loop - Actions
          • Set DancingFlameID = (Key (Picked unit))
          • Set DancingFlame[1] = (Load 1 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[2] = (Load 2 of DancingFlameID in DancingFlameHashtable)
          • Set DancingFlame[3] = (Load 3 of DancingFlameID in DancingFlameHashtable)
          • Set TempLoc = (Position of DancingFlame[1])
          • Unit - Create 1 Dancing Flame Tail for Neutral Passive at TempLoc facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_TempLoc)
          • Unit - Add a 0.70 second Generic expiration timer to (Last created unit)
          • Set TempLoc = (Position of DancingFlame[2])
          • Unit - Create 1 Dancing Flame Tail for Neutral Passive at TempLoc facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_TempLoc)
          • Unit - Add a 0.70 second Generic expiration timer to (Last created unit)
          • Set TempLoc = (Position of DancingFlame[3])
          • Unit - Create 1 Dancing Flame Tail for Neutral Passive at TempLoc facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_TempLoc)
          • Unit - Add a 0.70 second Generic expiration timer to (Last created unit)
  • Dancing Flame Clear
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Triggering unit)) Equal to Dancing Flame Caster
          • (Unit-type of (Triggering unit)) Equal to Dancing Flame Tail
    • Actions
      • Unit - Remove (Triggering unit) from the game


Keywords:
Dancing, Flame, Fire, explosion.
Contents

Dancing Flame 1.3 (Map)

Reviews
19:29, 16th Sep 2012 Magtheridon96: Approved. This spell is quite useful and a nice addition to our database.

Moderator

M

Moderator

19:29, 16th Sep 2012
Magtheridon96:

Approved.
This spell is quite useful and a nice addition to our database.
 
Top