SCAR Code:
//////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
// THE NOOBIEST //
// POWERMINER //
// BY RKROXPUNK //
// //
////////////////////////////////////////////////////
///////////////////////////////////////////////////
program PowerMiner;
{.include SRL/SRL.scar}
{.include srl\srl\skill\Mining.scar}
{.include SRL\SRL\Misc\Trade.scar}
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// LOGIN AND SETUP //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
var
Loads: Integer;
PickEquip: Boolean;
OreMined: Integer;
OreDTM:integer;
const
Loadz = 1; //How Many Loads.
NumberOfUsers = 3; //How Many Players Are You Using.
VersionNumber = '2';
OreeColor = 3692410; //Put the colour of the ore you want to mine here
WaitTime = 7000; //How long before it clicks again
RunDirec = 'N'; //Direction you want to run in if find smoking rock
procedure DeclarePlayers;
begin
HowManyPlayers := 3; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer := 0;
EquipPick := Players[CurrentPlayer].Boolean1;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Loc := 'Loc1';
Players[0].Skill := 'Mining';
Players[0].Boolean1 := False; // Is your pick equipped. true = yes, false = no
Players[0].Active := True;
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Loc := 'Loc1';
Players[1].Skill := 'Mining';
Players[1].Boolean1 := False; // Is your pick equipped. true = yes, false = no
Players[1].Active := True;
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Loc := 'Loc1';
Players[2].Skill := 'Mining';
Players[2].Boolean1 := False; // Is your pick equipped. true = yes, false = no
Players[2].Active := True;
writeln(inttostr(HowManyPlayers) + ' Players');
end;
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// RANDOMS AND ANTIBAN //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
procedure AntiRandoms;
begin
FindTalk;
SRLRandomsReport;
FindNormalRandoms;
if (FindFight = true) then
begin
RunAwayDirection(RunDirec);
Wait(10000 + random(2000));
RunBack;
end;
end;
Function OtherRandoms: Boolean; // By WT-Fakawi.
Var
i: Integer;
Begin
For I := 1 To 11 Do
Begin
Case I Of
1: If FindDead Then
Result := True;
2: If FindMod Then
Result := True;
3: If FindMime Then
Result := True;
4: If FindMaze Then
Result := True;
5: If FindQuiz Then
Result := True;
6: If FindDemon Then
Result := True;
7: Begin
If NoGameTab Then
Begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
End;
End;
8 : If RC Then
Result := True;
9 : If FindFight Then
Begin
Result := True;
RunTo(RunDirec, True);
End;
10: If FindTalk Then
Result := True;
11: If HandleTrade Then
Result := True;
End;
Wait(1);
End;
End;
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// DTM //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// PROGGY! //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
procedure Report;
begin
Loads := Loadz * 28;
Writeln('[]----------THE NOOBIEST PROGGY!----------[]');
Writeln('[]------------------By RK-----------------[]');
writeln('RRRRRRRRRRRRRRRRR KKKKKKKKK KKKKKKK')
wait(500)
writeln('R::::::::::::::::R K:::::::K K:::::K')
wait(500)
writeln('R::::::RRRRRR:::::R K:::::::K K:::::K')
wait(500)
writeln('RR:::::R R:::::RK:::::::K K::::::K')
wait(500)
writeln(' R::::R R:::::RKK::::::K K:::::KKK ')
wait(500)
writeln(' R::::R R:::::R K:::::K K:::::K')
wait(500)
writeln(' R::::RRRRRR:::::R K::::::K:::::K')
wait(500)
writeln(' R:::::::::::::RR K:::::::::::K')
wait(500)
writeln(' R::::RRRRRR:::::R K:::::::::::K')
wait(500)
writeln(' R::::R R:::::R K::::::K:::::K')
wait(500)
writeln(' R::::R R:::::R K:::::K K:::::K')
wait(500)
writeln(' R::::R R:::::RKK::::::K K:::::KKK')
wait(500)
writeln('RR:::::R R:::::RK:::::::K K::::::K')
wait(500)
writeln('R::::::R R:::::RK:::::::K K:::::K')
wait(500)
writeln('R::::::R R:::::RK:::::::K K:::::K')
wait(500)
writeln('RRRRRRRR RRRRRRRKKKKKKKKK KKKKKKK')
Writeln(' Worked For : ' + ScriptTime2(2)) //Displays how long it worked for
Writeln(' Mined/Dropped ' + IntToStr(Loadz) + ' Loads');
Writeln('[]------------------By RK-----------------[]');
Writeln('[]----------THE NOOBIEST PROGGY!----------[]');
end;
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// MINEING AND DROPPING //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
function FindOre: Boolean;
begin
if FindColorSpiral(x, y, OreeColor, 0, 0, 515, 336) then
begin
Result := True;
Status('Found Ore :D');
end else
Status('Did not find Ore :(');
wait(5 + random(5));
end;
function MouseAndClick: Boolean;
begin
repeat
if (FindOre) then
begin
MMouse(x, y, 0, 0);
Result := True;
Wait(20 + random(150));
Mouse(x, y, 0, 0, true);
OreMined := OreMined + 1
wait(3000);
Exit;
end;
until (false)
end;
function UntilMined(Time: integer): boolean;
var timer: integer;
begin
status('waiting for pick swing')
if FindText(x, y, 'You swing your', SmallChars, 20, 415, 152, 431) then
begin
marktime(Timer);
status('waiting for ore')
repeat
wait(1000 + random(1000))
until FindText(x, y, 'anage', SmallChars, 20, 415, 152, 431) or
(timefrommark(Timer) > Time);
writeln('Finished mining')
end;
end;
function CoordsToInvSpot(gx,gy:integer):integer;
var col,row:integer;
begin
if ((gx>569) and(gx<600)) then col:=1;
if ((gx>611) and(gx<642)) then col:=2;
if ((gx>653) and(gx<684)) then col:=3;
if ((gx>695) and(gx<723)) then col:=4;
if ((gy>213) and(gy<244)) then row:=1;
if ((gy>249) and(gy<280)) then row:=2;
if ((gy>285) and(gy<316)) then row:=3;
if ((gy>322) and(gy<352)) then row:=4;
if ((gy>357) and(gy<387)) then row:=5;
if ((gy>393) and(gy<424)) then row:=6;
if ((gy>429) and(gy<459)) then row:=7;
result:=((row-1)*4)+col;
end;
begin
if (invfull) then
begin
GameTab(4);
OreDTM:= DTMFromString('78DA634C636060706740038C48249006A9F12' +
'3A0261F487813A12688809A1C201141847BA209A84902123104D4' +
'C4028944026AA2893007E4DE28026A828930071436A104D484128' +
'E0B0047CA0967');
repeat
if FindDTM(OreDTM,x,y,MIx1,MIY1,MIx2,MIY2) then
DropItem(coordstoinvspot(x,y));
wait(200+random(200));
until not(FindDTM(OreDTM,x,y,MIx1,MIY1,MIx2,MIY2));
freedtm(OreDTM);
end;
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// MAIN LOOP //
/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
begin
ClearDebug;
SetupSRL;
SetupSRLMining;
DeclarePlayers;
Activateclient;
wait(1000);
LoginPlayer;
wait(1000);
MakeCompass('N');
HighestAngle;
SetRun(true);
repeat
repeat
Gametab(4);
FindOre;
MouseAndClick;
UntilMined(5000);
CoordsToInvSpot(x,y);
AntiRandoms;
OtherRandoms;
until(Loads = Loadz);
if (Loads = Loadz) then
begin
Report;
Loads:=0
Logout;
Nextplayer(true);
end;
MakeCompass('N');
HighestAngle;
SetRun(true);
Gametab(4);
FindOre;
MouseAndClick;
UntilMined(5000);
CoordsToInvSpot(x,y);
AntiRandoms;
OtherRandoms;
until (false);
end.