UDebug - 362+ клиенты

Elrik

Величайший
Участник
Победитель в номинации 2021
Участник Новогоднего Фонда 2021
Сообщения
227
Розыгрыши
0
Решения
2
Репутация
13
Реакции
67
Баллы
1 593
Может кто объяснить или подсказать, как починить UDebug в клиентах 362+ протокола.
Зачем оно мне (возможно я тут не правильно понимаю): В скриптах интерфейса можно найти вызов функции `Debug()`, которая выводит по факту простую стрингу с какими-то параметрами, вот пример:
Код:
Debug("api Call : C_EX_ACQUIRE_POTENTIAL_SKILL" @ string(packet.nAP));
Начал я копать, что это такое и как его вывести. И набрёл я на окно `DebugWnd`.
Дальше я нашёл EUDMT_SCRIPT, // UC Script占쏙옙 debug(str) 占쌉쇽옙 호占쏙옙 占쌨쏙옙占쏙옙 , что как б говорит вроде, что это дебаг
Ну и соответственно метод parseParamMsg, который парсит это всё. Но проблема в том что, этот метод вызывается ивентом, который никогда не приходит...

Код:
function OnEvent(int Event_ID, string param)
{
    if (Event_ID == EV_UIDebugMsg)
    {
        //debug("param" @ nDebugMsgType @ "=========="@ param);
        parseParamMsg(param);
    }
Собственно, помогите.
L2_q6mmxulN0q.png
 

Эта функция вырезана в обычном клиенте. Скорей всего доступна только в дев билде.
 
Эта функция вырезана в обычном клиенте. Скорей всего доступна только в дев билде.
Возможно ли как-то её восстановить без екстендеров средствами только редактирования .u файлов?
 
Возможно ли как-то её восстановить без екстендеров средствами только редактирования .u файлов?
Ну моя идея была просто дописать свою функцию, и заменой в файлах поменять `debug` на `myNewTopDebug`
 
Использовать оригинальную без экста не выйдет. Только масс замена на свою прокатит.
 
Возможно ли как-то её восстановить без екстендеров средствами только редактирования .u файлов?
А чё её восстанавливать то? Там весь функционал уже имеется, это же просто print, по сути. На вскидку тут хватит в районе UICommonAPI создать нечто вроде:
C#:
function _debug(coerce string line)
{
    local DebugWnd DebugWnd;
    DebugWnd = DebugWnd(GetScript("DebugWnd"));
   
    DebugWnd.addList(DebugWnd.EUIDebugMsgType.EUDMT_SCRIPT, line);   
}

А после просто заменить все стандартные debug-функции на эту. Ну и собсна всё, все места начнут массово срать в это окно строчками. Ну чёто мне подсказывает - бесконечная долбёжка дебаг-текстом в *.uc до добра не доведёт.
 
Назад
Сверху Снизу