Код:
const
Name1='AntBuf';
var
mana1,mana2,mana3,info1,info2,info3,X1,y1,z1: integer;
Paname,mana: String;
timer:TTimer;
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=1000; //время задержки между отправкой пакетов.
end;
procedure Free;
begin
timer.free;
end;
procedure OnTimer;
begin
case TimerStep of
//////////////Таймер пока не используетсья в тест скрипте
1:
begin
timer.interval:=1000;
buf:=Hstr('');
SendToServerEx(name1);
Inc(TimerStep);
end;
2:
begin
timer.interval:=1000;
buf:=Hstr('');
SendToServerEx(name1);
Inc(TimerStep);
end;
3:
begin
timer.interval:=2000;
buf := HStr('');
SendToServerEx(name1);
Inc(TimerStep);
end;
end;
end;
begin
/////////////////////////////////////////Блок проверки количество сопартийцев PartySmallWindowAll
if FromServer and (pck[1] = #$4E) and (ConnectName=Name1) then begin //Пакет о информации о пати
mana1:= ReadD(14); //ОверОК
mana2:= ReadD(88);
mana3:= ReadD(166);
if (ReadD(10)=3) then //Сколко человек в пати
buf:=Hstr('49 31 04 4B 04 3B 04 3E 04 20 00 32 00 2D 00 30 04 20 00 47 04 35 04 3B 04 3E 04 32 04 35 04 30 04 20 00 32 04 20 00 3F 04 30 04 42 04 38 04 20 00 20 00 2C 00 20 00 42 04 35 04 3F 04 35 04 40 04 4C 04 20 00 33 00 2D 00 38 04 20 00 3D 00 29 00 00 00 03 00 00 00');
SendToServer;
end;
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana1 then //Пакет от номера 1 СверяемПакет чар инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00');
SendToServer;
end;
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana2 then //Пакет от номера 2 СверяемПакет чар инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00');
SendToServer;
end;
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana3 then //Пакет от номера 3 СверяемПакет чар инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00');
SendToServer;
end;
end.
Странно как то пакеты отсылаються ..Вот в таком порядке
Пакет от номера 1 -- сразу 3-и шт
Пакет от номера 2 -- сразу 2-е шт
Пакет от номера 3 -- 1-а шт
Подскажите в чем косяк?
Странно я если добовляю сюда условие else , то пакеты идут по порядку .. 1.2.3 Тойсть как и должны идти .Но хочеться узнать саму суть .
Код:
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana1 then //Пакет от номера 1 СверяемПакет чат инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')
else
buf:=hstr('');
SendToServer;
end;
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana2 then //Пакет от номера 2 СверяемПакет чат инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00')
else
buf:=hstr('');
SendToServer;
end;
if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then begin
if ReadD(18) = mana3 then //Пакет от номера 3 СверяемПакет чат инфо с ObjectID от пакета PartySmallWindowAll
buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00')
else
buf:=hstr('');
SendToServer;
end;