SCAR Code:
program IronMinerSuperHeaterBanker;
{.include SRL/SRL.scar}
var
x, y: Integer;
time: Integer;
i: Integer;
Ores: Integer;
Loads: Integer;
const // DONT CHANGE UNLESS NECCESARY
IronColor= 2766938; // set color of iron in the rock
RockColour= 4478601; // rock outside bank
CactusColour= 2764610; //dont change
Water= 12227199; // water north of gem stall
RockColour2= 4017533; // 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
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
SRLId:= '';
SRLPassword:= '';
Players[0].Name := 'xxxxxxxxx';
Players[0].Pass := 'xxxxx';
Players[0].Nick := 'xxx'; //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(' Did ' + IntToStr(Ores) + ' Clicks' + ' ');
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');
wait(2000 + random(500));
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 Randoms; // By MasterKill
begin
FindNormalRandoms;
{var
R: Integer;
begin
For R := 1 To 13 Do
begin
If Not LoggedIn Then Exit;
Case R Of
1: If FindMod then
begin
LogOut;
WriteLn('* Wait 15 + random 5 min. before come-back');
Wait(900000 + Random(300000));
WriteLn('* Time to come back! log in:');
LoginPlayer;
end;
2: FindTalk;
3: If SolveChatRandom then
begin
Players[CurrentPlayer].Loc := Players[CurrentPlayer].Rand
WriteLn(Players[CurrentPlayer].Name + ' = ' + Players[CurrentPlayer].Loc);
end;
4: FindInventoryRandoms;
5: If FindDemon then
begin
Players[CurrentPlayer].Loc := 'Cammo random';
SolveDemon;
end;
6: If FindQuiz then
begin
Players[CurrentPlayer].Loc := 'Quiz random';
SolveQuiz;
end;
7: If FindDead then
begin
Players[CurrentPlayer].Loc := 'O dear your dead';
WriteLn('O dear you are dead');
LogOut;
end;
8: If FindMime then
begin
WriteLn('mime random found, can not slove...');
Players[CurrentPlayer].Loc := 'Mime random';
end;
9: If FindMaze then
begin
WriteLn('Maze random found, can not slove...');
Players[CurrentPlayer].Loc := 'Maze random'
end;
10: FindTalk;
11: If NoGameTab then
begin
Wait(5000 + random(3000));
if SolveChatRandom then Exit;
Players[CurrentPlayer].Loc := 'no GameTab';
LogOut;
end;
12: if FindFight then
begin
MakeCompass('n');
mouse(630, 154, 5, 5, True);
Wait(15000+random(5000));
Mouse(630, 15, 5, 5, True);
end;
13: FindATradeByRick;
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, 611, 12, 638, 31)) 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 (FindColor(x, y, RockColour2, MMX1, MMY1, MMX2, MMY2)) 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
AntiBan;
Randoms;
WalkToMine;
WalkToMine2;
WalkToMine3;
WalkToMine4;
Randoms;
WalkToMine5;
WalkToMine6;
WalkToMine7;
WalkToMine8;
WalkToMine9;
Randoms;
SymbolAccuracy := 0.5;
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.
end;
procedure GetOre;
begin
AntiBan;
repeat;
Randoms;
wait(500 + random(500));
if FindColorSpiral(x, y, IronColor, 4, 6, 513, 336) then
begin
MMouse(x, y, 3, 3); // more random, coord.
Wait(50 + random(25));
if (IsUpText('ine')) then // Check up text.
begin
Randoms;
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[0]:= ReportVars[0] + 1;
end;
procedure SuperHeat1;
begin
Gametab(7);
wait(1500 + random(500));
if (FindColor(x, y, SuperHeatColor, 653, 299, 680, 323)) 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;
AntiBan;
repeat;
i:= i + 1;
Randoms;
SuperHeat1;
wait(300 + random(100));
if (FindColor(x, y, IronColor2, 689, 432, 724, 458)) then
begin
wait(200+random(150));
MMouse(x, y, 3, 3);
wait(50+random(75));
Mouse(x, y, 1, 1, true);
end;
until(i >= 26);
end;
procedure WalkBack;
begin
if (FindColor(x, y, RockColour2, 568, 120, 604, 153)) 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, 652, 152, 579, 118)) 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, 617, 133, 677, 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 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, RockColour, 554, 99, 589, 133)) 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
Randoms;
AntiBan;
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.
end;
procedure Bank;
begin
Randoms;
AntiBan;
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
WriteLn('in the bank');
Deposit(2, 27, 2);
Withdraw(8, 1, 26);
CloseBank;
end;
end;
begin
SetupSRL;
ScriptId:= '589';
DeclarePlayers;
if not Loggedin then LoginPlayer;
LoginPlayer;
Signature;
repeat
if (not (LoggedIn)) then
Exit;
Randoms;
AntiBan;
WalkToMine10;
GetOre;
Randoms;
AntiBan;
SuperHeat2;
WalkBack9;
Bank;
ProgressReport;
SendSRLReport;
Randoms;
AntiBan;
until (false)
end.