а попробуйте так -
delphi Код:
const
PLName = 'НикНейм';
Name = 'НикНейм';
Var
DismissTimer, AgreeTimer : TTimer;
procedure Init; //Вызывается при включении скрипта
begin
AgreeTimer :=TTimer.Create(nil);
AgreeTimer.OnTimer :=@AgreeJoinParty;
AgreeTimer.enabled :=false;
AgreeTimer.interval :=2000;
DismissTimer :=TTimer.Create(nil);
DismissTimer.OnTimer :=@DismissJoinParty;
DismissTimer.enabled :=false;
DismissTimer.interval :=10000;
end;
procedure Free; //Вызывается при выключении скрипта
begin
AgreeTimer.Free;
DismissTimer.Free;
end;
procedure AgreeJoinParty(Sender: TObject);
begin
AgreeTimer.enabled :=false;
buf:=hstr('2A 01 00 00 00'); //Создаем пакет "принять пати"
SendToServerEx(Name); //Отправляем его на сервер
end;
procedure DismissJoinParty(Sender: TObject);
begin
DismissTimer.enabled :=false;
buf:=hstr('2A 00 00 00 00'); //Создаем пакет "Отказать в пати"
SendToServerEx(Name); //Отправляем его на сервер
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if (ConnectName=Name) and FromServer and (pck[1]=#$39) then begin //от сервера получен пакет $39 AskJoinParty
if ReadS(2) = PLName then
AgreeTimer.enabled :=true
else
DismissTimer.enabled :=true;
pck :=''; //убиваем этот пакет
end;
end.