hash, проблема в том что в пакетах которые вы используете меняется ObjectID у нпц. А у вас он всегда один и тот же, такой скрипт будет работать только на одном нпц (и то возможна ситуация что после рестарта сервера ObjectID сменится).
Для вашего случая надо такой скрипт.
Код:
begin
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('63 00 68 00 61 00 74 00')) then begin
pck[32] := #$67;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('6C 00 6F 00 74 00 6F 00')) then begin
pck[32] := #$76;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('73 00 75 00 70 00 70 00')) then begin
pck[32] := #$83;
pck[46] := #$77;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('71 00 75 00 65 00 73 00')) then begin
pck[32] := #$81;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('62 00 75 00 79 00 20 00')) then begin
pck[32] := #$66;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]= HStr('73 00 65 00 6C 00 6C 00')) then begin
pck[32] := #$83;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('74 00 65 00 72 00 72 00')) then begin
pck[32] := #$84;
pck[50] := #$83;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('6F 00 6C 00 79 00 6D 00')) then begin
pck[32] := #$79;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('64 00 65 00 70 00 6F 00')) then begin
pck[32] := #$68;
pck[46] := #$80;
end;
if (FromClient) and (pck[30]+pck[31]+pck[32]+pck[33]+pck[34]+pck[35]+pck[36]+pck[37]+pck[38]=HStr('77 00 69 00 74 00 68 00')) then begin
pck[32] := #$87;
pck[48] := #$80;
end;
end.
Проблема с диалогами довольно часто встречается и скрипт написан давненько, но по сей день работает. Я только переделал его под ваш вариант сравнения пакетов pck[1]+pck[2]=#$1F#$3A, чтоб вам было проще в нем разобраться.