Ir para conteúdo
  • 0

Pergunta

Olá galera, eu criei um script para blokiar items, e tipo... o for nao está lendo todos os valores dentro da tabela N.

 

Ele só está lendo o primeiro valor

alguem pode concertar isso pra min?

 


function onMoveItem(cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status)
local n = {1988, 2400, 2404, 2403, 2402, 2401, 2405, 1996}

for _, i in ipairs(n) do
if item.itemid == i then
doPlayerSendCancel(cid, "This item is blocked! you cannot move it!")
return false
else return true
end
end
end

Link para o comentário
https://xtibia.com/forum/topic/210619-porque-o-meu-for-nao-est%C3%A1-lendo-o-restante/
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

usar for pra isso? LOL LOL LOL LOL

function onMoveItem(cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status)
local n = {1988, 2400, 2404, 2403, 2402, 2401, 2405, 1996}

if isInArray(n, item.itemid) then
  doPlayerSendCancel(cid, "This item is blocked! you cannot move it!")
  return false
end
return true
end

  • 0

PORRA ! Eu esqueço do Array ¬.¬

 

Obrigado ai Slicer. REP+

 

Mais poderia me dizer, porq o for nao estava lendo? o.0

Editado por OrochiElf
  • 0

Não lia por causa do Return false. Se no primeiro não confirmasse, retornava false e parava o loop. Se confirmar, retorna true e também para o loop.

Editado por LuckOake
  • 0

soh pra complementar.. o problema tava no else return true... ^^ o return false estava correto.. soh o return true q tinha q ir pra baixo...

function onMoveItem(cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status)
local n = {1988, 2400, 2404, 2403, 2402, 2401, 2405, 1996}

for _, i in ipairs(n) do
  if item.itemid == i then
  doPlayerSendCancel(cid, "This item is blocked! you cannot move it!")
  return false
  end
end
return true
end

×
×
  • Criar Novo...