Ir para conteúdo

Featured Replies

Postado

Estou tentando fazer o seguinte, queria fazer um script assim, se tiver tais itens em tais lugares e todos os players estiverem em tais lugares e um deles puxar a alavanca, vai teleportar todo mundo para tal lugar e os itens sumirá, tipo uma anihi, mas com itens para ser colocado em tais lugares, bom minha duvida é a seguinte, para nao encher de IF, eu decidi usar o for, mas nao sei usar ele ainda e queria saber se existe um jeito de fazer o "print ("1")entrar apenas se todos os itens estiverem nos lugares, mas o jeito que estou fazendo ele esta entrando e saindo.

Mostrar conteúdo oculto

Exemplo: queria que ele entrasse apenas uma vez, mas em vez disso... ele esta entrando 3 vezes.

Eu adaptei meu codigo ja que nao consegui... mas chegou em uma parte que nao tem jeito, eu preciso disso, preciso conferir se todos itens estao em seus lugares e todos os players tbm e se for TRUE, eles sao teleportados.

script completo: 

Mostrar conteúdo oculto

 

Editado por Pepeco (veja o histórico de edições)

Postado
function doRemoveItensInPos(items, pos) -- function by vodka
local items = type(items) == "table" and items or {items}  
      for i = 1, table.maxn(items) do 
    doRemoveItem(getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=1}).uid)
  end
  return nil
end
function getItemsInPos(items, pos)
         for i = 1,#items do
            local stack = getTileItemById(pos, items[1])
                  if stack.uid > 0 and math.max(1, stack.type) >= items[2] and i == #items then
                    return true
                 end
         end
return false
end

 

ai pode usar assim a tabela por exemplo:

 

local t = {
{items = {{2385,1}} , pos = {x=1170, y=965, z=7}},
{items = {{2173,1},{2493,1}} , pos = {x=1171, y=968, z=7}}
}

 

podendo colocar 1 ou mais itens dentro da tabela e a quantidade necessaria de cada um.

 

ai pra checar você usaria assim:

 

for _, w in ipairs(t) do
if not getItemsInPos(w.items, w.pos) then
doPlayerSendCancel(cid, 'Está faltando items.') 
return true
end
end

 

e pra remover os items

 

for _, v in ipairs(t) do
doRemoveItensInPos(v.items, v.pos)
end

 

Editado por Vodkart (veja o histórico de edições)

Postado
  Em 23/12/2016 em 08:29, Pepeco disse:

Estou tentando fazer o seguinte, queria fazer um script assim, se tiver tais itens em tais lugares e todos os players estiverem em tais lugares e um deles puxar a alavanca, vai teleportar todo mundo para tal lugar e os itens sumirá, tipo uma anihi, mas com itens para ser colocado em tais lugares, bom minha duvida é a seguinte, para nao encher de IF, eu decidi usar o for, mas nao sei usar ele ainda e queria saber se existe um jeito de fazer o "print ("1")entrar apenas se todos os itens estiverem nos lugares, mas o jeito que estou fazendo ele esta entrando e saindo.

Mostrar conteúdo oculto

Exemplo: queria que ele entrasse apenas uma vez, mas em vez disso... ele esta entrando 3 vezes.

Eu adaptei meu codigo ja que nao consegui... mas chegou em uma parte que nao tem jeito, eu preciso disso, preciso conferir se todos itens estao em seus lugares e todos os players tbm e se for TRUE, eles sao teleportados.

script completo: 

Mostrar conteúdo oculto

 

 

 

vê se entende:

 

local position = {
    [1] = {pos = {x=1170,y=965,z=7}, item = "1"},
    [2] = {pos = {x=1171,y=968,z=7}, item = "2"},
    [3] = {pos = {x=1171,y=969,z=7}, item = "3"}
}

local check = 0

for i = 1, #position do
	if getTileItemById(position[i].pos, item).uid then
		check = check + 1
		doPlayerSendTextMessage(cid, 22, "Confirmado item "..position[i].item..".")
	end
end

if check == #position then
	todos os items estão no lugar, então fazer...
else
	algum item não está no lugar, então fazer...
end

bom, vi agr que o vod respondeu :S

Editado por Ed.Specter (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo