На работе кончился инет, поэтому не договорил, как лучше сделать.
Попробуй так:
delphi Код:
{
Социальное действие YES - включить
Социальное действие NO - выключить
}
const
packet1='CF 66 33 31 57 89 A1 3E 40 A0 86 01 00';
packet2='FF 35 57 A0 C1 7B CE 1B 40 A0 86 01 00';
var
timer1 : TTimer;
x : integer;
procedure UseBuff(buffID:string; id:integer);
begin
buf:=HStr(buffID);
SendToServerEX(ConnectNameByID(id)); //переходим от ID к Name
end;
procedure OnTimer;
begin
case x of
0: begin
usebuff(packet1,1);
inc(x);
end;
1: begin
usebuff(packet2,0);
inc(x);
end;
2: begin
usebuff(packet1,1);
inc(x);
// timer1.interval:=300000; //5 минут
//откл.
timer1.enabled:=false;
end;
end;
end;
procedure Init;
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=false;
timer1.interval:=200; //200 миллисекунд
x:=0;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.free;
end;
begin
if pck='' then exit;
if FromClient then begin
case pck[1] of
#$1B: begin
case ReadD(2) of
//социальное действие Yes для начала
$06: begin
//не передаем серверу
pck:='';
x:=0;
//вкл.
timer1.enabled:=true;
end;
//социальное действие No для окончания
$05: begin
//не передаем серверу
pck:='';
//откл.
timer1.enabled:=false;
end;
end;
end;
end;
end;
end.
Добавлено через 1 минуту
Цитата:
Сообщение от Byrger
Почему не хочет отправлять 3 пакета с промежутком 200мс между каждым...и задержкой в 5минут в конце цикла?
|
Потому что таймер выключен и нигде не включается.