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