RedLink

Реальная дата на сервере 1.0.6.2 + InfiSTAR

Вопрос

 

Всем привет.

Возник один вопрос, который пока не могу догнать как решить.

Суть следующая. В последней версии Инфистара есть код, который выводит логи в отдельную папку

Скрытый текст
if(_armalog)then{
	diag_log "<infiSTAR.de> infiSTAR dll loaded successfully";
	diag_log format["<infiSTAR.de> %1",[_response, 1] call fn_select_string_rest];
	diag_log "<infiSTAR.de> Loading infiSTAR code..";

	infiSTAR_LogFolderName = "!InfiSTAR_Logs\";
	FN_CALL_LOG_DLL = {
		private ["_filename","_logentry"];
		_filename = _this select 0;
		_logentry = _this select 1;
		"armalog" callExtension format["2%1%2|%3", infiSTAR_LogFolderName, _filename, _logentry];
	};

 

Путем нехитрых манипуляций добавляем ему вывод лог в отдельную папку с датой (ибо надоел тот кошмар, что там за 5 дней скапливается)

Скрытый текст
if(_armalog)then{
	private ["_d1","_d2","_d3","_d4"];
	_d1 = date select 0;
	_d2 = date select 1;
	_d3 = date select 2;
	_d4 = format["%1-%2-%3",_d1,_d2,_d3];
	
	diag_log "<infiSTAR.de> infiSTAR dll loaded successfully";
	diag_log format["<infiSTAR.de> %1",[_response, 1] call fn_select_string_rest];
	diag_log "<infiSTAR.de> Loading infiSTAR code..";

	infiSTAR_LogFolderName = format["!InfiSTAR_Logs\%1\",_d4];
	FN_CALL_LOG_DLL = {
		private ["_filename","_logentry"];
		_filename = _this select 0;
		_logentry = _this select 1;
		"armalog" callExtension format["2%1%2|%3", infiSTAR_LogFolderName, _filename, _logentry];
	};

 

А вот теперь сам вопрос.

Если переменная dayz_ForcefullmoonNights = true;

то создается папка с датой, которая указана в server_monitor.sqf - т.е. 2012,8,2 - что в принципе логично.

А вот если dayz_ForcefullmoonNights = false; - то создается папка с датой, которая указана в mission.sqf (в моем случае это 2008,10,1. Хотя по логике должна присваиваться реальная дата, которая берется из того-же server_monitor при проверке на dayz_ForcefullmoonNights, т.к. в логе сервера мы видим, что TIME SYNC текущая дата сервера.

Почему так происходит и как это можно поправить?

Изменено пользователем RedLink (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 ответов на этот вопрос

Забронировать это рекламное место


RedLink Идеи? А кому охота вчитываться в код?)

В 27.01.2019 в 03:04, RedLink сказал:

.к. в логе сервера мы видим, что TIME SYNC текущая дата сервера.

Мы ничего не видим. Логов то нет у нас.

 

А так -

Ты бы для начала выкинул весь код. И в 1-2 строки накидал бы банальное получение даты. Плюс логи бы приложил.

Ото вывалил код с инфистара какой то...

И вообще - что значит реальное время сервера? - В арме нет функции возвращающей реальное время серверной машины. Есть время от старта миссии, и дата, внутри которой лежит время из mission.sqf, и часики со старта миссии тик-так.

И при чем тут сервер монитор, если дата, она и в африке дата - ты и тянешь ее из переменной data которая основана на см. выше.

А если реальное время надо, и реальную дату - через dll получай. хоть sql хоть ini... На форуме было.

И логи надо подчищать - создай батник который будет удалять логи старше Х суток, и копировать их при старте сервера куда нить на яндекс диск.

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подчищение логов не вариант, т.к. храню в районе месяца, а за сутки там порядка 10-15 файлов собирается (см. скрин)

принцип такой, когда во втором коде идет запрос на год-месяц-день, то автоматом создается папка с этой датой, в которую уже сохраняются файлы с логом за день. логирования времени - diag_log ["TIME SYNC: Local Time set to:", _date, "Fullmoon:",dayz_ForcefullmoonNights,"Date given by HiveExt.dll:",_result select 1];

онаже в сервернуй rpt и показывает установленную дату согласно 

setDate _date;
dayzSetDate = _date;
publicVariable "dayzSetDate";

из server_monitor.sqf

фишка в том, что если в ините переменной dayz_ForcefullmoonNights сказать true, то при первом заходе игрока, второй код в первом сообщении создает папку с датой, которая указана в том же - server_monitor.sqf, а именно 

if (dayz_ForcefullmoonNights) then {_date = [2012,8,2,_hour,_minute];};

а вот есть указать переменной false, то создается папка с датой из mission.sqm и все логи на протяжении всего сеанса сервера идут именно в нее.

НО в серверном логе, уже после прогрузки сервера лог TIME SYNC показывает локальную дату сервера.

Пот я и хочу понять, почему так происходит.

По логике она должна сразу создаваться с датой сервера.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, RedLink сказал:

НО в серверном логе, уже после прогрузки сервера лог TIME SYNC показывает локальную дату сервера.

Два вопроса

1. А ДО прогрузки - дата типа верная?

2. Что значит ЛОКАЛЬНУЮ дату сервера? - Локальная это какая? И откуда она? - т.е. ты там какие то цифры приводил с 2008г. - Нынче 2019 - локальная дата серверной машины, это 2019г....

 

P.S. вывод в РПТ поставь в цикле раз в 1с даты и времени. И смотри после какого скрипта изменение происходит... Ну это если ты не соврал, и изменение ПОСЛЕ прогрузки сервера происходит(см вопрос 1)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. судя по настройке игры, когда запускается сервер, ему присваивается дата из mission.sqm. А кот когда заходит первый игрок, т.е. начинается прогрузка сервера, то присваивается или локальная дата (которая установлена на компе) или 2012,8,2, которая установлена в server_monitor.

2. ну дата которая на компе стоит. то что я скинул, просто старый лог.

 

я прост не понимаю почему в одном и том же случае показывается разная дата (dayz_ForcefullmoonNights true/false), ведь если бы прогрузка system_monitor была бы позже инфистара, то и в случае когда стоит TRUE, дата бы все равно присваивалась 2008, т.е. из mission.sqm

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Peresvet
      нипанимайу. как сменить карту на сервере?
    • Автор: BorizzK
      Все вопросы на этот счет сюда
      Все решения, если есть, то же можно сюда
      Начало обсуждения тут
       
       
    • Автор: Anton81
      Игроки багоюзят с помощью велосипеда , подъезжают к стене на велосипеде , потом слезают с него около стены и оказываются на чужой базе.Как можно это пофиксить?
    • Автор: Anton81
      всем привет, установил виртуальный гараж, убрал у лав25 тепловизор с помощью скрипта и после того как ставишь его в виртуальный гараж, тепловизор обратно возвращяется(( может кто знает, как решить эту проблему?
    • Автор: ZigoFrend
      Простой скрипт гаража 
      главное что бы при сносе объекта которые выступает в роле гаража техника в гараже исчезала