Code: Select all
Program Mining;
var
s: integer;
/// Настройки //////
const
Tool=$0E85; // Тип кирки 0F39 - Лопата 0E85 - Кирка
Moving=0; // 1 = Делать круг, 0 = копать вокруг себя
CircleDelay=0; // Задержка после прохода одного круга (в секундах!)
////////////////////
procedure CheckCon;
begin
if Connected=False then
begin;
repeat
Wait(1000);
until Connected=True;
Wait(5000);
end;
end;
function CheckTool: boolean;
begin
CheckCon;
FindType(Tool, backpack);
if (dead=false) and (FindQuantity = 0) and (ObjAtLayer(RhandLayer) = 0) then
begin
AddToSystemJournal('Нет инструмента');
s:=0;
result:=false;
SetARStatus(false);
Disconnect;
end
else
result:=true;
end;
procedure Mine;
var
t: TDateTime;
X: integer;
Y: integer;
begin
for y:=GetY(self)-1 to GetY(self)+1 do
for x:=GetX(self)-1 to GetX(self)+1 do
begin
repeat
CheckCon;
t:=now;
if CheckTool=true then
begin
UseType(Tool, $FFFF);
WaitForTarget(10000);
TargetToXYZ(x, y, 0);
repeat
wait(1000);
until (InJournalBetweenTimes('stop|tool|far away|mine or dig', t, now) > 0) or (not Connected);
end
else break;
until InJournalBetweenTimes('somwhere|no sand|no ore|no clay|tool|far away|mine or dig', t, now) > 0;
end;
end;
procedure Main;
var
StartX: integer;
StartY: integer;
begin
if Moving = 1 then
begin
StartX:=GetX(self);
StartY:=GetY(self);
Mine;
MoveXY(StartX+3, StartY, true, 0, false);
Mine;
MoveXY(StartX+3, StartY+3, true, 0, false);
Mine;
MoveXY(StartX, StartY+3, true, 0, false);
Mine;
MoveXY(StartX, StartY, true, 0, false);
Wait(CircleDelay*1000);
end
else
begin
Mine;
Wait(CircleDelay*1000);
end;
end;
begin
s:=1;
CheckCon;
while (s=1) and (not dead) do
Main;
end.
Сначала выдавала ошибку на Сhecksave я её заменил на CheckLag(30000) и убрал {$Include 'all.inc'} он начал копать.При заходе в клиент видишь постоянно таргет, кирки не берёт когда ломаются и не ходит по шахте
В скрипте менял только то что выдавало ошибку.
Помогите настроить чтобы брал кирку и ходил. =)0