Ir para conteúdo

Featured Replies

Postado

Olá, eu tenho esse sistema de Aura Healing (esta disponivel aqui no tibiaking). Eu coloquei pra ela ser atraves de creaturescripts, agora gostaria de mudar pra onEquip e onDeEquip, porem esta dando um erro. Quando eu equipo o item ele ativa a função, porem assim que eu retiro o item ele nao desativa a função, e ao equipar o item novamente ele ativa a função de novo, ficando 2 funções ativa ou ate mais.

 

Eu queria que ao equipa o item ele ativa a função e ao desequipa o item ele desativa a função.

 

 

 

 

 

 


-- CONFIGURAÇÕES
aurastr = 25950 -- storage da aura
estr = 25951 -- storage para o exhaust
porcentagem = 30 -- chance de curar em cada volta da aura, em porcentagem
quantheal = 15 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% 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 = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
efeitocura = 53 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

local table = {
itemNeed = 9969, -- Mesmo id do itemid que você colocou na tag xml.
txt = {"´ .    ,", ".    ´ ,", "`  .  ,", ",    ` ."}, -- Texto que vai sair.
delay = 1000, -- Tempo que vai ficar saindo
cor = {26, 30, 31, 32}, -- Cor do texto que vai sair.
effect = 3 -- Efeito que vai sair(aura).
}

function doPlayerLoopEff(cid)
 if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == table.itemNeed then
  doSendAnimatedText(getThingPos(cid), table.txt[math.random(#table.txt)], table.cor[math.random(#table.cor)])
  addEvent(function() doPlayerLoopEff(cid) end, table.delay) -- 1000 é o delay que vai sair o efeito e o texto.
 end 
end

-- 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)/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 then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura1,tm,i,tm,cid)
        elseif i>8 then
            return efeitosAura1(1,0,cid)
        else
            return true
        end
    else
        return true
    end
end

-- Função principal

function onEquip (cid, item, slot)
doPlayerLoopEff(cid)
    efeitosAura1(1,tempo/8,cid)
      return true
      end

 

 

Editado por tetheuscunha (veja o histórico de edições)

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Postado

Cara, a sua dúvida está muito confusa.. Quando você equipa o item, ele ativa a função 2x ? ai você quer desativar em qual momento?

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

Postado
  • Autor
Em 03/08/2019 em 17:26, Rayo disse:

Cara, a sua dúvida está muito confusa.. Quando você equipa o item, ele ativa a função 2x ? ai você quer desativar em qual momento?

 

Desculpe a demora pra responder. Sim, ele ativa a função varias vezes. Se eu equipo o item mais de 2 vezes ele ativa toda essas vezes. Eu quero que ele desative assim que eu desequipo ele. onEquip e onDeEquip.

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo