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


info
Grupo: Campones
Registrado: 06/12/15
Posts: 10
Reputação: 0
Tudo beleza, estou com uma duvida em uma script que fiz, vamos la:
queria que em2h em 2h abri-se o portal e leva-se tudos pra uma sala de espera
depois de 5 minutos o portal fechava, ai se tivesse mais que 5 players nessa sala
ele teleportaria todos para area diferentes no mapa se tivesse menos que 5 players jogava todos para o templo.
comecei fazer um, so que nao consigo continuar porque sou bem ruim em lua. vo postar aq.
local positioni = x=XXX, y=XXX, z=XXX}
function onThink(interval, lastExecution, thinkInterval)
local time = 5
doCreateTeleport(1387, {x=XXX, y=XXX, z=XXX}, positioni)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*60)
addEvent(mover, (time+1)*60)
addEvent(doBroadcastMessage, time*100*60, "O portal do evento foi fexado. Próximo evento em 2 horas.")
end
function deleteTp()
local delete = getTileItemById(positioni, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(positioni, CONST_ME_TELEPORT)
end
function mover()
local frompos,topos = {x=xxx, y=yyy, z=z}, {x=xxx, y=yyy, z=z}
area = {x = 1017, y = 1026, z = 7}
for a,b in pairs(getPlayersOnline()) do
if isInArea(getThingPos(b),frompos, topos) then
doTeleportThing(b, area)
end
return true
end
----------------
desde ja obrigado e agradeco