Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
ATAMAH

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

Всем привет!

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

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

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

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Всем привет!

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

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

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

Поломатая playableUnits

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

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

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

 

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

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

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

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

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

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites





  • 0

Поломатая playableUnits

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

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

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

 

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Да может.

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

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

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Да может.

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

 

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

 

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

 

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

 

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

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

 

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

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

Share this post


Link to post
Share on other sites
  • 0

По поводу данной проблемы (когда игроку не присваивается 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) не надо, тут запрос только от сервера к проблемному клиенту. + Исчезнут вопросы к админу, мол, почему я столько играл и нифига не сохранилось.
Edited by Alexandr116ru (see edit history)

Share this post


Link to post
Share on other sites
  • 0

 

По поводу данной проблемы (когда игроку не присваивается 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.

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

Ну попробуй на сервере, раз считаешь достаточным. У меня почему то не вышло, по логу всё хреново было, потому костыли такие. Пробовал непосредственно в 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 сек будет класть в переменную игрока текст.

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

 

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

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

  • Similar Content

    • By 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 и иные ее интерпретации - создает в папке с логами отдельную папку с датой, в которой хранятся все логи за эту дату.
       
      Если есть вопросы, задавайте.
       
      Оригинал данного скрипта и ссылки на разработчика ниже.
      Копирайта

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By 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 текущая дата сервера.
      Почему так происходит и как это можно поправить?
    • By DOK43
      где найти перевод админки INFISTAR v1442 ? или уже готовый файл, помогите
    • By Onechot255
      2 дня пытаюсь пофиксить, без понятия.
      rpt:
      log:
      extdb:
       
      Причем в конфиге Use MPInterrupt check _UMP = false;
      Другие игроки нормально заходят, сервер на локалке
    • By Gromillla
      Скиньте пожалуйста код удаления под 1.0.6.2 для Infistara, а то у старого удалённая техника и постройки восстанавливаются после рестарта.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.