Sign in to follow this  
modernbb

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

Recommended Posts

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

@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
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
7 минут назад, mrzoidberg123 сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.