Ir para conteúdo
  • 0

Porque o meu for nao está lendo o restante?


Tony Araujo

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

Link para o comentário
Compartilhar em outros sites

  • 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
Link para o comentário
Compartilhar em outros sites

  • 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

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...