Ir para conteúdo
  • 0

[Resolvido] Alavanca que diminui vida do player


GniusP

Pergunta

10 respostass a esta questão

Posts Recomendados

  • 0

Vai em data/actions/scripts e crie um arquivo chamado alavanca_hp.lua (ou algum nome que preferir) e adicione o seguinte código dentro:

function onUse(cid, item, frompos, item2, topos)

local hp_antigo = getCreatureHealth(cid) + 200 -- Pega a vida atual do player antes de clicar na alavanca

local hp_alavanca = math.floor(200 - getCreatureHealth(cid)) -- HP que o jogador terá ao clicar na alavanca

if item.itemid == 1945 or item.itemid == 1946 then -- Aqui o ID da alavanca que clica para ficar com 200 de vida

if getCreatureHealth(cid) > 200 or getCreatureMaxHealth(cid) > 200 then -- Verifica se tem mais de 200 de vida ou se a vida máxima é maior que 200

if getPlayerStorageValue(cid, 45000) == -1 then -- Verifica se o player não tem a storage ao clicar na alavanca
 doCreatureAddHealth(cid, hp_alavanca) -- Deixa o HP do player com 200 de vida
 doSendMagicEffect(getThingPos(cid), 27) -- Efeito ao clicar na alavanca
 setPlayerStorageValue(cid, 45000, 1) -- Adiciona a Storage
return true
else
doPlayerSendTextMessage(cid, 27, "Você não pode usar a alavanca com" ..hp_alavanca.. " ou menos de vida!")
return true
end

else
doPlayerSendTextMessage(cid, 27, "Você não pode clicar na alavanca porque tem 200 ou menos de vida.")
return true
end

return true
end

if item.itemid == 12176 then -- Aqui é o ID da 2º alavanca, que reseta o HP do player como estava antes

if getPlayerStorageValue(cid, 45000) == 1 then -- Verifica se tem storage
 doCreatureAddHealth(cid, hp_antigo) -- adiciona o novo HP ao player
 doSendMagicEffect(getThingPos(cid), 29) -- efeito
 doPlayerSendTextMessage(cid, 27, "Seu HP foi restaurado para "..hp_antigo.. " de vida.")
 setPlayerStorageValue(cid, 45000, -1) -- Remove a storage para voltar a clicar novamente
return true
end
end
end

Agora vai em data/actions/actions.xml e adicione a tag:

<action itemid="1945;12176" script="alavanca_hp.lua" /> <!-- Lembrando que tem que colocar os id das 2 alavancas, só substituir ali pelos seus id -->

E vai em data/npc/scripts/heal.lua (ou o arquivo.lua que cura os pokémons ao falar com a Nurse) e adicione o seguinte código dentro da função onCreatureDisappear(cid, pos)

if getPlayerStorageValue(cid, 45000) then
 setPlayerStorageValue(cid, 45000, -1)
return true
end

Lembrando que esse código é para o caso do player clicar na alavanca que tira vida, mas não clicar na que recupera, então ao falar com a Nurse, ele perde a storage para conseguir clicar na alavanca novamente.

 

Eu não consegui testar muito, pois estou com pouco tempo, mas testei e está ficando sempre com 200 de vida ao clicar na alavanca, mas não testei direito se ele recupera a quantidade de vida exata que estava antes de clicar na alavanca que tira vida. Teste e me diga se é isso que quer.

Link para o comentário
Compartilhar em outros sites

  • 0
41 minutos atrás, GniusP disse:
Versão do Servidor: TFS - 0.3.5
Tipo de Script: actions
Código:
  Ocultar conteúdo



 

Pessoal, preciso de uma script que o player usa alavanca e fica com 200 de vida, e se usar outra alavanca, ele fique com a vida que estava antes

Se ele usar a alavanca que restaura a vida primeiro é para acontecer algo? E essa ação será sempre, ou somente 1 vez?

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Yan18 disse:

Se ele usar a alavanca que restaura a vida primeiro é para acontecer algo? E essa ação será sempre, ou somente 1 vez?

Não, e poderá usar sempre...

Por exemplo:

Usei a alavanca que deixa minha vida em 200

Ai eu usei a alavanca que deixa a vida que estava antes de usar a alavanca que deixa a vida 200

E se eu não usar a alavanca que deixa 200, e usar essa que deixa a vida normal, não acontecerá nada

Link para o comentário
Compartilhar em outros sites

  • 0
3 minutos atrás, GniusP disse:

Não, e poderá usar sempre...

Por exemplo:

Usei a alavanca que deixa minha vida em 200

Ai eu usei a alavanca que deixa a vida que estava antes de usar a alavanca que deixa a vida 200

E se eu não usar a alavanca que deixa 200, e usar essa que deixa a vida normal, não acontecerá nada

Seu servidor é tibia ou poketibia? E qual a versão do TFS?

Link para o comentário
Compartilhar em outros sites

  • 0
16 horas atrás, Yan18 disse:

Vai em data/actions/scripts e crie um arquivo chamado alavanca_hp.lua (ou algum nome que preferir) e adicione o seguinte código dentro:


function onUse(cid, item, frompos, item2, topos)

local hp_antigo = getCreatureHealth(cid) + 200 -- Pega a vida atual do player antes de clicar na alavanca

local hp_alavanca = math.floor(200 - getCreatureHealth(cid)) -- HP que o jogador terá ao clicar na alavanca

if item.itemid == 1945 or item.itemid == 1946 then -- Aqui o ID da alavanca que clica para ficar com 200 de vida

if getCreatureHealth(cid) > 200 or getCreatureMaxHealth(cid) > 200 then -- Verifica se tem mais de 200 de vida ou se a vida máxima é maior que 200

if getPlayerStorageValue(cid, 45000) == -1 then -- Verifica se o player não tem a storage ao clicar na alavanca
 doCreatureAddHealth(cid, hp_alavanca) -- Deixa o HP do player com 200 de vida
 doSendMagicEffect(getThingPos(cid), 27) -- Efeito ao clicar na alavanca
 setPlayerStorageValue(cid, 45000, 1) -- Adiciona a Storage
return true
else
doPlayerSendTextMessage(cid, 27, "Você não pode usar a alavanca com" ..hp_alavanca.. " ou menos de vida!")
return true
end

else
doPlayerSendTextMessage(cid, 27, "Você não pode clicar na alavanca porque tem 200 ou menos de vida.")
return true
end

return true
end

if item.itemid == 12176 then -- Aqui é o ID da 2º alavanca, que reseta o HP do player como estava antes

if getPlayerStorageValue(cid, 45000) == 1 then -- Verifica se tem storage
 doCreatureAddHealth(cid, hp_antigo) -- adiciona o novo HP ao player
 doSendMagicEffect(getThingPos(cid), 29) -- efeito
 doPlayerSendTextMessage(cid, 27, "Seu HP foi restaurado para "..hp_antigo.. " de vida.")
 setPlayerStorageValue(cid, 45000, -1) -- Remove a storage para voltar a clicar novamente
return true
end
end
end

Agora vai em data/actions/actions.xml e adicione a tag:


<action itemid="1945;12176" script="alavanca_hp.lua" /> <!-- Lembrando que tem que colocar os id das 2 alavancas, só substituir ali pelos seus id -->

E vai em data/npc/scripts/heal.lua (ou o arquivo.lua que cura os pokémons ao falar com a Nurse) e adicione o seguinte código dentro da função onCreatureDisappear(cid, pos)


if getPlayerStorageValue(cid, 45000) then
 setPlayerStorageValue(cid, 45000, -1)
return true
end

Lembrando que esse código é para o caso do player clicar na alavanca que tira vida, mas não clicar na que recupera, então ao falar com a Nurse, ele perde a storage para conseguir clicar na alavanca novamente.

 

Eu não consegui testar muito, pois estou com pouco tempo, mas testei e está ficando sempre com 200 de vida ao clicar na alavanca, mas não testei direito se ele recupera a quantidade de vida exata que estava antes de clicar na alavanca que tira vida. Teste e me diga se é isso que quer.

Obrigado mano

Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
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...