Показать сообщение отдельно
Старый 02.04.2010, 22:58   #1373
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

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, чтоб вам было проще в нем разобраться.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от: