Показать сообщение отдельно
Старый 27.03.2008, 02:48   #1
Гость
 
Сообщений: n/a
Печаль что не так в скрипте?

Проблемма которая возникла мне самому непонятно коре за основу был взят скрипт рыбалки NLObP вырезано все лишнее и добавлено что по малому количесву мп бот садится потом встает и дальше ловит так вот написано все. работает на ура. но вот как начил добавлять веши чтобы он мог стабильно работать с другими скриптами типа ( if (ConnectName=Name) and ... SendToClientEx(Name)) скрипт отказался работать и выдовал ошибку такую которая возникает когда нет этого чара среди пропатченых хлп. счем может быть это связано?
Код:
//Автоматизация ловли рыбы by NLObP редакция LaFiN
//Необходимо затариться удочкой и крючками
//выучить соответствующие скиллы
//Социальное действие YES  - начать
//Социальное действие NO  - остановиться
//Enjoy!

const
  fish='2F 20 05 00 00 00 00 00 00 00';
  pump='2F 21 05 00 00 00 00 00 00 00';
  reel='2F 22 05 00 00 00 00 00 00 00';
  sit='45 00 00 00 00 00 00 00 00 00';
  name='bppppp';

var
  CharID:String;
  timer1: TTimer;
  status:boolean;
  SocialID, MaxHP, CurHP, MaxMP, CurMP, i: Integer;

procedure Init; //Вызывается при включении скрипта
begin
  timer1:=TTimer.Create(nil);
  timer1.OnTimer:=@OnTimer1;
  timer1.enabled:=false;
  timer1.interval:=1800; //время задержки
end;

procedure Free; //Вызывается при выключении скрипта
begin
  timer1.Free;
end;

procedure SendMsg(msg:string);
begin
  buf:=#$4A;
  WriteD(0);
  WriteD(10);
  WriteS('');
  WriteS(msg);
  SendToClientEx(Name);
end;

procedure Siting;
begin
  buf:=HStr(sit);
  SendToServerEx(Name);
end;

procedure Fishing;
begin
  buf:=HStr(fish);
  SendToServerEx(Name);
end;

procedure Pumping;
begin
  buf:=HStr(pump);
  SendToServerEx(Name);
end;

procedure Reeling;
begin
  buf:=HStr(reel);
  SendToServerEx(Name);
end;

procedure OnTimer1(Sender: TObject);
begin
    Fishing;
    timer1.enabled:=false;
end;
procedure StUp;
begin
  if (ConnectName=Name) and FromServer and (pck[1]=#$0e) and (pck[2] + pck[3] + pck[4] + pck[5] + pck[6] = CharID + #$02) then 
  begin
    CurMP:=ReadD(14);
    SendMsg(IntToStr(CurMP));
    if (CurMP = MaxMP) and (Status = false) then
    begin
      Siting;
      Status:=true;
      Fishing;
    end;
  end;
end;

//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
  if (ConnectName=Name) and FromServer then SendMsg('Run');
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************************************
  
  if (ConnectName=Name) and FromServer and (pck[1]=#$04) then
  begin
    CharID:=pck[18]+pck[19]+pck[20]+pck[21];
    i:=22;
    i:=i+(Length(Name)*2+2)+48;
    MaxHP:=ReadD(i);
    CurHP:=ReadD(i);
    MaxMP:=readD(i);
    CurMP:=readD(i);
    if (CurMP < round(MaxMP*0.3)) then
    begin
      Status:=false;
      timer1.enabled:=false;
      Siting;
    end;
  end;
  StUp;
  if (ConnectName=Name) and FromClient and (pck[1]=#$1B) then
    begin
      SocialID:=ReadD(2);
	  case SocialID of
        //социальное действие Yes для начала ловли
        6:begin
          Status:=true;
          Fishing;
          SendMsg('Run');
        end;
        //социальное действие No для окончания
        5:begin
          Status:=false;
          timer1.enabled:=false;
          SendMsg('Stop');
        end;
      end;
    end;
    if Status=true then begin
       //FishinHPRegen
       if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$00) then Pumping;
       if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$01) then Reeling;
       //FishingEnd
       if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$14) then timer1.enabled:=true;
    end
    else exit;
end.
  Ответить с цитированием