rapaz, o erro que deu foi porque vc não passou parâmetro na função getPlayerStorageValue.. ela tinha que receber um creature id e o storage à ser checado. Mas eu acho que entendi oque vc tentou fazer, vc quer que ele cheque todos os storages da tabela e caso tenha valor >= 1 praquele determido storage aumente a vida, certo? Porque aqui você tá checando o valor de um storage inexistente
local valor = config[getPlayerStorageValue(cid)]
e além disso vc tá pegando o valor dele pra verificar na tabela, ou seja, esse 3001 e 3002 são os values que o storage não definido poderá assumir, era isso mesmo que você queria?
Fiz duas versões, elas são ligeiramente diferentes. A primeira checa storages 3001 e 3002, a segunda checa se o valor de um storage é 3001 ou 3002:
local config = {
[3001] = {HP = 900}, -- [Storage] = {HP = Quantidade}
[3002] = {HP = 780},
}
function onUse(cid, item, frompos)
for stg, value in ipairs (config) do
if getPlayerStorageValue(cid, stg) >= 1
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +value.HP)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
end
end
doSendMagicEffect(frompos, 10)
doPlayerSendTextMessage(cid, 20, "Congratulations!")
return true
end
--------------- VERSAO 2 ABAIXO --------------------------
local config = {
[3001] = {HP = 900}, -- [Storage] = {HP = Quantidade}
[3002] = {HP = 780},
storage = 39102 -- storage que salva os valores acima
}
function onUse(cid, item, frompos)
local valor = config[getPlayerStorageValue(cid, storage)]
if valor and valor.HP ~= nil then
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +valor.HP)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doSendMagicEffect(frompos, 10)
doPlayerSendTextMessage(cid, 20, "Congratulations!")
end
return true
end




info
Grupo: Barão
Registrado: 26/12/11
Posts: 201
Reputação: +18
Char no Tibia: Flaah
Como faz pra um checar uma storage em tabela? exemplo:
Fiz um item que ao usar ele checa a storage do player e se ele tiver X storage, ele ganha uma certa quantidade de HP.
Só que da esse erro ao checar a storage pela tabela:
[18/11/2015 23:50:00] data/actions/scripts/Classes/teste.lua:9: attempt to call global 'getPlayerStorage' (a nil value)
local config = { [3001] = {HP = 900}, -- [Storage] = {HP = Quantidade} [3002] = {HP = 780}, } function onUse(cid, item, frompos) local valor = config[getPlayerStorageValue(cid)] setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +valor.HP) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doSendMagicEffect(frompos, 10) doPlayerSendTextMessage(cid, 20, "Congratulations!") return true endComo faço pra não ocorrer esse erro e checar a storage? pliz