Code: Select all
Program lumber_GK;
{$Include 'all.inc'}
const
 axet = $2398;
 Msg1 = 'stop';
 rbook = $550789D2; // Серийник рунбуки
 runa1 = 2; // Руна к месту 1
 runa2 = 4; // Руна к месту 2
type
i_rail = array[1..4] of Integer;
var
 x, i, mn1, k : Integer;
 TypeTree : i_rail;
 var ctime : TDateTime;
 Runa : array[1..2] of integer;
procedure tree_int;
begin
TypeTree[1]:=$0DA6;
TypeTree[2]:=$0D9E;
TypeTree[3]:=$0CAA;
TypeTree[4]:=$0D9A;
end;
procedure Recharge;
begin
 findtype($1F4C,backpack);
 if (findcount > 0) then MoveItems(backpack, $1F4C, $FFFF, rbook, 0, 0, 0, 500)
 else
 begin
 Addtosystemjournal('KoH4uJIuCb scrool recall');
 exit;
 end;
end;
procedure RecallRB(RBID : Cardinal; RuneNumber : Integer);
begin
 UseObject(rbook);
 WaitGump(IntToStr(1024 + RuneNumber));
 wait(2000);
end;
procedure lumber;
begin
 for i := 1 to 4 do
 begin
 FindType(TypeTree[i],ground);
 while FindCount > 0 do
 begin
 clearjournal;
 if TargetPresent then CancelTarget;
 ctime := Now;
 WaitTargetObject(FindItem)
 UseObject(ObjAtLayerEx(rhandLayer,self));
 k := 0;
 repeat
 wait(100);
 k := k + 1;
 mn1 := InJournalBetweenTimes(Msg1, ctime, Now);
 until (mn1<>-1) or (k > 700);
 Ignore(FindItem);
 FindType(TypeTree[i], ground);
 end;
 end;
 IgnoreReset;
end;
Begin
 x:=GetX(self);
 tree_int;
 FindDistance := 2;
 SetARStatus(true);
 wait(3000);
 while true do
 begin
hungry(1,backpack);
recharge;
RecallRB(rbook,runa2);
lumber;
RecallRB(rbook,runa1)
lumber; 
wait(2000);
recharge;
 end;
End.


