Показать сообщение отдельно
Старый 06.05.2008, 17:39   #365
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

хм извени твой скрипт для меня великовать не могу концов найти для смотри скрипт БД танцует нонстоп:
delphi Код:
const //баффы b1='2F 0F 01 00 00 00 00 00 00 00';    // Wариор b2='2F 13 01 00 00 00 00 00 00 00 ';    // Хаст БД b3='2F 36 01 00 00 00 00 00 00 00'; var IDPartyMember, IDAssistTarget: String; //ИД командира и ИД его таргета и Собственный ИД CoordBufX, CoordBufY, CoordBufZ :String; //координаты бота NameBuffer, NameKomandos : String; // Имена x: integer; timer1: TTimer; timer2: TTimer; // ну процедура бега как я понял тупо таргет по командиру :) procedure bRun; begin      if (CoordBufX <> '') and (IDPartyMember <> '') then      begin           //выделяем командира, эмулируя щелчек мыши           buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');           SendToServerEX(NameBuffer);           //бежим за командиром эмулируя повторный щелчек мыши по таргету           buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');           SendToServerEX(NameBuffer);      end; end; //сам ребаф таймер и колисество наращиваем сами только копируя под цифрой один и ставим перед // цифрой 3 ну и перебиваем соответвено что б не повторялись цыфры procedure OnTimer(Sender: TObject); begin case x of 1: begin     buf:=hstr(b1);     SendToServerEx(NameBuffer);     x:=x+1;     end;      2: begin     buf:=hstr(b2);     SendToServerEx(NameBuffer);      x:=x+1;     end;     3: begin     buf:=hstr(b3);     SendToServerEx(NameBuffer);      x:=x+1;    end;     4: begin         bRun;         SendToServerEx(NameBuffer);         x:=x+1;         timer1.enabled:=false;     end; 5: begin SendToServerEx(NameBuffer);        x:=0;        timer2.enabled:=false;        timer1.enabled:=false;//стацевали самое смешное как мне казалось реденса не должно быть        end;     end; end; procedure OnTimer2(Sender: TObject);     begin         timer1.enabled:=true;          x:=1;     end; procedure Init; //Вызывается при включении скрипта begin      NameBuffer:='xxZZxxZZxx'; //ну имя БД или свс у кого что есть      NameKomandos:='yyZZyyZZyy';     //командоса имя      timer1:=TTimer.Create(nil);      timer1.OnTimer:=@OnTimer;      timer1.enabled:=false;      timer1.interval:=3000;      x:=0;      timer2:=TTimer.Create(nil);     timer2.OnTimer:=@OnTimer2;     timer2.enabled:=false;     timer2.interval:=127000;     // тут короче по формуле что б мана не летела у свса или бд                                   // кол. песен в бафе * 2000 +1000+120000   =2*2000+1000+120000=125000 end; procedure Free; //Вызывается при выключении скрипта begin     timer1.Free;     timer2.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=NameBuffer) and (pck[1]=#$48)  then    begin         //запоминаем координаты         CoordBufX:= pck[6] + pck[7] + pck[8] + pck[9];         CoordBufY:= pck[10] + pck[11] + pck[12] + pck[13];         CoordBufZ:= pck[14] + pck[15] + pck[16] + pck[17];    end;    //далее идут управляющие команды // если КОМАНДИР пишет в пати чат цифру "4" (ребаф)  как я понял это (pck[6]=#$03)   // ксли убрать этот байт то в любой, но кому как мне так удобней    if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38)  then       if (pck[2]=#$31) and (pck[3]=#$00) and (pck[4]=#$00) and (pck[5]=#$00)and (pck[6]=#$03) then       begin            //убиваем этот пакет, чтоб сервер его не получил            pck:='';            //Бафер БЕЖИТ за КОМАНДИРОМ            bRun;            //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны            exit;       end;   // если КОМАНДИР пишет в пати чат цифру "4" (ребаф)  как я понял это (pck[6]=#$03)   // ксли убрать этот байт то в любой, но кому как мне так удобней        if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38)  then       if (pck[2]=#$34) and (pck[3]=#$00) and (pck[4]=#$00) and (pck[5]=#$00)and (pck[6]=#$03) then       begin            //убиваем этот пакет, чтоб сервер его не получил            pck:='';            timer1.enabled:=true;            timer2.enabled:=true;             x:=1;            //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны            exit;       end; // вырубаем скрипт     if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38)  then      if (pck[2]=#$30) and (pck[3]=#$00) and (pck[4]=#$00) and (pck[5]=#$00)and (pck[6]=#$03) then      begin           //убиваем этот пакет, чтоб сервер его не получил           pck:='';           timer1.enabled:=false;           timer2.enabled:=false;            x:=1;           //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны           exit;      end; end.[/code]
Добавлено через 8 минут
и по пунктам напиши что делает твой скрипт с первого приближения твои задачи можно проще реализовать.

Последний раз редактировалось Grinch, 21.05.2008 в 16:17. Причина: Добавлено сообщение
Grinch вне форума   Ответить с цитированием
За это сообщение Grinch нажился спасибкой от: