drawboy11
2012-02-11 03:10:06
This is a script for personal use, not releasing it. It is a combination of the two clay miners we have, I changed the banking location, teh DTM's work great, however when it gets to the bank it wont fully go inside and then it doesnt look for the banker, help? Thanks guys ;P
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.