Ir para conteúdo
Entre para seguir isso  
Undead Slayer

doFindItemInPos() e doFindItemInArea()

Recommended Posts

Undead Slayer    0
Undead Slayer

Título: doFindItemInPos() e doFindItemInArea()

 

Sintaxe: doFindItemInPos(ids,pos) e

doFindItemInArea(extremePos,lowestPos,ids)

Descrição: A primeira função pega todos os itens de certa id de uma certa posição. Ja a segunda é a mesma coisa, porem ela avalia não so uma posição, mas uma area inteira...

Requerimentos: A função doFindItemInArea nescessita da doFindItemInPos...

 

Função: doFindItemInPos

function doFindItemInPos(ids,pos)
local results = {}
for _ = 0, 255 do
  local findPos = {x = pos.x, y = pos.y, z = pos.z, stackpos = _}
  if isInArray(ids,getThingfromPos(findPos).itemid) == TRUE then
     table.insert(results,#results,getThingfromPos(findPos))
  end
end
return results
end

 

Função: doFindItemInArea

function doFindItemInArea(extremePos,lowestPos,ids)
local results = {}
for x = extremePos.x, lowestPos.y do
  for y = extremePos.y, lowestPos.y do
     for z = extremePos.z, lowestPos.z do
        local areaPos = {x = x, y = y, z = z}
        if doFindItemInPos(ids,areaPos) ~= FALSE then
           for _ = 1, #doFindItemInPos(ids,areaPos) do
              table.insert(results,#results,doFindItemInPos(ids,areaPos)[_])
           end
        end
     end
  end
end
return results
end

 

 

Comentários adicionais: Nos dois casos, sempre ira retornar uma tabela com os itens. Caso não ache nenhum item, ira retornar a tabela vazia. A tabela é composta sempre do primero item achado ate o ultimo achado [O que ta perto da extremePos ate o que ta perto da lowestPos, o que tem stackpos menor ate o que tem stackpos maior]. A id tem que ser numa tabela/array para tornar possivel o uso de varias ids. [em ambos casos]. extremePos é a posição superior a esquerda, ja a lowestPos é a posição inferior a direita. Para um multiFloor, faça com que z de extremePos seja menor que z de lowestPos...

 

Comentem :yes:

Editado por Undead Slayer

Compartilhar este post


Link para o post
Nord    2
Nord

2 funções muito úteis, ótimo para se usar na captação em massa de ids espalhados em um plano.

Nunca descobriremos a dimensão do que essas 2 funções podem proporcionar, muito bom Slayer.

Compartilhar este post


Link para o post
Mock    32
Mock

a de encontar o item na posição que usa stackpos de 0 a 20, eu aconselho usar de 0,255 é melhor pois se tiver + de 20 items no chao S

Compartilhar este post


Link para o post
Undead Slayer    0
Undead Slayer

ja arrumei, mesmo eu achando que pode dar um lag...

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×