IV
erro

Action que grava a life

Por IvanAppel, 17 de dez. de 2013 em Scripts

resolvido
script
24
2.4k
17 de dezembro de 2013 às 09:55

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 ;)

Session StartS
17 de dezembro de 2013 às 10:08

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 Dezembro 17 por Cleberadm

OriGMO
17 de dezembro de 2013 às 10:10

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
17 de dezembro de 2013 às 10:13

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 Dezembro 17 por eryrrel

LuuhTL
17 de dezembro de 2013 às 10:43

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

Editado Dezembro 17 por LuuhT

Session StartS
17 de dezembro de 2013 às 11:41

 

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
 

 
17 de dezembro de 2013 às 12:05

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 Dezembro 17 por eryrrel

Session StartS
17 de dezembro de 2013 às 12:10

tenta trocar os getCreatureHealth(cid) por getPlayerHealth(cid) e o outro de baixo...

OriGMO
17 de dezembro de 2013 às 12:11

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
xSONYxX
17 de dezembro de 2013 às 13:01

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

17 de dezembro de 2013 às 15:24

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 (:

OriGMO
17 de dezembro de 2013 às 16:02

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

17 de dezembro de 2013 às 16:11

 

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 =/

OriGMO
17 de dezembro de 2013 às 17:23

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
zipter98Z
17 de dezembro de 2013 às 17:46

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 Dezembro 17 por zipter98