bugger0001
2009-06-02 20:11:21
4 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I know Pascal, Perl, C, C++, Basic, PHP, Java, JS, Delphi and so on, but I can PHP, C++, JS and a little Pascal
Are you a member of any other communities?
Nope
Tell us about yourself…
From: bugger0001
Um, I'm a 19 yo student/musician/chess player/chees lover :p
Currently I'm studying Informatics(math) and playing '60s dance music in a band that has a different name on every gig :D
Please show us one (or multiple) of your scripts.
{It's my first script, but as quite a few people here told me I should apply with it,
I thought I'd just give it a go and see, what the majority of SRL Members
think about it :p}
program RimmBugger;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
var
BankDTM, RimRCDTM, FalRCDTM, MineDTM, MineDTM2, PickDTM, OreDTM :Integer;
Loads, PlayerLoads, OresGot, Ores :Integer;
ExpGot, Exp: Extended;
x, y, I :Integer;
PickWielded :Boolean;
procedure DeclarePlayers;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'username';
Players[0].Pass := 'password';
Players[0].Nick := 'sern';
Players[0].Pin := ''; //Keep empty if u don't have one ;)
Players[0].Active := True;
Players[0].BoxRewards := ['']; //Keep empty if you don't know what it's for ;)
Players[0].Strings[0] := 'iron'; //Must be 'copper' or 'iron', always lowercase ;)
Players[0].Integers[0] := 10; //How many loads you want this player to do?
Players[1].Name := 'username';
Players[1].Pass := 'password';
Players[1].Nick := 'sern';
Players[1].Pin := ''; //Keep empty if u don't have one ;)
Players[1].Active := True;
Players[1].BoxRewards := ['']; //Keep empty if you don't know what it's for ;)
Players[1].Strings[0] := 'iron'; //Must be 'copper' or 'iron', always lowercase ;)
Players[1].Integers[0] := 10; //How many loads you want this player to do?
end;
procedure LoadStaticDTMs;
begin
BankDTM := DTMFromString('78DA6394606060506640017FFE30311801694' +
'620FE0F048C32F8D58000A30A116A0408AB010068360DA9');
PickDTM := DTMFromString('78DA63EC606660C860644006864A6C0C72401' +
'A24FA1F0818DB806AA251D540646124906E05AA8927A06632504D' +
'1201354D4035A504D44C216C1700EE350A31');
OreDTM := DTMFromString('78DA6314666060106140038C4824905605120' +
'204D480CC6127A006242F4B408D10905022A04611484813502306' +
'242409A81127EC2F00E3380179');
end;
procedure FreeStaticDTMs;
begin
FreeDTM(BankDTM);
FreeDTM(PickDTM);
FreeDTM(OreDTM);
end;
procedure SetRRDTM(RoadColor, RockColor: integer);
var
RRDMP: TDTMPointDef; //mainpoint
RRDSP: Array[0..4] of TDTMPointDef; //subpoint
RRDTM: TDTM; //type
begin
if (RoadColor = 0) or (RockColor = 0) then
begin
writeln('Autocolor failed, so did the DTM');
exit;
end;
RRDMP.x := 26;
RRDMP.y := 22;
RRDMP.areasize := 1;
RRDMP.areashape := 0;
RRDMP.color := RoadColor;
RRDMP.tolerance := 10;
RRDSP[0].x := 7;
RRDSP[0].y := 13;
RRDSP[0].areasize := 1;
RRDSP[0].areashape:= 0;
RRDSP[0].color := RoadColor;
RRDSP[0].tolerance:= 10;
RRDSP[1].x := 56;
RRDSP[1].y := 18;
RRDSP[1].areasize := 1;
RRDSP[1].areashape:= 0;
RRDSP[1].color := RoadColor;
RRDSP[1].tolerance:= 10;
RRDSP[2].x := 1;
RRDSP[2].y := 40;
RRDSP[2].areasize := 1;
RRDSP[2].areashape:= 0;
RRDSP[2].color := RoadColor;
RRDSP[2].tolerance:= 10;
RRDSP[3].x := 14;
RRDSP[3].y := 1;
RRDSP[3].areasize := 1;
RRDSP[3].areashape:= 0;
RRDSP[3].color := RockColor;
RRDSP[3].tolerance:= 10;
RRDSP[4].x := 22;
RRDSP[4].y := 2;
RRDSP[4].areasize := 1;
RRDSP[4].areashape:= 0;
RRDSP[4].color := 543523;
RRDSP[4].tolerance:= 50;
RRDTM.MainPoint := RRDMP;
RRDTM.SubPoints := RRDSP;
RimRCDTM := AddDTM(RRDTM);
end;
function SetFRDTM(RoadColor, RockColor: integer) :boolean;
var
FRDMP: TDTMPointDef; //mainpoint
FRDSP: Array[0..3] of TDTMPointDef; //subpoint
FRDTM: TDTM; //type
begin
if (RoadColor = 0) or (RockColor = 0) then
begin
Writeln('Autocolor failed, so did the DTM');
Result := False;
exit;
end;
FRDMP.x := 37;
FRDMP.y := 57;
FRDMP.areasize := 1;
FRDMP.areashape := 0;
FRDMP.color := RoadColor;
FRDMP.tolerance := 10;
FRDSP[0].x := 1;
FRDSP[0].y := 55;
FRDSP[0].areasize := 1;
FRDSP[0].areashape:= 0;
FRDSP[0].color := RoadColor;
FRDSP[0].tolerance:= 10;
FRDSP[1].x := 67;
FRDSP[1].y := 76;
FRDSP[1].areasize := 1;
FRDSP[1].areashape:= 0;
FRDSP[1].color := RoadColor;
FRDSP[1].tolerance:= 10;
FRDSP[2].x := 34;
FRDSP[2].y := 33;
FRDSP[2].areasize := 1;
FRDSP[2].areashape:= 0;
FRDSP[2].color := RoadColor;
FRDSP[2].tolerance:= 10;
FRDSP[3].x := 32;
FRDSP[3].y := 1;
FRDSP[3].areasize := 1;
FRDSP[3].areashape:= 0;
FRDSP[3].color := RockColor;
FRDSP[3].tolerance:= 10;
FRDTM.MainPoint := FRDMP;
FRDTM.SubPoints := FRDSP;
FalRCDTM := AddDTM(FRDTM);
Result := True;
end;
function SetRMDTM(RockColor, StoneColor: integer): boolean;
var
RMDMP: TDTMPointDef; //mainpoint
RMDSP: Array[0..3] of TDTMPointDef; //subpoint
RMDTM: TDTM; //type
begin
if (RockColor = 0) or (StoneColor = 0) then
begin
Writeln('Autocolor failed, so did the DTM');
Result := False
Exit;
end;
RMDMP.x := 16;
RMDMP.y := 7;
RMDMP.areasize := 1;
RMDMP.areashape := 0;
RMDMP.color := RockColor;
RMDMP.tolerance := 5;
RMDSP[0].x := 32;
RMDSP[0].y := 1;
RMDSP[0].areasize := 1;
RMDSP[0].areashape:= 0;
RMDSP[0].color := StoneColor;
RMDSP[0].tolerance:= 5;
RMDSP[1].x := 23;
RMDSP[1].y := 13;
RMDSP[1].areasize := 1;
RMDSP[1].areashape:= 0;
RMDSP[1].color := StoneColor;
RMDSP[1].tolerance:= 5;
RMDSP[2].x := 1;
RMDSP[2].y := 11;
RMDSP[2].areasize := 1;
RMDSP[2].areashape:= 0;
RMDSP[2].color := StoneColor;
RMDSP[2].tolerance:= 5;
RMDSP[3].x := 4;
RMDSP[3].y := 15;
RMDSP[3].areasize := 1;
RMDSP[3].areashape:= 0;
RMDSP[3].color := StoneColor;
RMDSP[3].tolerance:= 5;
RMDTM.MainPoint := RMDMP;
RMDTM.SubPoints := RMDSP;
MineDTM := AddDTM(RMDTM);
Result := True;
end;
procedure SetRMDTM2(RockColor, StoneColor: integer);
var
RMDMP2: TDTMPointDef; //mainpoint
RMDSP2: Array[0..3] of TDTMPointDef; //subpoint
RMDTM2: TDTM; //type
begin
if (RockColor = 0) or (StoneColor = 0) then
begin
Writeln('Autocolor failed, so did the DTM');
Exit;
end;
RMDMP2.x := 5;
RMDMP2.y := 23;
RMDMP2.areasize := 1;
RMDMP2.areashape := 0;
RMDMP2.color := RockColor;
RMDMP2.tolerance := 5;
RMDSP2[0].x := 5;
RMDSP2[0].y := 15;
RMDSP2[0].areasize := 1;
RMDSP2[0].areashape:= 0;
RMDSP2[0].color := RockColor;
RMDSP2[0].tolerance:= 5;
RMDSP2[1].x := 1;
RMDSP2[1].y := 28;
RMDSP2[1].areasize := 1;
RMDSP2[1].areashape:= 0;
RMDSP2[1].color := RockColor;
RMDSP2[1].tolerance:= 5;
RMDSP2[2].x := 14;
RMDSP2[2].y := 34;
RMDSP2[2].areasize := 1;
RMDSP2[2].areashape:= 0;
RMDSP2[2].color := RockColor;
RMDSP2[2].tolerance:= 5;
RMDSP2[3].x := 16;
RMDSP2[3].y := 1;
RMDSP2[3].areasize := 1;
RMDSP2[3].areashape:= 0;
RMDSP2[3].color := StoneColor;
RMDSP2[3].tolerance:= 5;
RMDTM2.MainPoint := RMDMP2;
RMDTM2.SubPoints := RMDSP2;
MineDTM2 := AddDTM(RMDTM2);
end;
procedure Walking;
begin
If not LoggedIn then Exit;
FFlag(10);
Wait(1500+Random(1000));
end;
procedure AntiBan;
begin
if not LoggedIn then Exit;
case (Random(200)) of
1, 165 : RandomRClick;
44, 125 : BoredHuman;
84, 85 : PickupMouse;
124, 45 : GameTab(1+Random(14));
164, 2 : begin
HoverSkill('Mining', False);
Wait(100 + Random(100));
GameTab(4);
end;
end;
end;
function FindRandoms: Boolean;
begin
if not LoggedIn then Exit;
Result := FindNormalRandoms;
if (FindFight) then
begin
RunAway('s', True, 1, 6000+Random(4000));
Result := True;
end;
end;
function PickWhere: integer;
begin
GameTab(4);
If not FindDTM(PickDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Wait(1000+Random(1000));
GameTab(5);
If not FindDTM(PickDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Did not find pick');
Result := 0;
LogOut;
Exit;
end;
Writeln('Pick wielded');
Result := 1;
Exit;
end;
Writeln('Pick in Inv');
Result := 2;
end;
function CountOre: Integer;
begin
if not LoggedIn then exit;
Result := CountItemsIn('inv', 'dtm', OreDTM, []);
end;
procedure DoTheMine;
var
Index, Time: Integer;
begin
if not LoggedIn then Exit;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
If (Players[CurrentPlayer].Strings[0] = 'iron') then Index := 3;
If (Players[CurrentPlayer].Strings[0] = 'copper') then Index := 1;
I := 0;
If not FindObjRock(x, y, Index) and not FindRandoms then
begin
MarkTime(Time);
repeat
Wait(250+Random(250));
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
until FindObjRock(x, y, Index) or (GetSystemTime > (Time+RandomRange(60000, 120000)));
end;
If not FindObjRock(x, y, Index) then
begin
Writeln('Did not find any rocks');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
MMouse(x, y, 2, 2);
if IsUpText('ine') then
begin
GetMousePos(x, y);
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
Mouse(x, y, 0, 0, True);
Wait(500+Random(500));
if IsMoving(50) then
repeat
Wait(500+Random(500));
until not IsMoving(50);
MarkTime(Time);
repeat
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
AntiBan;
Wait(750+Random(250));
until FindBlackChatMessage('anage') or
FindBlackChatMessage('urren') or
FindNPCChatText('ongratulations', Nothing) or
(GetSystemTime > (Time + RandomRange(7000,8000)));
end;
end;
procedure ToBank;
var
sx, sy: Integer;
begin
I := 0;
if not LoggedIn then Exit;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
MakeCompass('n');
Wait(500+Random(500));
SetRun(False);
Wait(200+Random(300));
If (Players[CurrentPlayer].Strings[0] = 'iron') then
begin
SetRMDTM(FindRockColor, FindStoneColor);
If not DTMRotated(MineDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln('Did not find MineDTM, trying blindclick');
Mouse(MMCX+23, MMCY-15, 4, 4, True);
if (FindRoadColor = 0) then
begin
Writeln('Blindclick failed, switching player');
LogOut;
FreeDTM(MineDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
FindRandoms;
Mouse(x, y, 3, 3, True);
FreeDTM(MineDTM);
Walking;
Wait(200+Random(300));
end;
RadialRoadWalk(FindRoadColor, 340, 400, 70, 3, 3);
Walking;
SetRRDTM(FindRoadColor, FindRockColor);
if not DTMRotated(RimRCDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(RimRCDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 340, 400, RandomRange(30, 50), 3, -2);
I := I+1;
Walking;
Until DTMRotated(RimRCDTM, x, y, MMX1, MMY1, MMX2, MMY2) or (I >= 4);
FreeDTM(RimRCDTM);
If (I >= 4) then
begin
Writeln('Did not find RimRoadCross');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Writeln('RimRoadCross at ' + IntToStr(x) + ',' + IntToStr(y) + '.');
if FindNormalRandoms then
begin
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
Mouse(x, y-8, 5, 3, True);
Walking
SetFRDTM(FindRoadColor, FindRockColor);
I := 0;
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(FalRCDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 60, 105, 70, 3, 3);
I := I+1;
Walking;
Until DTMRotated(FalRCDTM, x, y, MMX1, MMY1, MMX2, MMY2) or (I >= 5);
FreeDTM(FalRCDTM);
If (I >= 5) then
begin
Writeln('Did not find FalRoadCross');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Writeln('FalRoadCross at' + IntToStr(x) + ',' + IntToStr(y) + '.');
if FindNormalRandoms then
if not LoggedIn then Exit;
Mouse(x-6, y-8, 3, 3, True);
Walking;
I := 0;
Repeat
if FindNormalRandoms then
if not LoggedIn then Exit;
RadialRoadWalk(FindRoadColor, 345, 375, 70, 3, 3);
I := I+1;
Walking;
Until (FindFallyRoadColor <> 0) or (I >= 5);
If (I >= 5) then
begin
Writeln('Did not find Fally');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
if FindNormalRandoms then
if not LoggedIn then Exit;
RadialRoadWalk(FindFallyRoadColor, 355, 390, 70, 3, 3);
I := 0;
Walking;
if not RadialRoadWalk(FindFallyRoadColor, 345, 375, RandomRange(40,60), 0, 0) then
if not RadialRoadWalk(FindFallyRoadColor, 345, 385, RandomRange(40,60), 0, 0) then
begin
Writeln('Did not find bank');
LogOut;
FreeDTM(BankDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
Walking;
Repeat
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
if not RadialRoadWalk(FindFallyRoadColor, 345, 375, RandomRange(40,60), 3, 3) then
if not RadialRoadWalk(FindFallyRoadColor, 345, 385, RandomRange(40,60), 3, 3) then
begin
Writeln('Did not find bank');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
I := I+1
Walking;
Until DTMRotated(BankDTM, x, y, MMX1, MMY1, MMX2, MMY2) or
FindSymbol(sx, sy, 'bank') or (I >= 5);
If I >=5 then
begin
Writeln('Did not find bank');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
If not DTMRotated(BankDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
Mouse(sx, sy, 2, 2, True);
Walking;
Writeln('Found bank using symbol');
end else
begin
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
Mouse(x-3, y-8, 10, 2, True);
Walking;
Writeln('Found bank using DTM');
end;
end;
procedure InBank;
begin
if not LoggedIn then Exit;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
if not OpenBank('feb', False, False) then
if not OpenBankFast('feb') then
begin
Writeln('Could not open bank1');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;;
end;
if not PinScreen and not BankScreen then
begin
Writeln('Could not open bank2');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;;
end;
repeat
if PinScreen then
begin
Writeln('Found pinscreen, entering pin .');
Wait(500 + Random(200));
InPin(Players[CurrentPlayer].Pin);
end;
until BankScreen or not LoggedIn;
if not BankScreen then
begin
Writeln('Could not open bank3');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
FixBank;
OresGot := CountOre
Case Players[CurrentPlayer].Strings[0] of
'iron' : begin ExpGot := (OresGot * 35); end;
'copper': begin ExpGot := (OresGot * 35 / 2); end;
end;
If Players[CurrentPlayer].Strings[0] = 'Iron' then Exp := CountOre*35;
If PickWielded then Deposit(1, 28, True);
If not PickWielded then Deposit(2, 28, True);
case Random(3) of
2: CloseBank;
end;
end;
procedure ToMine;
begin
if not LoggedIn then Exit;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
I := 0;
SetRun(True);
RadialRoadWalk(FindFallyRoadColor, 200, 230, 65, 0, 0);
Walking;
Repeat
RadialRoadWalk(FindFallyRoadColor, 165, 195, 65, 0, 0);
I := I+1;
Walking;
Until (FindRoadColor <> 0) or (I >= 3);
if I >= 3 then
begin
Writeln('Did not get out of Fally');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
I := 0;
RadialRoadWalk(FindRoadColor, 160, 210, 70, 3, 3);
Walking;
If not SetFRDTM(FindRoadColor, FindRockColor) then
begin
Writeln('FallyRoadCrossDTM failed');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(FalRCDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 160, 210, RandomRange(40, 60), 3, 3);
I := I+1;
Walking;
Until DTMRotated(FalRCDTM, x, y, MMX1, MMY1, MMX2, MMY2) or (I >= 4);
FreeDTM(FalRCDTM);
If (I >= 4) then
begin
Writeln('Did not find FalRoadCross');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Writeln('FalRoadCross at' + IntToStr(x) + ',' + IntToStr(y) + '.');
if FindNormalRandoms then
if not LoggedIn then Exit;
Mouse(x-6, y-6, 3, 3, True);
Walking;
I := 0;
SetRRDTM(FindRoadColor, FindRockColor);
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(RimRCDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 220, 300, 70, 3, 3);
I := I+1;
Walking;
Until DTMRotated(RimRCDTM, x, y, MMX1, MMY1, MMX2, MMY2) or (I >= 4);
FreeDTM(RimRCDTM);
If (I >= 4) then
begin
Writeln('Did not find RimRoadCross');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Writeln('RimRoadCross at' + IntToStr(x) + ',' + IntToStr(y) + '.');
if FindNormalRandoms then
if not LoggedIn then Exit;
Mouse(x-6, y, 3, 3, True);
Walking;
RadialRoadWalk(FindRoadColor, 180, 230, 70, 2, 2);
I := 0;
Walking;
if not SetRMDTM(FindRockColor, FindStoneColor) then
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 180, 270, RandomRange(30,40), 0, 0);
I := I+1;
Walking;
Until SetRMDTM(FindRockColor, FindStoneColor) or (I >=4);
If I >= 4 then
begin
Writeln('Did not find RimMine');
LogOut
FreeDTM(MineDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
I := 0;
If not DTMRotated(MineDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Repeat
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(MineDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
RadialRoadWalk(FindRoadColor, 180, 270, RandomRange(30,40), 0, 0);
I := I+1;
Walking;
Until DTMRotated(MineDTM, x, y, MMX1, MMY1, MMX2, MMY2) or (I >= 2);
if I >= 2 then
begin
Writeln('Did not find RimMine');
LogOut
FreeDTM(MineDTM);
Players[CurrentPlayer].Active := False;
Exit;
end;
if FindNormalRandoms then
if not LoggedIn then
begin
FreeDTM(MineDTM);
Exit;
end;
FreeDTM(MineDTM);
Mouse(x, y+2, 2, 2, True);
Walking;
If (Players[CurrentPlayer].Strings[0] = 'iron') then
begin
SetRMDTM2(FindRockColor, FindStoneColor);
If not DTMRotated(MineDTM2, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln('Did not find Iron DTM, trying blindclick');
FreeDTM(MineDTM2);
Mouse(MMCX-26, MMCY+12, 3, 3, True);
Walking;
Wait(200+Random(300));
if not FindColorTolerance(x, y, 2898783, MSX1, MSY1, MSX2, MSY2, 5) then
if not FindColorTolerance(x, y, 2898783, MSX1, MSY1, MSX2, MSY2, 20) and
not FindRandoms then
begin
Writeln('Blindclick failed, switching player');
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
Exit;
end;
Mouse(x, y, 3, 3, True);
Walking;
Wait(200+Random(300));
end;
end;
procedure LoadsCheck;
begin
Loads := Loads+1;
PlayerLoads := PlayerLoads+1;
Writeln('Current Plyer done ' + IntToStr(PlayerLoads) + 'loads');
If (PlayerLoads >= Players[CurrentPlayer].Integers[0]) then
begin
Writeln('Loads done! Switching players');
Wait(250);
LogOut;
Players[CurrentPlayer].Active := False;
Exit;
end;
end;
procedure Proggy;
var
IronMined, CopperMined: Extended;
begin
SRLRandomsReport;
Ores := Ores + OresGot;
Exp := Exp + ExpGot;
IronMined := (2 * Exp - 35 * Ores)/35;
CopperMined := Ores - IronMined;
Writeln('');
Writeln('|//////}}}}}}}}}}}}}}}{{{{{{{{{{{{{{{\\\\\\|');
Writeln('|/////{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}\\\\\|');
Writeln('|//// RimmBugger BETA v1.5 \\\\|');
Writeln('|/// by bugger0001 \\\|');
Writeln('|// \\|');
Writeln('|/ \|');
if(HowManyPlayers > 1)then
Writeln(' Multiplayer, using '+IntToStr(HowManyPlayers)+' players.')
else
Writeln(' Single Player.');
Writeln(' Worked For '+ TimeRunning);
Writeln(' Loads Done ' + IntToStr(Loads));
Writeln(' Mined ' + IntToStr(Ores) + ' ores total');
if IronMined > 0 then
Writeln(' ' + FloatToStr(IronMined) + ' iron ores');
if CopperMined > 0 then
Writeln(' ' + FloatToStr(CopperMined) + ' copper ores');
Writeln(' Gained ' + FloatToStr(Exp) + 'xp total');
for I := 0 to High(Players) do
Writeln(' Player['+IntToStr(i)+'] Active: '+BoolToStr(Players[i].Active));
Writeln('| Remember to post proggys, bugs, etc on |');
Writeln('| SRL Forums! |');
Writeln('|__________________________________________|');
end;
Procedure MainLoop;
begin
if not (Players[CurrentPlayer].Strings[0] = 'iron') and
not (Players[CurrentPlayer].Strings[0] = 'copper') then
begin
Writeln('Please set what to mine correctly. Switching players');
LogOut;
Exit;
end;
repeat
if not LoggedIn then Exit;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
SetAngle(true);
MakeCompass('n');
Wait(200+Random(400));
If InvFull then InBank;
ToMine;
While not InvFull do
begin
if not LoggedIn then break;
DoTheMine;
end;
if FindRandoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Active := False;
Exit;
end;
ToBank; // Put '{' before ToBank and '}' after ToMine
AntiBan; // and remove them from DropAll; for
InBank; // powermining ;)
LoadsCheck;
Proggy;
{DropAll;}
Wait(RandomRange(500, 1000));
until not LoggedIn;
end;
begin
SmartSetupEx(1, False, True, False);
SetTargetDC(SmartGetDC);
SetupSRL;
Loads := 0;
LoadRockRecords;
LoadStaticDTMs;
DeclarePlayers;
LoginPlayer;
repeat
PlayerLoads := 0;
If (PickWhere <> 0) then
if not (PickWhere = 1) then
begin
PickWielded := False;
end else
begin
PickWielded := True;
end;
MainLoop;
if (PlayersActive <>0) then NextPlayer(False);
until AllPlayersInactive;
FreeStaticDTMs;
Writeln('Thanks for using!')
end.