Ir para conteúdo

[Função] Checkareauid


Posts Recomendados

O que ela faz: Bom ele checa os monstros e os players ou só os monstros ou só os players que estão em determinada área que vai ser representada por uma tabela como a das spells.

 

function checkAreaUid(pos, area, showP, showM) -- By Wantedzin(Perdigs)
   local creaturesList = {}
   local center = {}
   center.y = math.floor(#area/2)+1
   for y = 1, #area do
       for x = 1, #area[y] do
           local number = area[y][x]
           if number > 0 then
               center.x = math.floor(table.getn(area[y])/2)+1
               local pos =  getTopCreature {x = pos.x + x - center.x, y = pos.y + y - center.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE}
               if (pos.type == 1 and showP == 1) or (pos.type == 2 and showM == 1) then
               table.insert(creaturesList, pos.uid)
               end
           end
       end
   end
   return creaturesList
end  

 

pos = é de onde séra o centro da checagem a partir desta posição fara a checagem.

area = é a area que vc setou pra ele afzer a checagem

showP = 0 para não checar os players e 1 para checar players

showM = 0 para não checar monstros e 1 para checar monstros

 

Exemplo do script aplicado.

 

function onUse(cid, item, frompos, item2, topos)

local area = {
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 1, 2, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 0, 0}
}

local condition = createConditionObject(CONDITION_DRUNK)
setConditionParam(condition, CONDITION_PARAM_TICKS, 15*1000)

local function Drunked(indrunk)
if not isCreature(indrunk) then return true end
doAddCondition(indrunk, condition)
end

local uid = checkAreaUid(topos, area, 1, 1)
for _,pid in pairs(uid) do
Drunked(pid)
doSendMagicEffect(getCreaturePosition(pid), 1)
end
end  

 

Creditos: Wantedzin

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...