Ir para conteúdo

[Encerrado] como adicionar mana nessa script ?


Jack Boladaum

Posts Recomendados

essa e uma script de aura porem ela so da hp !

 

-- CONFIGURAÇÕES
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 50 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 5 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura1(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura)
            else
                doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura1,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
            return efeitosAura1(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

-- Função principal
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 89123) <= 0 then
doPlayerSendCancel(cid, "Você precisa ter feito a quest.")
return true
end
if getPlayerStorageValue(cid, 25943) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 2.")
return true
end
if getPlayerStorageValue(cid, 27651) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 3.")
return true
end
if getPlayerStorageValue(cid, 28911) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 4.")
return true
end
    if(param=="on") then
        if getPlayerStorageValue(cid, estr) > os.time() then
            doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura level 1 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 1 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura Level 1 ligada!")
                setPlayerStorageValue(cid, aurastr, 2)
                efeitosAura1(1,tempo/8,cid)
        end
        end
    elseif(param=="off") then
        if(getPlayerStorageValue(cid, aurastr)== 2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Aura Level 1 desligada!")
        end
    else    
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
    end
    return true
end 
 

Link para o comentário
Compartilhar em outros sites

  • Diretor
Spoiler

-- CONFIGURAÇÕES
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 50 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 5 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    quantmanaheal = 5 -- porcentagem de mana máxima que cada cura irá curar. (No caso, irá curar 5% de mana máxima cada cura)
    tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura1(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
			doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantmanaheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura)
            else
                doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura1,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
            return efeitosAura1(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

-- Função principal
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 89123) <= 0 then
doPlayerSendCancel(cid, "Você precisa ter feito a quest.")
return true
end
if getPlayerStorageValue(cid, 25943) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 2.")
return true
end
if getPlayerStorageValue(cid, 27651) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 3.")
return true
end
if getPlayerStorageValue(cid, 28911) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 4.")
return true
end
    if(param=="on") then
        if getPlayerStorageValue(cid, estr) > os.time() then
            doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura level 1 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 1 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura Level 1 ligada!")
                setPlayerStorageValue(cid, aurastr, 2)
                efeitosAura1(1,tempo/8,cid)
        end
        end
    elseif(param=="off") then
        if(getPlayerStorageValue(cid, aurastr)== 2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Aura Level 1 desligada!")
        end
    else    
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
    end
    return true
end

 

 

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

11 horas atrás, Yan Liima disse:
  Ocultar conteúdo


-- CONFIGURAÇÕES
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 50 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 5 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    quantmanaheal = 5 -- porcentagem de mana máxima que cada cura irá curar. (No caso, irá curar 5% de mana máxima cada cura)
    tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura1(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
			doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantmanaheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura)
            else
                doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura1,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
            return efeitosAura1(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

-- Função principal
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 89123) <= 0 then
doPlayerSendCancel(cid, "Você precisa ter feito a quest.")
return true
end
if getPlayerStorageValue(cid, 25943) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 2.")
return true
end
if getPlayerStorageValue(cid, 27651) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 3.")
return true
end
if getPlayerStorageValue(cid, 28911) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 4.")
return true
end
    if(param=="on") then
        if getPlayerStorageValue(cid, estr) > os.time() then
            doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura level 1 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 1 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura Level 1 ligada!")
                setPlayerStorageValue(cid, aurastr, 2)
                efeitosAura1(1,tempo/8,cid)
        end
        end
    elseif(param=="off") then
        if(getPlayerStorageValue(cid, aurastr)== 2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Aura Level 1 desligada!")
        end
    else    
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
    end
    return true
end

 

 

Vou testar aqui , mt Obrigado @ yan lima

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
A questão neste suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...