Warcraft III resources & community, 2003–2006 · archived

Holy Explosion

not rated
Submitted by ModelerJASS Enhanced952 downloads30 KB
Screenshot
Screenshot
My very first jass spell!

100% Multi-instancable.

Should be: Leakless, multi-instanceable, and easy to edit.

By: Blackroot (Aka Modeler)
File Name
Holy Explosion.w3x
Author
Blackroot (Aka Modeler)
Download

Comments

9
To what i think, its onl ythe image.. You should make a Cross... :P
:twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: Very!!!!! VerY Good! hmm will use this on my next map! THANKS!
I don't like it that much, too much effects(sometimes freezes a few ms)
But it's not that bad, so keep up spellmakin'. :wink: :D
Hey modeler nice spell, and thnx to the_prophet for the quick fix/optmization suggestions. I applied them to the orignal spell and it works great, and yes you get gold(from bounties) for killing enemy units now thanks to it.

Thanks again for this spell it will be a wonderfull addition to a new map i'm working on, of course full credit will be given to you modeler in the credits. Thanks once again, keep it up and happy war3ing :)
Tiny error. You don't get gold for the creeps you kill with spell
Just a few things to change. First

function Holy_Explosion_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
endfunction

can be simplified to
function Holy_Explosion_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

Also, dont use GetBooleanAnd. Just simply add an And between the statements. Example:
function HEA_CondSpec1 takes nothing returns boolean
return HEA_Cond1() and HEA_Cond2()
endfunction

Another note, on functions that return true/false, you dont have to inclue the true/false part, just put the function, and if you want it return false put a not before it. Example:
function HEA_Cond3 takes nothing returns boolean
return IsUnitAlly(GetFilterUnit(), GetOwningPlayer(GetSpellAbilityUnit()))
endfunction

Yea, im sure theres more stuff that could use optimizing. Main points though that you might want to take into consideration, are just to stay away from BJ functions, as they tend to be slower than native functions, as well as use coordinates whenever possible since coordinates are faster than locations and dont require cleaning up.
Edit: Some more stuff that could use changing. When your looping through a group, Instead of exiting using
exitwhen(CountUnitsInGroup(Gro1) <= 0)

Just exitwhen your unit variable, (FOG) is == null. Heres what your Damage Function should look like.
function DealDamageL takes real Dam1, group Gro1, unit Cas returns nothing
    local unit FOG = FirstOfGroup(Gro1)
    loop
        exitwhen(FOG == null)
        set FOG = FirstOfGroup(Gro1)
        call UnitDamageTarget(Cas, FOG, Dam1, null, null, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_UNIVERSAL, null)
        call GroupRemoveUnit(Gro1, FOG)
    endloop
    set FOG = null
    set Gro1 = null
    set Cas = null
endfunction

Notice that i also changed the damage function so that instead of just subracting life from the unit, it now deals spell damage(ie, does reduced damage to heros, gives bounty, ect)
This spell does damage instantly to all units around you. If you want major cosmedic effect, set the speed to 10. That will make the sfx go instantly.

Jesp standard, I will not comply with. I dont agree with all of its rules. (Though this is almost compliant)

About the black box, i didint notice any box, not sure if it was you or the spell.

Do you mean if there were tons of units it didint damage them at all? -Ill test this.

I wont make the comment as flashy in my next spell - I agree it had to many things that disfocused me aswell.

At some point i will try and remake this spell to deal damage as it unfolds.

Thanks for the comment :).
looks good, the explanation part was a b it muddled and confusion to read(not the wording, but jsut cuz of how it looked on screen)

I suggest just making another trigger comment that explaines everything

also seems to me that will a little more work you coulda made this JESP standard, cuz it almsot looks like it the way it is

now I could not wuite tell, but it looked to me as though the damage was done instanyl in the area

I think you should make it so, as the effects go outward, it damages the units outward, cuz it looks sort silly whe the units around you die, but ones running throguh the effects at you don't

also, it may just be me seeing things late at night, but it looked as though there was a dar ksquare made on screen, abrely visibile, that boxed in the length of the effects, again this may just be me staying up to late, but take a closer look at it again

also this may be a bug, but it seemed like sometimes it didnt do the damage to all the units if there was awhole bunch around you

all in all good looking spell, that does what its supposed to, other then my suggestions, well done

4/5
Wow its been a long while sence i made a spell, and i have never made one in jass before. But i guess theres a first time for everything. Criticizm is fine, as long as you tell me whats wrong. Also, im totaly open to spell ideas.

Instructions can be found in the Holy Explosion trigger itself.

Please report any errors you find here, or pm me.
(Also if you find any leaks please tell me, I want to make sure this is leak-less.)

Thanks for trying my spell, I hope you like it! ^,^.