program Cats;
//{$DEFINE SMART}
{.include SRL\SRL.simba}
{.Include SRL\SRL\Misc\Debug.simba}
var
x, y: Integer;
Q: Array [0..5] of Integer;//DTM Declaring procedure.
aFound: Extended;
Const
SERVER = '72'; // Enter "0" to pick a random server.
MEMBERS = True; // Set to True for P2P. False for F2P
SRLStats_Username = ''; // Your SRL Stats Username.
SRLStats_Password = ''; // Your SRL Stats Password.
NumbOfPlayers = 1; //How many players are you using
StartPlayer = 0; //Player to start auoting with! (0 means first char)
BreakEvery = 120; // Break interval.
BreakFor = 5; // Break time.
Version = '1.0';
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['ostume', 'ithril', 'lay'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Active := True;
end;
end;
///////////////////////////////////////////////////////////////////////////////
Procedure StatsGuise(wat:String);
Begin
Status(wat);
Disguise(wat);
End;
Procedure Antiban;
Begin
Case Random(192) Of
0: HoverSkill('Crafting', False);
1: Begin PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
2: ExamineInv;
3: RandomAngle(1);
4: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
5: HoverSkill('random', False);
End;
End;
Procedure FailSafe(Reason:String);
Begin
Players[CurrentPlayer].Loc:=Reason;
Logout;
Stats_Commit;
// ProgressReport;
TerminateScript;
End;
Function PickFlax:Boolean;
Var
x, y, PlusOne: Integer;
Begin
PlusOne:= InvCount +1;
X:=MSCX
Y:=MSCY
If FindObjCustom(x, y, ['Flax', 'ick', 'Pic'], [14474423, 4877641, 12429665, 15592920, 2966317], 30) Then
Begin
StatsGuise('Flax Found!')
WriteLn('Flax Found!');
GetMousePos(x, y);
Case Random(2) Of
0: Mouse(x, y, 5, 5, True);
1: Begin
Mouse(x, y, 5, 5, False);
WaitOption('Pick', 500);
End;
End;
Repeat
Antiban;
Wait(100);
If InvCount=PlusOne Then
Writeln('Flax Obtained!');
Until (InvCount=Plusone)
End;
End;
function Walking(Color, Tolerance: Integer; SortFrom: tpoint): Boolean;
var
i, x, y, rx, ry: Integer;
TPA: TPointArray;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
FindColorsSpiralTolerance(MMCX, MMCY, TPA, Color, MMX1, MMY1, MMX2, MMY2, Tolerance);
SortTPAFrom(TPA, SortFrom);
for i := 0 to High(TPA) do
begin
x := TPA[i].x;
y := TPA[i].y;
rx := RandomRange(-6, 6);
ry := RandomRange(-6, 6);
if (not rs_OnMinimap(x + rx, y + ry)) then
Continue;
Mouse(x + rx, y + ry, 0, 0, true);
FFlag(0);
Wait(200 + Random(500));
Result := True;
Break;
end;
end;
Function Bank:Boolean;
Var
x, y: Integer;
Begin
X:=MSCX
Y:=MSCY
If FindObjCustom(x, y, ['Bank', 'nk Ch', 'Use b'], [6254203, 6381925, 10921902, 3754326], 5) Then
Begin
StatsGuise('Bank Clicked!')
WriteLn('Bank Clicked!');
GetMousePos(x, y);
Case Random(2) Of
0: Mouse(x, y, 5, 5, True);
1: Begin
Mouse(x, y, 5, 5, False);
WaitOption('Use', 500);
End;
End;
StatsGuise('Bank Opened!')
WriteLn('Bank Opened!')
End;
End;
Function BankFlax:Boolean;
Var
x, y: Integer;
Begin
X:=MSCX
Y:=MSCY
If FindObjCustom(x, y, ['Depo', 'Car', 'tems'], [263686, 4161692, 1655411, 2052490], 5) Then
Begin
StatsGuise('Flax Banked!')
WriteLn('Flax Banked!');
GetMousePos(x, y);
Case Random(1) Of
0: Mouse(x, y, 5, 5, True);
End;
End;
End;
procedure SetDTM; //DTM Defining procedure.
begin
Q[0] := DTMFromString('m6wAAAHic42ZgYGhjYmCoBuJeIO4E4hogLobyK4C4H4jrgbgViB8A1V8G4lNAfAeI/wHxUyB+AcQngPgGVPwKEL+7pMLg46LMkOUswPD/DzOY9nRSYvDzVWGIigxliDLmAKpiZPB0VWIgBTCSgJEAAMX7GQg=');
Q[1] := DTMFromString('mwQAAAHic42RgYBADYiUoBgFBIBYAYg0gFgdiJqgadiCWA2JRKA0CQkAsDFXvFaLK4OSuzhAc5scQ4STN4OSlwZDlLADmRxlzMBiniDEQAxiJwHAAAItNCDs=');
Q[2] := DTMFromString('m1gAAAHic42JgYBAHYkUg1mGAAGkg5oCK8wCxMhCLAjE/EAtDaZC8CFQcBFiAmBvKV44SYvCJ0mCIMuZgsHPSZvAJU2MIDvMD065eGgxBidoMLOzMDMQCRiIxAgAA/H4IRA==');
Q[3] := DTMFromString('m1gAAAHic42JgYBAEYn4g5gViGSgGsSUZIABEKwAxHxDLATELlJYGYjEgFgJiTqhaNiAOCTBncPFUYwgK9WEId5RkMEoWAbNh4s7eCgyRRmwMxAJGIjECAABSDQkU');
Q[4] := DTMFromString('mfgEAAHicE2JgYFAHYmkg1gVifSDmZYAAkJgeEJsDsREQSwKxFlS9ClS9BJI6bSC2BWJ3IOaAmiEGxEpQGoQ1gdgEimWAWBGKQeIaUHM+sDEyeHgoMNjZaTJYmqsyhASYM9RUZTLYu6iA2UGhPgx29poM3r6KDM4uqkCN8WBxG1t1hgBvE4Yfnz6DMbUAI5UwJgAAxW0XTQ==');
Q[5] := DTMFromString('mVAEAAHicpcy7CsJAFATQWXyBRjGC4gMkqywaf0AiYVPEIhiEEMTv3U/y0VgIccBbpc3AgVvM3DGAOW1oS2va0Z5m5NGUlnIP8Y8nnRUtKJDeiAbUk16bJvLb0IH65Mu2Q9W3BWtD2CREejaITgZxrHErjriXEbIsQJoYVE+F/KLhnEN+1fi83nh0FZpGNVTPDwUZFII=');
end;
procedure FrDTM; //DTM Freeing procedure.
begin
FreeDTM(Q[0]);
FreeDTM(Q[1]);
FreeDTM(Q[2]);
FreeDTM(Q[3]);
FreeDTM(Q[4]);
FreeDTM(Q[5]);
end;
begin
SetDTM; //Set DTM's before code.
MouseSpeed := 18; //This makes it move faster but still undetectable, it makes DTM walking even more human-like.
MakeCompass('n'); //We agreed we'd have camera facing North.
SRL_ANGLE_HIGH //Does not matter but it looks cooler from above.
if FindDTMRotated(Q[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[3], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[3], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[4], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[4], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[5], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[5], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
end;
// No loop for the last point in the walk.
FrDTM; //Free DTM's after Codes
end;
begin
SetupSRL;
DeclarePlayers;
Repeat
// If InvEmpty Then
// Begin
// WalkToFlax;
// PickFlax;
// End
// If InvFull Then
// Begin
// WalkToBank;
Bank;
BankFlax;
// End
Until(false);
end.