Может кто объяснить или подсказать, как починить UDebug в клиентах 362+ протокола.
Зачем оно мне (возможно я тут не правильно понимаю): В скриптах интерфейса можно найти вызов функции `Debug()`, которая выводит по факту простую стрингу с какими-то параметрами, вот пример:
Начал я копать, что это такое и как его вывести. И набрёл я на окно `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);
}
А чё её восстанавливать то? Там весь функционал уже имеется, это же просто print, по сути. На вскидку тут хватит в районе UICommonAPI создать нечто вроде:
C#:
function _debug(coerce string line)
{
local DebugWnd DebugWnd;
DebugWnd = DebugWnd(GetScript("DebugWnd"));
DebugWnd.addList(DebugWnd.EUIDebugMsgType.EUDMT_SCRIPT, line);
}
А после просто заменить все стандартные debug-функции на эту. Ну и собсна всё, все места начнут массово срать в это окно строчками. Ну чёто мне подсказывает - бесконечная долбёжка дебаг-текстом в *.uc до добра не доведёт.