Simba Code:
program WillowTreeBanker;
{$I SRL/SRL.Simba}
{$I P07Include.Simba}
var
AxeFailSafe1, AxeFailSafe2, AxeFailSafeToggle, AxeFailSafeTime, LocFailSafe, AxeFailSafe, AnimationCheck, Skiller, RunFromCombat, Lagg, ChopWaitTime, TreeColor, BankDTM, BankColor1: integer;
Location: string;
procedure DTM;
begin
//make sure axe is in first slot first row or weilded
Skiller := 1; //weilding axe = 0 axe is in inv = 1
RunFromCombat := 1; //1 = yes 0 = no
Lagg := 750; //lag time in ms
ChopWaitTime := 15; //time in seconds to check if chopping
AnimationCheck := 90; //for pixelshift, chopping
Location := 'Willow'; //'Willow' at draynor or 'Maple' at seers
if(Location = 'Maple') then //over at seers
begin
TreeColor := 12892;
BankColor1 := 8229016;
BankDTM := DTMFromString('mQwAAAHicY2ZgYOBnYWAQBmJpIH7IgMB//jDBMSuQD8OMSBgIAFujCPA=');
end;
if(Location = 'Willow') then //over at draynor
begin
BankDTM:= DTMFromString('mQwAAAHicY2ZgYGhmYmDohmIZBgiWAOK3bxGYiwGBGZEwEAAAMdAHog==');
BankColor1 := 2578800;
TreeColor := 2524788;
end;
end;
Procedure P07_DeclarePlayer;
Begin
P07_PlayerName:='Username';
P07_PlayerPass:='password';
end;
//DONT EDIT BELOW
procedure WaitHumanClick;
begin
case random(600) of
1..450: Wait(RandomRange(0, 100));
451..570: Wait(RandomRange(0, 200));
571..590: Wait(RandomRange(0, 600));
591..600: Wait(RandomRange(400, 1100));
end;
end;
procedure FreeDTMss;
begin
FreeDTM(BankDTM);
end;
procedure GoToBank;
var x, y: integer;
begin
P07_MakeCameraAngleHigh;
P07_MakeCompassNorth;
if(not(P07_BankScreen)) then
begin
WaitHumanClick;
if(findDTM(BankDTM, x, y, 565, 7, 717, 157)) then
begin
case Location of
'Willow': Mouse(RandomRange(X + 15, x + 20), RandomRange(Y - 8, Y - 13), random(3), random(3), true);
'Maple': Mouse(RandomRange(X - 5, x + 5), RandomRange(Y + 10, Y + 15), random(3), random(3), true);
end;
end;
P07_FFlag;
wait (lagg);
end;
end;
procedure BankLogs;
begin
wait(lagg);
if(P07_BankScreen) then
begin
if(skiller = 1) then
begin
P07_Deposit(2, 28, True);
wait (lagg);
end
else
begin
P07_Deposit(1, 28, True);
wait (lagg);
end;
end;
end;
procedure OpenBank1;
var x, y: integer;
begin
Repeat
If P07_FindObj(x, y, 'ank booth', BankColor1, 10) Then
begin
LocFailSafe := 0;
WaitHumanClick;
Mouse(RandomRange(X - 5, x + 5), RandomRange(Y - 5, Y + 5), random(3), random(3), false);
WaitHumanClick;
P07_ChooseOptionMulti(['se-q']);
end
else
begin
P07_MakeCompassDegree(30);
LocFailSafe := LocFailSafe + 1;
GoToBank;
end;
P07_FFlag;
wait (lagg);
until(P07_BankScreen)
end;
procedure GoToTrees;
var x, y: integer;
begin
P07_MakeCameraAngleHigh;
P07_MakeCompassNorth;
WaitHumanClick;
if(findDTM(BankDTM, x, y, 565, 7, 717, 157)) then
begin
case Location of
'Willow': Mouse(RandomRange(X - 5, x - 15), RandomRange(Y + 15, Y + 25), random(3), random(3), true);
'Maple': Mouse(RandomRange(X - 5, x + 5), RandomRange(Y - 10, Y - 15), random(3), random(3), true);
end;
end;
P07_FFlag;
wait (lagg);
end;
procedure ChopTree;
var x, y: integer;
begin
If P07_FindObj(x, y, Location, TreeColor, 5) Then
begin
WaitHumanClick;
MMouse(x, y, Random(2), Random(2));
WaitHumanClick;
if (P07_ContainsText(GetTextAtExWrap(35, 8, 170, 21, 0, 5, 1, 13423640, 65, 'P07UpChars'), [Location])) then
begin
GetMousePos(x, y);
LocFailSafe := 0;
if(random(2) = 1) then
begin
Mouse(RandomRange(X - 5, x + 5), RandomRange(y - 5, y + 5), random(5), random(5), True);
end
else
begin
Mouse(RandomRange(X - 5, x + 5), RandomRange(y - 5, y + 5), random(5), random(5), false); //clicks it
P07_ChooseOptionMulti(['hop']);
end;
end
else
begin
GoToTrees;
end;
P07_FFlag;
wait (Lagg * 2 + 100);
MMouse(x, y, 0, 0);
if (P07_FindObj(x, y, Location, TreeColor, 5) and P07_ContainsText(GetTextAtExWrap(35, 8, 170, 21, 0, 5, 1, 13423640, 65, 'P07UpChars'), [Location])) then
begin
Mouse(RandomRange(X - 5, x + 5), RandomRange(y - 5, y + 5), random(5), random(5), True);
end
else
begin
Mouse(242, 195, random(3), random(3), true);
end;
if(AxeFailSafe > ChopWaitTime) then
begin
wait(ChopWaitTime * 500);
end;
end
else
begin
P07_MakeCompassDegree(30); //goes to trees if cant find trees
GoToTrees;
LocFailSafe := LocFailSafe + 1;
end;
end;
procedure TurnOnRun;
var x, y: integer;
begin
Mouse(671, 482, random(5), random(5), true);
WaitHumanClick;
if(FindColorTolerance(x, y, 4803917, 651, 422, 659, 430, 10)) then
begin
Mouse(640, 426, random(5), random(5), true);
end;
Mouse(644, 184, random(5), random(5), true);
end;
Function isMoving1: Boolean;
var
PBox: TBox;
begin
PBox := IntToBox(240, 140, 300, 200);
Result := (AveragePixelShift(PBox, 250, 500) > AnimationCheck);
//Writeln(IntToStr(AveragePixelShift(PBox, 250, 500)));
end;
Function AntiBan: Boolean;
begin
case random(300) of
0: P07_HoverSkill('woodcutting', random(5000));
1: TurnOnRun;
2: P07_MakeCameraAngleLow;
3: P07_MakeCompassSouth;
4: P07_MakeCompassEast;
5: P07_MakeCompassWest;
end;
end;
begin
P07_DeclarePlayer;
SetupP07Include;
ActivateClient;
Wait(2000);
If (Not P07_LoggedIn) Then
begin
P07_LogInPlayer;
end;
P07_MakeCameraAngleHigh;
P07_MakeCompassNorth;
DTM;
AddOnTerminate('FreeDTMss')
TurnOnRun;
LocFailSafe := 0;
AxeFailSafe := 80;
AxeFailSafeToggle := 0;
AxeFailSafe1 := 0;
AxeFailSafe2 := 0;
MarkTime(AxeFailSafeTime);
repeat
AntiBan;
if(timefromMark(AxeFailSafeTime) > 500) then
begin
if(AxeFailSafeToggle = 0) then
begin
AxeFailSafe1 := p07_invCount;
AxeFailSafeToggle := 1;
end
else
begin
AxeFailSafe2 := p07_invcount;
AxeFailSafeToggle := 0;
if (AxeFailSafe2 = AxeFailSafe1) then
begin
AxeFailSafe := AxeFailSafe + 1;
end
else
begin
AxeFailSafe := 0;
end;
end;
MarkTime(AxeFailSafeTime);
end;
if((CountColorTolerance(255, 230, 130, 280, 180, 2) + CountColorTolerance(65280, 230, 130, 280, 180, 2) > 100) and (RunFromCombat = 1)) then
begin
Mouse(305, 174, random(10), random(10), true);
P07_FFlag;
wait (lagg);
if(CountColorTolerance(255, 230, 130, 280, 180, 2) + CountColorTolerance(65280, 230, 130, 280, 180, 2) > 50) then
begin
GoToBank;
if(P07_InvCount > 1) then
begin
OpenBank1;
BankLogs;
end;
GoToTrees;
end;
end;
if(P07_InvFull) then
begin
GoToBank;
OpenBank1;
BankLogs;
GoToTrees;
end
else
begin
if( (AxeFailSafe > ChopWaitTime) or not isMoving1) then
begin
ChopTree;
end
else
begin
if(random(10) = 1) then
begin
MMouse(RandomRange(-100, 900), RandomRange(-100, 600), random(10), random(10));
end;
end;
end;
until (Not P07_LoggedIn or (LocFailSafe > 25) or (AxeFailSafe > 100))
TerminateScript;
end.