Разобрался... гугл рулит =)
вот итог:
Код
use uo;
use os;
use util;
use unicode;
program msg_log()
Print( "Log's message system." );
return 1;
endprogram
exported function LogSystem(character, byref packet)
var speech := "";
var speechstart := 12;
if (packet.GetInt8(3) == 0xC0)
var triggers := packet.GetInt16(12)/16;
var bytes := CInt(triggers*1.5 + 2);
speechstart := CInt(speechstart + bytes);
var speechlen := packet.GetInt16(1) - 1 - speechstart;
speech := CStr(packet.GetString(speechstart, speechlen));
else
var speechlen := (packet.GetInt16(1) - 13)/2;
speech := packet.GetUnicodeString(speechstart, speechlen);
endif
syslog("["+character.name+"] [X-"+character.x+", Y-"+character.y+"] say ["+speech+"]");
endfunction
В логи можете писать как вам нравиться...
Вот пример как тут сохраняет:
Код
[08/29 23:43:33] [pkg/foundations/msg_log/msg_log.ecl]: [Gumanoid] [X5445, Y1152] say [{ 1072, 1072, 1072, 1072 }]
[08/29 23:43:42] [pkg/foundations/msg_log/msg_log.ecl]: [Gumanoid] [X5445, Y1152] say [{ 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081 }]
[08/29 23:43:48] [pkg/foundations/msg_log/msg_log.ecl]: [Gumanoid] [X5445, Y1152] say [{ 1056, 1072, 1073, 1086, 1090, 1072, 1077, 1090, 33 }]