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

FireExplosion v1.1

This is 3rd spell i made :)
Fire Explotion
Pyromancer unleash the power of fire that can explode some one with 500 AOE nearby him deals 0,25 inteligent siege damage each explode last 10 second.
Level 1 - Slow Explotion. ( Each 0,80 second )
Level 2 - Moderate Explotion. ( Each 0,60 second )
Level 3 - Fast Explotion. ( Each 0,40 second )
Level 4 - Very Fast Explotion. ( Each 0,20 second )

Please Comment And Rate :)

The Trigger


  • Fire Explotion Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Explotion
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FE_Integer[1] Equal to 0
        • Then - Actions
          • Trigger - Turn on Fire Explotion Loop <gen>
        • Else - Actions
      • Set FE_Integer[1] = (FE_Integer[1] + 1)
      • Set FE_Integer[2] = (FE_Integer[2] + 1)
      • Set FE_Caster[FE_Integer[2]] = (Triggering unit)
      • Set FE_CasterPoint = (Position of FE_Caster[FE_Integer[2]])
      • Unit Group - Add FE_Caster[FE_Integer[2]] to FE_CasterGroup[FE_Integer[2]]
      • -------- Set The AOE --------
      • Set FE_AOE = 500.00
      • -------- Create A Dummy Timer --------
      • Unit - Create 1 Fire Explotion Timer for (Owner of FE_Caster[FE_Integer[2]]) at FE_CasterPoint facing Default building facing degrees
      • Set FE_Dummy[FE_Integer[2]] = (Last created unit)
      • Unit - Hide FE_Dummy[FE_Integer[2]]
      • -------- Set The Timer --------
      • Set FE_Timer = 10.00
      • Unit - Add a FE_Timer second Generic expiration timer to FE_Dummy[FE_Integer[2]]
      • Set FE_Timer2[FE_Integer[2]] = 0.00
      • -------- Set The Damage --------
      • Set FE_Damage[FE_Integer[2]] = (0.25 x (Real((Intelligence of FE_Caster[FE_Integer[2]] (Include bonuses)))))
      • -------- Set The Speed --------
      • Set FE_Speed[FE_Integer[2]] = (0.20 x (5.00 - (Real((Level of Fire Explotion for FE_Caster[FE_Integer[2]])))))
      • -------- Remove Leaks --------
      • Custom script: call RemoveLocation (udg_FE_CasterPoint)


  • Fire Explotion Loop
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • For each (Integer FE_Integer[3]) from 1 to FE_Integer[2], do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in FE_CasterGroup[FE_Integer[3]] and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (FE_Dummy[FE_Integer[3]] is alive) Equal to True
                • Then - Actions
                  • -------- Set The Second Timer --------
                  • Set FE_Timer2[FE_Integer[3]] = (FE_Timer2[FE_Integer[3]] + 0.20)
                  • -------- Set The Position --------
                  • Set FE_CasterPoint = (Position of (Picked unit))
                  • -------- Set The Picked Unit --------
                  • Set FE_CasterRandomPick[FE_Integer[3]] = (Units within 500.00 of FE_CasterPoint matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FE_Caster[FE_Integer[3]])) Equal to True)))
                  • Set FE_StrikePick[FE_Integer[3]] = (Random unit from FE_CasterRandomPick[FE_Integer[3]])
                  • Unit - Move FE_Dummy[FE_Integer[3]] instantly to FE_CasterPoint
                  • -------- ------------------------------------ --------
                  • -------- This Is Only For Special Effect For More Eye Candy --------
                  • For each (Integer A) from 1 to 2, do (Actions)
                    • Loop - Actions
                      • Set FE_SpecialEffectPoint[FE_Integer[3]] = (FE_CasterPoint offset by (Random real number between 100.00 and 500.00) towards (Random angle) degrees)
                      • Special Effect - Create a special effect at FE_SpecialEffectPoint[FE_Integer[3]] using Abilities\Spells\Other\Doom\DoomDeath.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation (udg_FE_SpecialEffectPoint[udg_FE_Integer[3]])
                  • -------- ------------------------------------ --------
                  • -------- This Floating Text Only For Test If It Work Or Not You Can Delet it If You don't want --------
                  • Floating Text - Create floating text that reads doR at FE_CasterPoint with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
                  • Floating Text - Change (Last created floating text): Disable permanence
                  • Floating Text - Change the lifespan of (Last created floating text) to 0.50 seconds
                  • -------- ------------------------------------ --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • FE_Timer2[FE_Integer[3]] Equal to FE_Speed[FE_Integer[3]]
                    • Then - Actions
                      • -------- Damage The Picked Unit --------
                      • Unit - Cause FE_Caster[FE_Integer[3]] to damage FE_StrikePick[FE_Integer[3]], dealing FE_Damage[FE_Integer[3]] damage of attack type Siege and damage type Fire
                      • -------- Create A Special Effect And Destroy It --------
                      • Special Effect - Create a special effect attached to the origin of FE_StrikePick[FE_Integer[3]] using Abilities\Spells\Other\Doom\DoomDeath.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • -------- Set Second Timer To 0 --------
                      • Set FE_Timer2[FE_Integer[3]] = 0.00
                    • Else - Actions
                  • -------- Remove Leaks --------
                  • Custom script: call RemoveLocation (udg_FE_CasterPoint)
                  • Custom script: call DestroyGroup (udg_FE_CasterRandomPick[udg_FE_Integer[3]])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (FE_Dummy[FE_Integer[3]] is dead) Equal to True
                • Then - Actions
                  • -------- Clearing Unit Group --------
                  • Unit Group - Remove all units from FE_CasterGroup[FE_Integer[3]]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (FE_CasterGroup[FE_Integer[3]] is empty) Equal to True
                    • Then - Actions
                      • Set FE_Integer[1] = (FE_Integer[1] - 1)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • FE_Integer[1] Equal to 0
                        • Then - Actions
                          • Set FE_Integer[2] = 0
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                    • Else - Actions
                • Else - Actions


v1.0 Released
v1.1 Fix Leaks , Remove Aray On Some Variable and add more hero on map for MUI test

Keywords:
Fire ,Explosion ,Fire Explosion,Destruction
Contents

Just another Warcraft III map (Map)

Reviews
18:18, 16th Sep 2010 The_Reborn_Devil: The triggering looks ok and there are no leaks. Status: Approved Rating: Useful

Moderator

M

Moderator

18:18, 16th Sep 2010
The_Reborn_Devil:

The triggering looks ok and there are no leaks.


Status: Approved
Rating: Useful
 
Level 3
Joined
May 2, 2010
Messages
26
the code seems to be clean... i think... I haven't tried it yet..

and uh, one more thing.. about your "Explotion" -> it should be -> "Explosion"

Making a spell by triggers also needs a good description to make it more realistic.. :D

^_^ have a nice day..
 
Level 3
Joined
May 13, 2009
Messages
41
@Darkzealot_128
thx :)

the spell does damage but may be it's deals to small damage... cause only 0,25 inteligent but if 0,25 inteligent damage only damage one unit it will be danger :)

@tazqaz123
Thx I will fix that

@Anachron
I will change it on next update :)
 

Rmx

Rmx

Level 19
Joined
Aug 27, 2007
Messages
1,164
Leaky

  • For each (Integer A) from 1 to 2, do (Actions)
  • Loop - Actions
  • Set FE_SpecialEffectPoint[FE_Integer[3]] = (FE_CasterPoint[FE_Integer[3]] offset by (Random real number between 100.00 and 500.00) towards (Random angle) degrees)
  • Special Effect - Create a special effect at FE_SpecialEffectPoint[FE_Integer[3]] using Abilities\Spells\Other\Doom\DoomDeath.mdl
  • Special Effect - Destroy (Last created special effect)
You leak here 2 points each time the triggers runs and it's a timer so it will leak TON OF TIMES.

Remove the Position leak by putting it in the Loop.

Example : for each bla bla
position 1
effect
remove position 1

Put the Script of leak removal in the loop :)

Also your triggering is somehow not effective :S
Srsly you should try diffrent style becoz it may do some serious damage.

This trigger may work MUI on 1 hero " yes really weird "
But if done with another hero the spell the same time it may not be MUI.

You should put two heroes on the map to test if it's really MUI :)

Good luck :) that was a very fast review btw :p
 
Level 7
Joined
Dec 19, 2009
Messages
249
  • Set FE_AOE[FE_Integer[2]] = 500.00
you don,t need to put array on this cause it's a constant

Edit: same thing on this
  • Set FE_Timer[FE_Integer[2]] = 10.00
Edit2: you never remove location of this
  • Set FE_SpecialEffectPoint[FE_Integer[3]] = (FE_CasterPoint[FE_Integer[3]] offset by (Random real number between 100.00 and 500.00) towards (Random angle) degrees)
Plus you don,t need to put it as an array cause you only use it in one trigger

edit3: caster point variable don't need to be arrayed (still unsure)
 
Top