Код:
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.