Flaah 18 Postado Novembro 19, 2015 Share Postado Novembro 19, 2015 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 end Como faço pra não ocorrer esse erro e checar a storage? pliz Link para o comentário https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/ Compartilhar em outros sites More sharing options...
0 Night Wolf 285 Postado Novembro 19, 2015 Share Postado Novembro 19, 2015 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 Link para o comentário https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/#findComment-1676006 Compartilhar em outros sites More sharing options...
0 Flaah 18 Postado Novembro 19, 2015 Autor Share Postado Novembro 19, 2015 Desculpe minha noobse, mais qual diferença entre um e outro exatamente? Porq a versão 2 tem uma storage que salva e isso n entendi muito bem kk' Link para o comentário https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/#findComment-1676021 Compartilhar em outros sites More sharing options...
0 Night Wolf 285 Postado Novembro 19, 2015 Share Postado Novembro 19, 2015 pela forma q vc fez eu não entendi se vc queria pegar o valor de 1 storage ou se queria checar entre vários storages. A diferença do primeiro pro segundo é que o primeiro se vc tiver todos os storages vc vai ganhar todas as vidas somadas Link para o comentário https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/#findComment-1676022 Compartilhar em outros sites More sharing options...
0 Flaah 18 Postado Novembro 19, 2015 Autor Share Postado Novembro 19, 2015 (editado) - REMOVIDO - Editado Dezembro 5, 2015 por Flaah Link para o comentário https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/#findComment-1676027 Compartilhar em outros sites More sharing options...
Pergunta
Flaah 18
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
Link para o comentário
https://xtibia.com/forum/topic/237915-como-faz-pra-checar-storage-em-tabela/Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados