Jump to content

Recommended Posts

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
  • Like 1
Posted (edited)

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

Edited by CocaColaBear
Posted
20 минут назад, CocaColaBear сказал:

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

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

Posted
9 минут назад, modernbb сказал:

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

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

Posted
13 минуты назад, CocaColaBear сказал:

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

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

Posted

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

Posted
4 часа назад, tmaslov22 сказал:

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

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

 

Posted
7 минут назад, mrzoidberg123 сказал:

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

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

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...