Simba Code:
program Maximas'BarbarianClay;
{$DEFINE SMART}
//{$DEFINE CRASHSMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$i ObjectDTM\ObjDTMInclude.simba}
var
MiningClay: Boolean;
WalkingToBank: Boolean;
Banking: Boolean;
WalkingToMine: Boolean;
Loads: Integer;
ClayMined: Integer;
LvlsGain: Integer;
ExperienceGain: Integer;
///////////////////////////////////
///////////////////////////////////
///// Start Setup ///////
///////////////////////////////////
///////////////////////////////////
const
{---SMART Setup Constants---}
WORLD = 28; //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 := 4;
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.
{Players[1].Name := ''; //Your Runescape username here.
Players[1].Pass := ''; //Your Runescape password here.
Players[1].Active := True; //Set to True if you want to use this player. Set to False to disable this player.
Players[1].Pin := 'Your_Bank_PIN'; //Put your Bank PIN here. Leave alone if you don't have a Bank PIN.
Players[2].Name := '';
Players[2].Pass := 'korn123';
Players[2].Active := True;
Players[2].Pin := 'Your_Bank_PIN';
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Active := True;
Players[3].Pin := 'Your_Bank_PIN'; }
end;
///////////////////////////////////
///////////////////////////////////
///// Dont Touch Below ///////
///////////////////////////////////
///////////////////////////////////
procedure SetupScript;
begin;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('Welcome to Maxima'sBarbarianClay beta');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
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 Maxima ||');
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('| 90% of credit goes to to KeepBotting |');
WriteLn('|========================================|');
WriteLn('');
end;
procedure Bank;
var fx, fy: integer;
Banked: Boolean;
begin
FindNormalRandoms;
MiningClay := False;
WalkingToMine := False;
WalkingToBank := False;
Banking := True;
Banked := False
WriteLn('Banking.');
repeat
if not (IsMoving) then
begin
if OpenBankNPC then
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);
until (Banked)
Progress;
end;
procedure StopScript;
begin
Progress;
Wait(2000);
TerminateScript;
end;
procedure WalkToMine;
var
ToMine: TPointArray;
begin
FindNormalRandoms;
MakeCompass('N');
SetAngle(0);
writeln('We are going to mine some clay!');
SPS_Setup(RUNESCAPE_SURFACE,['10_6','10_7']);
ToMine := [Point(4211, 2681), Point(4176, 2692), Point(4154, 2709), Point(4161, 2741), Point(4166, 2783), Point(4191, 2816), Point(4195, 2862), Point(4196, 2899), Point(4195, 2928), Point(4176, 2974), Point(4155, 3020), Point(4165, 3056)];
SPS_WalkPath(ToMine);
wait(1200+random(250));
end;
procedure MiningFailsafe;
var
runCount: Integer;
begin
if (runCount = 0) then
begin
WalkToMine;
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
if not(LoggedIn) then
begin
DeclarePlayers;
LogInPlayer;
end;
FindNormalRandoms;
MiningClay := True;
WalkingToMine := False;
WalkingToBank := False;
Banking := False;
WriteLn('Deystroy that clay!');
if not (IsMoving) then
begin
if FindObj(x, y, 'ine', 8767469, 35) then
begin
Wait(100 + Random(100));
Mouse(x, y, 2, 2, true);
Inc(ClayMined);
ExperienceGain := ExperienceGain + 5;
end
else
begin
Writeln('Can not find clay, lets try this(;');
Inc(rockNotFound);
end;
if not FindObj(x, y, 'ine', 8767469, 35) and (rockNotFound >= 4) then
begin
Writeln('This is "this"');
rockNotFound := 0;
MiningFailsafe;
end;
end;
repeat
wait(2000+random(1500));
AntiBan;
Until not IsUpText('ew') or (InvFull);
until(InvFull);
WriteLn('You have mined 28 clay and gained 140exp you rock!');
rockNotFound := 0;
end;
procedure WalkBank;
var
ToBank: TPointArray;
begin
FindNormalRandoms;
MakeCompass('N');
SetAngle(0);
writeln('Putting away clay for use later!');
SPS_Setup(RUNESCAPE_SURFACE,['10_7','10_6']);
wait(1000+random(250));
ToBank:= [Point(4177, 3041), Point(4176, 2996), Point(4180, 2964), Point(4197, 2932), Point(4201, 2895), Point(4200, 2868), Point(4198, 2832), Point(4198, 2809), Point(4183, 2788), Point(4162, 2766), Point(4156, 2721), Point(4172, 2692), Point(4185, 2684), Point(4212, 2685), Point(4209, 2674)];
SPS_WalkPath(ToBank)
wait(1000+random(250));
end;
procedure CrashSMART;
begin
Writeln('You are using CRASHSMART, so we are going to reload your client after the RS update!');
SmartgetFieldObject(1488,'crash'); // will crash SMART (and Simba).
// IF THIS DOES NOT CRASH YOUR SIMBA, YOU ARE NOT USING THE PROPER PLUGIN
// AN ACCESS VIOLATION HERE IS NOT THE CRASH; MAKE SURE YOU MOVED THE EDITED PLUGIN
Wait(5000);
WriteLn('CRASHSMART Failed: Make sure you are using the proper plugin!');
WriteLn('Read more about this feature at villavu.com/forum/showthread.php?t=67864');
TerminateScript;
end;
begin
Smart_Server := WORLD;
Smart_Members := MEMBERS;
Smart_Signed := SIGNED;
Smart_SuperDetail := False;
//SRL_Procs[srl_OnRSUpdate] := @CrashSMART;
SetupScript;
DeclarePlayers;
wait(1500+random(1000));
LoginPlayer();
if (InvCount<28) then
begin
WalkToMine;
end;
if (InvCount=28) then
begin
WalkBank;
Bank;
Progress;
WalkToMine;
end;
repeat
MineClay;
wait(1000+random(250));
WalkBank;
wait(1000+random(250));
Bank;
Progress;
wait(1000+random(500));
WalkToMine;
if not(LoggedIn) then
begin
DeclarePlayers;
LogInPlayer;
end;
until AllPlayersInactive;
end.