Попробуй так
Цитата:
Сообщение от jestb
begin
if FromClient and (ConnectName='char1') //посылаю с 1-го окна пакет "SocialActionYes"
and (pck=HStr('1B 06 00 00 00')) then begin
buf:=HStr('2A 01 00 00 00'); //п.№1 - принять пати
SendToServerEx('char2');
Delay(1000);
buf:=HStr('2F 13 01 00 00 00 00 00 00 00 '); //п.№2 - Fury
SendToServerEx('char2');
Delay(1000);
buf:=HStr('2F 12 01 00 00 00 00 00 00 00 '); //п.№3 - Fire
SendToServerEx('char2');
Delay(1000);
buf:=HStr('2F 0F 01 00 00 00 00 00 00 00 '); //п.№4 - Warrior
SendToServerEx('char2');
Delay(1000);
buf:=HStr('2B'); //п.№5 - выйти с пати
Delay(1000);
buf:=HStr('04 B2 F9 20 48 24 CB 00 00 45 2B FF FF A6 F3 FF FF 00'); //п.№7 - следовать за мной
SendToServerEx('char2'); //вместо 1-го окна "yes", 2-е окно делает пункты №1-№7.
pck:='';
end;
end.
|
Единственный минус в том, что когда идет задержка 1 сек то в это время никакие пакеты не обрабатываются.
Код:
const MainChar = 'Сюда имя основного перса';
BD = 'Сюда ник БД соответственно'
var Timer1:TTimer;
actions:array[1..6] of string;
nm:integer;
procedure Init;
begin
nm:=1;
Timer1:=TTimer.Create(nil);
Timer1.OnTimer:=@OnTimer1;
Timer1.enabled:=false;
Timer1.interval:=1000; //задержка 1 сек;
actions[1]:='2A 01 00 00 00';
actions[2]:='2F 13 01 00 00 00 00 00 00 00 ';
actions[3]:='2F 12 01 00 00 00 00 00 00 00 ';
actions[4]:='2F 0F 01 00 00 00 00 00 00 00 ';
actions[5]:='2B'
actions[6]:='04 B2 F9 20 48 24 CB 00 00 45 2B FF FF A6 F3 FF FF 00';
end;
procedure Timer1.ontimer(Sender:Tobject);
begin if nm>6 then Timer1.Enabled:=false
else begin buff:=Hstr(actions[nm]);
SendToServerEx(BD);
inc(nm);
end;
end;
procedure Free;
begin
Timer1.Free;
end;
begin
if Pck='' then exit;
if FromClient and (ConnectName=MainChar) //посылаю с 1-го окна пакет "SocialActionYes"
and (pck=HStr('1B 06 00 00 00')) then begin
pck:='';
buf:=HStr(actions[nm]);
SendToServerEx(BD);
Timer1.Enabled:=true;
end;
end.
попробуй так.