Simba Code:
program RatKilla;
{$Define smart}
{$i srl/srl.simba}
{$I SRL/srl/skill/fighting.Simba}
{$i sps/sps.simba}
{$loadlib soundlib.dll}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_Attack;
Active := True;
end;
end;
Var
Kills, Bones, Deaths: Integer;
procedure StartLogin;
begin
ClearDebug;
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 10;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
DeclarePlayers;
LoginPlayer;
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
SetChat('hide', 1);
end;
Procedure WalkToRats;
Var
WalkToGiantRats:TPointArray;
begin
if not LoggedIn then LoginPlayer;
SPS_Setup(RUNESCAPE_SURFACE,['11_8','11_9']);
WalkToGiantRats := [Point(4717, 3562), Point(4687, 3620), Point(4659, 3629), Point(4593, 3629), Point(4567, 3605)];
SPS_WalkPath(WalkToGiantRats)
MakeCompass('S');
end;
procedure Antiban;
Var
WalkBack:TPointArray;
begin
if not LoggedIn then LoginPlayer;
FindNormalRandoms;
case Random(90) of
0..9: RadialWalkTolerance(63487,0,359,25,5,5,2);
2: PickUpMouse;
3: PickUpMouse;
4: BoredHuman;
5: HoverSkill(skill_prayer,false);
6: MakeCompass('N');
7: SetAngle(SRL_ANGLE_HIGH);
8: Wait(5000+random(2000));
9: HoverSkill(skill_attack,false);
end;
end;
Function IsFighting : Boolean;
begin
Result := SSL_hasSound;
end;
Procedure KillRats;
Var
x, y: Integer;
begin
if not LoggedIn then LoginPlayer;
FindNormalRandoms;
If (not InFight) Then
begin
If FindObjCustom(x, y, ['Rat', 'at'], [4605769, 3882302], 5) Then
begin
ClickMouse2(false);
WaitOption('nt', 2000);
Wait(100);
If IsFighting then
begin
WriteLn('Fighting Rat')
Kills := Kills + 1
Wait(randomrange(800,1200));
Repeat
Antiban;
Wait(randomrange(100,200));
Until(not SRL_infight)
end;
Flag;
Wait(randomrange(800,1200));
end;
end;
end;
Procedure GetBones;
Var
x, y: Integer;
begin
if not LoggedIn then LoginPlayer;
FindNormalRandoms;
If (not InFight) Then
begin
If FindObjCustom(x, y, ['take', 'Raw', 'ones'], [12567240], 3) Then
Begin
WriteLn('Bones Located')
GetMousePos(x, y);
Mouse(x, y, 1, 1, false);
Antiban;
WaitOption('ones', 500);
Flag;
end;
end;
end;
Procedure BuryBones;
var
l, m, Bone: Integer;
begin
if not LoggedIn then LoginPlayer;
If (not InFight) Then
Repeat
Bone := DTMFromString('mbQAAAHicY2VgYIhiYmAIA+JUIA4B4iAgXsbIwLCBEUIvgNJdLS1A1Uwo+D8DJmDEgsEAAD57B7A=');
If FindDTM(Bone, l, m, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Case Random(20) Of
0..18: Mouse(l, m, 10, 10, true);
19: begin
Mouse(l, m, 10, 10, true);
HoverSkill(skill_Prayer, False);
WriteLn('Antiban: Prayer XP Check Performed');
end;
20: MissMouse(l+random(400),m+random(400));
end;
Bones := Bones + 1
wait(randomrange(1500,1900));
end;
FreeDTM(Bone);
Until(InvEmpty);
end;
Procedure InvCheck;
begin
if not LoggedIn then LoginPlayer;
If(InvFull) and (not InFight) Then
begin
BuryBones;
end else
exit;
end;
Procedure DeathCheck;
begin
Reincarnate:=true;
if not LoggedIn then LoginPlayer;
If(FindDead) Then
begin
Deaths := Deaths + 1
WriteLn('You died. Returning to rats..');
MouseItem(2, mouse_left);
MouseItem(3, mouse_left);
MouseItem(4, mouse_left);
MouseItem(6, mouse_left);
MouseItem(5, mouse_left);
MouseItem(1, mouse_left);
WalkToRats;
end else
exit;
end;
procedure Proggy;
var
KillsPH, DeathsPH, CombatXPPH:Integer;
begin
if not LoggedIn then LoginPlayer;
wait(100);
KillsPH := Round((Kills * 3600) / (GetTimeRunning / 1000));
DeathsPH := Round((Deaths * 3600) / (GetTimeRunning / 1000));
CombatXPPH := Round(((Kills * 27) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('~~~~~Rat Killer V1.0~~~~~');
Writeln(' ~By BMWxi~ ');
Writeln(' Rats Killed: ' + IntToStr(Kills) + ' (' + IntToStr(KillsPH) + ' P/H)');
Writeln(' Deaths: ' + IntToStr(Deaths) + ' (' + IntToStr(DeathsPH) + ' P/H)');
Writeln(' CombatXP earned: ' + IntToStr(Kills * 20) + ' (' + IntToStr(CombatXPPH) + ' P/H)');
Writeln(' Total Time: ' + TimeRunning);
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
begin
SetupSRL;
DeclarePlayers;
SSL_init(Smart_CurrentClient,400);
StartLogin;
Repeat
KillRats;
DeathCheck;
Proggy
Until(not LoggedIn);
end.