ATAMAH

Странный хаклог от Infistar

Вопрос

Всем привет!

Может у кого-то было такие хаклоги? Что это означает?

2016-09-03 04:58:19 infiSTAR HackLog | НИК_ИГРОКА (76561198198142678) | FNCbroken: playableUnits - []   |Instance: 24 - ArmA2OA163131129 - 28112014IAHAT339A

Просто это пишет на тех даже людей что и не подумал-бы

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


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

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

Всем привет!

Может у кого-то было такие хаклоги? Что это означает?

2016-09-03 04:58:19 infiSTAR HackLog | НИК_ИГРОКА (76561198198142678) | FNCbroken: playableUnits - []   |Instance: 24 - ArmA2OA163131129 - 28112014IAHAT339A

Просто это пишет на тех даже людей что и не подумал-бы

Поломатая playableUnits

Функция которая должна возвращать играющих игроков на сервере(включая НПЦ).

В целом - плевать.

Ну не вернет она клиенту игроков... Это скорее минус для читов чем плюс.

 

В инфи у админа, если он заходит первым на сервер, бывает проскакивает - not in playableUnits - для игрока(ов) которые зашли позже.

Это от отсутствия синхронизации.

И у этого игрока тоже самое могло быть.

Возвращает не всех игроков, а при сравнении с результатом инфи - естественно - различие.

Вот и считает, что поломанная.

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

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


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


Поломатая playableUnits

Функция которая должна возвращать играющих игроков на сервере(включая НПЦ).

В целом - плевать.

Ну не вернет она клиенту игроков... Это скорее минус для читов чем плюс.

 

В инфи у админа, если он заходит первым на сервер, бывает проскакивает - not in playableUnits - для игрока(ов) которые зашли позже.

Это от отсутствия синхронизации.

И у этого игрока тоже самое могло быть.

Возвращает не всех игроков, а при сравнении с результатом инфи - естественно - различие.

Вот и считает, что поломанная.

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

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


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

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

Да может.

У них нет ИД.(скорее всего). Скрипт который должен был выдать его - не выдал. Их нет в массиве и => поиск их среди игроков при получении стартовых параметров безуспешен.

*Вернее - скрипт то выдал, а UDP не гарантировал доставку)) Лагануло и не пришло - не получил клиент.

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

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


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

Да может.

У них нет ИД.(скорее всего). Скрипт который должен был выдать его - не выдал. Их нет в массиве и => поиск их среди игроков при получении стартовых параметров безуспешен.

*Вернее - скрипт то выдал, а UDP не гарантировал доставку)) Лагануло и не пришло - не получил клиент.

Спасибо, а это реально как-то пофиксить?

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


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

Спасибо, а это реально как-то пофиксить?

Ну так то, это редкость...

Мб лагает у тебя сильно. Или у игроков пинг зашкаливает.

 

А за фиксами - к богемии)

 

Скриптами... ну мб и можно повторно где то послать данные...

Это от скриптов зависит. И валюты и т.п.

 

А вообще - глянь РПТ свой, там обычно пишет - невозможно синхронизировать игрока такого то.

Можно делать кик игрока в лобби, если отсутствует синхронизация.

Это и тебя и игрока избавит от проблем с последующими вопросами - где мой лут, почему меня откатило и т.п.

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


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

Ну так то, это редкость...

Мб лагает у тебя сильно. Или у игроков пинг зашкаливает.

 

А за фиксами - к богемии)

 

Скриптами... ну мб и можно повторно где то послать данные...

Это от скриптов зависит. И валюты и т.п.

 

А вообще - глянь РПТ свой, там обычно пишет - невозможно синхронизировать игрока такого то.

Можно делать кик игрока в лобби, если отсутствует синхронизация.

Это и тебя и игрока избавит от проблем с последующими вопросами - где мой лут, почему меня откатило и т.п.

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

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


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

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

Тогда пусть поумирают чутка) те у кого проблемы)

1 раза будет достаточно.

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


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

По поводу данной проблемы (когда игроку не присваивается CharacterID), вот небольшая заплатка:

1. В server_playerSync.sqf, кусок кода, почти что в самом начале файла (по дефолту 42-44 строки):
if (_distance < 2000) exitWith { 
    diag_log format["ERROR: server_playerSync: Cannot Sync Player %1 [%2]. Position in debug! %3",_name,_characterID,_charPos];
};
 
Заменить на:
if (_characterID == "0" or (_distance < 2000)) exitWith {
    if (_distance < 2000) then {
        diag_log format["INFO: server_playerSync: Cannot Sync Player %1 [%2]. Position in debug! %3 (May be changing clothes)",_name,_characterID,_charPos];
    } else {
        diag_log ("ERROR: Cannot Sync Character " + _name + " as no characterID");
        PVCDZ_set_CID = _character;
        owner _character publicVariableClient "PVCDZ_set_CID";
    };
};
 
2. В publicEH.sqf, где нибудь внутри:
if (!isDedicated) then {
    где-то тут;
};
 
Добавить:
    "PVCDZ_set_CID" addPublicVariableEventHandler {
        if (player == _this) then {
            player setVariable ["characterID",dayz_characterID,true];
        };
        dayz_unsaved = true;
    };
Что это сделает? Просто игроку присвоится его CharacterID и произойдёт пересинхронизация. С фильтрами Batleye шаманить (добавлять переменную PVCDZ_set_CID в publicvariable.txt) не надо, тут запрос только от сервера к проблемному клиенту. + Исчезнут вопросы к админу, мол, почему я столько играл и нифига не сохранилось.
Изменено пользователем Alexandr116ru (история изменений)

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


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

 

По поводу данной проблемы (когда игроку не присваивается CharacterID), вот небольшая заплатка:

1. В server_playerSync.sqf, кусок кода, почти что в самом начале файла (по дефолту 42-44 строки):
if (_distance < 2000) exitWith { 
    diag_log format["ERROR: server_playerSync: Cannot Sync Player %1 [%2]. Position in debug! %3",_name,_characterID,_charPos];
};
 
Заменить на:
if (_characterID == "0" or (_distance < 2000)) exitWith {
    if (_distance < 2000) then {
        diag_log format["INFO: server_playerSync: Cannot Sync Player %1 [%2]. Position in debug! %3 (May be changing clothes)",_name,_characterID,_charPos];
    } else {
        diag_log ("ERROR: Cannot Sync Character " + _name + " as no characterID");
        PVCDZ_set_CID = _character;
        owner _character publicVariableClient "PVCDZ_set_CID";
    };
};
 
2. В publicEH.sqf, где нибудь внутри:
if (!isDedicated) then {
    где-то тут;
};
 
Добавить:
    "PVCDZ_set_CID" addPublicVariableEventHandler {
        if (player == _this) then {
            player setVariable ["characterID",dayz_characterID,true];
        };
        dayz_unsaved = true;
    };
Что это сделает? Просто игроку присвоится его CharacterID и произойдёт пересинхронизация. С фильтрами Batleye шаманить (добавлять переменную PVCDZ_set_CID в publicvariable.txt) не надо, тут запрос только от сервера к проблемному клиенту. + Исчезнут вопросы к админу, мол, почему я столько играл и нифига не сохранилось.

ЧТО ТЫ ДЕЛАЕШЬ?

 

player setVariable ["characterID",dayz_characterID,true];

 

3 параметр - true - говорит о том, что это публичная переменная, доступная как серверу, так и всем игрокам, - броадкаст.

Зачем же ради нее создавать PVEH???

 

после этого

 

else {

        diag_log ("ERROR: Cannot Sync Character " + _name + " as no characterID");

 

достаточно написать

player setVariable ["characterID",_character,true];

 

*Это если ты правильный ИД получил в переменную _character.

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


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

Ну попробуй на сервере, раз считаешь достаточным. У меня почему то не вышло, по логу всё хреново было, потому костыли такие. Пробовал непосредственно в playerSync. итог = any. А по этому способу, всё нормуль.

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


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

Ну попробуй на сервере, раз считаешь достаточным. У меня почему то не вышло, по логу всё хреново было, потому костыли такие. Пробовал непосредственно в playerSync. итог = any. А по этому способу, всё нормуль.

А чего тут пробовать то?

 

Ну возьми 2 скрипта -

1. Серверный

while {true} do

{

{

if (_x isPlayer) then

{

_x setVariable ["CHAT_TEST", "TEXT", true];

};

} forEach playableUnits;

uiSleep 10;

};

 

2. Запусти на клиенте

while {true} do

{

if (player getVariable ["CHAT_TEST", ""] != "") then

{

systemChat "переменная CHAT_TEST содержит текст";

setVariable ["CHAT_TEST", "", true];

};

uiSleep 0.5;

};

 

Серверный каждые 10 сек будет класть в переменную игрока текст.

А клиентский выводить в чат сообщение, и удалять текст из переменной.

 

Тоже самое можешь в обратном порядке проделать.

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: RedLink
      Всем Привет.
      Представляю вам систему логирования действий игроков и т.д. по принципу InfiSTAR.
      Для установки вам понадобятся кастомный compiles.sqf (тем кто не знает как это сделать, -> поиск по форуму).
       
      1. Открываем в серверной части файл dayz_server\init\server_functions.sqf и в самом низу вставляем:
      "SK_log" addPublicVariableEventHandler {(_this select 1) call fnc_Log;}; 2. Теперь открываем в папке с миссией файл compiles.sqf и ищем что-то в этом плане:
       
      if (!isDedicated) then { блаблабла }; и после него вставляем
      fnc_log = { private ["_fileName","_message","_dll","_dll2","_display"]; _fileName = toLower (_this select 0); _message = _this select 1; _display = if (count _this > 2) then {_this select 2} else {false}; if (!isDedicated) then { SK_Log = [_fileName,if (typeName _message == "ARRAY") then {_message} else {toArray _message},_display]; publicVariableServer "SK_Log"; } else { _message = if (typeName _message == "ARRAY") then {toString _message} else {_message}; if (_display) then {diag_log format ["[%1] %2",toUpper (_fileName),_message];}; _dll2 = format["!InfiSTAR_Logs~%1~%2",_fileName,_message]; "LogDLL" callExtension _dll2; }; }; где "!InfiSTAR_Logs" - ваша папка, куда вы хотите складировать логи.
       
      3. Открываем файл publicVariable.txt в фильтрах Battleye и в первой строке "5 !=блаблабла" в конце добавляем "!=SK_Log" (пример ниже)
      5 !"donn_heli_monitor" !"fnc_log" !=fnc_log !"redHunter" !=redHunter !"cad_pvar_s" !"PVDZE_veh_Update" !="PVDZE_veh_Update" !="PVDZE_adminevents" !="PVDZ_plr_Death" !"PVDZ_plr_Death" !="PVDZE_atp" !"PVDZE_atp" !"PVDZ_plr_LoginRecord" !="PVDZ_plr_LoginRecord" !"PVDZE_log_lockUnlock" !=PVDZE_log_lockUnlock !"redHunter" !=redHunter !"redDiagLog" !=redDiagLog !="PVDZE_atp" !=(remExField|remExFP) !=(PVCDZ_obj_GutBody|drn_AskServerDynamicWeatherEventArgs|BIS_effects_gepv|achievement|dayzFlies) !=PVDZ_(drg_(RaDrag|RaLW|RLact)|getTickTime|hlt_Bleed|obj_(Delete|Publish|RoadFlare|Destroy|Fire)|veh_Save|veh_SF) !=PVDZ_(plr_(Death|Login[12]|LoginRecord|Save|SwitchMove)|Server(_Simulation|StoreVar)|sec_atp) !=PVDZ_(playerMedicalSync|object_replace|groupInvite) !=PVDZ_(send(|Unconscious)) !=PVDZ_Server_(buildLock|LogIt|UpdateGroup) !=PVDZ_Server_process(Code|SetAccessCode) !=PVDZ_objgather_(Delete|Knockdown) !=PVDZE_(obj_(Delete|Publish|Swap|Trade)|fullobj_Publish|maintainArea|veh_(Lock|Publish2|Upgrade)|handleSafeGear|plr_(DeathB|FriendRQ|TradeMenu)) !=PVAH_AdminReq !=PVAH_WriteLogReq !=PVAHR_0_[a-zA-Z0-9]{20,40} !"PVAHR_" !="PVAH_AdminReq" !="PVAH_WriteLogReq" !=PVAHR_0_[a-zA-Z0-9]{20,40} !="PVDZE_(query|store|spawn)Vehicle" !="PVDZE_PingSend" !="PVDZE_veh_Init" !"SK_Log" !=SK_Log  
      4. А теперь самое главное.
      Пример вывода лога в отдельный файл. Возьмем для примера файл смерти игрока от тех или иных причин.
      Открываем в серверной части файл server_playerDied.sqf и ищем там строку
       
      diag_log format["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos]; после нее вставляем
      ["DEATHS",format ["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos],true] call fnc_log; Таким образом в указанной в папке в п. 2 создатся файл deaths_блаблабла.txt, в котором будет отображен лог о смерти игрока по тем или иным причинам.
       
      Формат записи лога выглядит следующим образом:
      _message = format ["Что хочу то и пишу и хочу видеть значение %1",_значение%1]; ["ИМЯ_ФАЙЛА_ЛОГА",_message,true] call fnc_log; или напрямую
      ["Имя_файла_лога",format ["тут будет то что в значении %1",_значение%1],true] call fnc_log;  
      Представляю варианты 4-х DLL, которые работают для этой системы (качаете любую из них и переименовываете в LogDLL.dll). Эту DLL необходимо закинуть в папку с игрой (например в C:\Games\Arma 2 Operation Arrowhead).
      LogDLL.dll создает в папке с логами отдельную папку по названию лога.
      LogDLL_-_dd-MM-yyyy и иные ее интерпретации - создает в папке с логами отдельную папку с датой, в которой хранятся все логи за эту дату.
       
      Если есть вопросы, задавайте.
       
      Оригинал данного скрипта и ссылки на разработчика ниже.
      Копирайта

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: RedLink
       
      Всем привет.
      Возник один вопрос, который пока не могу догнать как решить.
      Суть следующая. В последней версии Инфистара есть код, который выводит логи в отдельную папку
      Путем нехитрых манипуляций добавляем ему вывод лог в отдельную папку с датой (ибо надоел тот кошмар, что там за 5 дней скапливается)
      А вот теперь сам вопрос.
      Если переменная dayz_ForcefullmoonNights = true;
      то создается папка с датой, которая указана в server_monitor.sqf - т.е. 2012,8,2 - что в принципе логично.
      А вот если dayz_ForcefullmoonNights = false; - то создается папка с датой, которая указана в mission.sqf (в моем случае это 2008,10,1. Хотя по логике должна присваиваться реальная дата, которая берется из того-же server_monitor при проверке на dayz_ForcefullmoonNights, т.к. в логе сервера мы видим, что TIME SYNC текущая дата сервера.
      Почему так происходит и как это можно поправить?
    • Автор: DOK43
      где найти перевод админки INFISTAR v1442 ? или уже готовый файл, помогите
    • Автор: Onechot255
      2 дня пытаюсь пофиксить, без понятия.
      rpt:
      log:
      extdb:
       
      Причем в конфиге Use MPInterrupt check _UMP = false;
      Другие игроки нормально заходят, сервер на локалке
    • Автор: Gromillla
      Скиньте пожалуйста код удаления под 1.0.6.2 для Infistara, а то у старого удалённая техника и постройки восстанавливаются после рестарта.