Решил написать скрипт простенький (Для начала чтоб выводил количество собственных ЦП в чат).
Сам пакет выглядит так:
StatusUpdate - 18 EC 02 03 10 06 00 00 00 0A 00 00 00 1A 10 00 00 0C 00 00 00 EC 06 00 00 22 00 00 00 33 09 00 00 09 00 00 00 1A 10 00 00 0B 00 00 00 BB 06 00 00 21 00 00 00 33 09 00 00
Tип: 0x18 (StatusUpdate)
Pазмер: 57+2
Время прихода: 18:24:54:609
0002 d ObjectID: 268632812 (0x100302EC)
0006 d AttribCount: 6 (0x00000006)
[Начало повторяющегося блока 1/6]
000A d AttrID: max_HP ID:10 (0x000A)
000E d AttrValue: 4122 (0x0000101A)
[Конец повторяющегося блока 1/6]
[Начало повторяющегося блока 2/6]
0012 d AttrID: max_MP ID:12 (0x000C)
0016 d AttrValue: 1772 (0x000006EC)
[Конец повторяющегося блока 2/6]
[Начало повторяющегося блока 3/6]
001A d AttrID: max_CP ID:34 (0x0022)
001E d AttrValue: 2355 (0x00000933)
[Конец повторяющегося блока 3/6]
[Начало повторяющегося блока 4/6]
0022 d AttrID: cur_HP ID:9 (0x0009)
0026 d AttrValue: 4122 (0x0000101A)
[Конец повторяющегося блока 4/6]
[Начало повторяющегося блока 5/6]
002A d AttrID: cur_MP ID:11 (0x000B)
002E d AttrValue: 1723 (0x000006BB)
[Конец повторяющегося блока 5/6]
[Начало повторяющегося блока 6/6]
0032 d AttrID: cur_CP ID:33 (0x0021)
0036 d AttrValue: 2355 (0x00000933)
[Конец повторяющегося блока 6/6]
Код программы:
Код:
const
Name='Marilyn';
chat=19; //15,18,19
var
i,n:integer;
ValueCP:integer;
procedure SendMessage(Msg:String);
begin
buf:=#$4A;
WriteD(0);
WriteD(Chat);
WriteS(':');
buf:=buf+#$FF+#$FF+#$FF+#$FF;
WriteS(Msg);
SendToClientEx(Name);
end;
begin
if FromServer and (ConnectName=Name) and (pck[1]=#$18) then
begin
..... <= Тут нужна помощь знатоков, вопрос ниже.
end;
end.
То что помечено красным компилятор выдает такую ошибку (видимо на самом деле не критично):
Access violation at address 132A61E9 in module 'l2ph.exe'. Read of address 00000000.
Вопрос:
Как выписать из пакета 18 EC 02 03 10 06 00 00 00 0A 00 00 00 1A 10 00 00 0C 00 00 00 EC 06 00 00 22 00 00 00 33 09 00 00 09 00 00 00 1A 10 00 00 0B 00 00 00 BB 06 00 00 21 00 00 00
33 09 00 00
последние 4 байта, перевести в число???
Дополнение:
Какие типы переводов есть в l2phx, приведите примеры.
Зарание благодарен.