Simba Code:
program DrawboysBarbClayrevision;
{$DEFINE SMART} //Comment this and select a client to run this kbScript in an Internet browser/Runescape client.
{$i srl/srl.simba}
{$i sps/sps.simba}
var //Don't touch these or your walking/progress reports won't work.
MiningClay: Boolean;
WalkingToBank: Boolean;
Banking: Boolean;
WalkingToMine: Boolean;
Loads: Integer;
ClayMined: Integer;
LvlsGain: Integer;
ExperienceGain: Integer;
x, y: Integer;
Q: Array [0..10] of Integer;//DTM Declaring procedure.
aFound: Extended;
///////////////////////////////////Start setting up the script here. Refer to the comments if you don't know what you're doing.
///////////////////////////////////
///// Start Setup ///////
///////////////////////////////////
///////////////////////////////////Start setting up the script here. Refer to the comments if you don't know what you're doing.
const
{---SMART Setup Constants---}
WORLD = 15; //Put your desired Runescape world number here. Leave it as 0 to choose a random world.
MEMBERS = False; //False if you are Free-To-Play. True if you are a Member.
SIGNED = True; //True if running a single account, False otherwise. This script only declares 1 player anyway, so just leave this alone.
{---------------------------}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username here.
Players[0].Pass := ''; //Your Runescape password here.
Players[0].Active := True; //Set to True if you want to use this player. Set to False to disable this player.
Players[0].Pin := 'Your_Bank_PIN'; //Put your Bank PIN here. Leave alone if you don't have a Bank PIN.
end;
///////////////////////////////////Don't modify the script ANY FURTHER unless you know what you're doing. You could break stuff!
///////////////////////////////////
///// Stop Setup ///////
///////////////////////////////////
///////////////////////////////////Don't modify the script ANY FURTHER unless you know what you're doing. You could break stuff!
procedure SetupScript;
begin;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('Welcome to DrawboysBarbClay beta');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
procedure SetDTM;//DTM Defining procedure.
begin
Q[0] := DTMFromString('mrAAAAHic42BgYJjPxMAwGYgXAPEaIF4JxEuB2AuI24DYAagmFojjodgFiHWA2AKIRYC4ME+ZoTxPlaG5SJPBSVuIISFOjiEzTY8hKVWBITtUn4EfqAYfZiSAYQAAjFcOpA==');
Q[1] := DTMFromString('m1gAAAHic42JgYGhhYmCoAOKJQLwQiFcB8TogngkVTwPiMiDWBap1BGIPIHYHYlcgtgJiVSAWAWIpIDYC4rgYLYbMND2GuER5MDvGVZahvXcWg4+jBENciB1DZrAeQ2aiHgM/UC0xmJFIjAAAtDMRuQ==');
Q[2] := DTMFromString('mlwAAAHicY2dgYEhiYmDIBuIMIA4CYm8gDoOKSQLltYDYCoo1gVgMiOWAODNWjyHYToohKsCaITvenSE3SIkhP0GZIdRVmoEfKI8LM+LBUAAA0SgKSg==');
Q[3] := DTMFromString('mrAAAAHic42BgYChgYmAIBuJMIO4G4iYgngPE84A4B4ilgWrMgNgeiHWA2BiINYFYFYgFgTg8RouhONGYoTxPlSE3S4mhOEuFITVWniHGVZYhGijHD1SDDzMSwDAAALXODS4=');
Q[4] := DTMFromString('m6wAAAHic42ZgYChiYmCIAeIsIK4A4j4gngnES4C4G4jrgDgbiIOBWBao3gKI3YE4EIi9gdgZKiYHxMJALALEEkAcFKvBkJJuwWCiw8kQlqjFEBghzZCUKs/QNmkWQxhQzs5djiEk0IIhKSmGgR+onljMSAJGAgDACBIf');
Q[5] := DTMFromString ('mrAAAAHic42BgYIhhYmBwAWJ7IHYA4kwgLgTiSCDOBmIToBpXILYAYk0gFgRiUyAOB2IvIPYNUWYIiDViiPaSZfCPVmcICbQA47S0BDDND1SDDzMSwDAAAAtKDBA=');
Q[6] := DTMFromString ('mrAAAAHic42BgYEhhYmBwAWILIPYE4mQgbgDiEiCeA8TCQDUWQBwDxHJA7AnEpkBsDMSKQOwfrc7gVWzC4B6oxBAUL8vgHabCEBJoweDho8Dg7KrGwA9Ugw8zEsAwAAD7ngua');
Q[7] := DTMFromString ('m1gAAAHic42JgYJjKxMBQC8QFQNwExBOAeDYQr2KCyDUCcRcQ6wPVmgOxIxDbA7EtEDsBsTcQZwJxAhBLAXFgWACDX5g6Q2C8AoNPiBqDl58KQ3CgNYO1PYQGyYHY/EC1xGBGIjECAABQJBCk');
Q[8] := DTMFromString ('mwQAAAHic42RgYJjMxMCwAIoXAvESIM4C4jworgViXwYIDgViFyB2AOIEIHYCYi0gdgTi5Fh/hh/vuMH4w2MI7ROixmBhq8xgaqXOEBgWwEAMYCQCwwEAcB8TKw==');
Q[9] := DTMFromString ('mrAAAAHic42BgYJjGxMCwEIoXAHEOEOdDcQ0Q+wDVhDBAaGcg9gJiCyDWBuIwIE6O9Wf48JgbjH+842awdZJncPdRZrCw1WQIDAtg4AeqwYcZCWAYAABAcRCu');
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]);
FreeDTM(Q[6]);
FreeDTM(Q[7]);
FreeDTM(Q[8]);
FreeDTM(Q[9]);
end;
procedure AntiBan;
begin
if not LoggedIn then
Exit;
FindNormalRandoms;
If LevelUp then
begin
WriteLn('Congratulations, You Have Just Leveled Up!');
Inc(LvlsGain);
end;
case Random(61) of
10: RandomRClick;
20: HoverSkill('Mining', False);
30: PickUpMouse;
40: RandomMovement;
50: BoredHuman;
60: ExamineInv;
end;
end;
procedure AntiBanLg;
begin
if(not(LoggedIn))then
exit;
FindNormalRandoms;
case Random(3) of
0:
begin
WriteLn('AntiBanLg chosen: Hover Skill.');
HoverSkill('Mining', false); //This hovers your mouse over the Woodcutting skill.
wait(2500+Random(500));
end;
1:
begin
WriteLn('AntiBanLg chosen: Move Camera.');
MakeCompass('N'); //This fiddles around with the Camera. Aligns the Camera North, rotates the Camera South, then aligns North again.
wait(100+random(133));
MakeCompass('S');
wait(50+random(133));
MakeCompass('N');
end;
2:
begin
WriteLn('AntiBanLg chosen: Bored Human.');
BoredHuman;
end;
end;
end;
procedure Progress;
begin
WriteLn('');
WriteLn('|========================================|');
WriteLn('|| Modified by Drawboy11 ||');
WriteLn('|| ||');
WriteLn('|========================================|')
WriteLn('|| Running For: ' + PadR(TimeRunning, 19) + '||')
WriteLn('|========================================|');
WriteLn('| Exp | Lvls | Clay Mined | Loads |');
WriteLn('|----------------------------------------|');
WriteLn('| | | | |');
WriteLn('| ' + PadR(IntToStr(ExperienceGain), 8) + '| ' + PadR(IntToStr(LvlsGain), 4) + '| ' + PadR(IntToStr(ClayMined), 7) + '| ' + PadR(IntToStr(Loads), 4) + '|');
WriteLn('| | | | |');
WriteLn('|----------------------------------------|')
WriteLn('| Thanks For Using The Script |');
WriteLn('|========================================|');
WriteLn('');
end;
procedure Bank;
var fx, fy: integer;
Banked: Boolean;
begin
MiningClay := False;
WalkingToMine := False;
WalkingToBank := False;
Banking := True;
Banked := False
WriteLn('Banking.');
repeat
if not (IsMoving) then
begin
if FindObj(x, y, 'Banker', 4139568, 35) then
begin
Mouse(x, y, 2, 2, false);
ChooseOption('Bank banker');
repeat
Wait(1000 + Random(1000));
DepositAll();
Wait(250 + Random(500));
until not InvFull;
CloseBank();
Wait(500 + Random(1000));
Banked := True
end;
WriteLn('Done Banking.');
Inc(Loads);
Progress;
end;
until (Banked)
end;
procedure StopScript;
begin
Progress;
Wait(2000);
TerminateScript;
end;
procedure MiningFailsafe;
var
runCount: Integer;
begin
if (runCount = 0) then
begin
Writeln('Run Count 0');
Wait(100 + random(50));
KeyDown(VK_DOWN);
Wait(500 + random(1000));
KeyUp(VK_DOWN);
Wait(100 + random(50));
Inc(runCount);
end
else if (runCount = 1) then
begin
Writeln('Run Count 1');
Wait(100 + random(50));
KeyDown(VK_LEFT);
Wait(100);
KeyUp(VK_LEFT);
Wait(100 + random(50));
Inc(runCount)
end
else if (runCount = 2) then
begin
Writeln('Run Count 2');
Wait(100 + random(50));
KeyDown(VK_LEFT);
Wait(1000);
KeyUp(VK_LEFT);
Wait(100 + random(50));
Inc(runCount)
end
else if (runCount = 3) then
begin
Writeln('Run Count 3');
Wait(100 + random(50));
KeyDown(VK_LEFT);
Wait(2000);
KeyDown(VK_LEFT);
Wait(100 + random(50));
Inc(runCount)
end
else if (runCount = 4) then
begin
Writeln('Run Count 4');
Wait(100 + random(50));
KeyDown(VK_LEFT);
Wait(50 + random(100));
KeyDown(VK_UP);
Wait(2000);
KeyUp(VK_LEFT);
Wait(50 + random(100));
KeyUp(VK_UP);
Wait(100 + random(50));
Inc(runCount)
end
else
StopScript;
end;
procedure MineClay;
var
x, y: integer;
rockNotFound: integer;
begin
repeat
FindNormalRandoms;
MiningClay := True;
WalkingToMine := False;
WalkingToBank := False;
Banking := False;
WriteLn('Mining Clay');
if not (IsMoving) then
begin
if FindObj(x, y, 'ine', 8767469, 35) then
begin
Wait(100 + Random(100));
if not (IsUpText('oe the')) then
Mouse(x, y, 2, 2, true);
wait(350+random(100));
Inc(ClayMined);
ExperienceGain := ExperienceGain + 5;
end
else
begin
Writeln('No Clay Rocks Available At The Moment.');
Inc(rockNotFound);
end;
if not FindObj(x, y, 'ine', 8767469, 35) and (rockNotFound >= 4) then
begin
Writeln('Doing A Mining Failsafe.');
rockNotFound := 0;
MiningFailsafe;
end;
end;
repeat
wait(2000+random(1500));
AntiBan;
Until not IsUpText('ew') or (InvFull);
until(InvFull);
WriteLn('Inventory Is Full.');
rockNotFound := 0;
end;
begin
Smart_Server := WORLD; //This sets up the SMART Minimizing Autoing Resource Thing.
Smart_Members := MEMBERS;
Smart_Signed := SIGNED;
Smart_SuperDetail := False;
SetupSRL; //This sets up SRL.
SetupScript; //This runs your SetupScript procedure, giving you information about this particular kbScript.
DeclarePlayers; //This runs your DeclarePlayers procedure, making sure that the script has a player to run.
LoginPlayer; //This logs in your player.
repeat
MineClay; //This mines your clay.
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.
SetAngle(0);//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-5), y, 3, 3, True);
FFlag(6);
repeat
Wait(50 + Random(25));
until FindDTMRotated(Q[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[6], 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[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[7], 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[8], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[8], 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[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
FrDTM;
if FindDTMRotated(Q[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
end;
end;
Bank; //This banks your clay
Progress; //This writes your progress reports.
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.
SetAngle(0);//Does not matter but it looks cooler from above.
if FindDTMRotated(Q[8], 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[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[7], 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[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
if FindDTMRotated(Q[6], 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);
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[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-5), 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[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[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound);
end;
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);
FrDTM;
end;
until AllPlayersInactive;
end.