modernbb

Реальное время на сервере

Recommended Posts

modernbb    7

Вставляем в common.js

может кому будет полезно

var setTimeTimer = 0; //Таймер, нужен что бы игровое время обновлялось не моментально а с n интервалом

//
setTimeout(function() { 
  var date = new Date(); //получаем реальное время
  mp.environment.time.hour = date.getHours(); //устанавливаем игровое время (часы)
  mp.environment.time.minute = date.getMinutes();// устанавливаем игровое время (минуты)
},0);

//Игровой цикл
setInterval(function(){
	setTimeTimer++; //инкрементируем таймер	
	if(setTimeTimer == 60) //60 - интервал обновления времени
	{
       //Получаем и устанавливаем время
		var date = new Date();
		mp.environment.time.hour = date.getHours();
		mp.environment.time.minute = date.getMinutes();		
		setTimeTimer = 0; //Обнуляем таймер
	}
},1000); // 1000 - задержка между следующим вызовом setInterval в мс.

 

Edited by modernbb
  • Like 1

Share this post


Link to post
Share on other sites
N1kS    27

@modernbb, оформите тему нормально, напишите теги и какие-то банальные комментарии к коду.

Share this post


Link to post
Share on other sites

Зачем каждый час узнавать сколько сейчас времени (new Date()), если мы знаем, какое оно было час назад?) А минуты вообще не изменяются, а если и изменяются, то с очень маленькой погрешностью.
К тому же, в теле функций лучше использовать let или const

Edited by CocaColaBear

Share this post


Link to post
Share on other sites
modernbb    7
20 минут назад, CocaColaBear сказал:

Зачем каждый час узнавать сколько сейчас времени (new Date()), если мы знаем, какое оно было час назад?) А минуты вообще не изменяются, а если и изменяются, то с очень маленькой погрешностью.
К тому же, в теле функций лучше использовать let или const

время обновляется каждую минуту а не каждый час , насчет let, это не столь важно 

Share this post


Link to post
Share on other sites
9 минут назад, modernbb сказал:

время обновляется каждую минуту а не каждый час , насчет let, это не столь важно 

Спутал, да. Каждую минуту. Все равно дергать каждый раз время - плохая затея. Нужно брать предыдущее значение и увеличивать на 1.

Share this post


Link to post
Share on other sites
modernbb    7
13 минуты назад, CocaColaBear сказал:

Спутал, да. Каждую минуту. Все равно дергать каждый раз время - плохая затея. Нужно брать предыдущее значение и увеличивать на 1.

со временем есть возможность погрешности так как в цикле может быть и другая логика , Date не ресурсоемкая операция , тем более раз в минуту, так что так переживать из за этого не стоит, тем более если посмотреть какие сейчас сервера и мощности , они позволят эту функцию тисячи итераций за секунду вызывать без единого лага

Share this post


Link to post
Share on other sites
tmaslov22    3

Почему в  SetInterval нельзя сразу задать правильный интервал обновления времени?
Зачем каждую минуту обновлять время?
Почему нельзя при старте сервера задать время и ВСЁ?

Share this post


Link to post
Share on other sites
modernbb    7
4 часа назад, tmaslov22 сказал:

Почему в  SetInterval нельзя сразу задать правильный интервал обновления времени?
Зачем каждую минуту обновлять время?
Почему нельзя при старте сервера задать время и ВСЁ?

можно задать сразу задержку в интервале , но так как я этот кусок взял из своего мода у меня кроме времени есть и другая логика которая должна обновлять намного быстрее чем само время, по желанию можно создать для этого отдельный интервал , но зачем? Насчет времени, оно задается и при старте сервера, но обновлять его нужно так как оно не обновляется на клиенте автоматически

 

Share this post


Link to post
Share on other sites
modernbb    7
7 минут назад, mrzoidberg123 сказал:

Это будет просто дикая загрузка на сервер. Бред 

что именно будет загружать ?

Share this post


Link to post
Share on other sites

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.