Warcraft III resources & community, 2003–2006 · archived

Non-Leaking Simple Creep Revive System

not rated
Submitted by k_c_1_0_2Triggers0 downloads
A little creep revive system I use for my spell testings.

Source

function Trig_Revive_Unit_Conditions takes nothing returns boolean
    return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == false
endfunction

function Trig_Revive_Unit_Actions takes nothing returns nothing
    local unit die = GetDyingUnit()
    local real X = GetUnitX(die)
    local real Y = GetUnitY(die)
    local player Z = GetOwningPlayer(die)
    call CreateUnit(Z, GetUnitTypeId(die), X, Y, 1.00)
    call RemoveUnit(die)
    set die = null
endfunction

//===========================================================================
function InitTrig_Revive_Unit takes nothing returns nothing
    set gg_trg_Revive_Unit = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Revive_Unit, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_Revive_Unit, Condition( function Trig_Revive_Unit_Conditions ) )
    call TriggerAddAction( gg_trg_Revive_Unit, function Trig_Revive_Unit_Actions )
endfunction

Comments

5
hey purplepoot can you make waits please?? i would be very happy if i see something like that :lol: (or any other guy if he knows how to do that)
also...

return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == false


reads better as

return not IsUnitType(GetTriggerUnit()), UNIT_TYPE_HERO)


also, i should notice that

(yeah, one, we should remove Triggering Unit)

two, Triggering Unit ( GetTriggerUnit() ) > Dying Unit ( GetDyingUnit() )
Ahem... no leaks? Pardon me, but d is never nullified.
And remove dying unit. You don't want to leave a corpse, do ya?


function Trig_Revive_Unit_Actions takes nothing returns nothing call CreateUnit( GetOwningPlayer(GetTriggerUnit()), GetUnitId(GetTriggerUnit()), GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), GetUnitFacing(GetTriggerUnit()) ) endfunction
will work better
but no waits? ...


@Daelin
Changed to use reals, fixed to remove corpse

@PurplePoot
Its for spell testing, a wait is easily adable.
Ahem... no leaks? Pardon me, but d is never nullified.
And remove dying unit. You don't want to leave a corpse, do ya?

~Daelin
function Trig_Revive_Unit_Actions takes nothing returns nothing
    call CreateUnit( GetOwningPlayer(GetTriggerUnit()), GetUnitId(GetTriggerUnit()), GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), GetUnitFacing(GetTriggerUnit()) )
endfunction


will work better

but no waits? ...