program Willowchopchop;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i ObjectDTM\ObjDTMInclude.simba}
var tr: integer;
//////////Report\\\\\\\\\\
procedure trips;
begin
tr := (tr+1);
end;
//////////Setup\\\\\\\\\\
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active :=True;
end;
//////////Antibans\\\\\\\\\\
procedure MMRandom(WaitPer, TimeOut:integer);
var
x, y, fx, fy, t, w, h:integer;
begin
MouseSpeed := RandomRange(5, 15);
MarkTime(t);
GetMousePos(x, y);
GetClientDimensions(w, h);
repeat
fx := x + randomrange(0, w-x);
fy := y + randomrange(0, h-y);
wait(WaitPer);
MMouse(fx, fy, 5, 5);
until (TimeFromMark(t) >= TimeOut);
end;
Procedure OffMM(Dir, TimeOut: Integer);
Var
w, h, rx, ry: Integer;
Begin
GetClientDimensions(w, h);
rx := RandomRange(0, w);
ry := RandomRange(0, h+50);
Case (Dir) Of
0..1: MMouse(w, RandomRange(-10,-50), rx, 0);
2: MMouse(w, h+RandomRange(10,50), rx, 0);
3: MMouse(RandomRange(-10,-50), h, 0, ry);
4: MMouse(w+RandomRange(10,50), h, 0, ry);
End;
Wait(TimeOut);
End;
procedure AntiBan;
begin
if(not(LoggedIn))then
Exit;
case Random(48) of
0:
begin
HoverSkill('Woodcutting', false);
wait(4453+Random(432));
end;
1: PickUpMouse;
2:
begin
offMM(random(4),3000+random(2500));
end;
3:
begin
MakeCompass('N');
end;
4:
begin
MMRandom(1000+random(1000), 2000+random(1000));
end;
end;
end;
///////////Tree Chopping\\\\\\\\\\\
Function chopcheck: Boolean;
var
PBox: TBox;
begin
PBox := IntToBox(245, 130, 285, 195);
Result := (AveragePixelShift(PBox, 250, 500) > 300);
end;
Procedure ChopTree;
var x,y: integer;
begin
repeat
if FindObj(x,y,'low',2897978,8) then
if isuptext('hop down') then
Mouse(x,y,2,2,true);
// ChooseOption('hop');
Wait(3200+random(250));
repeat
if chopcheck then
writeln('Chopping!');
wait(100+random(460));
until not chopcheck;
repeat
writeln('Not chopping... finding new tree...');
Wait(1200+random(250));
FindNormalRandoms;
Antiban;
Until not IsUpText('ak') or (InvFull);
Until (invFull);
end;
//////////Walking Places\\\\\\\\\\
Procedure WalktoBank;
var x,y,BankDTM1,BankDTM2,Bankfailsafe: integer;
begin
BankDTM1 := DTMFromString('mQwAAAHicY2ZgYLjCxMBwDYgvA7EuIwODJhBrAPGng9pwzA9UB8OMSBgIAHH/CNI=');
BankDTM2 := DTMFromString('mWAAAAHicY2FgYOBmhmB+IGYH4lOMDAzHgfg0FH86qA3GCxYsYDhw4AADP1APMmZEwyAAAD9sC4Q=');
if not RunEnergy(40) then
begin
restuntil(100)
writeln('rested')
end;
setrun(true);
if FindDTM(BankDTM1,x,y,MMX1,MMY1,MMX2,MMY2) then
Begin
Mouse(x,y,4,4,True);
Writeln('On the way to the bank')
end else
begin
Writeln('Couldnt find BankDTM1. Trying BankDTM2.');
if FindDTM(BankDTM2,x,y,MMX1,MMY1,MMX2,MMY2) then
Begin
Mouse(x,y,4,4,True);
Writeln('On the way to the bank')
end else
begin
writeln('Couldnt find bank. Trying Failsafe.');
Mouse((MIX1+MIX2)/2,MIY1-150,4,4,true);
wait(2000+random(1000));
Walktobank;
end;
end;
Wait(3000+(random(200)));
flagEx(8,false);
Wait(1400+(random(200)));
writeln('At Bank');
FreeDTM(BankDTM1);
FreeDTM(BankDTM2);
end;
Procedure WalktoTrees;
var
x,y: integer;
Treedtm: TStringArray;
begin
Treedtm := ['59:118:3:1:7:52:111:1:7:40:100:1:7:64:115:8:38:28:8:69:14:109:47:146:106:148:135:125:158:88:94:46'];
if ObjDTM_InArea(Treedtm[0], True) then
begin
ObjDTM_Walk(Treedtm[0], 0, 100, 80, True);
Writeln('We are at the Trees!');
end
else writeln('Trees not found');
end;
//////////Banking\\\\\\\\\\
procedure banktime;
var x,y: integer;
begin
openbank('db',false,false);
wait(1000+random(500));
DepositAll;
end;
//////////Main\\\\\\\\\\
begin
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
ObjDTM_Setup;
repeat
walktotrees;
ChopTree;
walktobank;
banktime;
trips;
until not tr > 10;
end.
this its the script