Ae galera, vou mudar o blog para um outro lugar daqui uns tempos. Assim que tiver tempo vou mover meus posts pra la e apagar os daqui. Mas isso vai demorar um pouco.
^^
^^
Leia Mais...
Essa function adiciona uma quantidade de hp (amount) a unidade desejada (whichUnit). Simples!function UnitAddLife takes unit whichUnit, real amount returns nothing
library AddLife
// Add Life System
// Criado por "Bills"
// Versão: 1.2
//=====================================
// Como implementar:
// Crie uma nova trigger,
// converta ela para custom script,
// salve seu mapa,
// feche-o,
// reabra-o
// e apague o ! da linha abaixo.
//! external ObjectMerger w3a AIlz ALBA anam "Life Bonus" ansf "(Bills's AddLife System)" Ilif 1 500000 aite 0
//=====================================================================
//Caso ja tenha essa native declarada, "comenta" a linha abaixo
native UnitAlive takes unit whichUnit returns boolean
private struct AL extends array // struct array não possui method create/destroy
private static constant integer LIFE_BONUS_ABIL = 'ALBA'
private static unit array tempUnit
private static integer index
private static timer timerFunc
private static method removeLifeBonus takes nothing returns nothing
loop
exitwhen (index==0)
call UnitRemoveAbility(tempUnit[index],LIFE_BONUS_ABIL)
if (UnitAlive(tempUnit[index])) then
call SetWidgetLife(tempUnit[index],GetWidgetLife(tempUnit[index]))
endif
set index=index-1
endloop
endmethod
static method unitAddLife takes unit u, real amount returns nothing
set amount=GetWidgetLife(u)+amount
call SetWidgetLife(u,amount)
if (GetWidgetLife(u)<amount) then
call UnitAddAbility(u,LIFE_BONUS_ABIL)
call SetWidgetLife(u,amount)
set index=index+1
set tempUnit[index]=u
call ResumeTimer(timerFunc)
endif
endmethod
private static method onInit takes nothing returns nothing
set index=0
set timerFunc=CreateTimer()
call TimerStart(timerFunc,0.00,false,function thistype.removeLifeBonus)
endmethod
endstruct
function UnitAddLife takes unit u, real amount returns nothing // por compatibilidade
call AL.unitAddLife(u,amount)
endfunction
endlibrary
private constant integer BUFF_CHECKER = 'B000'
Agora mude o valor da variable USE_BUFF_CHECKER para true.