Silent
2011-11-17 22:24:17
How Long have You Played Runescape?
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Java, HTML, Pascal, CSS, Ti-89-Basic
Are you a member of any other communities?
Moparisthebest, my username over there is nathanator22, just like it used to be here.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
My scripts are as follows:
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Java, HTML, Pascal, CSS, Ti-89-Basic
Are you a member of any other communities?
Moparisthebest, my username over there is nathanator22, just like it used to be here.
Tell us about yourself…
From: Silent SPY
I'm 19 years old, I've been a member here since 2007. I've always had an interest in gaming, but it was SCAR scripting back in the day that got me interested in programming. I'm currently studying Computer Science in my freshman year of college here the US. I have a high interest in continuing to develop scripts for RS, even though my interest in the game itself has diminished significantly over the years. I want to do as much as I can to help this community out, and I hope to be able to continue to do so long into the future. Well the box says brief biography, so I should really end this. If you have any other questions just ask, I'm a pretty friendly guy. I'm applying with two scripts. My SilentPlanker, and SilentFlax. They are listed in that order below.
Please show us one (or multiple) of your scripts.
My scripts are as follows:
program SilentPlanker;
// Includes...
{$i srl/srl/misc/smart.scar}
{$loadlib sps}
{$i srl/srl.scar}
{$i sps/sps.simba}
Var
T, W, Logs, Planks, PlankCount, Breaks, Loads: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // Set the number of players you are using
NumberOfPlayers(HowManyPlayers); // Don't touch
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].Strings[1] := 'normal'; //Type of log to make into plank. Acceptable inputs are...
//'normal', 'oak', 'teak', 'mahogany'
Players[0].Integers[1] := 50;//# of loads to do.
Players[0].Integers[2] := 30; // Time before breaking ( In minutes)
(* //<-- remove the "(*" for multiplayer
Players[1].Name := ''; // Username
Players[1].Pass := ''; // Password
Players[1].Active := True; // Set to true if you want to use Player 0
Players[1].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[1].Strings[1] := 'oak'; //Type of log to make into plank. Acceptable inputs are...
//'normal', 'oak', 'teak', 'mahogany'
Players[1].Integers[1] := 200;//# of loads to do.
Players[1].Integers[2] := 30; // Time before breaking ( In minutes)
// *)
end;
procedure SetupLogin;
begin
ClearDebug;
// Setting up SMART;
Smart_Server := 22;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer; // Logging in...
end;
procedure SetupSps;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['12_7', '12_6']);
SPS_Continue := false;
end;
procedure FancyStart;
var
i: Integer;
e: String;
begin
e:= '=';
while i < 70 do
begin
Writeln(e);
if (InRange(i, 1, 8)) then
begin
Writeln(' /-----\');
Writeln('/ /---\/');
Writeln('\ \___ ');
Writeln(' \___ \');
Writeln('_____/ /');
Writeln('\_____/ ');
end;
if (InRange(i, 9, 11)) then
begin
Writeln(' /-----\<->');
Writeln('/ /---\/|-|');
Writeln('\ \___ | |');
Writeln(' \___ \| |');
Writeln('_____/ /| |');
Writeln('\_____/ | |');
end;
if (InRange(i, 12, 20)) then
begin
Writeln(' /-----\<->___ ');
Writeln('/ /---\/|-|| | ');
Writeln('\ \___ | || | ');
Writeln(' \___ \| || | ');
Writeln('_____/ /| || |_____ ');
Writeln('\_____/ | ||_______|');
end;
if (InRange(i, 21, 28)) then
begin
Writeln(' /-----\<->___ _______ ');
Writeln('/ /---\/|-|| | | _____|');
Writeln('\ \___ | || | | |____ ');
Writeln(' \___ \| || | | _____|');
Writeln('_____/ /| || |_____ | |____ ');
Writeln('\_____/ | ||_______||______|');
end;
if (InRange(i, 29, 39)) then
begin
Writeln(' /-----\<->___ _______ ____ __');
Writeln('/ /---\/|-|| | | _____|| \ | |');
Writeln('\ \___ | || | | |____ | |\ \ | |');
Writeln(' \___ \| || | | _____|| | \ \ | |');
Writeln('_____/ /| || |_____ | |____ | | \ \| |');
Writeln('\_____/ | ||_______||______||_| \___|');
end;
if (InRange(i, 40, 48)) then
begin
Writeln(' /-----\<->___ _______ ____ __ _______ ');
Writeln('/ /---\/|-|| | | _____|| \ | ||__ __|');
Writeln('\ \___ | || | | |____ | |\ \ | | | | ');
Writeln(' \___ \| || | | _____|| | \ \ | | | | ');
Writeln('_____/ /| || |_____ | |____ | | \ \| | | | ');
Writeln('\_____/ | ||_______||______||_| \___| |_| ');
end;
if (InRange(i, 49, 56)) then
begin
Writeln(' /-----\<->___ _______ ____ __ _______ /-----\ ');
Writeln('/ /---\/|-|| | | _____|| \ | ||__ __|/ /---\/');
Writeln('\ \___ | || | | |____ | |\ \ | | | | \ \___ ');
Writeln(' \___ \| || | | _____|| | \ \ | | | | \___ \ ');
Writeln('_____/ /| || |_____ | |____ | | \ \| | | | _____/ / ');
Writeln('\_____/ | ||_______||______||_| \___| |_| \_____/ ');
end;
if (InRange(i, 57, 61)) then
begin
Writeln(' /-----\<->___ _______ ____ __ _______ /-----\ ___ ');
Writeln('/ /---\/|-|| | | _____|| \ | ||__ __|/ /---\/| \');
Writeln('\ \___ | || | | |____ | |\ \ | | | | \ \___ | | |');
Writeln(' \___ \| || | | _____|| | \ \ | | | | \___ \ | |_/');
Writeln('_____/ /| || |_____ | |____ | | \ \| | | | _____/ / | | ');
Writeln('\_____/ | ||_______||______||_| \___| |_| \_____/ | | ');
end;
if (InRange(i, 62, 69)) then
begin
Writeln(' /-----\<->___ _______ ____ __ _______ /-----\ ___ _ _');
Writeln('/ /---\/|-|| | | _____|| \ | ||__ __|/ /---\/| \\ \ / /');
Writeln('\ \___ | || | | |____ | |\ \ | | | | \ \___ | | | \ \/ / ');
Writeln(' \___ \| || | | _____|| | \ \ | | | | \___ \ | |_/ \ / ');
Writeln('_____/ /| || |_____ | |____ | | \ \| | | | _____/ / | | | | ');
Writeln('\_____/ | ||_______||______||_| \___| |_| \_____/ | | |__| ');
end;
Writeln(e);
e := e + '=';
Wait(50);
Inc(i);
ClearDebug;
end;
Writeln('=====================================================================');
Writeln(' /-----\<->___ _______ ____ __ _______ /-----\ ___ _ _');
Writeln('/ /---\/|-|| | | _____|| \ | ||__ __|/ /---\/| \\ \ / /');
Writeln('\ \___ | || | | |____ | |\ \ | | | | \ \___ | | | \ \/ / ');
Writeln(' \___ \| || | | _____|| | \ \ | | | | \___ \ | |_/ \ / ');
Writeln('_____/ /| || |_____ | |____ | | \ \| | | | _____/ / | | | | ');
Writeln('\_____/ | ||_______||______||_| \___| |_| \_____/ | | |__| ');
Writeln('=====================Presents Silent Planker=========================');
Wait(5000);
end;
procedure BreakTime;
var
s, i: Integer;
begin
if (s = 0) then
s := Players[CurrentPlayer].Integers[2] * 60000; //+ RandomRange(300000, 600000);
if T = 1 then
begin
W:= GetTimeRunning;
if (W > s) then
begin
Logout;
i:= RandomRange(10, 15);
Writeln('Taking a break for ' + IntToStr(i) + ' minutes');
i:= i * 60000;
Wait(i);
T := 0;
s:= W + s;
Inc(Breaks);
LoginPlayer;
end;
end else
if T = 0 then
begin
T := T + 1;
end;
end;
procedure Antiban; //idea taken from Coh3n's tutorial.
begin
if not (LoggedIn) then
Exit;
begin
case Random(50) of // Random(60) generates a random integer from 0 to 59
10: RandomRClick;
20: PickUpMouse;
30: RandomMovement;
40: BoredHuman;
49: ExamineInv;
end;
end;
end;
procedure RestUp;
begin
if not (LoggedIn) then
Exit;
begin
SetRest;
while not RunEnergy(95) do
begin
Antiban;
Wait(Random(1000));
end;
end;
end;
function Amount: Integer;
begin
case (Players[0].Strings[1]) of
'normal': Result:= 2700;
'oak': Result:= 6750;
'teak': Result:= 13500;
'mahogany': Result:= 40500;
end;
end;
function WithdrawMoney: Boolean;
var
d, x, y: Integer;
begin
if not (LoggedIn) then
Exit;
d := 0;
Writeln('Getting coins...');
FixBankTab;
repeat
Wait(4 * Random(500));
FindCoins(x, y, 'bank');
MMouse(x, y, 20, 20);
Wait(Random(700));
Inc(d);
Writeln('Attempting to get Coins.. Try #' + IntToStr(d));
until (FindCoins(x, y, 'bank')) or (d > 9); (*(WaitOption('Withdraw-6750', Random(700)) or (WaitOption('Withdraw-X', Random(700)) or *)
Mouse(x, y, 10, 10, false);
if WaitOption('Withdraw-' + IntToStr(Amount), Random(700)) then
begin
Wait(RandomRange(75, 400));
Result:= true;
end else
Mouse(x, y, 10, 10, false);
if WaitOption('Withdraw-X', Random(700)) then
begin
Wait(RandomRange(400, 900));
TypeSend(IntToStr(Amount));
Wait(RandomRange(900, 1200));
if not FindCoins(x, y, 'inv') then
begin
CloseWindow;
Result:= false;
end else
Result:= true;
end;
if (d > 9) then
begin
Writeln('Could not find GP, terminating.');
Result:= false;
end;
end;
function UpText: String;
begin
case (Players[0].Strings[1]) of
'normal': Result:= 'ogs';
'oak': Result:= 'ak';
'teak': Result:= 'eak';
'mahogany': Result:= 'ahog';
end;
end;
function WithdrawLogs: Boolean;
var
d, i, x, y: Integer;
begin
if not (LoggedIn) then
Exit;
d := 0;
Writeln('Getting logs...');
repeat
FindItem(x, y, 'dtm', Logs, MSX1, MSY1, MSX2, MSY2, [0]);
MMouse(x, y, 20, 20);
Wait(Random(700));
Inc(d);
Writeln('attempting to get logs... Try Number:' + IntToStr(d));
until IsUpTextMultiCustom([UpText]) or (d = 9);
Wait(RandomRange(500, 700));
if IsUpTextMultiCustom([UpText]) then
begin
if WithdrawItemEx(Logs, 'dtm', i, 0, UpText, [0]) then
Writeln('Got Logs!');
Result:= true;
end;
if (d = 9) then
begin
Writeln('cant get logs, Terminating');
Result := false;
end;
end;
function Banking: Boolean;
var
p, t: Integer;
begin
if not LoggedIn then
Exit;
Result:= false;
t := 0; //Tries starts at zero
repeat
Inc(t);
SetAngle(true);
Writeln('Trying to open the bank, this is the ' + IntToStr(t) + ' try out of 5');
OpenBankFast('veb');
Wait(Random(700));
until BankScreen or PinScreen or (t > 5);
if PinScreen then
begin
p := 0;
repeat
InPin(Players[0].Pin);
Inc(p)
until BankScreen or (p > 0) or not (LoggedIn);
end;
if BankScreen then
begin
Writeln('Opened the bank...');
DepositAll;
if WithdrawMoney then
begin
if WithdrawLogs then
begin
CloseBank;
Result:= true;
end else
begin
Exit;
end;
end else
begin
Exit;
end;
end;
end;
procedure WalkToPlanker;
var
BankToPlanker: TPointArray;
begin
if not LoggedIn then
Exit;
if not FindNormalRandoms then
begin
if not RunEnergy(25) then
RestUp;
MakeCompass('n');
Writeln('attempting to walk to wall...');
if RadialWalkTolerance(11178024, 90, 0, 55, -1, 0, 116) then
begin
Writeln('Walking towards wall..');
Wait(Random(1000));
BankToPlanker := [Point(4834, 2944), Point(4852, 2923),
Point(4923, 2919), Point(4961, 2867),
Point(4975, 2810), Point(5003, 2752),
Point(5024, 2724), Point(5031, 2672)];
Writeln('Walking to Planker...');
if SPS_WalkPath(BankToPlanker) then
Writeln('at Sawmill');
end else
Exit;
end;
end;
procedure WalkToBank;
var
PlankerToBank: TPointArray;
begin
if (LoggedIn) then
begin
if not FindNormalRandoms then
begin
if not RunEnergy(25) then
RestUp;
MakeCompass('n');
Writeln('Walking to Bank...');
PlankerToBank := [Point(5036, 2670), Point(5025, 2704), Point(4998, 2749),
Point(4980, 2790), Point(4967, 2819), Point(4956, 2858),
Point(4961, 2898), Point(4932, 2921), Point(4905, 2920),
Point(4867, 2921), Point(4835, 2921), Point(4834, 2952)];
if SPS_WalkPath(PlankerToBank) then
Writeln('At the Bank..');
while(IsMoving) do
Wait(Random(700));
end else
Writeln('found Random!');
end;
end;
procedure LoadItems;
begin
case(Players[CurrentPlayer].Strings[1]) of
'oak': begin
Logs := DTMFromString('mrAAAAHic42BgYLjPwcBwGYjfcEDYV4D4FRB/AOKnQHyRkYHhFhDfAOLbQHwOiM8D8VUgvgnEJREmQFOYcGIxBvyAkQCGAQAOaA82');
Planks := DTMFromString('mwQAAAHic42RgYODmZGDgBWI2IGYCYk4gFgJiFiibFYgvMDIwXAfii0B8G4jvAfE5IL4KxGeA+C4Q54ZaAE1jwosFGQgDRiIwHAAA9wMJUg==');
end;
'teak': begin
Logs := DTMFromString('mrAAAAHic42BgYHjJwcDwF4gZOSH4O5D9Bog/AvFvIA5lZGDwB+IoRgg7FogTgTgeiGOA+OrmcqApTDgxFwN+wEgAwwAAxAQK9Q==');
Planks := DTMFromString('m6wAAAHic42ZgYJDnZGCQAmIRKK0IxBpArMoJkVMCYnEglgXiEEYGhiQgjgfiICB2A2IPIA4A4hggDgPiCCD2AeJAR2Wg6UxEYS4G4gEjCRgJAABBngY9');
end;
'normal': begin
Logs := DTMFromString('mlwAAAHicY2dgYHDiYGCwAGJXILYF4gAg9gZiMyAOZWRgiIPiRCCOBuJgKPYyVwDqZsKKuRhwA0Y8GAoAXd8FRQ==');
Planks := DTMFromString('m6wAAAHiclczBBoBAAEXRN22KvqavmFolkYiYRMOkSNHndxctWk6Xw1u9XNKWSQEzFhzYccFjxY0TrZEmjHDoMKB5d40SFn1V8J5ESRWf+eHTAygMCcs=');
end;
'mahogany': begin
Logs := DTMFromString('mrAAAAHic42BgYHDmZGAIBuIwII4EYl8gdgViB6h4JCOQBmI/II4C4jggToTSMUAcqMcNNIUJJ+ZiwA8YCWAYAAA96QY6');
Planks := DTMFromString('mAAEAAHic42FgYCjjZGDIBeIiIG4E4koouwqIy4G4FipfAsT5QBzCyMAQA8RJQOwFxG5AHATEYVBxdyBOAGI/IA4HYlcTNaAtTERjLgbSACOJGBkAAKc0CsE=');
end;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(Planks);
FreeDTM(Logs);
end;
procedure WhatLogs;
var
x, y, p, o: Integer;
begin
p := 0;
case (Players[0].Strings[1]) of
'normal': begin
repeat
if not IsUpText('Wood') then
begin
FindColorSpiralTolerance(x, y, 16764672, MSX1, MSY1, MSCX, MSCY, 20);
MMouse(x, y, 50, 50);
Inc(p)
Writeln('Finding Normal Log... try #' + IntToStr(p));
end;
Wait(Random(2000));
until (IsUpText('Wood')) or (p > 5);
if IsUpText('Wood') then
begin
Writeln('Found Normal log!');
Mouse(x, y, 00, 00, false);
o := 0;
while not (WaitOption('All Wood', Random(600))) and (o > 5) do
begin
Wait(1000);
Mouse(x, y, 10, 10, false);
Writeln('Trying to click Option..');
Inc(o);
end;
end;
end;
'oak': begin
repeat
if not IsUpText('Oak') then
begin
FindColorSpiralTolerance(x, y, 16764672, MSCX, MSY1, MSX2, MSCY, 20);
MMouse(x, y, 50, 50);
Inc(p)
Writeln('Finding Oak Log... try #' + IntToStr(p));
end;
Wait(Random(2000));
until (IsUpText('Oak')) or (p > 5);
if IsUpText('Oak') then
begin
Writeln('Found Oak log!');
Mouse(x, y, 00, 00, false);
o := 0;
while not (WaitOption('All Oak', Random(600))) and (o > 5) do
begin
Wait(1000);
Mouse(x, y, 10, 10, false);
Writeln('Trying to click Option..');
Inc(o);
end;
end;
end;
'teak': begin
repeat
if not IsUpText('Teak') then
begin
FindColorSpiralTolerance(x, y, 6723765, MSX1, MSCY, MSCX, MSY2, 30);
MMouse(x, y, 50, 50);
Inc(p)
Writeln('Finding Teak Log... try #' + IntToStr(p));
end;
Wait(Random(2000));
until (IsUpText('Teak')) or (p > 5);
if IsUpText('Teak') then
begin
Writeln('Found Teak log!');
Mouse(x, y, 00, 00, false);
o := 0;
while not (WaitOption('All', Random(600))) and (o > 5) do
begin
Wait(1000);
Mouse(x, y, 10, 10, false);
Writeln('Trying to click Option..');
Inc(o);
end;
end;
end;
'mahogany': begin
repeat
if not IsUpText('Mahogany') then
begin
FindColorSpiralTolerance(x, y, 16764672, MSCX, MSCY, MSX2, MSY2, 20);
MMouse(x, y, 50, 50);
Inc(p)
Writeln('Finding Mahogany Log... try #' + IntToStr(p));
end;
Wait(Random(2000));
until (IsUpText('Mahogany')) or (p > 5);
if IsUpText('Mahogany') then
begin
Writeln('Found Mahogany log!');
Mouse(x, y, 10, 10, false);
o := 0;
while not (WaitOption('All Mahogany', Random(600))) and (o > 5) do
begin
Wait(1000);
Mouse(x, y, 10, 10, false);
Writeln('Trying to click Option..');
Inc(o);
end;
end;
end;
end;
if (o > 5) then
begin
Writeln('Finding logs Failed');
Exit;
end;
end;
procedure Planking;
var
x, y, t, b: Integer;
begin
if not (LoggedIn) then
Exit;
if (FindNormalRandoms) then
Exit;
while (IsMoving) do
begin
Wait(Random(1000))
end;
repeat
FindObjCustom(x, y, ['awmill', 'operator'], [14143192, 14340570, 12564415, 13287882, 14340570, 13485261], 24);
MMouse(x, y, 20, 20);
Inc(t)
Writeln('Finding Plank maker.. Try #' + IntToStr(t));
Wait(Random(1500));
until (IsUpText('awmill')) or (t > 9);
if (IsUpText('awmill')) then
begin
b := 0;
repeat
Mouse(x, y, 10, 10, false);
Inc(b)
Writeln('Picking Buy-plank.. Try #' + IntToStr(b));
Wait(1000);
until WaitOption('Buy', Random(700)) or (b > 10);
if (b > 10) then
Exit;
WhatLogs;
end;
end;
procedure CheckLoad;
var
t: Integer;
begin
Wait(700 + Random(1200));
while not (InvCount = 27) and (t > 5) do
begin
CloseWindow;
Planking;
Inc(t);
Wait(random(500));
Writeln('failed to get logs, trying agian.. Try #:' + IntToStr(t));
end;
if (t > 5) then
begin
Exit;
end;
if (InvCount = 27) then
begin
IncEx(PlankCount, InvCount);
Writeln('Exchanged Logs for Planks');
end;
end;
procedure Progress;
begin
Writeln('');
Writeln('/=======================================================\')
Writeln('| Finishing load #' + IntToStr(Loads));
Writeln('| Running for..' + TimeRunning);
Writeln('| ' + Players[CurrentPlayer].Strings[1] + ' Planks made = ' + IntToStr(PlankCount));
Writeln('\=======================================================/')
Writeln('');
end;
procedure MainLoop;
begin
SetupLogin;
SetupSps;
PlankCount := 0;
T := 0;
repeat
LoadItems;
Loads:= 0;
repeat
if not Banking then
Break;
WalkToPlanker;
Planking;
CheckLoad;
WalkToBank;
Inc(Loads);
Progress;
BreakTime;
Wait(Random(1000));
until(Loads = Players[CurrentPlayer].Integers[1]) or not (LoggedIn);
FreeDTMS;
if Loads = Players[CurrentPlayer].Integers[1] then
begin
Writeln('Script completed total number of loads for ' + Players[CurrentPlayer].Name);
Players[CurrentPlayer].Active := false;
LogOut;
end else
begin
Writeln('Something went wrong, could not complete all loads.' + Players[CurrentPlayer].Name);
LogOut;
Players[CurrentPlayer].Active := false;
end;
NextPlayer(Players[CurrentPlayer].Active);
until False;
end;
begin
FancyStart;
MainLoop;
end.
program SilentFlax;
// Includes...
{$i srl/srl/misc/smart.scar}
{$loadlib sps}
{$i srl/srl.scar}
{$i sps/sps.simba}
Var
X, Y, T, W, Flax, Breaks, Loads: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // This is set to the total amount of players, for now, just keep it set as 1
NumberOfPlayers(HowManyPlayers); // Don't touch
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].Integers[1] := 200;//# of loads to do.
Players[0].Integers[2] := 30; // Time before breaking ( In minutes)
end;
procedure SetupLogin;
begin
ClearDebug;
// Setting up SMART;
Smart_Server := 22;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer; // Logging in...
end;
procedure BreakTime;
var
s, i: Integer;
begin
if (s = 0) then
s := Players[0].Integers[2] * 60000; //+ RandomRange(300000, 600000);
if T = 1 then
begin
W:= GetTimeRunning;
if (W > s) then
begin
Logout;
i:= RandomRange(10, 15);
Writeln('Taking a break for ' + IntToStr(i) + ' minutes');
i:= i * 60000;
Wait(i);
T := 0;
s:= W + s;
Inc(Breaks);
LoginPlayer;
end;
end else
if T = 0 then
begin
T := T + 1;
end;
end;
procedure SetupSps;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['6_6','6_7']);
SPS_Continue := false;
end;
procedure StartFancy;
var
i: Integer;
e: String;
begin
e := '=';
while i < 68 do
begin
Writeln(e);
if (InRange(i, 1, 19)) then
begin
Writeln(' /// ');
Writeln(' / / ');
Writeln(' / / ');
Writeln(' \ \ ');
Writeln(' \ \ ');
Writeln(' \\\ ');
end;
if (InRange(i, 20, 29)) then
begin
Writeln(' /// |--------| ');
Writeln(' / / | |------| ');
Writeln(' / / | | ');
Writeln(' \ \ | |---| ');
Writeln(' \ \ | | ');
Writeln(' \\\ |_| ');
end;
if (InRange(i, 30, 39)) then
begin
Writeln(' /// |--------| |-| ');
Writeln(' / / | |------| | | ');
Writeln(' / / | | | | ');
Writeln(' \ \ | |---| | | ');
Writeln(' \ \ | | | |______ ');
Writeln(' \\\ |_| |________| ');
end;
if (InRange(i, 40, 49)) then
begin
Writeln(' /// |--------| |-| /--\ ');
Writeln(' / / | |------| | | / /\ \ ');
Writeln(' / / | | | | / / \ \ ');
Writeln(' \ \ | |---| | | / /----\ \ ');
Writeln(' \ \ | | | |______ / /------\ \ ');
Writeln(' \\\ |_| |________| /_/ \_\');
end;
if (InRange(i, 50, 59)) then
begin
Writeln(' /// |--------| |-| /--\ \~\ /~/');
Writeln(' / / | |------| | | / /\ \ \ \ / / ');
Writeln(' / / | | | | / / \ \ \ \/ / ');
Writeln(' \ \ | |---| | | / /----\ \ / /\ \ ');
Writeln(' \ \ | | | |______ / /------\ \ / / \ \ ');
Writeln(' \\\ |_| |________| /_/ \_\ /_/ \_\');
end;
if (InRange(i, 60, 69)) then
begin
Writeln(' /// |--------| |-| /--\ \~\ /~/ \\\ ');
Writeln(' / / | |------| | | / /\ \ \ \ / / \ \ ');
Writeln(' / / | | | | / / \ \ \ \/ / \ \');
Writeln(' \ \ | |---| | | / /----\ \ / /\ \ / /');
Writeln(' \ \ | | | |______ / /------\ \ / / \ \ / / ');
Writeln(' \\\ |_| |________| /_/ \_\ /_/ \_\ /// ');
end;
Writeln(e);
e := e + '=';
Wait(50);
Inc(i);
ClearDebug;
end;
Writeln('====================================================================');
Writeln(' /// |--------| |-| /--\ \~\ /~/ \\\ ');
Writeln(' / / | |------| | | / /\ \ \ \ / / \ \');
Writeln(' / / | | | | / / \ \ \ \/ / \ \');
Writeln(' \ \ | |---| | | / /----\ \ / /\ \ / /');
Writeln(' \ \ | | | |______ / /------\ \ / / \ \ / /');
Writeln(' \\\ |_| |________| /_/ \_\ /_/ \_\ ///');
Writeln('=================Brought to you by Silent SPY=======================');
Wait(5000);
end;
procedure Progress;
begin
if not (LoggedIn) then
Exit;
if (InvCount = 28) then
begin
Flax:= Flax + 28;
ClearDebug;
Writeln('|=======================================|');
Writeln('| Flax | Loads | Time Running |# of Breaks|');
Writeln('|' + IntToStr(Flax) + ' |' + IntToStr(Loads) + ' |' + TimeRunning + '|' + IntToStr(Breaks) + '|');
Writeln('|=======================================|');
Writeln('');
end;
end;
procedure Antiban; //idea taken from Coh3n's tutorial.
begin
if not (LoggedIn) then
Exit;
begin
case Random(100) of // Random(100) generates a random integer from 0 to 59
10: RandomRClick;
30: PickUpMouse;
50: RandomMovement;
70: BoredHuman;
89: ExamineInv;
end;
end;
end;
procedure RestUp;
begin
if not (LoggedIn) then
Exit;
begin
SetRest;
while not RunEnergy(95) do
begin
Antiban;
Wait(Random(1000));
end;
end;
end;
function Banking: Boolean;
var
p, t: Integer;
begin
if not (LoggedIn) then
Exit;
if (InvCount < 1) then
Exit;
while (IsMoving) do
begin
Wait(RandomRange(900, 1200));
end;
t := 0; //Tries starts at zero
repeat
Inc(t);
Writeln('Trying to open the bank, this is the ' + IntToStr(t) + ' try out of 5');
MakeCompass('n');
Wait(RandomRange(700, 1000));
OpenBankNPC;
until BankScreen or PinScreen or (t = 5);
if PinScreen then
begin
p := 0;
repeat
InPin(Players[0].Pin);
Inc(p)
until BankScreen or (p > 0) or not (LoggedIn);
end;
if BankScreen then
begin
Writeln('Opened the bank...');
DepositAll;
Wait(RandomRange(500, 1500));
CloseBank;
end;
if (t = 5) then
begin
Writeln('failed to find bank.');
Writeln('Terminating...');
TerminateScript;
end;
end;
procedure WalkToFlax;
var
BankToFlax: TPointArray;
begin
if not (LoggedIn) then
Exit;
if not FindNormalRandoms then
begin
if not RunEnergy(25) then
RestUp;
MakeCompass('n');
Writeln('Walking to flax');
Wait(Random(1000));
BankToFlax := [Point(2716, 2722), Point(2720, 2787),
Point(2727, 2830), Point(2757, 2866),
Point(2792, 2851)];
if SPS_WalkPath(BankToFlax) then
Writeln('At the Field..');
end;
end;
function FlaxColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
R, G, B: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 15723114, MSX1, MSY1, MSX2, MSY2, 21);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 98) and (R <= 113) and (G >= 219) and (G <= 248) and (B >= 224) and (B <= 254) then
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 50.58) and (H <= 50.77) and (S >= 67.72) and (S <= 97.26) and (L >= 63.51) and (L <= 71.59) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 44.30) and (X <= 57.68) and (Y >= 59.25) and (Y <= 77.07) and (Z >= 80.30) and (Z <= 104.76) then
begin
Result := arC[i];
Break;
end;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
procedure GetFlax;
var
i: Integer;
begin
if not (LoggedIn) then
Exit;
if not (FindNormalRandoms) then
begin
SetAngle(true);
while (InvCount < 28) do
begin
while (IsMoving) do
Wait(RandomRange(1000, 1500));
if(FindColorSpiralTolerance(X, Y, FlaxColor, MSX1, MSY1, MSX2, MSY2, 21)) then
begin
Mouse(X, Y, 10, 10, true);
Wait(RandomRange(500, 1000));
X:= MSCX;
Y:= MSCY+30;
AntiBan;
end else
Break;
end;
end;
end;
procedure WalkToBank;
var
FlaxToBank: TPointArray;
begin
if not (LoggedIn) then
Exit;
if not FindNormalRandoms then
begin
if not RunEnergy(25) then
RestUp;
MakeCompass('n');
Writeln('Walking to Bank...');
Wait(Random(1000));
FlaxToBank := [Point(2781, 2860), Point(2735, 2813),
Point(2730, 2760), Point(2728, 2721),
Point(2717, 2671)];
if SPS_WalkPath(FlaxToBank) then
Writeln('At the Bank..');
Wait(RandomRange(1200, 1500));
end;
end;
procedure MainLoop;
begin
SetupLogin;
SetupSps;
T := 0;
for Loads := 0 to Players[0].Integers[1] do
begin
if not (LoggedIn) then
Break;
BreakTime;
Banking;
WalkToFlax;
GetFlax;
WalkToBank;
Progress;
end;
end;
begin
StartFancy;
MainLoop;
end.