Ir para conteúdo
  • 0

Global Server Save 2X Ao Dia


oktober15

Pergunta

Ola, meu server ja esta configurado para dar server save todos os dias as 5h da manha, e ja esta tudo ok. no config.lua

 

 

globalSaveEnabled = true

globalSaveHour = 5

globalSaveMinute = 0

shutdownAtGlobalSave = true

cleanMapAtGlobalSave = true

 

porem agora eu quero que ele de save 2x ao dia, sendo 5h da manha e 5h da tarde.

como faço? se eu colocar assim pode funcionar?

 

 

globalSaveEnabled = true

globalSaveHour = 5

globalSaveHour = 17

globalSaveMinute = 0

shutdownAtGlobalSave = true

cleanMapAtGlobalSave = true

 

desde ja obrigado. e rep++

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

/data/globalevents/scripts globalSave

 

function onTimer()
broadcastMessage("Global server save, server será desligado em 5 segundos,", 25)
doSaveServer()
addEvent(doShutdown(), 5*1000)
return true
end

 

globalevents.xml

<globalevent name="globalSave" time="17:00" event="script" value="globalSave.lua"/>

 

nem testei

Link para o comentário
Compartilhar em outros sites

  • 0

testei, abriu normalmente nao deu nenhum erro, porem quando da a hora marcada nada acontece..

nao da nenhum erro no distro nem nada..

a hora do otserver pode esta diferente ou coisa assim?

vlw

 

EDIT:

 

consegui arrumar um pouco.

mude o onTimer para onTime

 

function onTimer()

broadcastMessage("Global server save, server será desligado em 5 segundos,", 25)

doSaveServer()

addEvent(doShutdown(), 5*1000)

return true

 

end

 

agora ela salva e fexa o server normalmente..

eu queria que avisase com 5 minutos, com 3 minutos e com 30 segundos antes de fexar..

e tbm deu um erro:

<luaAddEvent> Callback paramenter should be a function

 

mais esta funcionando direitinho..

Editado por öKTöBëR
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta esse:

function onTime()

local function doShutdown()

broadcastMessage("Global server save, server será desligado em 5 segundos,", 25)

doSaveServer()

addEvent(doShutdown(), 5*1000)

return true

 

end

Link para o comentário
Compartilhar em outros sites

  • 0



function onTimer()

local delay = 5*60 --Após quantos segs o servidor irá fechar
local avisos = {5*60,3*60,30} --Avisos faltando quantos segundos

for i = 1, #avisos do
local time = aviso[i]
if time < 60 then
str = os.date("%S segundo(s)", time)
elseif math.fmod(time, 60) == 0 then
str = os.date("%M minuto(s)", time)
else
str = os.date("%M minuto(s) e %S segundo(s)", time)
end
addEvent(broadcastMessage, (delay-time)*1000, "[Global server save] O server será desligado em "..str..".", 25)
end

addEvent(doSaveServer, delay*1000) --Apague esta linha caso seu server já salve o server com o doShutdown
addEvent(doShutdown, delay*1000)

return true
end

 

Qualquer coisa troque onTimer por onTime

Link para o comentário
Compartilhar em outros sites

  • 0



function onTimer()

local delay = 5*60 --Após quantos segs o servidor irá fechar
local avisos = {5*60,3*60,30} --Avisos faltando quantos segundos

for i = 1, #avisos do
local time = aviso[i]
if time < 60 then
str = os.date("%S segundo(s)", time)
elseif math.fmod(time, 60) == 0 then
str = os.date("%M minuto(s)", time)
else
str = os.date("%M minuto(s) e %S segundo(s)", time)
end
addEvent(broadcastMessage, (delay-time)*1000, "[Global server save] O server será desligado em "..str..".", 25)
end

addEvent(doSaveServer, delay*1000) --Apague esta linha caso seu server já salve o server com o doShutdown
addEvent(doShutdown, delay*1000)

return true
end

 

Qualquer coisa troque onTimer por onTime

 

deu o seguinte erro:

 

 

[13:44:00.146] [Error - GlobalEvent Interface]

[13:44:00.147] data/globalevents/scripts/saveshut.lua:onTime

[13:44:00.147] Description:

[13:44:00.148] data/globalevents/scripts/saveshut.lua:7: attempt to index global

'aviso' (a nil value)

[13:44:00.149] stack traceback:

[13:44:00.150] data/globalevents/scripts/saveshut.lua:7: in function <data/glob

alevents/scripts/saveshut.lua:1>

[13:44:00.152] [Error - GlobalEvents::timer] Couldn't execute event: globalSave

Link para o comentário
Compartilhar em outros sites

  • 0

tipo

 

ele começa a avisar 04:55

 

as 05:00 ele fecha e salva

 

e abre que hrs? as 05:05?

 

tipo, as 4:55 ele começa a avisar e as 5:00 ele salva e fexa..

e com o autorestarter.sh ele ja abre sosinho, isso eu ja tenho

Link para o comentário
Compartilhar em outros sites

  • 0

closecleansave.lua

local config = {
times = {"04:55","16:55"},
minutes = 5
}
function CloseAndSave()
if doSetGameState(GAMESTATE_CLOSED) then
doSaveServer(false)
addEvent(doSetGameState, 5000, GAMESTATE_NORMAL)
end
end
function doBroadSave(delay)
if delay ~= 0 then 
doBroadcastMessage("[Global server save] O server será desligado em "..delay.." Minuto"..(delay > 1 and "s" or "")) 
addEvent(doBroadSave, 60000, delay -1) 
end
end 
function onThink(interval, lastExecution)
if isInArray(config.times, tostring(os.date("%X")):sub(1, 5)) then
doBroadSave(config.minutes)
addEvent(CloseAndSave, config.minutes*60*1000)
end
return true
end

 

globalevebts.xml

<globalevent name="CloseAndSave" interval="60" event="script" value="closecleansave.lua"/>

Link para o comentário
Compartilhar em outros sites

  • 0

closecleansave.lua

local config = {
times = {"04:55","16:55"},
minutes = 5
}
function CloseAndSave()
if doSetGameState(GAMESTATE_CLOSED) then
doSaveServer(false)
addEvent(doSetGameState, 5000, GAMESTATE_NORMAL)
end
end
function doBroadSave(delay)
if delay ~= 0 then
doBroadcastMessage("[Global server save] O server será desligado em "..delay.." Minuto"..(delay > 1 and "s" or ""))
addEvent(doBroadSave, 60000, delay -1)
end
end
function onThink(interval, lastExecution)
if isInArray(config.times, tostring(os.date("%X")):sub(1, 5)) then
doBroadSave(config.minutes)
addEvent(CloseAndSave, config.minutes*60*1000)
end
return true
end

 

globalevebts.xml

<globalevent name="CloseAndSave" interval="60" event="script" value="closecleansave.lua"/>

 

ele começa a enviar muuuuitas mensagens no interval de 60, a cada 60 milesegundos repete as mensagens e tbm repete o save.

e pelo que vi o script apenas da save e closeserver..

preciso de ele use o evento shutdown. para que fexe completamente o distro.

 

addEvent(doShutdown)

Link para o comentário
Compartilhar em outros sites

  • 0

ja salva

 

 

function onTimer()
broadcastMessage("Global server save, server será desligado em 5 segundos,", 25)
doSaveServer()
addEvent(doShutdown(), 5*1000)
return true
end

 

globalevents.xml

<globalevent name="globalSave" time="17:00" event="script" value="globalSave.lua"/>

 

esse funciona direitinho, só preciso que ele comece a avisar 5 minutos antes..

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...