Simba Code:
program BPotter;
{$DEFINE SRL5}
{$i srl/srl/misc/Smart.simba}
{$i srl/srl.simba}
var
T1, T2, T3, T4: Integer; // Timing for renewals/shutdown
HouseTab, Renewal4, Renewal3, Renewal2, Renewal1: Integer;
Pray1, Pray2, Pray3, Pray4: Integer;
Combat1, Combat2, Combat3, Combat4: Integer;
xpp, ypp: Integer;
xrw, yrw: Integer;
xcp, ycp: Integer;
const
TimeToRun=(5);
Skill=('strength');
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass :='';
Players[0].Nick := '';
Players[0].Active := True;
end;
procedure LoadDTMs;
begin
HouseTab := DTMFromString('mlwAAAHicY2dgYDjIxMBwAohPM0HY24F4GxAfAuI9jAwMW4D4MBAfg9K7gHgjEK9ctJAhOMCfISIkhCE0KIghJiICTPt4ejLwA83FhRnxYCgAAHtBErI=');
Renewal4 := DTMFromString('mlwAAAHicY2dgYNjPBMFHgPgoEO8C4t1AfACIZzMyMExghNALgHghEM8C4iVAXCghwBAXn8TgwcfFECDADeaXSggy5IjxM/ADzcWFGfFgKAAABBsOWQ==');
Renewal3 := DTMFromString('mbQAAAHicY2VgYMhhguBCKJ0CxPMZGRimA/ECIF4KxAuBOFOMnyEsLIohSJCHIRvIzhPnZ+AH6kfHjFgwGAAAgXgIwQ==');
Renewal2 := DTMFromString('mggAAAHicY2NgYJjKBMEzgHgOEE8B4n4gXsAIFAfiWUC8EIiXAvEiIM4Q5WNITc1k8PMLYnDj42LIEeNnyAZifqBZ2DAjDgwBACRyC9w=');
Renewal1 := DTMFromString('mbQAAAHicY2VgYHBkgmAPKG0DxAsYGRimAvFCIF4KpSdkZjFkZuUxFPt4MxSICzBMzS9g4AfqR8eMWDAYAADBrQqB');
Pray4 := DTMFromString('mggAAAHicY2NgYJjGBMGzgHguEE8H4glAbMTIwKABxAZAbAbEFlDaakcXg93RyQyazUkMGnVxYL79yWkM/ECzsGFGHBgCAEfHDW8=');
Pray3 := DTMFromString('mggAAAHicY2NgYMhhguACIC6GstOA+BAjA8NOID4AxMeA+AQQHwViq13dDPHxyQyGc0oZNJuTGKz39jLYHZnMwA80CxtmxIEhAAD8Nw+e');
Pray2 := DTMFromString('mbQAAAHicY2VgYJjGBMGzgXgqEPcD8WFGBoZdQHwUiI8D8TEgttjUyhATk8Cg3ZPJYL27h8HmwAQGfqB+dMyIBYMBAMc1DdQ=');
Pray1 := DTMFromString('mggAAAHicY2NgYHBigmBPIHYDYgcgtgXiGkYGhiJGCN0IxXVAXLhqBkNUdDxDQEcpg3ZPJoP13l6Gyo0LGPiBZmHDjDgwBAAAEnMNdg==');
Combat4 := DTMFromString('mggAAAHicY2NgYDjIxMBwHIj3A/EhIN4NxZWMDAx1QFwExA1AXA/EFUCcvyCaIbDUiaFhVyaYXb0phaFuWzoDP9AsbJgRB4YAAG5QEIM=');
Combat3 := DTMFromString('mlwAAAHicY2dgYHBigmB3IPYAYmcgtgViGyCuZGRgKGCE0HVA3AjE9VB+4ZIYhpycQobwOneGiHoPML9iXRJD+epEBn6gubgwIx4MBQBbyA8m');
Combat2 := DTMFromString('mlwAAAHicY2dgYMhmYmDIAeJ8IC6CslOBOAOIaxkZGAqBuBKI64C4gREiBuIXLYtlyMrOZ2iYUs0QXO7CULgkhqF8dSLD4r3zGPiB5uLCjHgwFAAAM2wRIQ==');
Combat1 := DTMFromString('mrAAAAHic42BgYHBigmA3IPaE0o5AbA3EtkBcw8jAUADEFUBcC8SNUFwHFZu3bSZDXl4xg7e3H0PtlDKGmFYfhop1SQzL9y1iKC6uYOAH2oEPMxLAMAAAV+oSTQ==');
end;
procedure FreeDTMs2;
begin
FreeDTM(HouseTab);
FreeDTM(Renewal4);
FreeDTM(Renewal3);
FreeDTM(Renewal2);
FreeDTM(Renewal1);
FreeDTM(Pray4);
FreeDTM(Pray3);
FreeDTM(Pray2);
FreeDTM(Pray1);
FreeDTM(Combat4);
FreeDTM(Combat3);
FreeDTM(Combat2);
FreeDTM(Combat1);
end;
procedure Home;
var
x, y: Integer;
begin
if LoggedIn then
begin
Writeln('Teleporting home')
if not(GetCurrentTab= 25) then
begin
GameTab(25);
Wait(500+(Random(500)));
end;
if(FindDTM(HouseTab, x, y, MIX1, MIY1, MIX2, MIY2))then
begin Mouse(x, y, 3, 3, 1);
Writeln('Terminating script');
end
else begin
Writeln('NO HOUSE TAB, mayday mayday!!!');
end;
Terminatescript;
end;
end;
Function FindRenewal: Boolean;
var
RenewalDTM : Array [0..3] of Integer;
i2 :Integer;
begin
RenewalDTM[0]:=Renewal1;
RenewalDTM[1]:=Renewal2;
RenewalDTM[2]:=Renewal3;
RenewalDTM[3]:=Renewal4;
For i2:=0 to 3 do
begin
if FindDTM(RenewalDTM[i2], xrw, yrw, MIX1, MIY1, MIX2, MIY2)then;
result:= true;
end;
end;
procedure DrinkRenewal;
begin
If FindNormalRandoms Then
If Not LoggedIn Then
Exit;
if LoggedIn then
if (TimeFromMark(T1) > 5*60*1000) then // fiksaa
begin
Writeln('Renewal');
if not(GetCurrentTab= 25) then
begin
GameTab(25);
Wait(500+(Random(500)));
end;
if FindRenewal then
begin
Mouse(xrw, yrw, 5, 5, 1);
Writeln('found renewal');
MarkTime(T1);
Exit;
end;
Writeln('no renewal found');
end;
end;
Function FindCombatPot: Boolean;
var
CombatDTM : Array [0..3] of Integer;
i3 :Integer;
begin
CombatDTM[0]:=Combat1;
CombatDTM[1]:=Combat2;
CombatDTM[2]:=Combat3;
CombatDTM[3]:=Combat4;
For i3:=0 to 3 do
begin
if FindDTM(CombatDTM[i3], xcp, ycp, MIX1, MIY1, MIX2, MIY2)then;
result:= true;
end;
end;
procedure DrinkCombatPot;
begin
if (TimeFromMark(T4) > 6*60*1000) then
begin
Writeln('combat pot');
if not(GetCurrentTab= 25) then
begin
GameTab(25);
Wait(500+(Random(500)));
end;
if FindCombatPot then
begin
Mouse(xcp, ycp, 5, 5, 1);
Writeln('found combat pot');
MarkTime(T4);
Exit;
end;
Writeln('no combat pot found');
end;
end;
Function PrayerLeft: Integer;
var
PrayPoints: String;
begin
Result:= GetMMLevels('pray', PrayPoints);
end;
Function FindPrayPot: Boolean;
var
PrayDTM: Array [0..3] of Integer;
i1: Integer;
begin
PrayDTM[0]:=Pray1;
PrayDTM[1]:=Pray2;
PrayDTM[2]:=Pray3;
PrayDTM[3]:=Pray4;
For i1:= 0 to 3 do
begin
if FindDTM(PrayDTM[i1], xpp, ypp, MIX1, MIY1, MIX2, MIY2) then;
result:= true;
end;
end;
procedure PotPray;
begin
Writeln(IntToStr(PrayerLeft));
if ((PrayerLeft) <500) then
begin
if not(GetCurrentTab= 25) then
begin
GameTab(25);
Wait(500+(Random(500)));
end;
begin
if FindPrayPot then
begin
Mouse(xpp, ypp, 5, 5, 1);
Writeln('found praypot');
Exit;
end;
Writeln('no praypot found');
Home;
end;
end;
end;
procedure DoRandomMovement;
begin
if (TimeFromMark(T2) > 60*1000) then
begin
RandomMovement;
MarkTime(T2)
end;
end;
procedure AntiBan;
begin
if(RBoolEx(10))then HoverSkill(Skill, False);
end;
begin
Smart_Server := 5;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL();
DeclarePlayers;
LoginPlayer;
MouseSpeed:=26;
LoadDTMs;
AddOnTerminate('FreeDTMs2');
if not(GetCurrentTab = 25) then begin GameTab(tab_inv); end;
MarkTime(T1);
MarkTime(T2);
MarkTime(T3);
MarkTime(T4);
Repeat
FindNormalRandoms;
PotPray;
Wait(500+(Random(500)));
DrinkRenewal;
Wait(500+(Random(500)));
DrinkCombatPot;
Wait(500+(Random(500)));
DoRandomMovement
Wait(500+(Random(500)));
AntiBan;
Until(TimeFromMark(T3)> TimeToRun*60*60*1000);
Writeln('Time To Run reached');
Home;
end.