local Config =
{
PosTPSpawn = {x=XXX, y=XXX, z=XXX}, -- pos que o tp irá aparecer
PosPlayerTP = {x=XXX, y=XXX, z=XXX}, -- pos que o tp irá teleportar o player
Tempo = 10, -- Tempo em segundos que o TP ficará no local até desaparecer e o tempo que irá teleportar os players da sala
PosicoesTeleporte =
{ -- Posições que teleportará cada player, caso a sala tenha 5 players
{x = XXX, y = YYY, z = ZZZ}, -- Tp Player Pos1
{x = XXX, y = YYY, z = ZZZ}, -- Tp Player Pos2
{x = XXX, y = YYY, z = ZZZ}, -- Tp Player Pos3
{x = XXX, y = YYY, z = ZZZ}, -- Tp Player Pos4
{x = XXX, y = YYY, z = ZZZ}, -- Tp Player Pos5
},
AreaDe = {x=XXX, y=XXX, z=XXX},
AreaAte = {x=XXX, y=XXX, z=XXX},
}
function onThink(interval, lastExecution, thinkInterval)
doCreateTeleport(1387, Config.PosTPSpawn, Config.PosPlayerTP)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(function() deleteTp() end, ((Config.Tempo * 1000)*60))
addEvent(function() mover() end, ((Config.Tempo * 1000)*60))
addEvent(function() doBroadcastMessage("O portal do evento foi fexado. Próximo evento em 2 horas.", 25) end, ((Config.Tempo * 1000)*60))
end
function deleteTp()
local delete = getTileItemById(Config.PosTPSpawn, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(positioni, CONST_ME_TELEPORT)
end
function mover()
local PlayersArea = RetornarPlayersArea(Config.AreaDe, Config.AreaAte)
local TpTemplo = false
if #PlayersArea < 5 then
TpTemplo = true
end
for i = 1, #PlayersArea do
if TpTemplo == true
doTeleportThing(PlayersArea[i], getTownTemplePosition(getPlayerTown(PlayersArea[i])))
else
local IndexPos = math.random(1, #Config.PosicoesTeleporte)
doTeleportThing(PlayersArea[i], Config.PosicoesTeleporte[IndexPos])
end
end
return true
end
function RetornarPlayersArea(PosIn, PosFn)
playersInArea = {}
for _, pid in ipairs(getPlayersOnline()) do
local Pos = getCreaturePosition(pid)
if PosIn.x <= Pos.x and PosIn.y <= Pos.y and PosIn.z == Pos.z then
if PosFn.x >= Pos.x and PosFn.y >= Pos.y and PosFn.z == Pos.z then
table.insert(playersInArea, pid)
end
end
end
return playersInArea
end
Tenta isso, eu não testei mas acho que vai funcionar, qualquer coisa retorna o print do erro que as vezes pode ter erro bobo... Ai o tempo que esse script será chamado, você coloca no globalevents.xml
valeu