[Log in / Register]
| News | Chat | Pastebin | Donations | Tutorials | Rules | Forums |
| Maps | Skins | Icons | Models | Spells | Tools | Jass | Packs | Hosted Projects | Starcraft II Modding | Starcraft II Resources | Galaxy Wiki |
(Keeps Hive Alive)
Go Back   The Hive Workshop > Spells


Reply
 
Thread Tools
The Hive Workshop Spells:
Dancing Flame 1.3 [GUI]
by Jory
Images
Highslide JS
Details
Uploaded:15:15, 16th Sep 2012
Last Updated:15:24, 18th Sep 2012
Keywords:Dancing, Flame, Fire, explosion.
Type:No Target
Category:GUI / Triggers

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

Triggers
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
Rating - 5.00 (1 vote)
(Hover and click)
Moderator Comments
Useful
19:29, 16th Sep 2012
Magtheridon96:

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

This spell is approved and works properly.


Download Dancing Flame.w3x
(39.64 KB, 943 Downloads)

Old 09-18-2012, 05:20 PM   #2 (permalink)
Registered User -SpoX-
Vanquish The Weak
 
-SpoX-'s Avatar
 
Join Date: Sep 2012
Posts: 230
-SpoX- has little to show at this moment (33)-SpoX- has little to show at this moment (33)-SpoX- has little to show at this moment (33)-SpoX- has little to show at this moment (33)
Looks Nice ! 5/5
-SpoX- is offline   Reply With Quote
Old 10-19-2012, 04:17 AM   #3 (permalink)
Registered User darkdrake01
User
 
darkdrake01's Avatar
 
Join Date: May 2012
Posts: 3
darkdrake01 is an unknown quantity at this point (0)
Nice !! 5/5
darkdrake01 is offline   Reply With Quote
Old 12-18-2012, 01:37 AM   #4 (permalink)
Registered User Exavier00
C++ and learning C# prgmr
 
Exavier00's Avatar
 
Join Date: Jul 2010
Posts: 63
Exavier00 has little to show at this moment (4)
You forgot to destroy them when the caster dies.
__________________
DUSK AT DAWN
Exavier00 is offline   Reply With Quote
Old 01-02-2013, 04:24 AM   #5 (permalink)
Registered User Almia
Not even my final form.
 
Almia's Avatar
 
Join Date: Apr 2012
Posts: 3,059
Almia is a name known to all (679)Almia is a name known to all (679)Almia is a name known to all (679)
The spell can be a lot more better.
Those 1,2,3 arrays can be inside a Integer Loop
Dummy Clear can be made faster.
Creation of Dummies in the Tail trigger can be also in a Integer Loop
The offset and angle can be configurable too.(for the users to easily increase the missiles)
Almia is offline   Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


All times are GMT. The time now is 05:46 AM.





Powered by vBulletin
Copyright 2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.5.1 PL2
Copyright © Ralle