modernbb

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

20 posts in this topic

Posted (edited)

Вставляем в 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
1 person likes this

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Posted (edited)

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

Edited by CocaColaBear

Share this post


Link to post
Share on other sites
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
13 минуты назад, CocaColaBear сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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.