Jump to content

Синхронизация реального времени с игровым.


Recommended Posts

Привет!

Подскажите функции, или код, как синхронизировать время на сервере с временем в реальности?

Допустим, что время - Московское. На игровом сервере время будет 10 утра. Через час, пройденный в реале - пройдёт час в игре.

Я вроде что то читал про установку времени игрового мира (1 секунда - 6000 миллисекунд (сейчас ссылку на инфу не смогу дать, так как давно дело было)), но как сделать я не понял.

Заранее спасибо за ответ.

Link to comment
function syncRealTime(h, m) 
    -- set the ingame time 
    setTime(h, m) 
    -- make ingame time progress at the same rate as real time (60 seconds per minute) 
    setMinuteDuration(60000) 
end 
addEventHandler("onResourceStart", resourceRoot, syncRealTime) 

Все готово в примере дока

Link to comment
function syncRealTime(h, m) 
    -- set the ingame time 
    setTime(h, m) 
    -- make ingame time progress at the same rate as real time (60 seconds per minute) 
    setMinuteDuration(60000) 
end 
addEventHandler("onResourceStart", resourceRoot, syncRealTime) 

Все готово в примере дока

Я бы советовал вместо добавления события onResourceStart использовать таймер, ибо знаю случаи когда время сбивалось (но не знаю почему).

P.S. Пример у тебя не правильный, функция syncRealTime принимает аргументы h и m которые не будут переданы событием onResourceStart, вместо этого будет передан один аргумент h - где будет указатель на ресурс.

function UpdateTime() 
    setMinuteDuration( 60000 ); 
     
    local pTime = getRealTime(); 
    
    setTime( pTime.hour, pTime.minute ); 
end 
  
setTimer( UpdateTime, 60000, 0 ); 

Link to comment
function UpdateTime() 
    setMinuteDuration( 60000 ); 
     
    local pTime = getRealTime(); 
    
    setTime( pTime.hour, pTime.minute ); 
end 
  
setTimer( UpdateTime, 60000, 0 ); 

Да, этот код работает. Время такое же, как и в реальности.

Спасибо!

Но у меня возник вопрос: Как время будет синхронизировано с другими игроками? У них будет то же время, что и на их ПК? Если да, то как же будет синхронизация с ночью на сервере?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...