SCAR Code:
program PowerMin0r;
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Mining.scar}
{////////////////////////////////////////////////////////////////////////////////
Use SRL 4 (I use Rev. #5-#6) and DiVi 3.12(a,b,c)
/////////////////////////////////////////////////////////////////////////////////
Start Logged In/Out.
/////////////////////////////////////////////////////////////////////////////////
NOT AUTOCOLOR!!! READ BELOW
/////////////////////////////////////////////////////////////////////////////////
Advice to set all 3 colors. (E.X: If there are 3 rocks, set 3 different colors)
Default colors are for Iron Ore.
/////////////////////////////////////////////////////////////////////////////////
I know, i need to clean it up, only the Mainloop is ordered atm, Will work on it.
////////////////////////////////////////////////////////////////////////////////}
var
x, y, RocksMined, O : Integer;
RockColor: Array [0..2] of Integer;
const
RunDir = 'W'; //Direction to run when in fight
Angle = 'S'; //Wich compass angle? (N, E, S, W)
Color1 = 1581113; //One color of the ore
Color2 = 1583170; //Another color of the ore
Color3 = 1646647; //Another color of the ore
HowMuchLoads = 10;//How many loads to mine.
PickWield = True; //Wield Pick? True or False.
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '' ; //Your Username.
Players[0].Pass := '' ; // Your Password.
Players[0].Nick := '' ; // 3-4 letters from your name.
Players[0].Active := True ; //True = Use player, False = Don't use.
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
procedure LoadArrays;
begin
RockColor[0] := Color1;
RockColor[1] := Color2;
RockColor[2] := Color3;
end;
procedure RunOn;
begin
if not LoggedIn then Exit;
Mouse(674, 482, 2, 2, true);
if (FindColorTolerance(x, y, 4803917, 625, 414, 658, 447, 10)) then
Mouse(x, y, 5, 5, true);
end;
procedure MineThaOre;
begin
if not LoggedIn then Exit;
if (FindColorSpiralTolerance(x, y, RockColor[0], 5, 5, 500, 336, 5)) or
(FindColorSpiralTolerance(x, y, RockColor[1], 5, 5, 500, 336, 5)) or
(FindColorSpiralTolerance(x, y, RockColor[2], 5, 5, 500, 336, 5)) then
begin
MMouse(x, y, 3, 3);
wait(100+random(100));
if IsUpText('ine') then
begin
GetMousePos(x, y);
Mouse(x, y, 3, 3, True);
GasFound(x, y);
wait(3000+random(1000));
RocksMined := RocksMined + 1;
end else
begin
Players[CurrentPlayer].Active := False;
LogOut;
end;
end;
end;
procedure Proggy;
begin
ClearDebug;
Writeln('|+++++++++++++++++++++++++++++++++++++++++++++|');
Writeln('Made by Floor66');
Writeln('///////////////////////////////////////////////');
Writeln('Copy? : Yes, but, CREDIT!');
Writeln('\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');
Writeln('Ores Mined: '+IntToStr(RocksMined)+'');
Writeln('|+++++++++++++++++++++++++++++++++++++++++++++|');
end;
procedure Credits;
begin
ClearDebug;
Writeln('+++++++++++++++++++++++++++CREDITS:+++++++++++++++++++++++++++');
wait(250);
Writeln(' _____ __ ______ ______ _____ ____ ____ ');
wait(250);
Writeln('/\ __\ /\ \ /\ ___\/\ ___\/\ __\ / ___\ / ___\ ');
wait(250);
Writeln('\ \ \_\ \ \ \ \ \ \/\ \ \ \/\ \ \ \_\ \ /\ \__/_/\ \__/_ ');
wait(250);
Writeln(' \ \ _\ \ \ \ __\ \ \ \ \ \ \ \ \ \ / \ \ _ \ \ _ \ ');
wait(250);
Writeln(' \ \ \/ \ \ \_\ \\ \ \_\ \ \ \_\ \ \ \\ \ \ \ \_\ \ \ \_\ \');
wait(250);
Writeln(' \ \_\ \ \____/ \ \_____\ \_____\ \_\ \_ \ \____/\ \____/');
wait(250);
Writeln(' \/_/ \/___/ \/_____/\/_____/\/_/\/_/ \/___/ \/___/ ');
wait(250);
Writeln('++++++++++++++++++++++++++++CREDITS:++++++++++++++++++++++++++');
wait(1000);
end;
procedure Randoms;
begin
if not LoggedIn then Exit;
FindTalk;
FindNormalRandoms;
FindLamp('mining');
SolvePinball;
if FindFight then
begin
RunTo(RunDir, True);
Wait(15000 + random(5000));
RunBack;
end;
end;
procedure Drop;
var
x, y, Ore: Integer;
begin
Ore := DTMFromString('78DA637466626078C2800618E1E47F2060F40' +
'6AAB98D5B0D980E00AA7946408D3F50CD7B026A9C806ABE105063' +
'0254F39A801A73A09A0744D87593801A1BA09A0F44B88790DF838' +
'06AEE1350630F547317BF1A00F8191214');
while (FindDTM(Ore, x, y, MIX1, MIY1, MIX2, MIY2)) do
repeat
begin
Mouse(x, y, 2, 2, false);
ChooseOption('rop');
wait(500 + random(250));
end;
until(InvEmpty);
FreeDTM(Ore);
end;
procedure Drop2;
var
x, y, Ore: Integer;
begin
Ore := DTMFromString('78DA637466626078C2800618E1E47F2060F40' +
'6AAB98D5B0D980E00AA7946408D3F50CD7B026A9C806ABE105063' +
'0254F39A801A73A09A0744D87593801A1BA09A0F44B88790DF838' +
'06AEE1350630F547317BF1A00F8191214');
while (FindDTM(Ore, x, y, MIX1, MIY1, MIX2, MIY2)) do
repeat
begin
Mouse(x, y, 2, 2, false);
ChooseOption('rop');
wait(500 + random(250));
end;
until(InvCount = 27);
FreeDTM(Ore);
end;
procedure AntiBan;
begin
if (not(LoggedIn)) then Exit;
SleepAndMoveMouse(1000+random(1337));
GameTab(1+random(12));
GameTab(4);
end;
begin
SetupSRL;
MouseSpeed := 20;
LoadArrays;
DeclarePlayers;
Credits;
ActivateClient;
LoginPlayer;
wait(2000+random(1000));
RunOn;
MakeCompass(Angle);
HighestAngle;
if (not(LoggedIn)) then Exit;
repeat
O := O+1
repeat
repeat
if (not(LoggedIn)) then Exit;
MineThaOre;
AntiBan;
MakeCompass('S');
Randoms;
until(InvFull);
if (PickWield = True) then Drop;
if (PickWield = False) then Drop2;
SrlRandomsReport;
Proggy;
until(RocksMined >= HowMuchLoads * 28) or (not LoggedIn)
NextPlayer(Players[CurrentPlayer].Active);
Until(false);
end.