Ir para conteúdo
  • 0

teleport que abra a cada duas horas


VitinhoMapp

Pergunta

Eai pessoal,

preciso de um script (acredito que um global event) que faça surgir um teleport no mapa a cada duas horas todos os dias e quando abrir manda um broadcast message dizendo que o mesmo foi aberto, depois de 10 minutos o teleport some, e ai da uma broadcast message dizendo que o tp fechou.

Era isso vlw!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Globalevents:

.lua

local tpId = 1387
local pos = {x=1, y=2, z=7}  -- onde o teleport sera criado
local toPos  = {x=3, y=4, z=7} -- para onde vai quando entrar
local time = 10 -- tempo em minutos
 
function removeTp(tp)
    local t = getTileItemById(pos, tpId)
    if t then
        doRemoveItem(t.uid, 1)
        doSendMagicEffect(pos, CONST_ME_POFF)
    end
end
 
function onThink(interval, lastExecution)
    doCreateTeleport(tpId, toPos, pos)
    doBroadcastMessage(cid, "O teleport apareceu")
    addEvent(removeTp, time*100000, tp)
return true
end
tag, xml
<globalevent name="teleport" interval="2000000" event="script" value="nomedoscript.lua"/>
em 2000000 você altera o tempo para aparecer em milesegundos, tipo 2000 = 2segundos.
Link para o comentário
Compartilhar em outros sites

  • 0
tenta esse aqui:
pasta do ot/data/globalevents/scripts e coloque em algum arquivo.lua isso aqui

function onThink(interval, lastExecution, thinkInterval)
local eventName = "Nome Do Evento"
local posCrete = {x= 1030, y= 913, z=4} -- Onde Sera Criado.
local posTeleport = {x= 1031, y= 915, z= 15} -- Para Onde ira leva
local time = 5 -- Tempo que levara para o Portal fecha
local tpId = 1387 -- ID Do Portal
function removeTp()
local tp = getTileItemById(posCreate, tpId)
doRemoveItem(tp.uid, 1)
doSendMagicEffect(posCreate, 2)
doBroadcastMessage("O Teleport para o Evento "..eventName.." se fechou.")
return true
end
doCreateTeleport(tpId, posTeleport, posCreate)
doBroadcastMessage("O Teleport Para o Evento "..eventName.." foi aberto, e será fechado em "..time.." Minuto(s).")
addEvent(removeTp, time * 60)
return true
end

 

 

 

<globalevent name="teleport" interval="14400000" event="script" value="nome do arquivo.lua"/>
ta configurado para 4 4hrs o portal abrir

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

só tem um probleminha, é pequeno mas ainda é um problema, o tempo que ta ali pra fechar eu coloquei 1 - queria 1 minuto pra testar só, dai tipo ele dava a msg que abriu o tp, nem aparecia o tp ja dava msg que tinha fechado kkkkkk, dai eu coloquei 100 invés de 1, ele fico sl uns 3 segundos e sumiu, e esse "interval" ele funciona em segundos ;s então 2 horas = 7200 segundos

fora isso funciono beleza mesmo obrigado por compartilhar REP+

 

Bom eu arrumei certinho o funcionamento dele, ta ai pra quem quiser:

function onThink(interval, lastExecution, thinkInterval)
local eventName = "Nome Do Evento"
local posCreate = {x= 1030, y= 913, z=4} -- Onde Sera Criado.
local posTeleport = {x= 1031, y= 915, z= 15} -- Para Onde ira leva
local time = 5 -- Tempo que levara para o Portal fecha
local tpId = 1387 -- ID Do Portal
function removeTp()
local tp = getTileItemById(posCreate, tpId)
doRemoveItem(tp.uid, 1)
doSendMagicEffect(posCreate, 2)
doBroadcastMessage("O Teleport para o Evento "..eventName.." se fechou.")
return true
end
doCreateTeleport(tpId, posTeleport, posCreate)
doBroadcastMessage("O Teleport Para o Evento "..eventName.." foi aberto, e será fechado em "..time.." Minuto(s).")
addEvent(removeTp, time * 60000)
return true
end

 

 

 

e só corrigindo aqui:

<globalevent name="teleport" interval="60" event="script" value="nome do arquivo.lua"/> 

esse interval é em segundos (no meu ot pelo menos) no caso ali 1 minuto

 

 

Editado por VitinhoMapp
Link para o comentário
Compartilhar em outros sites

  • 0

Substitua isso:

addEvent(removeTp, time * 60000)

por esse:

addEvent(removeTp, time*10000, tp)

Assim fica melhor para se configurar

 

no caso vai fica assim:

30 * 10000 = 300000milesegundos = 30 minutos

 

no lugar de assim:

5 * 60000 = 300000milesegundos = 30 minutos

 

 

Assim fica melhor para se configurar

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...