Просмотр полной версии : Помогите, что не так...
Задача такая:
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-2024, Jelsoft Enterprises Ltd. Перевод: zCarot