Показать сообщение отдельно
Старый 13.12.2008, 09:59   #12
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 52
Сказал Спасибо: 9
Имеет 2 спасибок в 2 сообщенях
Витя пока неопределено
По умолчанию

Цитата:
Сообщение от Lelee Посмотреть сообщение
ребят подскажите что не так? или я слепая. но при включении скарипта "пнх" выдает ошибку.

Код:
const
Name='lLelee';       // свой ник
var
timer1: TTimer;
count:integer; //- счетчик
procedure Init; //вызывается при включении скрипта
begin
count:=1;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1; //
timer1.enabled:=false; //
timer1.interval:=1000;
end;

procedure Free; //вызывается при выключении скрипта
begin
timer1.Free;
end;
procedure Say(msg:string);
    begin
      buf:=hstr('4A 00 00 00 00');
      WriteD(2);
      WriteS(Name);
      WriteS(msg);
      SendToClientEx(Name);
    end;

procedure OnTimer1(Sender: TObject);
begin
if count=1 then
  begin
  buf:=hstr('19 2A 42 30 10 00 00 00 00');
  count:=2;
  end
else begin
  buf:=hstr('D0 4F 00 AC F4 30 10');
  count:=1;
  end;
SendToServerEx(Name);
end;
begin
      //****************************************************************************
      //не обрабатываем пустые пакеты
      if pck='' then exit;
      //****************************************************************************
      //чоц дейтсвие "да" для начало спама пакетов
      if FromClient and (ConnectName=Name) and (pck=HStr('34 06 00 00 00')) then begin
        Say('Старт!!!');
        timer1.enabled:=true;
      end;
// соц действие "нет" для  отключения спама
      if FromClient and (ConnectName=Name) and (pck=HStr('34 05 00 00 00')) then begin
        Say('Стопï!!!');
        timer1.enabled:=false;
      end;
end.
то есть после того как выдал ошибку скрипт не отключается, при нажатии на чоц действие "да" он пишит в пм что старт все нормально, а пакеты отпралять не хочет.
у меня получилось посылать пакеты после социального действия, но проблема в том что надо изменить какой то пакет чтобы точка останавливалась, вот сам скрипт если найдете способ остановки заточки поделитесь
Код:
const
      Name='/свое имя/';
var
  timer:TTimer;
procedure Init;
begin
  timer:=TTimer.Create(nil);
  timer.interval:=700;
  timer.OnTimer:=@fireTimer;
  timer.enabled:=false;
end;
procedure Free;
begin
  timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
  buf:=hstr('/пакет открытия точки/');
  SendToServer;
  buf:=hstr('/пакет вещи в слот/');
  SendToServer;
  buf:=hstr('/пакет завершения точки (для ускорения процеса)/');// необезательно
  SendToServer;
end;
begin
      //****************************************************************************
      //не обрабатываем пустые пакеты
      if pck='' then exit;
      //****************************************************************************
      //социальное действие yes для начало точки
      if FromClient and (ConnectName=Name) and (pck=HStr('5A 06 00 00 00')) then begin


        timer.enabled:=true;
      end;
      //****************************************************************************
      //социальное действие no для начало точки
      if FromClient and (ConnectName=Name) and (pck=HStr('5A 05 00 00 00 ')) then begin

        timer.enabled:=false;
      end;

  if FromServer and (ConnectName=Name) and (pck = HStr('/Сюда пакет с нужной заточкой пухи!(это важно нада пральный пакет)/')) then begin
    timer.enabled:=false;
  end;
end.
Витя вне форума   Ответить с цитированием