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

Fire Beam V2.13

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
The spell is tested and it is MUI and it 100% leakless :D

Fire Beam:
The hero creates 10 fireorbs around himself, while he turns red. Then a small explosion is created, and a beam of fire is shoot thorward, at the targetpoint, dealing damage to enemys thats is near the beam. After some time the beam explodes into a giant nulcear explosion, dealing damage to enemys, in a radius of 500.

Credits:
Alle the spell making credits go to me.
I've importet 2 models/effects and all the credits of them goes to Will The Almighty,
so thank you for being a incredible modelmaker...
Nulcear Explosion
Massive Explosion

If you use this spell in some of you projects or maps, I want credits
but edit it as free as you want :D...

Changelog
30/06/10: Uploaded the spell
01/07/10: Fixed a giant wait-bug, fixed the leaks and Removed the DoNothing

  • SPELL
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Beam
    • Actions
      • -------- DON'T TOUCH THIS, UNLESS YOUR KNOW WHAT YOU ARE DOING --------
      • Custom script: local integer locExecCount = GetTriggerExecCount(GetTriggeringTrigger())
      • Custom script: if locExecCount == 50 then
      • Custom script: call ResetTrigger(GetTriggeringTrigger())
      • Custom script: endif
      • Custom script: set udg_FB_TriggerExecCount = locExecCount
      • Set FB_CasterUnit[FB_TriggerExecCount] = (Triggering unit)
      • Unit - Pause FB_CasterUnit[FB_TriggerExecCount]
      • For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to 10, do (Actions)
        • Loop - Actions
          • Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (((Real(FB_Integer[FB_TriggerExecCount])) x 10.00)%, 0.00%, 0.00%) with 0.00% transparency
          • Set FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by 100.00 towards ((Real(FB_Integer[FB_TriggerExecCount])) x 36.00) degrees)
          • Unit - Create 1 Orb for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
          • Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
          • Unit - Add a (CONFIG_ChargeWait + 1.00) second Generic expiration timer to (Last created unit)
          • Wait 0.01 seconds
          • Custom script: set udg_FB_TriggerExecCount = locExecCount
      • Wait CONFIG_ChargeWait seconds
      • Custom script: set udg_FB_TriggerExecCount = locExecCount
      • Set FB_CasterPos[FB_TriggerExecCount] = (Position of FB_CasterUnit[FB_TriggerExecCount])
      • Unit - Create 1 Start Effect1 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_CasterPos[FB_TriggerExecCount] facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_FB_CasterPos[udg_FB_TriggerExecCount])
      • 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)
      • Animation - Play FB_CasterUnit[FB_TriggerExecCount]'s spell animation
      • Set FB_Integer[FB_TriggerExecCount] = 0
      • For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to CONFIG_BeamNumber, do (Actions)
        • Loop - Actions
          • Set FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by (CONFIG_BeamDistance x (Real(FB_Integer[FB_TriggerExecCount]))) towards (Facing of FB_CasterUnit[FB_TriggerExecCount]) degrees)
          • Unit - Create 1 Beam for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
          • Set FB_LastCreated[FB_TriggerExecCount] = (Last created unit)
          • Set FB_LastCreatedPos[FB_TriggerExecCount] = (Position of FB_LastCreated[FB_TriggerExecCount])
          • Unit - Add a ((((CONFIG_BeamDistance x (Real(CONFIG_BeamNumber))) x 0.50) / 100.00) - 0.10) second Generic expiration timer to FB_LastCreated[FB_TriggerExecCount]
          • Animation - Change FB_LastCreated[FB_TriggerExecCount]'s size to (200.00%, 200.00%, 300.00%) of its original size
          • Set FB_DamageGroup[FB_TriggerExecCount] = (Units within CONFIG_BeamDmgDistance of FB_LastCreatedPos[FB_TriggerExecCount] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FB_CasterUnit[FB_TriggerExecCount])) Equal to True)))
          • Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
            • Loop - Actions
              • Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_BeamDmg x (Real((Level of Fire Beam for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
          • Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
          • Wait 0.00 seconds
          • Custom script: set udg_FB_TriggerExecCount = locExecCount
      • Special Effect - Create a special effect at FB_CasterPos[FB_TriggerExecCount] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Create 1 Explosion Effect1 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
      • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      • Unit - Create 1 Explosion Effect2 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_FB_LastCreatedPos[udg_FB_TriggerExecCount])
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
      • Set FB_DamageGroup[FB_TriggerExecCount] = (Units within 500.00 of (Position of (Last created unit)) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FB_CasterUnit[FB_TriggerExecCount])) Equal to True)))
      • Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
        • Loop - Actions
          • Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_ExplosionDmg x (Real((Level of Fire Beam for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
      • Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
      • Wait 0.50 seconds
      • Custom script: set udg_FB_TriggerExecCount = locExecCount
      • Unit - Unpause FB_CasterUnit[FB_TriggerExecCount]
      • Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
      • Animation - Reset FB_CasterUnit[FB_TriggerExecCount]'s animation
  • Configs
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- ----------------------- SPELL CONFIGS ----------------------- --------
      • -------- --------
      • -------- How much damage each beam-unit deals to each target. Formel: Damage x Level + 50 --------
      • Set CONFIG_BeamDmg = 50.00
      • -------- --------
      • -------- How far the beam deals the damge. --------
      • Set CONFIG_BeamDmgDistance = 135.00
      • -------- --------
      • -------- How far each beam-unit is from each other. Bigger the number, thicker a beam and smaller a number, thiner a beam. --------
      • Set CONFIG_BeamDistance = 25.00
      • -------- --------
      • -------- How many beam-units the beam consists of. Bigger number, longer beam --------
      • Set CONFIG_BeamNumber = 35
      • -------- --------
      • -------- How long to wait for the beam, after the caster has createt the firering. --------
      • Set CONFIG_ChargeWait = 1.00
      • -------- --------
      • -------- How much damage the nuclear explosion deals to each target. Formel: Damage x Level + 50 --------
      • Set CONFIG_ExplosionDmg = 300.00
I just made this to make sure all imports the spell the right way.
1. Export the two importet models/effects, and then import them into your map.
2. Copy the custom spell in the object editor and paste it into your map
3. Copy all the custom or edited units and paste them into your map (You do not necessarily need the unit called: Dummy)
4. Copy the two triggers: Configs and SPELL, then paste them into you map


Keywords:
fire, beam, spell, effect, orb, explosion, nulcear, trigger, MUI, ability,
Contents

Fire Beam (Map)

Reviews
12th Dec 2015 IcemanBo: Too long time as NeedsFix. Rejected. 19:07, 12th Jul 2010 TriggerHappy: The coding is horrendous. If you're going to use that much custom script then switch to JASS. Your method of indexing is scary as well. And...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long time as NeedsFix. Rejected.

19:07, 12th Jul 2010
TriggerHappy:

The coding is horrendous. If you're going to use that much custom script then switch to JASS. Your method of indexing is scary as well. And please, don't use waits.
 
Level 7
Joined
Dec 19, 2009
Messages
249
It is MUI, i tested it. And will you please tell me where the leaks are. I found some myself buy I'll like to get rid of all


Sorry but this isn't MUI, but do you know what MUI is? altough when I added a second hero and i made him cast he got stuck.


Edit: There's a leak
  • Unit - Create 1 Start Effect1 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at (Position of FB_CasterUnit[FB_TriggerExecCount]) facing Default building facing degrees
that location need to be set into a variable then destroyed and there's alot more like this...

Edit2: I found something about leaks , maybe you should watch it.
http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=27242
 
Level 2
Joined
Jun 22, 2010
Messages
7
Sorry but this isn't MUI, but do you know what MUI is? altough when I added a second hero and i made him cast he got stuck.


Edit: There's a leak
  • Unit - Create 1 Start Effect1 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at (Position of FB_CasterUnit[FB_TriggerExecCount]) facing Default building facing degrees
that location need to be set into a variable then destroyed and there's alot more like this...

Edit2: I found something about leaks , maybe you should watch it.
http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=27242
I just fixed the stuck-thing, so now its MUI. MUI(Multi-Unit Instanceability) is when multiple units casts the spell at the same time. Thanks for the leak, I'll fix them.
 
Last edited:
Well as you can see, there are a lot of errors present in your spell.

Some things you'll want to check out:
How to remove Leaks
How to make this spell MUI possible solution 1 - Hashtables
How to make this spell MUI possible solution 2 - Dynamic value storage

I'd suggest working with hash tables as they tend to be easy to work with, though many people suggest Dynamic value storage.

This spell is not currently acceptable.


Also using waits in loops is generally not a good idea as it can interfere with it's functions if that same loop integer is to used again while one instance is running (arrays can get around this, to a point).

Also look into using timers instead of waits - they tend to be more reliable.
 
Level 2
Joined
Jun 22, 2010
Messages
7
Well as you can see, there are a lot of errors present in your spell.

Some things you'll want to check out:
How to remove Leaks
How to make this spell MUI possible solution 1 - Hashtables
How to make this spell MUI possible solution 2 - Dynamic value storage

I'd suggest working with hash tables as they tend to be easy to work with, though many people suggest Dynamic value storage.

This spell is not currently acceptable.


Also using waits in loops is generally not a good idea as it can interfere with it's functions if that same loop integer is to used again while one instance is running (arrays can get around this, to a point).

Also look into using timers instead of waits - they tend to be more reliable.
Thank you so much. I been looking for a dynamic value storage tutorial for some while, and that is also the reason why i used the kind of system i did in this spell. And the other tutorials also helped me, so thank you agin!
 
Top