Показать сообщение отдельно
Старый 20.02.2011, 12:07   #20
Новичок
 
Регистрация: 16.02.2011
Сообщений: 15
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
TEHb пока неопределено
По умолчанию Продолжение

Код:
Procedure TakeMission;
begin
MissionArr[0]:='9C 57 5B 63 00 00 00 34 00 01 00 0A 00 00 00 00 00 00 00 '; 
MissionArr[1]:='9C 57 5B 63 00 00 00 19 00 01 00 1C 00 A2 13 00 00 00 00 '; 
MissionArr[2]:='9C 57 5B 63 00 00 00 EA 03 01 00 04 00 A2 13 00 00 00 00 ';
For i:=0 to 2 do 
   begin 
        buf:=HStr('C9 57 66 00');
        SendToServer;
        buf:=HStr('B5 57 72 59 01 00 00 00');
        SendToServer; 
        buf:=HStr(MissionArr[i]);
        SendToServer;
   end;
    Mission1:=True;
end;
Procedure BuyItems;
begin
    buf:=HStr('9C 57 5B 64 00 00 00 02 00 01 00 0A 00 00 00 00 00 00 00 ');
    SendToServer;
    buf:=HStr('A1 57 5E 64 00 00 00 0D 00 03 00 D3 D6 18 0A 10 00 00 00 00 00 00 00 DC D6 18 0A 10 00 00 00 00 00 00 00 D9 D6 18 0A 30 00 00 00 00 00 00 00 ');
    SendToServer; 
End;
Procedure EndMission;
Begin
  buf:=HStr('9C 57 5B 63 00 00 00 34 00 01 00 0A 00 00 00 00 00 00 00');
  SendToServer;
  buf:=HStr('9C 57 5B 63 00 00 00 19 00 01 00 1C 00 A2 13 00 00 00 00');
  SendToServer;
  buf:=HStr('9C 57 5B 63 00 00 00 11 00 01 00 05 00 A2 13 00 00 00 00');
  SendToServer;
  Mission1:=false;                                  
end;
procedure Free; //Вызывается при выключении скрипта
begin
  start:=false;
end;
begin
  if FromClient and (pck[1]=#$B9) then 
  begin
    start:=true; //запуск от любого сообщения в чат
    if not(work) then work:=true else work:=false;  //запуск и остановка работы тела скрипта (сам скрипт не выклбчает)
  end;
  if FromServer and (pck[1]=#$16) then  a:=a+1 else a:=0; //можно inc(a) я не пробовал привык делфи 7 
                                                          //если пакет не 16, то сбросить а так как мы ждем три пакета подряд все сработает
  if FromServer and (pck[1]=#$16) and (a=3) and (work) or start then //собственно старт работы после трех пакетов или по флагу start
  begin
    start:=false;
    if mission1=false then 
    begin
        TakeMission;
        BuyItems;
    end;
    buf:=HStr('C9 57 66 00');                     //пакет нажатия
    SendToServer;
    buf:=HStr('B5 57 72 56 02 00 00 00');         //цель нажатия
    delay(800);                                   //задержка так делать нельзя но у меня работает 
    buf:=HStr(SendBufArr[i]);                     //Собственно посылка производства поочередная так как пакеты постоянно меняются по количесту оставшихся вещей я просто и записал все (16 шт.)
    SendToServer;
    i:=i+1;
    if i=16 then
    EndMission;
    i:=0;
    a:=0;
    start:=true;
  end;
end.

Последний раз редактировалось J-Fobos, 20.02.2011 в 15:00.
TEHb вне форума   Ответить с цитированием
За это сообщение TEHb нажился спасибкой от: