Code:
program FireRunner;
{$DEFINE SMART}
{$i srl-6/srl.simba}
{$i sps/lib/sps-rs3.simba}
{$i srl-6/lib/misc/srlplayerform.simba}
const
ColorAltar = 7169129;
ColorPortal = 1519277;
ColorRuins = 7387385;
ColorTolAltar = 10;
ColorTolPortal = 10;
ColorTolRuins = 10;
procedure bank();
begin
bankScreen.open(BANK_CHEST_DUEL);
end;
procedure preset();
begin
if bankScreen.open(BANK_CHEST_DUEL) then
bankScreen.clickButton(BANK_BUTTON_PRESET_1) // Grabs Rune Ess
else
writeLn('Couldn''t find the bank for some reason!');
end;
procedure compass();
var
compassBox: TBox;
begin
compassBox := intToBox(590, 25, 602, 42);
wait(randomRange(1000, 2000));
mouseBox(compassBox, MOUSE_LEFT);
mainScreen.setAngle(MS_ANGLE_HIGH);
end;
procedure runToAltar();
var
pathToAltar: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToAltar := [Point(137, 167), Point(106, 150), Point(82, 113), Point(78, 84)];
if SPS.walkPath(pathToAltar) then
minimap.waitPlayerMoving()
else
writeLn('We failed to walk to the Altar');
end;
procedure ClickRuins(WaitLonger: Boolean); //finds ruin colors, and click it.
var
ColorsFound: TPointArray;
MidPoint: TPoint;
begin
if FindColorsTolerance(ColorsFound, ColorRuins, MainScreen.GetBounds, ColorTolRuins) then
begin
writeLn('==============Entering Ruins!===============');
MidPoint := MedianTpa(ColorsFound);
Mouse(MidPoint, MOUSE_LEFT);
writeLn('==============Entered Ruins!===============');
wait(1500 + randomrange(100,150));
end else
MiniMap.WaitFlag;
if (WaitLonger) then
begin
wait(1500 + randomrange(100,150));
end
end;
procedure CraftRunes(WaitLonger: Boolean); //finds altar colors, if found it clicks altar.
var
ColorsFound: TPointArray;
MidPoint: TPoint;
begin
if FindColorsTolerance(ColorsFound, ColorAltar, MainScreen.GetBounds, ColorTolAltar) then
begin
writeLn('==============Crafting runes!===============');
MidPoint := MedianTpa(ColorsFound);
Mouse(MidPoint, MOUSE_LEFT);
writeLn('==============Done crafting runes!===============');
wait(1500 + randomrange(100,150));
end else
MiniMap.WaitFlag;
if (WaitLonger) then
begin
wait(2500 + randomrange(100,150));
end
end;
procedure ExitPortal(WaitLonger: Boolean); //finds portal colors, if found it clicks portal.
var
ColorsFound: TPointArray;
MidPoint: TPoint;
begin
if FindColorsTolerance(ColorsFound, ColorPortal, MainScreen.GetBounds, ColorTolPortal) then
begin
writeLn('==============Exiting Portal!===============');
MidPoint := MedianTpa(ColorsFound);
Mouse(MidPoint, MOUSE_LEFT);
wait(1500 + randomrange(100,150));
end else
MiniMap.WaitFlag;
if (WaitLonger) then
begin
wait(1300 + randomrange(100,150));
minimap.waitPlayerMoving()
end
end;
procedure goto(); // Stands by altar
var
Square: TBox;
begin
Square := intToBox(463, 335, 519, 379);
wait(randomRange(500, 1500));
mouseBox(Square, MOUSE_LEFT);
minimap.waitPlayerMoving()
end;
procedure runToBank();
var
pathToBank: TPointArray;
begin
if not isLoggedIn() then
exit;
pathToBank := [Point(81, 115), Point(129, 162), Point(192, 153), Point(206, 143)];
if SPS.walkPath(pathToBank) then
minimap.waitPlayerMoving()
else
writeLn('We failed to walk to the Bank');
end;
procedure WaitRandom(MsecToWait: Integer); //Random wait times
begin
Wait(MsecToWait + Random(Round(MsecToWait / 5.0)));
end;
procedure loop();
begin
compass;
waitRandom(200);
bank;
preset;
waitRandom(30);
runToAltar;
ClickRuins(True);
goto;
CraftRunes(True);
ExitPortal(True);
waitRandom(40);
runToBank;
end;
begin
clearDebug();
setupSRL();
SPS.setup('FIRE_RUNE', RUNESCAPE_OTHER);
repeat
loop();
until false;
end.
Using this