Просмотр полной версии : Помогите, что не так...
Задача такая:
1. пакету 01 к серверу нужно в конце дописать 4-е байта (01 00 00 00)
2. пакету 2F к серверу нужно поменять 6-й байт на 00
3. заблокировать пакет 81 к серверу.
Знающие люди подскажите, что нетак, л2пх выдает крита с моим скриптом?
const
ebalyavsehvrot='01 00 00 00';
begin
  if FromClient and (pck[1]=HStr('01')) and (pck[26]<HStr('01')) then begin
    buf:=pck + hstr(ebalyavsehvrot);
    SendToServer;
    pck:='';
  end;
  if FromClient and (pck[1]=HStr('2F')) and (pck[6]>HStr('01')) then begin
    pck[6]:=HStr('00');
    buf:=pck;
    SendToServer;
    pck:='';
  end;
  if FromClient and (pck=HStr('81')) then begin
    buf:=HStr('3F');
    SendToServer;
    pck:='';
  end;
end.
на каком месте ошибка? и что делает скрипт? (смысл действий) и если поменять именно на 00 то не (pck[6]>HStr('01')) а (pck[6]<>HStr('01')) или NOT(pck[6]=HStr('00'))
Задача такая:
1. пакету 01 к серверу нужно в конце дописать 4-е байта (01 00 00 00)
2. пакету 2F к серверу нужно поменять 6-й байт на 00
3. заблокировать пакет 81 к серверу.
begin
  if FromClient and (pck[1]=#$01) then begin
    buf:=pck;
    WriteD(01);
    SendToServer;
    pck:='';
    exit;
  end;
  if FromClient and (pck[1]=#$2F) then begin
    buf:=pck;
    WriteC(00,6);
    SendToServer;
    pck:='';
    exit;
  end;
  if FromClient and (pck[1]=#$81) then begin
    pck:='';
    exit;
  end;
end.
ps: скрипт ставь самым последним в списке
Может не последним ставить, а первым запускать? Все равно список сортируется поименно, поставить имя zzz будет последним.По-моему важен порядок проставления галок на запуск ... хотя могу и ошибаться.
begin
   if FromClient then Case ord(pck[1]) of
      $01: begin
              buf:=pck;
              WriteD(1);
              pck:=buf;
           end;
      $2F: begin
              buf:=pck;
              WriteC(0,6);
              pck:=buf;
           end;
      $81: pck:='';          
   end;
end.
а так слабо?)
ChiterEPT
23.05.2008, 21:31
ord(pck[1])
Мкс, а что за ord можно подробнее пожалуйста. И в чем  выигрывает этот вариант у варианта 
Case pck[1] of
#$01:begin 
        end;
Добавлено через 1 минуту
WriteC(0,6);
А вот за это спасибо :) не знал что так можно :)
Попогите плиз изменить предпоследний байт пакета 
40 00 00 00 3D 00 00 00 10 10 38 A2 B2 05 
на байт B3
пробовал
 buf:=pck;
    WriteC(B3,13);
    SendToServer;
    pck:='';
    exit;
он ругается чёт, типа ему нужна скобко около B3
APXAHGEJI
29.05.2008, 22:29
Попробуй 
pck[13]=#$B3;
Причем вобщемто дальнейшее присвоение buf:= pck; и отправка не обязательны, так как он пройдет по скрипту и далее отправится не сервер.
он ругается чёт, типа ему нужна скобко около B3нужно ставить число в десятичной системе.
нужно ставить число в десятичной системе.
Или дополнительно указать систему счисления. Для Hex - #$B3 Decimal - 179
vBulletin® v3.6.11, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot