В том то и дело что мне не нужны готовые скрипты, я хочу сам разобратся. Вот я полный нуб обьясни мне где в этом скрипте строчка которая отвчеает за то чтоб через каждые 2 минуты танцевал?!
Код:
//Скрипт на БД чтобы танцевал каждые 2 минуты и бегал за командиром
const //Dance
d1='2F 11 01 00 00 00 00 00 00 00'; // Dance of Mystic
d2='2F 15 01 00 00 00 00 00 00 00'; // Dance of Light
d4='2F 10 01 00 00 00 00 00 00 00'; // Inspirations
d3='2F 12 01 00 00 00 00 00 00 00'; // Dance of Fire
d5=''; // Dance of Concentration
var
IDPartyMember, IDAssistTarget: String; //ИД командира и ИД его таргета и Собственный ИД
CoordBDX, CoordBDY, CoordBDZ :String; //координаты бота
NameBD, NameKomandos : String; // Имена
x: integer;
timerBD: TTimer;
timerBD1: TTimer;
procedure OnTimerBD(Sender: TObject);
begin
Case x of
1: begin
buf:=hstr(d1);
SendToServerEx(NameBD);
x:=x+1;
end;
2: begin
buf:=hstr(d2);
SendToServerEx(NameBD);
x:=x+1;
end;
3: begin
bRun;
x:=0;
timerBD.enabled:=false;
end;
end;
end;
procedure OnTimerBD1(Sender: TObject);
begin
timerBD.enabled:=true;
x:=1;
end;
procedure bRun;
begin
if (CoordBDX <> '') and (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr('04') + IDPartyMember + CoordBDX + CoordBDY + CoordBDZ + hstr('00');
SendToServerEX(NameBD);
//бежим за командиром эмулируя повторный щелчек мыши по таргету
buf:=hstr('04') + IDPartyMember + CoordBDX + CoordBDY + CoordBDZ + hstr('00');
SendToServerEX(NameBD);
end;
end;
procedure Init; //Вызывается при включении скрипта
begin
NameBD:='НИК БД;
NameKomandos:='НИК КОМАНДИРА';
timerBD:=TTimer.Create(nil);
timerBD.OnTimer:=@OnTimerBD;
timerBD.enabled:=false;
timerBD.interval:=2000;
x:=0;
timerBD1:=TTimer.Create(nil);
timerBD1.OnTimer:=@OnTimerBD1;
timerBD1.enabled:=false;
timerBD1.interval:=120000;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timerBD.Free;
timerBD1.Free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit;
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and (pck[1]=#$a7) then
begin
//запоминаем ИД командира
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];
end;
//если принят пакет от клиента с кординатами бд то
if FromClient and (ConnectName=NameBD) and (pck[1]=#$48) then
begin
//запоминаем координаты
CoordBDX:= pck[6] + pck[7] + pck[8] + pck[9];
CoordBDY:= pck[10] + pck[11] + pck[12] + pck[13];
CoordBDZ:= pck[14] + pck[15] + pck[16] + pck[17];
end;
//далее идут управляющие команды
//если КОМАНДИР пишет в любой чат цифру "1" то
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$31) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
//БД БЕЖИТ за КОМАНДИРОМ
bRun;
//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
exit;
end;
// запускаем танцы
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$38) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
// бафы
timerBD1.enabled:=true;
timerBD.enabled:=true;
x:=1;
exit;
end;
// остановить танцы
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$39) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
timerBD1.enabled:=false;
exit;
end;
end.