Ir para conteúdo
  • Cadastre-se

Normal [PEDIDO] Junção de Talkactions (2 scripts prontos


Posts Recomendados

Bom vamos lá, eu gostaria de pedir se alguém pode me ajudar juntando 2 talkactions que já estão prontas.

As talk's no caso seriam essas:

-- 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[i].x, y=posaura[i].y, z=posaura[i].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[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].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(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

E esse o outro script:

-- CONFIGURAÇÕES
    aurastrs = 25943 -- storage da aura
    estrs = 25813 -- storage para o exhaust
    porcentagems = 50 -- chance de curar em cada volta da aura, em porcentagems
    quantheals = 5 -- porcentagems do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    tempos = 1180 -- tempos para dar uma volta no player (este tempos foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoauras = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocuras = 37 -- 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 efeitosAura2s(i,tm,cid)
    if(isCreature(cid)) then
            local atuals = getCreaturePosition(cid)
        local posauras = {
            {x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=atuals.y, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=atuals.y, z=atuals.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagems/8) then
            doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheals)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
            else
                doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
            end
            doSendMagicEffect(atuals, efeitocuras)
        end
        if(i==8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
        elseif(i<8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
            i = i+1
            tm = tempos/8
            return addEvent(efeitosAura2s,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
            return efeitosAura2s(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

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

 

Esse é um sistema de Aura que roda o Player e tem chance de healar HP dele. Eu fiz 2 tipos de Aura que o Player so pode usar tendo a storage que ele ganha fazendo a quest. O primeiro seria a Aura 1 da quest easy, ae o Player acabando a segunda quest ele ganharia a Aura 2 e automaticamente ela substituiria a Aura 1... Sendo o comando !aura on e !aura off para ativar e desativar a Aura.
Se alguém poder fazer pra mim ou me ajudar a juntar agradeço!

OBS: O Báu da quest que ganha a storage já esta pronto! A única coisa que preciso é a junção do sistema, pois para ele funcionar tenho que usar comandos diferentes e gostaria de manter o mesmo comando só alterando o tipo da aura para 2.

Qualquer duvida estou a disposição. Grato!

UP!!!
@xWhiteWolf ajuda eu rs

@moviebr ve se consegue me ajudar!

Editado por gleison157 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador
-- 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[i].x, y=posaura[i].y, z=posaura[i].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[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].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, 25943) => 1 then
doPlayerSendCancel(cid, "Você já possui a aura level 2.")
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 2 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 2 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura Level 2 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

 

-- CONFIGURAÇÕES
    aurastrs = 25943 -- storage da aura
    estrs = 25813 -- storage para o exhaust
    porcentagems = 50 -- chance de curar em cada volta da aura, em porcentagems
    quantheals = 5 -- porcentagems do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    tempos = 1180 -- tempos para dar uma volta no player (este tempos foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoauras = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocuras = 37 -- 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 efeitosAura2s(i,tm,cid)
    if(isCreature(cid)) then
            local atuals = getCreaturePosition(cid)
        local posauras = {
            {x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=atuals.y, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=atuals.y, z=atuals.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagems/8) then
            doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheals)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
            else
                doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
            end
            doSendMagicEffect(atuals, efeitocuras)
        end
        if(i==8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
        elseif(i<8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
            i = i+1
            tm = tempos/8
            return addEvent(efeitosAura2s,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
            return efeitosAura2s(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

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

 

Tenta assim

Link para o post
Compartilhar em outros sites
26 minutos atrás, moviebr disse:

-- 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[i].x, y=posaura[i].y, z=posaura[i].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[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].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, 25943) => 1 then
doPlayerSendCancel(cid, "Você já possui a aura level 2.")
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 2 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 2 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura Level 2 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

 


-- CONFIGURAÇÕES
    aurastrs = 25943 -- storage da aura
    estrs = 25813 -- storage para o exhaust
    porcentagems = 50 -- chance de curar em cada volta da aura, em porcentagems
    quantheals = 5 -- porcentagems do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    tempos = 1180 -- tempos para dar uma volta no player (este tempos foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoauras = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocuras = 37 -- 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 efeitosAura2s(i,tm,cid)
    if(isCreature(cid)) then
            local atuals = getCreaturePosition(cid)
        local posauras = {
            {x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=atuals.y, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=atuals.y, z=atuals.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagems/8) then
            doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheals)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
            else
                doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
            end
            doSendMagicEffect(atuals, efeitocuras)
        end
        if(i==8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
        elseif(i<8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
            i = i+1
            tm = tempos/8
            return addEvent(efeitosAura2s,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
            return efeitosAura2s(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

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

 

Tenta assim

 

Testando agora...

Erro no executavel:

 

Spoiler

[28/07/2017 15:41:32] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/SystemAura/aura1.lua:55: 'then' expected near '='
[28/07/2017 15:41:32] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/SystemAura/aura1.lua)
[28/07/2017 15:41:32] data/talkactions/scripts/SystemAura/aura1.lua:55: 'then' expected near '='

 

Não funcionou... Se eu pegar o bau que da a Storage: 25950 ele ativa a Aura 2... Mais se eu pegar o Bau da Storage: 25943 ele não ativa nenhuma :/

UP!!!

Link para o post
Compartilhar em outros sites

Eu já havia modificado este mesmo script para meu servidor.

Segue o script:
lvlaura é o nível da aura, na quest da primeira aura ponha setPlayerStorageValue(cid, 8445682, 1)

Quest da segunda aura, coloque setPlayerStorageValue(cid, 8445682, 2) e assim por diante.

Obs: Na minha versão eu já corrigi os erros que dava no distro quando algum player relogava com a aura ligada.

Obs²: Eu configurei para curar tanto hp quanto mana, em mesma quantia.
Obs³: Eu corrigi o erro que fazia a aura curar a qualquer momento, e não somente quando completava uma volta no personagem.

-- CONFIGURAÇÕES
lvlaura = 8445682
aurastr = 8445680
estr = 8445681
tempo = 1310

function efeitosAura(i,tm,cid)
	if isPlayer(cid) and getPlayerStorageValue(cid, aurastr)== 2 then 
		if getPlayerStorageValue(cid, lvlaura) == 1 then                              -- aura level 1
			porcentagem = 25 -- chance de curar em cada volta da aura
			quantheal = 6 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 12 -- efeito da aura /x
			efeitocura = 43 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 2 then                         -- aura level 2
			porcentagem = 30 -- chance de curar em cada volta da aura
			quantheal = 8 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 28 -- efeito da aura /x
			efeitocura = 43 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 3 then                         -- aura level 3
			porcentagem = 35 -- chance de curar em cada volta da aura
			quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 30 -- efeito da aura /x
			efeitocura = 39 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 4 then                         -- aura level 4
			porcentagem = 40 -- chance de curar em cada volta da aura
			quantheal = 12 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 31 -- efeito da aura /x
			efeitocura = 38 --efeito quando a cura chega ao player /z
		end
		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},
			}
			if i == 1 then
				local chances = math.random(1, 100)
				if(chances<=porcentagem and (getCreatureHealth(cid)<getCreatureMaxHealth(cid) or getCreatureMana(cid)<getCreatureMaxMana(cid))) then
					local hpheal = (getCreatureMaxHealth(cid)/100) * quantheal
					local mpheal = (getCreatureMaxMana(cid)/100) * quantheal
					doCreatureAddHealth(cid, hpheal)
					doCreatureAddMana(cid, mpheal)
					if(i<=8 and i>1) then
						doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
					else
						doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
					end
					doSendMagicEffect(atual, efeitocura)
				end
			end
			if(i==8) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
			elseif(i<8) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
			end
			if(i<=8) then
				i = i+1
				tm = tempo/8
				return addEvent(efeitosAura,tm,i,tm,cid)
			elseif(i>8) then
				return efeitosAura(1,0,cid)
			else
				return TRUE
			end
		else
			return TRUE
		end
		return true
	end
end

-- Função principal
function onSay(cid, words, param, channel)
	if getPlayerStorageValue(cid, lvlaura) <= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[AURA SYSTEM] Você não possui aura.")
		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 novamente.")
		else
			if(getPlayerStorageValue(cid, aurastr)==2) then
				doPlayerSendCancel(cid,"Sua aura já está habilitada.")
			elseif(getPlayerStorageValue(cid, aurastr)==-1) then
				doPlayerSendCancel(cid,"Aura ligada!")
				setPlayerStorageValue(cid, aurastr, 2)
				efeitosAura(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 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 luangop
a (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
9 horas atrás, luangop disse:

Eu já havia modificado este mesmo script para meu servidor.

Segue o script:
lvlaura é o nível da aura, na quest da primeira aura ponha setPlayerStorageValue(cid, 8445682, 1)

Quest da segunda aura, coloque setPlayerStorageValue(cid, 8445682, 2) e assim por diante.

Obs: Na minha versão eu já corrigi os erros que dava no distro quando algum player relogava com a aura ligada.

Obs²: Eu configurei para curar tanto hp quanto mana, em mesma quantia.
Obs³: Eu corrigi o erro que fazia a aura curar a qualquer momento, e não somente quando completava uma volta no personagem.


-- CONFIGURAÇÕES
lvlaura = 8445682
aurastr = 8445680
estr = 8445681
tempo = 1310

function efeitosAura(i,tm,cid)
	if isPlayer(cid) and getPlayerStorageValue(cid, aurastr)== 2 then 
		if getPlayerStorageValue(cid, lvlaura) == 1 then                              -- aura level 1
			porcentagem = 25 -- chance de curar em cada volta da aura
			quantheal = 6 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 12 -- efeito da aura /x
			efeitocura = 43 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 2 then                         -- aura level 2
			porcentagem = 30 -- chance de curar em cada volta da aura
			quantheal = 8 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 28 -- efeito da aura /x
			efeitocura = 43 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 3 then                         -- aura level 3
			porcentagem = 35 -- chance de curar em cada volta da aura
			quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 30 -- efeito da aura /x
			efeitocura = 39 --efeito quando a cura chega ao player /z
		elseif getPlayerStorageValue(cid, lvlaura) == 4 then                         -- aura level 4
			porcentagem = 40 -- chance de curar em cada volta da aura
			quantheal = 12 -- porcentagem do hp máximo que cada cura irá curar
			tipoaura = 31 -- efeito da aura /x
			efeitocura = 38 --efeito quando a cura chega ao player /z
		end
		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},
			}
			if i == 1 then
				local chances = math.random(1, 100)
				if(chances<=porcentagem and (getCreatureHealth(cid)<getCreatureMaxHealth(cid) or getCreatureMana(cid)<getCreatureMaxMana(cid))) then
					local hpheal = (getCreatureMaxHealth(cid)/100) * quantheal
					local mpheal = (getCreatureMaxMana(cid)/100) * quantheal
					doCreatureAddHealth(cid, hpheal)
					doCreatureAddMana(cid, mpheal)
					if(i<=8 and i>1) then
						doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
					else
						doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
					end
					doSendMagicEffect(atual, efeitocura)
				end
			end
			if(i==8) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
			elseif(i<8) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
			end
			if(i<=8) then
				i = i+1
				tm = tempo/8
				return addEvent(efeitosAura,tm,i,tm,cid)
			elseif(i>8) then
				return efeitosAura(1,0,cid)
			else
				return TRUE
			end
		else
			return TRUE
		end
		return true
	end
end

-- Função principal
function onSay(cid, words, param, channel)
	if getPlayerStorageValue(cid, lvlaura) <= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[AURA SYSTEM] Você não possui aura.")
		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 novamente.")
		else
			if(getPlayerStorageValue(cid, aurastr)==2) then
				doPlayerSendCancel(cid,"Sua aura já está habilitada.")
			elseif(getPlayerStorageValue(cid, aurastr)==-1) then
				doPlayerSendCancel(cid,"Aura ligada!")
				setPlayerStorageValue(cid, aurastr, 2)
				efeitosAura(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 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

 

Pó cara vlw mesmo, funcionou certinho aqui pra mim as auras, só meu baú que quando pego o primeiro, e vou pegar o segundo bau ele fala que eu já peguei pois como é a storage igual ele não libera para pegar... Se poderia me ajuar passando seu script do baú para mim ?

Link para o post
Compartilhar em outros sites
5 horas atrás, gleison157 disse:

Pó cara vlw mesmo, funcionou certinho aqui pra mim as auras, só meu baú que quando pego o primeiro, e vou pegar o segundo bau ele fala que eu já peguei pois como é a storage igual ele não libera para pegar... Se poderia me ajuar passando seu script do baú para mim ?

Segundo baú:
 

function onUse(cid, item, fromPos, item2, toPos)
	local sto = 8445682
	if getPlayerStorageValue(cid, sto) < 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa fazer a quest da primeira aura antes de fazer a segunda.")
	elseif getPlayerStorageValue(cid, sto) > 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já possui aura level 2 ou superior.")
	elseif getPlayerStorageValue(cid, sto) == 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns! Você adquiriu a aura level 2!")
		setPlayerStorageValue(cid, sto, 2)
		doSendMagicEffect(getThingPos(cid), 29)
	end
end

 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo