SCAR Code:
program IronMinerSuperHeaterBanker;
{.include SRL/SRL.scar}
// start in al-kharad bank, the most north booth
// have map facing north at highest angle
// have rs on v-bright
// have pick-axe unequiped, a fire staff equiped, and 26 natures in ur 2nd inv spot
// have ur other natures in the top right vorner of your bank
// you might have to go through and get some colors but just try it first before you do
// fill out ur srl id/pass, and declare your player, then hit run
var
x, y: Integer;
time: Integer;
i: Integer;
Ores: Integer;
Loads: Integer;
Bars: Integer;
const // DONT CHANGE UNLESS NECCESARY
IronColor= 2766938; // set color of iron in the rock
RockColour= 2439027; // rock outside bank
CactusColour= 1186104; //dont change
Water= 12227199; // water north of gem stall
RockColour2= 2900095; // rocks in a + formation
SuperHeatColor= 65927; //color of the red in the superheat in mage book
IronColor2= 2305610; //iron ore in inv
RockColour3= 4017533; // rocks by waters
FloorColor= 6854809;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
SRLId:= 'idhere';
SRLPassword:= 'srlpasshere';
Players[0].Name := 'usernamehere';
Players[0].Pass := 'passhere';
Players[0].Nick := 'nickhere'; //3 - 4 letters of YOUR username, example: sern
Players[0].Active := True;
end;
procedure ProgressReport;
begin
ClearDebug;
Writeln('[]========================================[]');
Writeln('---------------->Our Proggy<----------------');
Writeln(' did ' + IntToStr(Loads) + ' Loads' + ' ');
Writeln('---------------------------------------------');
Writeln(' Mined ' + IntToStr(Ores) + ' Ores' + ' ');
Writeln('---------------------------------------------');
Writeln(' Superheated ' + IntToStr(Bars) + ' Ores into Bars' + ' ');
Writeln('[]========================================[]');
SRLRandomsReport;
end;
procedure Signature;
begin
ClearDebug;
writeln('Ummmmm0ks Iron Miner SuperHeater Banker');
wait(75 + random(75));
writeln(' ____ ___ _______ __ ');
wait(75 + random(75));
writeln('| | \_____ _____ _____ _____ _____ \ _ \ | | __');
wait(75 + random(75));
writeln('| | / \ / \ / \ / \ / \/ /_\ \| |/ /');
wait(75 + random(75));
writeln('| | / Y Y \ Y Y \ Y Y \ Y Y \ Y Y \ \_/ \ < ');
wait(75 + random(75));
writeln('|______/|__|_| /__|_| /__|_| /__|_| /__|_| /\_____ /__|_ \');
wait(75 + random(75));
writeln(' \/ \/ \/ \/ \/ \/ \/');
wait(75 + random(75));
writeln('.___ _____ .__ ');
wait(75 + random(75));
writeln('| |______ ____ ____ / \ |__| ____ ___________ ');
wait(75 + random(75));
writeln('| \_ __ \/ _ \ / \ / \ / \| |/ \_/ __ \_ __ \');
wait(75 + random(75));
writeln('| || | \( <_> ) | \ / Y \ | | \ ___/| | \/');
wait(75 + random(75));
writeln('|___||__| \____/|___| / \____|__ /__|___| /\___ >__| ');
wait(75 + random(75));
writeln(' \/ \/ \/ \/ ');
wait(75 + random(75));
writeln(' _________ ');
wait(75 + random(75));
writeln(' / _____/__ ________ ___________ ');
wait(75 + random(75));
writeln(' \_____ \| | \____ \_/ __ \_ __ \');
wait(75 + random(75));
writeln(' / \ | / |_> > ___/| | \/');
wait(75 + random(75));
writeln('/_______ /____/| __/ \___ >__| ');
wait(75 + random(75));
writeln(' \/ |__| \/ ');
wait(75 + random(75));
writeln(' ___ ___ __ ');
wait(75 + random(75));
writeln(' / | \ ____ _____ _/ |_ ___________ ');
wait(75 + random(75));
writeln('/ ~ \_/ __ \\__ \\ __\/ __ \_ __ \');
wait(75 + random(75));
writeln('\ Y /\ ___/ / __ \| | \ ___/| | \/');
wait(75 + random(75));
writeln(' \___|_ / \___ >____ /__| \___ >__| ');
wait(75 + random(75));
writeln(' \/ \/ \/ \/ ');
wait(75 + random(75));
writeln('__________ __ ');
wait(75 + random(75));
writeln('\______ \_____ ____ | | __ ___________ ');
wait(75 + random(75));
writeln(' | | _/\__ \ / \| |/ // __ \_ __ \');
wait(75 + random(75));
writeln(' | | \ / __ \| | \ <\ ___/| | \/');
wait(75 + random(75));
writeln(' |______ /(____ /___| /__|_ \\___ >__| ');
wait(75 + random(75));
writeln(' \/ \/ \/ \/ \/ ');
wait(75 + random(75));
writeln('Ummmmm0ks Iron Miner SuperHeater Banker');
end;
procedure Antiban;
begin
if(not(LoggedIn))then Exit;
Status('Antiban...');
begin
case Random(60) of
0: wait(500+random(10000));
1: RandomMovement;
2: PickUpMouse;
3: gametab(4);
4: RandomMovement;
end;
end;
end;
procedure WalkToMine;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'cookery')) then
MMouse(x, y, 5, 5);
Wait(200+random(100));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkToMine2;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'minigame')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkToMine3;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'Sword shop')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkToMine4;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'silk stall')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkToMine5;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'gem stall')) then
MMouse(x, y, 5, 5);
Wait(200+random(200));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkToMine6;
begin
if (FindColor(x, y, CactusColour, 601, 4, 630, 23)) then
begin
MMouse(x, y, 5, 5);
Wait(3000+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkToMine7;
begin
if (FindColor(x, y, CactusColour, 581, 25, 693, 53)) then
begin
MMouse(x, y, 5, 5);
Wait(200+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkToMine8;
begin
if (FindColor(x, y, CactusColour, 582, 27, 687, 51)) then
begin
MMouse(x, y, 5, 5);
Wait(400+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkToMine9;
begin
if (FindColorTolerance(x, y, RockColour2, MMX1, MMY1, MMX2, MMY2, 5)) then
begin
MMouse(x, y, 5, 5);
Wait(500+random(100));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkToMine10;
begin
Writeln('Walking to mine')
AntiBan;
FindNormalRandoms;
FindTalk;
WalkToMine;
WalkToMine2;
WalkToMine3;
WalkToMine4;
WalkToMine5;
WalkToMine6;
WalkToMine7;
WalkToMine8;
WalkToMine9;
SymbolAccuracy := 0.4;
If (FindSymbol(x, y, 'mining site')) then
MMouse(x, y, 5, 5);
Wait(200+random(200));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
Writeln('Found Mine! Beginning to mine')
end;
procedure GetOre;
begin
AntiBan;
repeat;
FindNormalRandoms;
FindTalk;
wait(500 + random(500));
if FindColorSpiralTolerance(x, y, IronColor, 4, 6, 513, 336, 3) then
begin
MMouse(x, y, 3, 3); // more random, coord.
Wait(50 + random(25));
if (IsUpText('ine')) then // Check up text.
begin
wait(200 + random(100));
Mouse(x, y, 1, 1, true);
wait(2500 + random(200));
Ores:=Ores+1;
ReportVars[0]:= ReportVars[0] + 1;
end;
end;
Wait(2000 + random(200)); // So it won't endlessly click.
until (InvFull);
Loads:=Loads+1;
ReportVars[2]:= ReportVars[2] + 1;
end;
procedure SuperHeat1;
begin
Gametab(7);
wait(1200 + random(300));
if (FindColorTolerance(x, y, SuperHeatColor, 653, 299, 680, 323, 15)) then
begin
MMouse(x, y, 3, 3); // more random, coord.
Wait(50 + random(25));
if (IsUpText('ast')) then // Check up text.
begin
wait(200 + random(100));
Mouse(x, y, 1, 1, true);
end;
end;
end;
procedure SuperHeat2;
begin
i:= 0;
GameTab(7);
AntiBan;
Writeln('Starting to Superheat')
repeat;
FindNormalRandoms;
FindTalk;
GameTab(7);
i:= i + 1;
SuperHeat1;
wait(300 + random(100));
if (FindColorTolerance(x, y, IronColor2, 689, 432, 724, 458, 15)) then
begin
wait(200+random(150));
MMouse(x, y, 3, 3);
wait(50+random(75));
Mouse(x, y, 1, 1, true);
Bars:=Bars+1;
ReportVars[3] := ReportVars[3] + 1;
end;
until(i >= 26);
end;
procedure WalkBack;
begin
GameTab(4);
if (FindColorTolerance(x, y, RockColour2, 568, 120, 604, 153, 5)) then
begin
MMouse(x, y, 5, 5);
Wait(3000+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkBack1;
begin
if (FindColor(x, y, CactusColour, 575, 118, 652, 152)) then
begin
MMouse(x, y, 5, 5);
Wait(400+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkBack2;
begin
if (FindColor(x, y, CactusColour, 573, 127, 652, 154)) then
begin
MMouse(x, y, 5, 5);
Wait(400+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkBack3;
begin
if (FindColor(x, y, Water, 629, 126, 674, 139)) then
begin
MMouse(x, y, 5, 5);
Wait(400+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkBack4;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'gem stall')) then
MMouse(x, y, 5, 5);
Wait(200+random(200));
Mouse(x, y, 5, 5, True);
Wait(5000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkBack5;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'silk stall')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkBack6;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'Sword shop')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkBack7;
begin
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'minigame')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
end;
procedure WalkBack8;
begin
if (FindColor(x, y, FloorColor, 554, 120, 588, 155)) then
begin
MMouse(x, y, 5, 5);
Wait(3000+random(200));
Mouse(x,y,5,5,true);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
end;
end;
procedure WalkBack9;
begin
FindNormalRandoms;
FindTalk;
AntiBan;
Writeln('Finished mining and superheating, walking to bank')
WalkBack;
WalkBack1;
WalkBack2;
WalkBack3;
WalkBack4;
WalkBack5;
WalkBack6;
WalkBack7;
WalkBack8;
SymbolAccuracy := 0.5;
If (FindSymbol(x, y, 'bank')) then
MMouse(x, y, 5, 5);
Wait(400+random(175));
Mouse(x, y, 5, 5, True);
Wait(3000); //Waits 2 seconds for the flag to appear on screen
FFlag(10);
SymbolAccuracy := 0.8; //Remember to change it back to 0.8 when you are done.
Writeln('Found the bank! Banking ores and retrieving nats')
end;
procedure Bank;
begin
MarkTime(time); //this will start a timer
repeat;
if (not(Loggedin)) then break; //if you're chat is not logged in it will break out of the loop
OpenBankQuiet('feb'); // ^^
until(BankScreen or (TimeFromMark(time) > 120000)); // if it took longer then 2 minutis then it will stop trying to open the bank.
if Bankscreen then //make sure it has open the bank
begin
Deposit(2, 27, 2);
Wait(1000+random(500));
Withdraw(8, 1, 26);
CloseBank;
end;
end;
begin
SetupSRL;
ScriptId:= '589';
DeclarePlayers;
if not Loggedin then LoginPlayer;
Signature;
repeat
if (not (LoggedIn)) then
Exit;
FindNormalRandoms;
FindTalk;
WalkToMine10;
AntiBan;
GetOre;
AntiBan;
SuperHeat2;
ProgressReport;
SendSRLReport;
WalkBack9;
Bank;
FindNormalRandoms;
FindTalk;
AntiBan;
until (false)
end.