Code:
program Tanner;
{//$DEFINE SMART}
{$i srl/srl.scar}
{$i sps/sps.simba}
const
{-----Breaking Settings-----}
TakeBreaks = True; // Take breaks?
HowOften = 90; // How often to break in minutes
HowOftenRandom = 30; // Added randomness to how often you break
HowLong = 20; // How long to break for
HowLongRandom = 8; // Added randomness in break length
{---------------------------}
{---SMART Setup Constants---}
WORLD = 121;// Set a world, if you'd like.
MEMBERS = False;// Change accordingly.
SIGNED = True; // True if running a single account, false otherwise.
{---------------------------}
{--------Script Info--------}
Author = 'Username';
Name = 'Base';
Version = '1.00';
{---------------------------}
Var
BreakOften, BreakLength, BreakTimes: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username
Players[0].Active := True; // Set to true if you want to use this player
Players[0].Pin := '0000'; // Leave blank if the player doesn't have a bank pin
end;
procedure AntiBan;
begin
case Random(6) of
0: HoverSkill('Random', False);
1: begin
RandomMovement;
HoverSkill('Random', False);
end;
2: BoredHuman;
3: BoredHuman;
4: ExamineInv;
5: begin
RandomAngle(1);
HoverSkill('Random', False);
ExamineInv;
end;
end;
end;
procedure BreakCheck;
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
BreakOften := ((HowOften*60000)-(HowOftenRandom*60000)+Random(HowOftenRandom*120000));
if GetTimeRunning >= BreakOften*BreakTimes then
begin
BreakLength := ((HowLong*60000)-(HowLongRandom*60000)+Random(HowLongRandom*120000));
Logout;
Wait(BreakLength);
LoginPlayer;
end;
end;
procedure ProgressReport;
begin
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(Name + 'by' + Author + 'V' + Version);
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
function FindTanner: Boolean;
var
x, y : Integer;
begin
if not LoggedIn then Exit;
if FindObjCustom(x, y, ['Elli', 'llis'], [16248055, 4616928], 5) then //Colors/Name
begin
Mouse(x, y, 5, 5, false);
Result := True;
if ChooseOption('rade') and FindObjCustom(x, y, ['Green','athe'], [1006349,1274897], 3) then
begin
Mouse(x, y, 1, 1, false);
WaitOptionMulti(['Tan', 'all'], (500 + Random(150)));
Result := True;
end;
end else
begin
SPS_WalkToPos(Point(4936, 3897));
FindTanner;
Result := True;
end;
end;
function MakeHides: Boolean;
var x, y : Integer;
begin
if not LoggedIn then Exit;
if FindObjCustom(x, y, ['Green','athe'], [1006349,1274897], 3) then //colors/names
begin
Mouse(x, y, 1, 1, false);
WaitOptionMulti(['Tan', 'all'], (500 + Random(150)));
Result := True;
end;
end;
procedure Bank;
begin
if not LoggedIn then Exit;
if FindBank('akb') then
begin
Deposit(2, 28, True);
Writeln('Banked the Leather!')
Wait(250 + Random(50));
WithdrawEx(1, 1, 0, ['hide']);
end else
begin
SPS_WalkToPos(point(4909, 3988));
Bank;
end;
end;
function RepeatTanning: Boolean; //FullLeather, NoLeather,
begin
repeat
// if FullLeather then Bank;
Bank; //Check
FindTanner; //check
MakeHides; //check
Wait(2011 + Random(150))
AntiBan; //check
Wait(5051 + Random (250))
{until ((NoLeather) or (FullLeather));
wait(3014 + random(500));}
begin
Smart_Server := WORLD;
Smart_Members := MEMBERS;
Smart_Signed := SIGNED;
Smart_SuperDetail := False; // These four lines, setup and run Smart, using the constants you made earlier.
SetupSRL; // This is used to setup SRL's base features, and is almost always necessary.
DeclarePlayers; // This runs your DeclarePlayers procedure, setting them up to run
LoginPlayer; // This logs in your first player.
repeat // This is the start of a loop, it will repeat until the conditions set after the until below are met.
BreakCheck; // Runs the breaks
RepeatTanning;
until AllPlayersInactive; // This means that, once all characters have failed, the script will stop.
end.