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

Flame Circle v1.5

  • Like
Reactions: -Derp- and Bununyx
Okay here we go! I created this spell today for my map, thought to upload it and here it is.
Description

Creates a circle of fire that circulates around the caster withing 700 AoE and deals 5, 10, 15 damage per 0.10 seconds within 150 range of every fire projectile. Also strikes a random target with lighting, dealing Intelligence of caster multiple by 1, 2, 3, if target dies from lightning it will explode and deal 50, 100, 150 bonus damage in 250 AoE.
Lasts 5, 10, 15 seconds.

  • Flame Circle Settings
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- -------------------------------------------------- --------
      • -------- Ability that is casted by hero --------
      • -------- -------------------------------------------------- --------
      • Set FC_Ability = |c00ff0303F|rlame Circle
      • -------- -------------------------------------------------- --------
      • -------- Speed of fire projectile --------
      • -------- -------------------------------------------------- --------
      • Set FC_Speed = 30.00
      • -------- -------------------------------------------------- --------
      • -------- Maximum area of circle --------
      • -------- -------------------------------------------------- --------
      • Set FC_AoE1 = 700.00
      • -------- -------------------------------------------------- --------
      • -------- Area of damage near the circle --------
      • -------- -------------------------------------------------- --------
      • Set FC_AoE2 = 150.00
      • -------- -------------------------------------------------- --------
      • -------- Number of effects around the caster --------
      • -------- -------------------------------------------------- --------
      • Set FC_Number = 12
      • -------- -------------------------------------------------- --------
      • -------- Set the next value to tru if you want to show the text that shows damage of lighting --------
      • -------- -------------------------------------------------- --------
      • Set FC_Check = True
  • Flame Circle Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to FC_Ability
    • Actions
      • -------- -------------------------------------------------- --------
      • -------- Indexing --------
      • -------- -------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FC_Index1 Equal to 0
        • Then - Actions
          • Trigger - Turn on Flame Circle Loop <gen>
        • Else - Actions
      • Set FC_Index1 = (FC_Index1 + 1)
      • Set FC_Index2 = (FC_Index2 + 1)
      • -------- --------------------------------------------------OTHER SETTINGS-------------------------------------------------- --------
      • -------- -------------------------------------------------- --------
      • -------- Caster --------
      • -------- -------------------------------------------------- --------
      • Set FC_Caster[FC_Index2] = (Triggering unit)
      • Set FC_Level = (Level of (Ability being cast) for FC_Caster[FC_Index2])
      • -------- -------------------------------------------------- --------
      • -------- Damage near the circle --------
      • -------- -------------------------------------------------- --------
      • Set FC_Damage1 = ((Real(FC_Level)) x 5.00)
      • -------- -------------------------------------------------- --------
      • -------- Damage of lightning --------
      • -------- -------------------------------------------------- --------
      • Set FC_Damage2 = (Real((FC_Level x (Intelligence of FC_Caster[FC_Index2] (Include bonuses)))))
      • -------- -------------------------------------------------- --------
      • -------- Damage of lightning explosion --------
      • -------- -------------------------------------------------- --------
      • Set FC_Damage3 = ((Real(FC_Level)) x 50.00)
      • -------- -------------------------------------------------- --------
      • -------- Duration of the spell --------
      • -------- -------------------------------------------------- --------
      • Set FC_Duration[FC_Index2] = ((Real((Level of FC_Ability for FC_Caster[FC_Index2]))) x 5.00)
  • Flame Circle Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer FC_Index3) from 1 to FC_Index2, do (Actions)
        • Loop - Actions
          • -------- -------------------------------------------------- --------
          • -------- Calculating duration and angle --------
          • -------- !!!WARNING!!! If you want to change the periodic event to some other time then change the value in FC_Duration where you subtract it !!!WARNING!!! --------
          • -------- -------------------------------------------------- --------
          • Custom script: set udg_FC_Duration[udg_FC_Index3] = ( udg_FC_Duration[udg_FC_Index3] - 0.10 ) //HERE!!!
          • Set FC_Real[FC_Index3] = (FC_Real[FC_Index3] + FC_Speed)
          • -------- -------------------------------------------------- --------
          • -------- Creating effect --------
          • -------- -------------------------------------------------- --------
          • Set FC_Point1 = (Position of FC_Caster[FC_Index3])
          • For each (Integer A) from 1 to FC_Number, do (Actions)
            • Loop - Actions
              • Set FC_Point2 = (FC_Point1 offset by FC_AoE1 towards (FC_Real[FC_Index3] + ((360.00 / (Real(FC_Number))) x (Real((Integer A))))) degrees)
              • Special Effect - Create a special effect at FC_Point2 using Abilities\Weapons\RedDragonBreath\RedDragonMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • -------- -------------------------------------------------- --------
              • -------- Damaging --------
              • -------- -------------------------------------------------- --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within FC_AoE2 of FC_Point2 matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of FC_Caster[FC_Index3])) Equal to True)))) and do (Actions)
                • Loop - Actions
                  • Unit - Cause FC_Caster[FC_Index3] to damage (Picked unit), dealing FC_Damage1[FC_Index3] damage of attack type Spells and damage type Normal
              • -------- -------------------------------------------------- --------
              • -------- Removing Leaks --------
              • -------- -------------------------------------------------- --------
              • Custom script: call RemoveLocation(udg_FC_Point2)
          • -------- -------------------------------------------------- --------
          • -------- Check if any enemy unit is in circle, if yes then we pick a random one and damage him --------
          • -------- -------------------------------------------------- --------
          • Set FC_UnitGroup[FC_Index3] = (Units within FC_AoE1 of FC_Point1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FC_Caster[FC_Index3])) Equal to True))))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in FC_UnitGroup[FC_Index3]) Greater than or equal to 1
            • Then - Actions
              • Set FC_Target[FC_Index3] = (Random unit from FC_UnitGroup[FC_Index3])
              • Set FC_Point3 = (Position of FC_Target[FC_Index3])
              • -------- -------------------------------------------------- --------
              • -------- Damaging --------
              • -------- -------------------------------------------------- --------
              • Unit - Cause FC_Caster[FC_Index3] to damage FC_Target[FC_Index3], dealing FC_Damage2[FC_Index3] damage of attack type Spells and damage type Normal
              • -------- -------------------------------------------------- --------
              • -------- Showing text, if enabled --------
              • -------- -------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FC_Check Equal to True
                • Then - Actions
                  • Floating Text - Create floating text that reads (|c00ff0303 + (String((Integer(FC_Damage2[FC_Index3]))))) at FC_Point3 with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
                  • Floating Text - Set the velocity of (Last created floating text) to 100.00 towards 90.00 degrees
                  • Floating Text - Change (Last created floating text): Disable permanence
                  • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
                  • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                  • Floating Text - Hide (Last created floating text) for (All players)
                  • Floating Text - Show (Last created floating text) for (Player group((Owner of FC_Caster[FC_Index3])))
                  • Floating Text - Show (Last created floating text) for (Player group((Owner of FC_Target[FC_Index3])))
                • Else - Actions
              • -------- -------------------------------------------------- --------
              • -------- If target died from lightning we explode him --------
              • -------- -------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (FC_Target[FC_Index3] is dead) Equal to True
                • Then - Actions
                  • Special Effect - Create a special effect at FC_Point3 using Abilities\Spells\Other\Doom\DoomDeath.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • -------- -------------------------------------------------- --------
                  • -------- Damaging units around the target --------
                  • -------- -------------------------------------------------- --------
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within FC_AoE2 of FC_Point2 matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of FC_Caster[FC_Index3])) Equal to True)))) and do (Actions)
                    • Loop - Actions
                      • Unit - Cause FC_Caster[FC_Index3] to damage (Picked unit), dealing FC_Damage3[FC_Index3] damage of attack type Spells and damage type Normal
                • Else - Actions
              • -------- -------------------------------------------------- --------
              • -------- Removing lightning --------
              • -------- -------------------------------------------------- --------
              • Lightning - Destroy FC_Lightning[FC_Index3]
              • -------- -------------------------------------------------- --------
              • -------- Creating lightning --------
              • -------- -------------------------------------------------- --------
              • Set FC_x1 = (Position of FC_Caster[FC_Index3])
              • Set FC_y1 = (Position of FC_Caster[FC_Index3])
              • Set FC_x2 = (Position of FC_Target[FC_Index3])
              • Set FC_y2 = (Position of FC_Target[FC_Index3])
              • Custom script: set udg_FC_z1 = GetUnitFlyHeight(udg_FC_Caster[udg_FC_Index3])
              • Custom script: set udg_FC_z2 = GetUnitFlyHeight(udg_FC_Target[udg_FC_Index3])
              • Custom script: set udg_FC_Lightning[udg_FC_Index3] = AddLightningEx( "AFOD" , true, GetLocationX(udg_FC_x1), GetLocationY(udg_FC_y1), udg_FC_z1, GetLocationX(udg_FC_x2), GetLocationY(udg_FC_y2), udg_FC_z2)
              • -------- -------------------------------------------------- --------
              • -------- Removing Leaks --------
              • -------- -------------------------------------------------- --------
              • Custom script: call RemoveLocation(udg_FC_Point3)
              • Custom script: call RemoveLocation(udg_FC_x1)
              • Custom script: call RemoveLocation(udg_FC_x2)
              • Custom script: call RemoveLocation(udg_FC_y1)
              • Custom script: call RemoveLocation(udg_FC_y2)
            • Else - Actions
              • -------- -------------------------------------------------- --------
              • -------- Removing lightning, if no units are left in circle and last unit was killed --------
              • -------- -------------------------------------------------- --------
              • Lightning - Destroy FC_Lightning[FC_Index3]
          • -------- -------------------------------------------------- --------
          • -------- Turning trigger off, if duration expired --------
          • -------- -------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FC_Duration[FC_Index3] Less than or equal to 0.00
            • Then - Actions
              • Set FC_Index1 = (FC_Index1 - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FC_Index1 Equal to 0
                • Then - Actions
                  • -------- -------------------------------------------------- --------
                  • -------- Removing Leaks --------
                  • -------- -------------------------------------------------- --------
                  • Lightning - Destroy FC_Lightning[FC_Index3]
                  • Custom script: call RemoveLocation(udg_FC_Point1)
                  • Custom script: call RemoveLocation(udg_FC_Point2)
                  • Custom script: call RemoveLocation(udg_FC_Point3)
                  • Custom script: call DestroyGroup(udg_FC_UnitGroup[udg_FC_Index3])
                  • Set FC_Index2 = 0
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions
          • -------- -------------------------------------------------- --------
          • -------- Removing Leaks --------
          • -------- -------------------------------------------------- --------
          • Custom script: call RemoveLocation(udg_FC_Point1)
          • Custom script: call DestroyGroup(udg_FC_UnitGroup[udg_FC_Index3])
Changelog

-02.04.2011 19:08 - uploaded;
-02.04.2011 21:58 - speed variable is now set to increase the speed of projectiles;
-03.04.2011 13:07 - scripts that where destroying locations are now in right place;
- added lightning height;
- now i destroy lighting before its creation&#1078;
- removed array from FC_Damage and separated into 3 different variables;
-04.04.2011 19:18 - fixed the removal of last lightning;
-01.06.2011 17:54 - changed the damage variables into reals;
- stored a level of ability into variable to be more efficient;
-30.06.2011 10:11 - added arrays to damage variables.
Time +2 GMT!

Fell free to comment, rate and if you use this - give credits!

Keywords:
Flame, lighting, circle, explosion, fire
Contents

Flaming Strikes (Map)

Reviews
12:17, 18th Jul 2011 Maker: v1.5 Approved.
Level 37
Joined
Mar 6, 2006
Messages
9,240
The FC_Damage variables and the way you use them do deal damage doesn't look MUI to me.
Use AddLightningEx to give the lightnings some height offset.
You use destroy lightning, but there might not be a lightning.
Some RemoveLocations are in the wrong place, you are leaking.
The tooltip could be a bit better and the icon position could be changed.
Somehow the lightning and flames feel disjointed.
 
Level 12
Joined
Apr 16, 2010
Messages
584
Maker said:
The FC_Damage variables and the way you use them do deal damage doesn't look MUI to me.
So you say that i should remove the arrays? Okay i'll create 3 different variables.
Maker said:
Use AddLightningEx to give the lightnings some height offset.
Okay.
Maker said:
You use destroy lightning, but there might not be a lightning.
Well i destroy it on the start because i cannot add to it an expiration timer. Hmmm, i'll add that destroy script right before lighting creation then.
Maker said:
Some RemoveLocations are in the wrong place, you are leaking.
I'll fix it.
Maker[/quote said:
The tooltip could be a bit better and the icon position could be changed./quote]
Maker, you now how i feel about that! Already told :p Every user has its own tooltips in his way, so what's the point of changing them if they will be changed as he wants anyway... I guess only for eyecandy in THIS tesp map.
Maker said:
Somehow the lightning and flames feel disjointed.
Yeah i think so too, but effect are nice)

Magtheridon96 said:
The code looks pretty good :)
Just use AddLightningEx like Maker told you.
5/5 :D Good Job
Thanks!

maddeem said:
A nice all around MUI spell, I like it with one exception. If you have both heroes cast it multiple times, it lags. 4/5 and vote for approval.
That depends on your PC... Lagged to me only after 10 casts on both of heroes.

Andykiller said:
The Coolest Spell I Have Ever Seen And It Works To
Well, thank you very much :) Nah, it's not the coolest you just haven't seen those that are in vJASS...

UPDATING...
Where the hell cupcakes went? :p
Edit: Updated!
 
Last edited:
Level 3
Joined
Jun 7, 2011
Messages
59
Just a quick question, why is it that everyone sets some variables such as dmg or something else in the map initialization trigg?
 
Level 4
Joined
Aug 14, 2016
Messages
55
why it says : "Trigger 'Flame Circle Loop' has been disabled due to errors."

and then when I press a key its says :
" Er 2 and Er 3 pictures"
and then when I press ok it says this "er4 picture "

pls answer this question
 

Attachments

  • er.png
    er.png
    135.5 KB · Views: 60
  • er2.png
    er2.png
    145.7 KB · Views: 63
  • er3.png
    er3.png
    138.7 KB · Views: 48
  • er4.png
    er4.png
    116.3 KB · Views: 62
Top