Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
The spell is tested and it is MUI and it 100% leakless
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 ...
Changelog
30/06/10: Uploaded the spell
01/07/10: Fixed a giant wait-bug, fixed the leaks and Removed the DoNothing
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
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
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
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: 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
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
-------- 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
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...
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.
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...
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...
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.
The relience on TriggerSleepAction (both kinds of wait) means it will execute slower in multiplyer games than when testing in singleplayer. This is due to the wait being syncronized and thus adding lag onto it for each wait used.
The relience on TriggerSleepAction (both kinds of wait) means it will execute slower in multiplyer games than when testing in singleplayer. This is due to the wait being syncronized and thus adding lag onto it for each wait used.
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.
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!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.