41 minutos atrás, GniusP disse:
Se ele usar a alavanca que restaura a vida primeiro é para acontecer algo? E essa ação será sempre, ou somente 1 vez?
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

41 minutos atrás, GniusP disse:
Se ele usar a alavanca que restaura a vida primeiro é para acontecer algo? E essa ação será sempre, ou somente 1 vez?
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
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

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?
Agora, Yan18 disse:Seu servidor é tibia ou poketibia? E qual a versão do TFS?
Poketibia, versão 0.3.6
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

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.
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 endAgora 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 endLembrando 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
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

5 horas atrás, GniusP disse:Obrigado mano
De nada! Está funcionando certinho? Era isso que queria?
1 hora atrás, Yan18 disse:De nada! Está funcionando certinho? Era isso que queria?
Simm
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

21 minutos atrás, GniusP disse:Simm
Show!
info
Grupo: Diretor
Registrado: 12/05/12
Posts: 818
Reputação: +578
Gênero: Masculino
Char no Tibia: [ADM] Night

info
Grupo: Artesão
Registrado: 20/04/18
Posts: 116
Reputação: +30
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