Ir para conteúdo
  • 0

Action que grava a life


IvanAppel

Pergunta

Bom galera antes de tudo olá, eu entreinomodogambiarra peguei um action na pasta e modifiquei e ficou assim :

 

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

queststatus = getPlayerStorageValue(cid,38347)
if queststatus == -1 then
hp = getPlayerHealth(cid)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347,1)
doSendMagicEffect(frompos,11)
else
setPlayerStorageValue(cid,38347,-1)
doPlayerAddHealth(cid,hp)
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end

Bom eu quero que o script grave minha life ou seja, digamos que meu total de life é 2500, e eu esteja apenas com 2000, dou use no item ele grava o numero 2000 ai se alguém me dar um hit e exemplo eu ficar com 500 de life quero que quando eu de use de novo no item a minha life volte pra 2000, só que não achei o erro porque ao em vez de "setar" a vida para 2000 ele adiciona 2000 de vida assim vai para 2500.Lembrando que esta versão é 7.81.

 

Se alguém puder me ajudar eu agradeço, obrigado ;)

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tenta usar isso, não testei...


function onUse(cid, item, frompos, item2, topos)
queststatus = getPlayerStorageValue(cid,38347)
if queststatus == -1 then
hp = getPlayerHealth(cid)
addhp = getPlayerStorageValue(cid, 38347)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347, hp)
doSendMagicEffect(frompos,11)
else
doPlayerAddHealth(cid,addhp)
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end
Editado por Cleberadm
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim.

 

 

function onUse(cid, item, frompos, item2, topos)
queststatus = getPlayerStorageValue(cid,38347)
if queststatus <= 0 then
local hp = getPlayerHealth(cid)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347,1)
doSendMagicEffect(frompos,11)
else
local newhp = hp - getPlayerHealth(cid)
doPlayerAddHealth(cid,(getPlayerHealth + newhp))
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end
Link para o comentário
Compartilhar em outros sites

  • 0

Não deu, ele só fica na primeira parte do script neste seu , não passa do else que é a parte que muda a hp da pessoa ):

 

@Cleberadm

O seu ta é tirando 1 de life sempre :o

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

  • 0

Muito útil essa script que você pediu pena que eu não tenho.... kkk, em alguns nto isso pode funcionar como um "izanagi"

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

  • 0

 

function onUse(cid, item, frompos, item2, topos)
 
queststatus = getPlayerStorageValue(cid,38347)
hpsalvo = getPlayerStorageValue(cid, 38347)
agape = getCreatureHealth(cid) -- getPlayerHealth(cid)
curar = (agape + addhp)
if queststatus == -1 then
 
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347, agape)
doSendMagicEffect(frompos,11)
 
else
doPlayerSendTextMessage(cid,18,"Voce foi curado em  "..hpsalvo..".")
doCreatureAddHealth(cid, curar) --doPlayerAddHealth(cid, curar)
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), ""..hpsalvo.."", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end
 

 
Link para o comentário
Compartilhar em outros sites

  • 0

Muito útil essa script que você pediu pena que eu não tenho.... kkk, em alguns nto isso pode funcionar como um "izanagi"

 

Muito útil essa script que você pediu pena que eu não tenho.... kkk, em alguns nto isso pode funcionar como um "izanagi"

Ou como kawarimi

 

@Cleberadm

ainda nao funcionou

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

  • 0

Tenta assim então.

 

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

queststatus = getPlayerStorageValue(cid,38347)
if queststatus == -1 then
local hp = getPlayerHealth(cid)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347,1)
doSendMagicEffect(frompos,11)
else
local newhp = hp - getPlayerHealth(cid)
doPlayerAddHealth(cid,(getPlayerHealth + newhp))
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end
Link para o comentário
Compartilhar em outros sites

  • 0

Cara, é só você trocar a variavel local pra global..

Não entendi, é pra tirar as palavras "local" e colocar "global"? se for eu botei e apareceu esse erro no /reload actions

data/actions/scripts/kawa.lua:5: '=' expected near 'hp'

Se tiver como alguém pegar ai o script certinho e escrever eu agradeço (:

Link para o comentário
Compartilhar em outros sites

  • 0

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



queststatus = getPlayerStorageValue(cid,38347)

if queststatus == -1 then

hp = getPlayerHealth(cid)

doPlayerSendTextMessage(cid,18,"Actived.")

setPlayerStorageValue(cid,38347,1)

doSendMagicEffect(frompos,11)

else

newhp = hp - getPlayerHealth(cid)

doPlayerAddHealth(cid,(getPlayerHealth + newhp))

doSendMagicEffect(frompos,11)

doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)

setPlayerStorageValue(cid,38347,-1)

doPlayerSendTextMessage(cid,18,"Used.")

end

end

Link para o comentário
Compartilhar em outros sites

  • 0

 

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

queststatus = getPlayerStorageValue(cid,38347)
if queststatus == -1 then
hp = getPlayerHealth(cid)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347,1)
doSendMagicEffect(frompos,11)
else
newhp = hp - getPlayerHealth(cid)
doPlayerAddHealth(cid,(getPlayerHealth + newhp))
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,-1)
doPlayerSendTextMessage(cid,18,"Used.")
end
end

 

Não passou do else também =/

Link para o comentário
Compartilhar em outros sites

  • 0

E assim?

 

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

queststatus = getPlayerStorageValue(cid,38347)
if queststatus == 0 then
local hp ={}
hp = getPlayerHealth(cid)
doPlayerSendTextMessage(cid,18,"Actived.")
setPlayerStorageValue(cid,38347,1)
doSendMagicEffect(frompos,11)
end
if queststatus >= 1 then
newhp = hp - getPlayerHealth(cid)
doPlayerAddHealth(cid,(getPlayerHealth + newhp))
doSendMagicEffect(frompos,11)
doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
setPlayerStorageValue(cid,38347,0)
doPlayerSendTextMessage(cid,18,"Used.")
end
end
Link para o comentário
Compartilhar em outros sites

  • 0

Não sei entendi direito o pedido, veja se é isso mesmo que eu fiz: uma pessoa usa o item, é armazenado neste o valor da vida atual do jogador. Na próxima vez que o item for usado, a vida do jogador será alterada para este valor. Aí, na próxima vez, será armazenado outro valor, com a vida no jogador no momento. E assim vai. É isso mesmo?

function onUse(cid, item, frompos, item2, topos)
 
local quest_status = getPlayerStorageValue(cid, 38347)
 
    if quest_status <= 0 then
        local life = getPlayerHealth(cid)
        doPlayerSendTextMessage(cid, 18, "Ativado. Heal: "..life..".")
        setPlayerStorageValue(cid, quest_status, 1)
        doItemSetAttribute(item.uid, "vida", life) 
        doItemSetAttribute(item.uid, "description", "HP: "..life..".")
        doSendMagicEffect(frompos, 11)
    else
        local hp = getItemAttribute(item.uid, "vida") or 0
        doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
        doPlayerSendTextMessage(cid, 18, "Usado. Sua vida agora é "..hp..".")
        setPlayerStorageValue(cid, quest_status, -1)
        doPlayerAddHealth(cid, -(getPlayerHealth(cid) - 1))
        doPlayerAddHealth(cid, hp - 1)
        doSendMagicEffect(frompos, 11)
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

 

Não sei entendi direito o pedido, veja se é isso mesmo que eu fiz: uma pessoa usa o item, é armazenado neste o valor da vida atual do jogador. Na próxima vez que o item for usado, a vida do jogador será alterada para este valor. Aí, na próxima vez, será armazenado outro valor, com a vida no jogador no momento. E assim vai. É isso mesmo?

function onUse(cid, item, frompos, item2, topos)
 
local quest_status = getPlayerStorageValue(cid, 38347)
 
    if quest_status <= 0 then
        local life = getPlayerHealth(cid)
        doPlayerSendTextMessage(cid, 27, "Ativado. Heal: "..life..".")
        setPlayerStorageValue(cid, quest_status, 1)
        doItemSetAttribute(item.uid, "vida", life) 
        doItemSetAttribute(item.uid, "description", "HP: "..life..".")
        doSendMagicEffect(frompos, 11)
    else
        local hp = getItemAttribute(item.uid, "vida") or 0
        doSendAnimatedText(getPlayerPosition(cid), "!!!", 71)
        doPlayerSendTextMessage(cid, 27, "Usado. Sua vida agora é "..hp..".")
        setPlayerStorageValue(cid, quest_status, -1)
        doPlayerAddHealth(cid, -(getPlayerHealth(cid) - 1))
        doPlayerAddHealth(cid, hp - 1)
        doSendMagicEffect(frompos, 11)
    end
    return true
end

 

Não testei seu script ainda ja edito o post dizendo se funcionou ou não, eu quero que ele faça assim, eu dei use e tou com 1312 de vida, quando eu der use denovo volte pra 1312 só isso (:

 

@OriGM

Não deu pra dar use no item com a script que tu mandou

 

@edit

Quando tentei dar use no item eu levei debug zipter =/

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

×
×
  • Criar Novo...