Показать сообщение отдельно
Старый 14.01.2008, 23:44   #29
Гость
 
Сообщений: n/a
По умолчанию

Ругается на "Var", Проверь плз весь КОД скрипта, не хотит у мну работать по моему:
Код:
    //СКРИПТ АВТОМАТИЧЕСКОЙ СДАЧИ МАНОРА
    //использование: скрипт запускается за несколько минут до объявления об олимпиаде
    //при получении системного сообщения об ее начале засекается системное время и вычисляется время
    //сдачи манора, также активируется таймер с интервалом ХХХ МС для контроля системного времени.
    //после этого пытаемся сдать свои всходы- вручную. при этом мы получим ошибку что-
    //манор система: выключена в данный момент. но при етом пакет на сдачу манора- скрипт запомнит в
    //память для дальнейшего использования. через заданное время скрипт отправит 10 раз запомненный
    //пакет с интервалом 0,3сек.
    //проверено что: если манор сдастся примерно на 4-й раз (4-й повтор пакета) то остальные 6 повторов
    //сервер принимает без ошибок, хотя в инвенторе отсутствуют нужные всходы- сервер на это не ругается
    
    const
    Name='Zvitok'

    var

    PaketManora: string; //Пакет на сдачу манора, который мы отправим серваку зараннее с помощью клиента
    // и запомним его для того чтобы вручную не формировать его кодом.
    //важно что оправлять его нужно после после объявления об олимпиаде.
    //так как в пакете манора используются ИД сессии, которые изменяются
    //каждый ровный час.

    timer1: TTimer; //таймер контролирующий системное время

    StartTime: TDateTime;
    EndTime: TDateTime;


    x:integer;

    procedure Init; //Вызывается при включении скрипта
    begin
    timer1:=TTimer.Create(nil);
    timer1.OnTimer:=@OnTimer; //
    timer1.enabled:=false; // таймер по умолчанию выключен
    timer1.interval:=400; // через каждые 0,4сек будем засекать контрольное время сдачи манора

    x:=0;
    end;

    procedure Free; //Вызывается при выключении скрипта
    begin
    timer1.Free; //освобождаем занимаемую память таймером
    end;

    //вызывается при срабатывании таймера
    procedure OnTimer(Sender: TObject);
    begin
    //если наступило время сдавать манор и скрипт пока еще не отправил 30 попыток его сдать то
    if (time >= EndTime) and (x<30) then
    begin
    //пишем сами себе в чат - что "ПОПЫТКА"
    buf:=hstr('4A AB F6 A0 48 02 00 00 00 2D 00 3E 00 56 00 4F 00 52 00 4F 00 4E 00 37 00 00 00 3F 04 3E 04 3F 04 4B 04 42 04 3A 04 30 04 20 00 41 04 34 04 30 04 42 04 4C 04 00 00');
    SendToClientEx(Name);
    // отправляем пакет на сдачу манора.
    buf:=PaketManora;
    SendToServerEx(Name);
    //счетчик попыток
    x:=x+1;
    end;
    end;


    begin

    //если перехвачен пакет на сдачу манора то
    if FromClient and (pck[1]=#$D0) and (pck[2]=#$09) and (pck[3]=#$00) then
    begin
    //запоминаем его полностью
    PaketManora:=pck;
    end;

    //если получен пакет об начале олимпиады то
    if FromServer and (pck[1]=#$64) and (pck[2]=#$69) and (pck[3]=#$06) then
    begin
    //засекаем текущее время
    StartTime:=time;
    //вычисляем время сдачи манора (прибавляем нужное время которое нужно засеч после получения сообщения об илимпиаде)
    EndTime:=StartTime + EncodeTime(0,5,49,0); // изменяем и корректируем ето число в формате (ЧЧ,ММ,СС,МС)
    //активируем таймер
    timer1.enabled:=true;
    //а ето- отправка сам себе сообщения о том что ВРЕМЯ ПОШЛО
    buf:=hstr('4A AB F6 A0 48 02 00 00 00 2D 00 3E 00 56 00 4F 00 52 00 4F 00 4E 00 37 00 00 00 32 04 40 04 35 04 3C 04 4F 04 20 00 3F 04 3E 04 48 04 3B 04 3E 04 00 00');
    SendToClientEx(Name);
    end;

    end.
  Ответить с цитированием