Ir para conteúdo
  • 0

Regen constante


Fjinst

Pergunta

Olá, dei uma olhada no forum e não encontrei, então resolvi pedir

 

 

Gostaria que vocês me ajudem com um script que seja um regen passivo, tanto de mana quanto de vida

 

EX: O player vai healar 2 em 2 a cada segundo, mesmo sem comer food, como se fosse uma passiva de regen, e com o decorrer do level do player o regen vai aumentando, desde já grato pela atenção de ambos.

 

obs: De preferencia que fique aparecendo também a quantidade que healou, tipo healou 2, aparece um texto verde falando +2 encima do personagem.

Editado por Fjinst
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Acho que seria melhor fazer um globalevent mas ta ai do jeito que você quer.

 

function doDoT(cid)
    local a = {
        {levelMin = 0, levelMax = 10, heal = 1}, 
        {levelMin = 11, levelMax = 20, heal = 4},
        {levelMin = 21, levelMax = math.huge, heal = 20},
}
    if not isCreature(cid) then
        return false
    end
    if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
        for _, b in pairs(a) do
            if getPlayerLevel(cid) >= b.levelMin and getPlayerLevel(cid) <= b.levelMax then
                doCreatureAddHealth(cid, b.heal)
                addEvent(doDoT, 2000, cid)
            end
        end
    end
return true
end
 
function onLogin(cid)
    local condition_infight = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 3 * 1000)
    doAddCondition(cid, condition_infight)
    doDoT(cid)
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0
[01/07/2015 09:30:01] [Error - CreatureScript Interface]

[01/07/2015 09:30:01] data/creaturescripts/scripts/passiva/hp.lua:onLogin

[01/07/2015 09:30:01] Description:

[01/07/2015 09:30:01] (luaDoAddCondition) Condition not found

Link para o comentário
Compartilhar em outros sites

  • 0

Pronto agora ta totalmente funcional, não vai ter nenhum bug assim.

onThink, em exaust você coloca o tempo entre cada heal

 

function doDoT(cid)
local exaust = 2 -- tempo entre cada heal
    local a = {
        {levelMin = 0, levelMax = 10, heal = 1}, 
        {levelMin = 11, levelMax = 20, heal = 4},
        {levelMin = 21, levelMax = math.huge, heal = 20},
}
    if not isCreature(cid) then
        return false
    end
    if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
        for _, b in pairs(a) do
            if getPlayerLevel(cid) >= b.levelMin and getPlayerLevel(cid) <= b.levelMax then
                if getPlayerStorageValue(cid, 83742397438247932) < os.time() then
                    doCreatureAddHealth(cid, b.heal)
                    addEvent(doDoT, exaust*1000, cid)
                    setPlayerStorageValue(cid, 83742397438247932, os.time() + exaust - 1)
                end
            end
        end
    end
return true
end
 
function onThink(cid, interval)
    doDoT(cid)
return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...