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
info
Grupo: Campones
Registrado: 06/03/11
Posts: 24
Reputação: +8
Char no Tibia: Vigilante Rodoviario
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 endpos = é 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 endCreditos: Wantedzin