PO
poketibia

Erro em Script Poketibia

Por Poke X Ice, 28 de abr. de 2019 em Scripts

0.3.6
8
1.6k
28 de abril de 2019 às 15:07

 

Boa tarde, Estou com Problema no meu script! ficando dando esse erro.

 

Spoiler

[28/04/2019 15:02:32] [Error - Action Interface] 
[28/04/2019 15:02:32] datapack/actions/scripts/quests/kitinicial.lua:onUse
[28/04/2019 15:02:32] Description: 
[28/04/2019 15:02:32] datapack/actions/scripts/quests/kitinicial.lua:16: attempt to index field 'item' (a number value)
[28/04/2019 15:02:32] stack traceback:
[28/04/2019 15:02:32]     datapack/actions/scripts/quests/kitinicial.lua:16: in function <datapack/actions/scripts/quests/kitinicial.lua:1>

 

script:

Spoiler

function onUse (cid,item,frompos,item2,topos)
local config  = {
["Ultra Ball"] = {item = 2392, quantidade = 50},
["Nota Verde"] = {item = 2152, quantidade = 40},
["Shiny Box"] = {item = 14838, quantidade = 1},
["Hyper Potions"] = {item = 12345, quantidade = 100}
}

for k, v in pairs(config) do
if getPlayerLevel(cid) >= 1 then
if item.uid == 9000 then
queststatus = getPlayerStorageValue(cid,5951)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Parabens,Você pegou seu Kit Inicial.")
doPlayerAddItem(cid, v.item, v.quantidade)
doItemSetAttribute(v.item.uid, "unique", v.quantidade)
setPlayerStorageValue(cid,5951,1)
doSendMagicEffect(getThingPos(cid), 29)
else
doPlayerSendTextMessage(cid,22,"Você ja pegou isto!.")
end
end
else
doPlayerSendCancel(cid,'Somente Levels 5+ conseguem abrir este bau.')
end
return 1
end
end

 

 

gabrielzikaG
28 de abril de 2019 às 15:36

@Poke X Ice tomei a liberdade de fazer algumas alterações nele, veja(não testei):

 

function onUse (cid,item,frompos,item2,topos)
local config  = {
level = 5,
storage = 5951,
uniqueid = 9000,
effect = 29,
items = {
["Ultra Ball"] = {item = 2392, quantidade = 50},
["Nota Verde"] = {item = 2152, quantidade = 40},
["Shiny Box"] = {item = 14838, quantidade = 1},
["Hyper Potions"] = {item = 12345, quantidade = 100}
}
}

if item.uid == config.uniqueid then
	if getPlayerLevel(cid) >= config.level then
		local queststatus = getPlayerStorageValue(cid, config.storage)
		if queststatus == -1 then
			for k, v in pairs(config.items) do
				local itemAdd = doPlayerAddItem(cid, v.item, v.quantidade)
				doItemSetAttribute(itemAdd.uid, "unique", 1)
			end
			doPlayerSendTextMessage(cid, 22, "Parabens, você acaba de pegar seu Kit Inicial.")
			setPlayerStorageValue(cid, config.storage, 1)
			doSendMagicEffect(getThingPos(cid), config.effect)
		else
			doPlayerSendCancel(cid, "Você ja pegou seu Kit Inicial.")
		end
	else
		doPlayerSendCancel(cid, "Somente Level ".. config.level .."+ conseguem abrir este bau.")	
	end
end
return 1
end 

Caso de algum problema de simbolos:

 

https://hastebin.com/gaburujiwu.rb

28 de abril de 2019 às 16:12

acabei de testar e ficou com esse erro:

Spoiler

[28/04/2019 16:12:24] [Error - Action Interface] 
[28/04/2019 16:12:24] datapack/actions/scripts/quests/kitinicial.lua:onUse
[28/04/2019 16:12:24] Description: 
[28/04/2019 16:12:24] datapack/actions/scripts/quests/kitinicial.lua:21: attempt to index local 'itemAdd' (a number value)
[28/04/2019 16:12:24] stack traceback:
[28/04/2019 16:12:24]     datapack/actions/scripts/quests/kitinicial.lua:21: in function <datapack/actions/scripts/quests/kitinicial.lua:1>

 

gabrielzikaG
28 de abril de 2019 às 17:33

@Poke X Ice chega a receber algum item?

28 de abril de 2019 às 17:36

sim, recebo os itens só que não ficá unique ainda da esse erro ai

gabrielzikaG
28 de abril de 2019 às 17:47

@Poke X Ice

 

function onUse (cid,item,frompos,item2,topos)
local config  = {
level = 5,
storage = 5951,
uniqueid = 9000,
effect = 29,
items = {
["Ultra Ball"] = {item = 2392, quantidade = 50},
["Nota Verde"] = {item = 2152, quantidade = 40},
["Shiny Box"] = {item = 14838, quantidade = 1},
["Hyper Potions"] = {item = 12345, quantidade = 100}
}
}

if item.uid == config.uniqueid then
	if getPlayerLevel(cid) >= config.level then
		local queststatus = getPlayerStorageValue(cid, config.storage)
		if queststatus == -1 then
			for k, v in pairs(config.items) do
				local itemAdd = doPlayerAddItem(cid, v.item, v.quantidade)
				doItemSetAttribute(itemAdd, "unique", 1)
			end
			doPlayerSendTextMessage(cid, 22, "Parabens, você acaba de pegar seu Kit Inicial.")
			setPlayerStorageValue(cid, config.storage, 1)
			doSendMagicEffect(getThingPos(cid), config.effect)
		else
			doPlayerSendCancel(cid, "Você ja pegou seu Kit Inicial.")
		end
	else
		doPlayerSendCancel(cid, "Somente Level ".. config.level .."+ conseguem abrir este bau.")	
	end
end
return 1
end 

Caso de algum erro de simbolos:

 

https://hastebin.com/woqakacede.rb

28 de abril de 2019 às 17:51

Agora funcionou, obrigado me explica oq vocÊ fez para funciona

gabrielzikaG
28 de abril de 2019 às 17:54

@Poke X Ice Se resolveu o seu problema marque como melhor resposta para que ajude outras pessoas que passarem pelo mesmo problema. Sobre a sua pergunta, basta comparar os dois scripts que lhe mandei eu estava digitando erradamente "itemAdd.uid" sendo que só era necessário "itemAdd".