From: Santa_Clause
What the? Have I turned on the WYSIWYG editor?
It got messed up somehow.. no idea but when I try to edit it laggs/ freezes my internet explorer.. Heres what it should be:
program VarrockEastMiner;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.Scar}
{.include SRL/SRL/Misc/Trade.scar}
{.include SRL/SRL/Core/LoveAdvanceObj.scar}
const
Mspeed = 13; //Mousespeed.
WaitOre = 9; //Max seconds for each ore to be mined
MaxTime = 35; //Max # mins to mine ea load(not incl. walk)(30=good)(Raise if mining iron since it's usually crowded )
RunWhere = 'S'; //Where to run if FindFight returns as True
GoFar = True; //Run Far?
Loads = 1; //# of inv's of ore to mine
Version = '0.1'; //Don't touch this!
//Extra\\
Leave = False; //Take break while mining?(log out for X minutes)
NumLoads = 3; // Logout after how many loads of ore?
HowLong = 4; // Log out for how long?
Extra = 2; // Stay logged out for extra time?(Adds a random
//In Minutes^ of X min)
//OreColors\\
TinColor = 8092806; //Change if doesn't work well
CopperColor = 4286610; //Change if doesn't work well
IronColor = 2832993; //Change if doesn't work well
//OreColors\\
//
const MySRLID = ''; // Your SRLID here
const MySRLPassword = ''; // Your SRL Password here
//
var
PickAxeStick, PickAxeHead, Pick, IronMined, Load, x, y: Integer;
BrokenPickaxe, TinMined, CopperMined, OreColor, AGas, Txtx: Integer;
SRLAbuse, CombatLvl, MineTime, Mining, ReSponded, Gas, Txty: Integer;
VarBankers, CoolDowns, NewPick, WalkTime, C, F: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 5;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'Username'; //Your Username.
Players[0].Pass := 'Password'; // Your Password.
Players[0].Nick := 'sern'; // 3-4 letters from your name.
Players[0].Strings[0] := 'Tin'; // What Ore Are You Mining?
//^^^^^Iron, Tin, or Copper^^^^^
Players[0].Booleans[0] := True; //Is the pick wielded?
Players[0].Pin := 0000; // BankPin here. 0000 = You have no pin
Players[0].Active := True; //True = Use player, False = Don't use.
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Strings[0] := 'Copper';
Players[1].Booleans[0] := True;
Players[1].Pin := 0000;
Players[1].Active := True;
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := '';
Players[2].Strings[0] := 'Iron';
Players[2].Booleans[0] := True;
Players[2].Pin := 0000;
Players[2].Active := True;
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Strings[0] := 'Iron';
Players[3].Booleans[0] := True;
Players[3].Pin := 0000;
Players[3].Active := True;
Players[4].Name := '';
Players[4].Pass := '';
Players[4].Nick := '';
Players[4].Strings[0] := 'Tin';
Players[4].Booleans[0] := False;
Players[4].Pin := 0000;
Players[4].Active := True;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
//WalkTheMine DDTM Variables\\
var //First ddtm
SubPoints: array[0..3] of TDTMPointDef;
MainPoint: TDTMPointDef;
FRoad: TDTM;
TheRoadF: Integer;
var //2nd ddtm
ASubPoints: array[0..3] of TDTMPointDef;
AMainPoint: TDTMPointDef;
SRoad: TDTM;
TheRoadS: Integer;
var // 3rd
BSubPoints: array[0..3] of TDTMPointDef;
BMainPoint: TDTMPointDef;
TRoad: TDTM;
TheRoadT: Integer;
var //4th
CSubPoints: array[0..3] of TDTMPointDef;
CMainPoint: TDTMPointDef;
ORoad: TDTM;
TheRoadO: Integer;
var //5th
DSubPoints: array[0..3] of TDTMPointDef;
DMainPoint: TDTMPointDef;
IRoad: TDTM;
TheRoadI: Integer;
var //6th
ESubPoints: array[0..4] of TDTMPointDef;
EMainPoint: TDTMPointDef;
JRoad: TDTM;
TheRoadJ: Integer;
var //7th
ZSubPoints: array[0..4] of TDTMPointDef;
ZMainPoint: TDTMPointDef;
KRoad: TDTM;
TheRoadK: Integer;
//WalkTheMine DDTM Variables\\
//WalkTheBank DDTM Variable\\
var //1st
GSubPoints: array[0..4] of TDTMPointDef;
GMainPoint: TDTMPointDef;
LRoad: TDTM;
TheRoadL: Integer;
var //2nd
QSubPoints: array[0..4] of TDTMPointDef;
QMainPoint: TDTMPointDef;
JERoad: TDTM;
TheRoadJE: Integer;
var //3rd
UBSubPoints: array[0..4] of TDTMPointDef;
UBMainPoint: TDTMPointDef;
UTRoad: TDTM;
TheRoadUT: Integer;
var //4th
CTSubPoints: array[0..4] of TDTMPointDef;
CTMainPoint: TDTMPointDef;
OTRoad: TDTM;
TheRoadOT: Integer;
var //5th
DGSubPoints: array[0..4] of TDTMPointDef;
DGMainPoint: TDTMPointDef;
IGRoad: TDTM;
TheRoadIG: Integer;
//WalkTheBank DDTM Variable\\
//
procedure WalkTheBank; forward;
function FindInvPick: Boolean; forward;
//
procedure SetupOreColors;
begin
case LowerCase(Players[CurrentPlayer].Strings[0]) of
'copper': OreColor := CopperColor;
'tin': OreColor := TinColor;
'iron': OreColor := IronColor;
end;
end;
//
procedure IsItWielded;
begin
if (Players[CurrentPlayer].Booleans[0] = True) then
begin;
FindPick;
end;
if (Players[CurrentPlayer].Booleans[0] = False) then
begin
FindInvPick;
end;
end;
//
function OpenMyBank: Boolean; //Opens The Bank
begin
if (FindObjCustom(x, y, ['Use', 'booth'], [2970721, 539728], 15)) then
begin
if IsUpText('ank') then ;
begin
Mouse(x, y, 5, 5, False);
if (ChooseOption('quick')) then
Wait(300 + random(200));
begin
FFlag(0);
repeat
Wait(100);
Inc(c);
until (BankScreen) or (c >= 15);
if (PinScreen) then
repeat
Wait(500);
Writeln('Doing PinScreen');
InPin(IntToStr(Players[CurrentPlayer].Pin));
Inc(f);
until (BankScreen) or (f >= 15);
Result := BankScreen;
Writeln('Found BankScreen.');
end;
end;
end;
end;
//
procedure Signature;
begin
Writeln(' _ ____ _ _ ');
Writeln(' | | / ___| ___ _ __ (_) _ __ | |_ ____ ');
Writeln(' _ | | _____ \___ \ / __| | ''__| | | | ''_ \ | __| |_ /');
Writeln(' | |_| | |_____| ___) | | (__ | | | | | |_) | | |_ / / ');
Writeln(' \___/ |____/ \___| |_| |_| | .__/ \__| /___| ');
Writeln(' |_| ');
Wait(300);
end;
//
procedure Report;
var
PActive, Spaces: string;
I, K, SpaceNumber: Integer;
begin
Writeln('{-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_}');
Writeln('{ Varrock East Miner v' + (version) + ' by [-Jesus-]');
Writeln('{ Worked for ' + (TimeRunning) + '.');
Writeln('{ Mined ' + IntToStr(IronMined) + ' Iron Ores');
Writeln('{ Mined ' + IntToStr(TinMined) + ' Tin Ores');
Writeln('{ Mined ' + IntToStr(CopperMined) + ' Copper Ores');
if (Gas > 0) then
Writeln('{ Avoided gas ' + IntToStr(Gas) + ' time(s)');
if (ReSponded > 0) then
Writeln('{ ReSponded ' + IntToStr(ReSponded) + ' times');
if (SRLAbuse > 0) then
Writeln('{ You tried to abuse autoing ' + IntToStr(SRLAbuse) + ' time(s)');
if (NewPick > 0) then
Writeln('{ Broke ' + IntToStr(NewPick) + ' pick(s)');
if (CoolDowns > 0) then
Writeln('{ Took ' + IntToStr(CoolDowns) + ' break(s)');
Writeln('{-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_}');
for I := 0 to HowManyPlayers - 1 do
begin
if Players[I].Active then
PActive := 'True' //From Sumilion's Rimmington Miner
else //I Added some stuff
PActive := 'False';
SpaceNumber := 12 - Length(Players[I].Name);
for K := 0 to SpaceNumber do
Spaces := Spaces + ' ';
Writeln(IntToStr(I) + ': ' + Players[I].Name + Spaces +
' Active= ' + PActive + ', Worked '
+ IntToStr(Players[I].Worked) + ' minutes, ' +
'M Lvl: ' + IntToStr(Players[I].integers[0]) + ', ' +
'Loc: ' + Players[I].Loc +
', Rand: ' + Players[I].Rand);
Spaces := '';
end
Writeln('<==========================================>');
end;
//
procedure LoadPics;
begin
Pick := DTMFromString('78DA6334616260B8CD8006189148206D0E54F' +
'391801A2FA09A0704D4B802D55C23A0C60AA8E6060135B6403577' +
'08A8B101AA798C5F0D00537C07EA');
Pickaxe := DTMFromString('78DA6314606060E06540038C4824909605125' +
'C04D470020976026A40662810502302245808A801B9590CBF1A00' +
'612000CF');
PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
'204D44801095E026A40F2CA04D408000929026A048184220135E2' +
'404214BF1A00B23A014A');
PickaxeHead := DTMFromString('78DA6314666060106040038C482490960112B' +
'C04D470020951026A0481841801355244980352C3895F0D0073E1' +
'00F6');
BrokenPickaxe := DTMFromString('78DA6334676660A8656440058C4824907603A' +
'A2926A0C61BA8A688801A3BA09A4C026A8C806A728950D34A408D' +
'13504D3E7E3500C8FC050A');
VarBankers := DTMFromString('78DA636C666260486140016FDEBC61F80FA41' +
'981F83F1030B603D5E4A0AA79FB96814103AA060418EB816AB251' +
'D57CFD8AAA0600B6210EA4');
end;
//
procedure AntiBans;
begin
case Random(2000) of //About 1 - 1.5 antiban(s) per load
0: begin
DoEmote(1 + Random(20));
Wait(500 + random(1000));
case random(15) of
0: Typesend(' hehe');
1: Typesend('lol/');
2: Typesend(':p');
3: Typesend('woot!');
4: Typesend('emotions ftw!');
5: Typesend('*yawn*');
6: Typesend(':D');
7: Typesend('fun fun fun');
8: Typesend('I''m a mime! :o');
9: Typesend('Domo arigato Mr. Roboto :O');
end;
end;
1: begin;
GameTab(10);
case random(1) of
0: begin //Like "AlmostLogout"
MMouse(583 + Random(120), 361 + Random(20), 0, 0);
Wait2(3000 + random(1000), true);
case Random(50) of
0: SleepAndMoveMouse(4000 + random(1000));
1: TypeSend('Should I loogout? Nah :p');
2: TypeSend('/I gtg in a few mins. might stay tho');
3: TypeSend('gtg in a bit');
5: TypeSend(' Argh. gtg in a few. moms bein a.. nub');
6: TypeSend(' :o might log. I got a lot of HW');
7: TypeSend(' shuld I log or not do hw?');
8: TypeSend('Tired... ima go sleep maybe');
9: TypeSend('I been online to long *rubs eyez*');
10: TypeSend('i might go pk later');
11: TypeSend('gtg in a min');
12: IdleTime(200 + random(100), 300, 0.2);
end;
end;
1: Mouse(583 + Random(120), 361 + Random(20), 0, 0, false);
2: IdleTime(666 + random(400), 200, 0.4);
3: SleepAndMoveMouse(1000 + random(10000));
end;
end;
2: BoredHuman;
3: PickUpMouse;
4: RandomRClick;
5: HoverSkill('Mining', False);
6: HoverSkill('Smithing', False);
7: TypeSend('levelz?');
8: Typesend('my minnning levlz0r is '
+ IntToStr(Players[CurrentPlayer].integers[0]) + ' wats urs?');
9: Gametab(1 + random(12));
end;
end;
//
procedure Randoms;
begin
LoadPics;
FindTalk;
FindNormalRandoms;
HandleTrade;
FindLamp('Mining');
AntiBans;
begin
if FindFight then
begin
RunTo(RunWhere, GoFar);
Wait(7000 + random(5000));
Runback;
end;
end;
end;
//
procedure DoYouAbuse;
begin
CombatLvl := 0;
CombatLvl := GetCombatLevel;
Writeln('Players Combat Lvl is: ' + intToStr(CombatLvl) + '.');
if (CombatLvl < 5) then
begin
Writeln('Don''t Abuse Autoing!!');
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=12');
Writeln('READ THOSE! Respect your players!!');
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=12770');
OpenWebPage('http://www.you.justgotowned.com/');
SRLAbuse := SRLAbuse + 1;
ReportVars[5] := ReportVars[5] + 0;
ActivateClient;
Players[CurrentPlayer].loc := 'Below lvl 15 combat. NOOB!';
ActivateClient;
NextPlayer(False);
end;
end;
//
function CheckPick: Boolean; //Modded version of modded SRL version:P
var
InvAxe, WieldAxe, Ix, Iy: Integer;
dtmAxes: array[0..6] of Integer;
begin
if LoggedIn then
begin
DTMAxes[1] := DTMFromString('78DA6334616260B8CD8006189148206D0E54F' +
'391801A2FA09A0704D4B802D55C23A0C60AA8E6060135B6403577' +
'08A8B101AA798C5F0D00537C07EA');
GameTab(5);
for WieldAxe := 1 to 2 do
begin
if (WieldAxe = 2) then
Break;
if (FindDtm(dtmAxes[WieldAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2)) then
Break;
end;
GameTab(4);
for InvAxe := 1 to 2 do
begin
if (InvAxe = 2) then
Break;
if (FindDtm(dtmAxes[InvAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2)) then
Break;
end;
if (InvAxe = 2) and (WieldAxe = 2) then
begin
Result := False;
Writeln('No pick was found.');
FreeDtm(dtmAxes[1]);
Exit;
end;
if ((InvAxe - WieldAxe) < 0) then
EquipPick := False
else
EquipPick := True;
Result := True;
//FreeDtm(dtmAxes[0]);
Writeln('Found pick');
end;
end;
//
procedure CheckPick2;
begin
if (not (LoggedIn)) then
Exit;
begin
if (CheckPick = True) then
Exit;
if (CheckPick = false) then
begin
HighestAngle;
end;
begin
if (not (FindSymbol(x, y, 'bank'))) then
begin
Players[CurrentPlayer].loc := 'Didn''t start @ bank!';
NextPlayer(False);
end else
if (FindSymbol(x, y, 'bank')) then
GameTab(5);
Wait(200 + random(100));
Mouse(588, 303, 3, 3, true);
Wait(100 + random(100));
GameTab(4);
OpenMyBank;
Deposit(1, 28, 2);
Wait(100 + random(200));
Withdraw(1, 1, 1);
Wait(200 + random(100));
CloseBank;
Wait(200 + random(500));
MouseItem(1, true);
Writeln('Got a pickaxe from the bank now back to the mine!');
if (CheckPick = true) then
Exit;
end;
end;
end;
//
//Checks the last 3 lines of chatbox for text & responds to what is set in procedure TimeToReSpond.
function JesusRespond(FindText, Random1, Random2, Random3, Random4: string): Boolean;
begin
if (not (IsTextInAreaEx(8, 414, 494, 459, txtx, txty, FindText, 10, smallchars, False, True, 0, 1, 16711680))) then exit;
Result := (IsTextInAreaEx(8, 414, 494, 459, txtx, txty, FindText, 10, smallchars, False, True, 0, 1, 16711680))
begin
if Result then ;
begin
case Random(4) of
0: begin
Typesend(Random1);
end;
1: begin
Typesend(Random2);
end;
2: begin
Typesend(Random3);
end;
3: begin
Typesend(Random4);
end;
end;
Responded := Responded + 1
ReportVars[3] := ReportVars[3] + 1;
end;
end;
end;
//
procedure TimeToReSpond;
begin
JesusReSpond('Hey', 'yo', 'sup', 'olá', 'h3y');
JesusReSpond('Hi', 'hello', 'h1', 'hallo', 'sup');
JesusReSpond('Lol', 'haha', 'l0l', 'lmao', 'hehe');
JesusReSpond('Noob', 'l0l??', 'lies', 'no', ':(');
JesusReSpond('Mine', +IntToStr(Players[CurrentPlayer].integers[0]) + '...', +IntToStr(Players[CurrentPlayer].integers[0]), 'Its ' + IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]));
JesusReSpond('Lvls', +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]) + ':D', +IntToStr(Players[CurrentPlayer].integers[0]));
JesusReSpond('Lvs', +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]) + '=/', +IntToStr(Players[CurrentPlayer].integers[0]));
JesusReSpond('Mining', +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]), +IntToStr(Players[CurrentPlayer].integers[0]) + ':D', +IntToStr(Players[CurrentPlayer].integers[0]));
JesusReSpond('tack', +IntToStr(Players[CurrentPlayer].integers[2]), +IntToStr(Players[CurrentPlayer].integers[2]), +IntToStr(Players[CurrentPlayer].integers[2]), +IntToStr(Players[CurrentPlayer].integers[2]));
JesusReSpond('mith', +IntToStr(Players[CurrentPlayer].integers[3]), +IntToStr(Players[CurrentPlayer].integers[3]), +IntToStr(Players[CurrentPlayer].integers[3]), +IntToStr(Players[CurrentPlayer].integers[3]));
JesusReSpond('Trade', 'noty', 'im busy', 'u tr4d3 me first', 'if u tradw first/');
JesusReSpond('Auto', 'where?!', 'hate those levl 3s...', 'not me', '*Hides*');
JesusReSpond('Macro', 'where?', 'nub levl 3''s', 'gah..', 'hate those..');
end;
{*******************************************************************************
function FindInvPick: Boolean;
By: Stupid3ooo/WT-Fakawi
Description: Finds and Attaches Pickhead, will NOT weild it after.
*******************************************************************************}
//**Edited so it WONT attach the pick**(Untested, haven't lost any picks)
function FindInvPick: Boolean;
var
c, BR, dx, dy, ex, ey, x, y: Integer;
begin
GameTab(4);
Result := True;
if (FindBitmapSpiralTolerance(PickHandle, x, y, 550, 200, 745, 465, 30)) or
(GetColor(461, 378) = 0) and (GetColor(486, 388) = 0) then
// "you need a pickaxe to mine this rock"
begin
// PerfectNorth;
GameTab(4);
Wait(1000);
if (GetColor(588, 222) = 3818059) and (GetColor(574, 227) = 3489865) then
begin
NoPick := True;
WriteLn('Broken Pickaxe. NoPick:=True;');
GameTab(4);
Result := False;
BR := 1 + Random(5);
case BR of
1: TypeSend('arg');
2: TypeSend('aarg');
3: TypeSend('arghh');
4: TypeSend('dam');
5: TypeSend('sjee.');
end;
Exit;
end;
GameTab(4);
Wait(2000 + Random(100));
if InvFull then
begin
if (FindBitmapSpiralTolerance(Ore, x, y, 559, 210, 735, 460, 25)) then
begin
Mouse(x, y, 5, 5, False);
ChooseOption('Drop');
end;
end;
repeat
if not (LoggedIn) then Exit;
c := c + 1;
x := Random(510) + 5;
y := Random(330) + 5;
if (FindColorSpiral(x, y, hc1, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc2, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc3, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc4, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc5, 3, 3, 515, 338)) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMulti('Take', 'pick', 'head') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
end;
Flag;
Wait(1000 + Random(100));
end;
until ((FindBitmapSpiralTolerance(PickHead, x, y, 550, 200, 745, 465, 50))
or (c >= 10));
if not (FindBitmapSpiralTolerance(PickHead, x, y, 550, 200, 745, 465, 50)) then
begin
NoPick := True;
Result := False;
Exit;
end;
WriteLn('Found Head');
Wait(250);
GameTab(4);
Wait(250);
if FindBitmapToleranceIn(Pickhead, dx, dy, MIX1, MIY1, MIX2, MIY2, 50)
and FindBitmapToleranceIn(PickHandle, ex, ey, MIX1, MIY1, MIX2, MIY2, 50) then
// if (FindItemBmpTol(PickHead, 50)) and (FindItemBmpTol(PickHandle, 50)) then
begin
Mouse(dx, dy, 0, 0, True); // dx dy = PickHead coords
// ClickItemBmpTol(PickHead, 50, True);
Wait(1000);
Mouse(ex, ey, 0, 0, True); // ex ey = PickHandle coords
// ClickItemBmpTol(PickHandle, 50, True);
PickAxeAttached := PickAxeAttached + 1;
WriteLn('Attached Head & Handle');
NoPick := False;
Result := True;
end;
end;
end;
//
procedure IfGas; //What to do If it finds a gas
var
TempMspeed: Integer;
begin
TempMspeed := MouseSpeed;
MouseSpeed := 7;
MarkTime(AGas);
MouseFindNoFlag(646, 82, 3, 3);
Writeln('*** Found Gas ***');
MouseSpeed := tempMspeed;
while (TimeFromMark(AGas) < 35000) do
Randoms;
AntiBans;
SleepAndMoveMouse(20000 + random(5000));
Gas := Gas + 1;
ReportVars[4] := ReportVars[4] + 1;
end;
//
procedure CheckForGas; //By Masterkill. FindGas & GasFound weren't working
begin
if not LoggedIn then exit;
if (FindColorTolerance(x, y, 10596274, 0, 0, 500, 500, 1)) then
begin
IfGas;
end;
if (FindColorTolerance(x, y, 9806756, 0, 0, 500, 500, 1)) then
begin
IfGas;
end;
if (FindColorTolerance(x, y, 9017755, 0, 0, 500, 500, 1)) then
begin
IfGas;
end;
if (FindColorTolerance(x, y, 8821148, 0, 0, 500, 500, 1)) then
begin
IfGas;
end;
end;
//
procedure ChooseClick;
begin
case random(4) of
0: begin
Mouse(x - 1, y - 1, 1, 1, true);
end;
1: begin
Mouse(x + 1, y + 1, 2, 2, true);
end;
2: begin
Mouse(x, y, 2, 2, true);
end;
3: begin
Mouse(x, y, 3, 3, false);
ChooseOption('ine');
end;
end;
end;
//
procedure Waits;
var z: Integer;
begin
MarkTime(MineTime);
while (LoggedIn) do
begin
for z := 0 to 3 do
begin
case z of
0: if not (FindPick) then //<< From Sum's Rimmington Miner, with
begin // Edits by me.
Writeln('We lost our pick axe.');
WalkTheBank;
CheckPick2;
NewPick := NewPick + 1;
Players[CurrentPlayer].loc := 'Broken pickaxe';
NextPlayer(False);
end;
1: begin
Wait(900);
if InChatMulti('age to', 'ine', 'ome') then
begin
Exit;
end;
end;
2: begin
Wait(500);
if InChatMulti('no', 'ore', 'avail') then
begin
Exit;
end;
end;
3: begin
if (TimeFromMark(MineTime) > WaitOre * 1000) then
Exit;
end;
end;
end;
end;
end;
//
procedure CoolDown; //Logs you out for X time
var
LO: Integer;
begin
if (Leave) then
begin
LO := LO + 1;
if (LO >= NumLoads) then
begin
GameTab(10);
Writeln('Starting CoolDown Procedure...');
Wait(300 + random(100));
Logout;
Players[CurrentPlayer].loc := 'CoolDown...';
begin
Wait(HowLong * 60000 + random(Extra));
LoginPlayer;
CoolDowns := CoolDowns + 1;
LO := 0;
Writeln('Going back to mining');
Players[CurrentPlayer].loc := ' ';
end;
if (not (Leave)) then
Exit;
end;
end;
end;
//
procedure MineTheIron;
begin
SetRun(True);
HighestAngle;
Players[CurrentPlayer].loc := 'Mine';
begin;
if (not (LoveObjectFinder([IronColor], 'tol:10, RemoveDistance>18.0, MaxDistance:20'))) then ;
Mouse(258 + random(20), 70 + random(30), 0, 0, true);
Flag;
end;
MarkTime(Mining);
repeat
if LoveObjectFinder([IronColor], 'tol:6, RemoveDistance>18.0, MaxDistance:20,ClickLeft:ine;') then ;
Randoms;
CheckForGas;
IsItWielded;
Randoms;
TimeToReSpond;
CheckForGas;
Waits;
if (TimeFromMark(Mining) > MaxTime * 1000 * 60) then
begin
Players[CurrentPlayer].loc := 'Mining took to long';
NextPlayer(false);
Exit;
end;
until (InvFull);
SetRun(False);
end;
//
procedure MineTheTin;
begin
SetRun(True);
HighestAngle;
GameTab(4);
Players[CurrentPlayer].loc := 'Mine';
begin;
if (not (LoveObjectFinder([TinColor], 'tol:10, RemoveDistance>18.0, MaxDistance:20;'))) then ;
Mouse(90 + random(25), 250 + random(30), 0, 0, true);
Flag;
end;
MarkTime(Mining);
repeat {If FindObjOre2(x, y, 'in', TinColor, 5, 1) then; }
if LoveObjectFinder([TinColor], 'tol:10, RemoveDistance>18.0, MaxDistance:20,ClickLeft:ine;') then ;
Randoms;
CheckForGas;
IsItWielded;
Randoms;
TimeToReSpond;
CheckForGas;
Waits;
if (TimeFromMark(Mining) > MaxTime * 1000 * 60) then
begin
Players[CurrentPlayer].loc := 'Mining took to long';
NextPlayer(false);
Exit;
end;
until (InvFull);
SetRun(False);
end;
//
procedure MineTheCopper;
begin
SetRun(True);
HighestAngle;
MarkTime(Mining);
Players[CurrentPlayer].loc := 'Mine';
repeat
if LoveObjectFinder([CopperColor], 'tol:13, RemoveDistance>18.0, MaxDistance:20,ClickLeft:ine;') then ;
Randoms;
CheckForGas;
IsItWielded;
Randoms;
TimeToReSpond;
CheckForGas;
Waits;
if (TimeFromMark(Mining) > MaxTime * 1000 * 60) then
begin
Players[CurrentPlayer].loc := 'Mining took to long';
NextPlayer(false);
Exit;
end;
until (InvFull);
SetRun(False);
end;
//
procedure WhichOre;
begin
case LowerCase(Players[CurrentPlayer].Strings[0]) of
'iron': MineTheIron;
'copper': MineTheCopper;
'tin': MineTheTin;
end;
end;
//
//***The Walking DDTMS ***\\
procedure WalkTheMine1;
begin
MainPoint.x := 685;
MainPoint.y := 56;
MainPoint.areasize := 1
MainPoint.areashape := 0;
MainPoint.color := FindVarrockRoadColor;
MainPoint.tolerance := 255;
SubPoints[0].x := 691;
SubPoints[0].y := 52;
SubPoints[0].areasize := 1;
SubPoints[0].areashape := 0;
SubPoints[0].color := FindVarrockRoadColor;
SubPoints[0].tolerance := 1;
SubPoints[1].x := 678;
SubPoints[1].y := 52;
SubPoints[1].areasize := 1;
SubPoints[1].areashape := 0;
SubPoints[1].color := FindVarrockRoadColor;
SubPoints[1].tolerance := 1;
SubPoints[2].x := 678;
SubPoints[2].y := 60;
SubPoints[2].areasize := 1;
SubPoints[2].areashape := 0;
SubPoints[2].color := FindVarrockRoadColor;
SubPoints[2].tolerance := 1;
SubPoints[3].x := 691;
SubPoints[3].y := 60;
SubPoints[3].areasize := 1;
SubPoints[3].areashape := 0;
SubPoints[3].color := FindVarrockRoadColor;
SubPoints[3].tolerance := 1;
FRoad.MainPoint := MainPoint;
FRoad.SubPoints := SubPoints;
TheRoadF := AddDTM(FRoad);
end;
//
procedure WalkTheMine2;
begin
AMainPoint.x := 700;
AMainPoint.y := 93;
AMainPoint.areasize := 1
AMainPoint.areashape := 0;
AMainPoint.color := FindVarrockRoadColor;
AMainPoint.tolerance := 255;
ASubPoints[0].x := 706;
ASubPoints[0].y := 89;
ASubPoints[0].areasize := 1;
ASubPoints[0].areashape := 0;
ASubPoints[0].color := FindVarrockRoadColor;
ASubPoints[0].tolerance := 1;
ASubPoints[1].x := 694;
ASubPoints[1].y := 89;
ASubPoints[1].areasize := 1;
ASubPoints[1].areashape := 0;
ASubPoints[1].color := FindVarrockRoadColor;
ASubPoints[1].tolerance := 1;
ASubPoints[2].x := 694;
ASubPoints[2].y := 97;
ASubPoints[2].areasize := 1;
ASubPoints[2].areashape := 0;
ASubPoints[2].color := FindVarrockRoadColor;
ASubPoints[2].tolerance := 1;
ASubPoints[3].x := 706;
ASubPoints[3].y := 97;
ASubPoints[3].areasize := 1;
ASubPoints[3].areashape := 0;
ASubPoints[3].color := FindVarrockRoadColor;
ASubPoints[3].tolerance := 1;
SRoad.MainPoint := AMainPoint;
SRoad.SubPoints := ASubPoints;
TheRoadS := AddDTM(SRoad);
end;
//
procedure WalkTheMine3;
begin
BMainPoint.x := 680;
BMainPoint.y := 91;
BMainPoint.areasize := 1
BMainPoint.areashape := 0;
BMainPoint.color := FindVarrockRoadColor;
BMainPoint.tolerance := 255;
BSubPoints[0].x := 686;
BSubPoints[0].y := 86;
BSubPoints[0].areasize := 1;
BSubPoints[0].areashape := 0;
BSubPoints[0].color := FindVarrockRoadColor;
BSubPoints[0].tolerance := 1;
BSubPoints[1].x := 674;
BSubPoints[1].y := 86;
BSubPoints[1].areasize := 1;
BSubPoints[1].areashape := 0;
BSubPoints[1].color := FindVarrockRoadColor;
BSubPoints[1].tolerance := 1;
BSubPoints[2].x := 674;
BSubPoints[2].y := 96;
BSubPoints[2].areasize := 1;
BSubPoints[2].areashape := 0;
BSubPoints[2].color := FindVarrockRoadColor;
BSubPoints[2].tolerance := 1;
BSubPoints[3].x := 686;
BSubPoints[3].y := 96;
BSubPoints[3].areasize := 1;
BSubPoints[3].areashape := 0;
BSubPoints[3].color := FindVarrockRoadColor;
BSubPoints[3].tolerance := 1;
TRoad.MainPoint := BMainPoint;
TRoad.SubPoints := BSubPoints;
TheRoadT := AddDTM(TRoad);
end;
//
procedure WalkTheMine4;
begin
CMainPoint.x := 663;
CMainPoint.y := 128;
CMainPoint.areasize := 1
CMainPoint.areashape := 0;
CMainPoint.color := FindVarrockRoadColor;
CMainPoint.tolerance := 255;
CSubPoints[0].x := 668;
CSubPoints[0].y := 124;
CSubPoints[0].areasize := 1;
CSubPoints[0].areashape := 0;
CSubPoints[0].color := FindVarrockRoadColor;
CSubPoints[0].tolerance := 1;
CSubPoints[1].x := 658;
CSubPoints[1].y := 124;
CSubPoints[1].areasize := 1;
CSubPoints[1].areashape := 0;
CSubPoints[1].color := FindVarrockRoadColor;
CSubPoints[1].tolerance := 1;
CSubPoints[2].x := 658;
CSubPoints[2].y := 132;
CSubPoints[2].areasize := 1;
CSubPoints[2].areashape := 0;
CSubPoints[2].color := FindVarrockRoadColor;
CSubPoints[2].tolerance := 1;
CSubPoints[3].x := 668;
CSubPoints[3].y := 132;
CSubPoints[3].areasize := 1;
CSubPoints[3].areashape := 0;
CSubPoints[3].color := FindVarrockRoadColor;
CSubPoints[3].tolerance := 1;
ORoad.MainPoint := CMainPoint;
ORoad.SubPoints := CSubPoints;
TheRoadO := AddDTM(ORoad);
end;
//
procedure WalkTheMine5;
begin
DMainPoint.x := 658;
DMainPoint.y := 129;
DMainPoint.areasize := 1
DMainPoint.areashape := 0;
DMainPoint.color := FindVarrockRoadColor;
DMainPoint.tolerance := 255;
DSubPoints[0].x := 668;
DSubPoints[0].y := 124;
DSubPoints[0].areasize := 1;
DSubPoints[0].areashape := 0;
DSubPoints[0].color := FindVarrockRoadColor;
DSubPoints[0].tolerance := 1;
DSubPoints[1].x := 653;
DSubPoints[1].y := 125;
DSubPoints[1].areasize := 1;
DSubPoints[1].areashape := 0;
DSubPoints[1].color := FindVarrockRoadColor;
DSubPoints[1].tolerance := 1;
DSubPoints[2].x := 653;
DSubPoints[2].y := 132;
DSubPoints[2].areasize := 1;
DSubPoints[2].areashape := 0;
DSubPoints[2].color := FindVarrockRoadColor;
DSubPoints[2].tolerance := 1;
DSubPoints[3].x := 668;
DSubPoints[3].y := 132;
DSubPoints[3].areasize := 1;
DSubPoints[3].areashape := 0;
DSubPoints[3].color := FindVarrockRoadColor;
DSubPoints[3].tolerance := 1;
IRoad.MainPoint := DMainPoint;
IRoad.SubPoints := DSubPoints;
TheRoadI := AddDTM(IRoad);
end;
//
procedure WalkTheMine6;
begin
EMainPoint.x := 646;
EMainPoint.y := 140;
EMainPoint.areasize := 1
EMainPoint.areashape := 0;
EMainPoint.color := FindVarrockRoadColor;
EMainPoint.tolerance := 255;
ESubPoints[0].x := 650;
ESubPoints[0].y := 137;
ESubPoints[0].areasize := 1;
ESubPoints[0].areashape := 0;
ESubPoints[0].color := FindVarrockRoadColor;
ESubPoints[0].tolerance := 1;
ESubPoints[1].x := 642;
ESubPoints[1].y := 137;
ESubPoints[1].areasize := 1;
ESubPoints[1].areashape := 0;
ESubPoints[1].color := FindVarrockRoadColor;
ESubPoints[1].tolerance := 1;
ESubPoints[2].x := 642;
ESubPoints[2].y := 143;
ESubPoints[2].areasize := 1;
ESubPoints[2].areashape := 0;
ESubPoints[2].color := FindVarrockRoadColor;
ESubPoints[2].tolerance := 1;
ESubPoints[3].x := 646;
ESubPoints[3].y := 143;
ESubPoints[3].areasize := 1;
ESubPoints[3].areashape := 0;
ESubPoints[3].color := FindVarrockRoadColor;
ESubPoints[3].tolerance := 1;
JRoad.MainPoint := EMainPoint;
JRoad.SubPoints := ESubPoints;
TheRoadJ := AddDTM(JRoad);
end;
//
procedure WalkTheMine7;
begin
ZMainPoint.x := 656;
ZMainPoint.y := 140;
ZMainPoint.areasize := 1
ZMainPoint.areashape := 0;
ZMainPoint.color := FindVarrockRoadColor;
ZMainPoint.tolerance := 255;
ZSubPoints[0].x := 659;
ZSubPoints[0].y := 137;
ZSubPoints[0].areasize := 1;
ZSubPoints[0].areashape := 0;
ZSubPoints[0].color := FindVarrockRoadColor;
ZSubPoints[0].tolerance := 1;
ZSubPoints[1].x := 653;
ZSubPoints[1].y := 137;
ZSubPoints[1].areasize := 1;
ZSubPoints[1].areashape := 0;
ZSubPoints[1].color := FindVarrockRoadColor;
ZSubPoints[1].tolerance := 1;
ZSubPoints[2].x := 653;
ZSubPoints[2].y := 143;
ZSubPoints[2].areasize := 1;
ZSubPoints[2].areashape := 0;
ZSubPoints[2].color := FindVarrockRoadColor;
ZSubPoints[2].tolerance := 1;
ZSubPoints[3].x := 659;
ZSubPoints[3].y := 143;
ZSubPoints[3].areasize := 1;
ZSubPoints[3].areashape := 0;
ZSubPoints[3].color := FindVarrockRoadColor;
ZSubPoints[3].tolerance := 1;
KRoad.MainPoint := ZMainPoint;
KRoad.SubPoints := ZSubPoints;
TheRoadK := AddDTM(KRoad);
end;
//
procedure WalkTheMine;
var
tx, ty: Integer;
begin
HighestAngle;
Randoms;
CheckPick2;
MarkTime(WalkTime);
begin
WalkTheMine1;
if DTMRotated(TheRoadF, tx, ty, 680, 27, 715, 90) then
begin
Mouse(tx, ty, 1, 1, True);
Writeln('First Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadF);
end;
begin
WalkTheMine2;
if DTMRotated(TheRoadS, tx, ty, 685, 70, 715, 115) then
Mouse(tx, ty, 1, 1, True);
Writeln('2nd Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadS);
end;
begin
WalkTheMine3;
if DTMRotated(TheRoadT, tx, ty, 650, 60, 710, 125) then
Mouse(tx, ty, 1, 1, True);
Writeln('3rd Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadT);
end;
begin
WalkTheMine4;
if DTMRotated(TheRoadO, tx, ty, 630, 110, 680, 150) then
Mouse(tx, ty, 1, 1, True);
Writeln('4th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadO);
end;
begin
WalkTheMine5;
if DTMRotated(TheRoadI, tx, ty, 630, 110, 680, 150) then
Mouse(tx, ty, 1, 1, True);
Writeln('5th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadI);
end;
begin
WalkTheMine6;
if DTMRotated(TheRoadJ, tx, ty, 620, 120, 680, 170) then
Mouse(tx, ty, 1, 1, True);
Writeln('6th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadJ);
end;
begin
WalkTheMine7;
if DTMRotated(TheRoadK, tx, ty, 630, 110, 680, 160) then
Mouse(tx, ty, 1, 1, True);
Writeln('7th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Flag;
FreeDTM(TheRoadK);
end;
Mouse(627, 149, 10, 10, true);
FFlag(5 + random(8));
if (not (FindSymbol(x, y, 'mining spot'))) then
begin
Mouse(638, 120, 6, 6, true);
Flag;
FindSymbol(x, y, 'mining spot');
Mouse(x, y, 3, 3, true);
Flag;
end else ;
if FindSymbol(x, y, 'mining site') then ;
Mouse(x, y, 3, 3, true);
Flag;
Writeln('At mine');
if (TimeFromMark(WalkTime) > 10 * 1000 * 60) then
begin
Players[CurrentPlayer].loc := 'Lost going to mine';
Writeln('Player is lost');
NextPlayer(false);
end;
end;
end;
//
procedure WalkTheBank1;
begin
GMainPoint.x := 670;
GMainPoint.y := 46;
GMainPoint.areasize := 1
GMainPoint.areashape := 0;
GMainPoint.color := FindVarrockRoadColor;
GMainPoint.tolerance := 255;
GSubPoints[0].x := 674;
GSubPoints[0].y := 42;
GSubPoints[0].areasize := 1;
GSubPoints[0].areashape := 0;
GSubPoints[0].color := FindVarrockRoadColor;
GSubPoints[0].tolerance := 1;
GSubPoints[1].x := 666;
GSubPoints[1].y := 42;
GSubPoints[1].areasize := 1;
GSubPoints[1].areashape := 0;
GSubPoints[1].color := FindVarrockRoadColor;
GSubPoints[1].tolerance := 1;
GSubPoints[2].x := 666;
GSubPoints[2].y := 50;
GSubPoints[2].areasize := 1;
GSubPoints[2].areashape := 0;
GSubPoints[2].color := FindVarrockRoadColor;
GSubPoints[2].tolerance := 1;
GSubPoints[3].x := 674;
GSubPoints[3].y := 50;
GSubPoints[3].areasize := 1;
GSubPoints[3].areashape := 0;
GSubPoints[3].color := FindVarrockRoadColor;
GSubPoints[3].tolerance := 1;
LRoad.MainPoint := GMainPoint;
LRoad.SubPoints := GSubPoints;
TheRoadL := AddDTM(FRoad);
end;
//
procedure WalkTheBank2;
begin
QMainPoint.x := 640;
QMainPoint.y := 22;
QMainPoint.areasize := 1
QMainPoint.areashape := 0;
QMainPoint.color := FindVarrockRoadColor;
QMainPoint.tolerance := 255;
QSubPoints[0].x := 644;
QSubPoints[0].y := 18;
QSubPoints[0].areasize := 1;
QSubPoints[0].areashape := 0;
QSubPoints[0].color := FindVarrockRoadColor;
QSubPoints[0].tolerance := 1;
QSubPoints[1].x := 636;
QSubPoints[1].y := 18;
QSubPoints[1].areasize := 1;
QSubPoints[1].areashape := 0;
QSubPoints[1].color := FindVarrockRoadColor;
QSubPoints[1].tolerance := 1;
QSubPoints[2].x := 636;
QSubPoints[2].y := 26;
QSubPoints[2].areasize := 1;
QSubPoints[2].areashape := 0;
QSubPoints[2].color := FindVarrockRoadColor;
QSubPoints[2].tolerance := 1;
QSubPoints[3].x := 644;
QSubPoints[3].y := 26;
QSubPoints[3].areasize := 1;
QSubPoints[3].areashape := 0;
QSubPoints[3].color := FindVarrockRoadColor;
QSubPoints[3].tolerance := 1;
JERoad.MainPoint := QMainPoint;
JERoad.SubPoints := QSubPoints;
TheRoadJE := AddDTM(JERoad);
end;
//
procedure WalkTheBank3;
begin
UBMainPoint.x := 638;
UBMainPoint.y := 66;
UBMainPoint.areasize := 1
UBMainPoint.areashape := 0;
UBMainPoint.color := FindVarrockRoadColor;
UBMainPoint.tolerance := 255;
UBSubPoints[0].x := 645;
UBSubPoints[0].y := 62;
UBSubPoints[0].areasize := 1;
UBSubPoints[0].areashape := 0;
UBSubPoints[0].color := FindVarrockRoadColor;
UBSubPoints[0].tolerance := 1;
UBSubPoints[1].x := 637;
UBSubPoints[1].y := 62;
UBSubPoints[1].areasize := 1;
UBSubPoints[1].areashape := 0;
UBSubPoints[1].color := FindVarrockRoadColor;
UBSubPoints[1].tolerance := 1;
UBSubPoints[2].x := 637;
UBSubPoints[2].y := 70;
UBSubPoints[2].areasize := 1;
UBSubPoints[2].areashape := 0;
UBSubPoints[2].color := FindVarrockRoadColor;
UBSubPoints[2].tolerance := 1;
UBSubPoints[3].x := 645;
UBSubPoints[3].y := 70;
UBSubPoints[3].areasize := 1;
UBSubPoints[3].areashape := 0;
UBSubPoints[3].color := FindVarrockRoadColor;
UBSubPoints[3].tolerance := 1;
UTRoad.MainPoint := UBMainPoint;
UTRoad.SubPoints := UBSubPoints;
TheRoadUT := AddDTM(UTRoad);
end;
//
procedure WalkTheBank4;
begin
CTMainPoint.x := 624;
CTMainPoint.y := 20;
CTMainPoint.areasize := 1
CTMainPoint.areashape := 0;
CTMainPoint.color := FindVarrockRoadColor;
CTMainPoint.tolerance := 255;
CTSubPoints[0].x := 628;
CTSubPoints[0].y := 16;
CTSubPoints[0].areasize := 1;
CTSubPoints[0].areashape := 0;
CTSubPoints[0].color := FindVarrockRoadColor;
CTSubPoints[0].tolerance := 1;
CTSubPoints[1].x := 620;
CTSubPoints[1].y := 16;
CTSubPoints[1].areasize := 1;
CTSubPoints[1].areashape := 0;
CTSubPoints[1].color := FindVarrockRoadColor;
CTSubPoints[1].tolerance := 1;
CTSubPoints[2].x := 620;
CTSubPoints[2].y := 24;
CTSubPoints[2].areasize := 1;
CTSubPoints[2].areashape := 0;
CTSubPoints[2].color := FindVarrockRoadColor;
CTSubPoints[2].tolerance := 1;
CTSubPoints[3].x := 628;
CTSubPoints[3].y := 24;
CTSubPoints[3].areasize := 1;
CTSubPoints[3].areashape := 0;
CTSubPoints[3].color := FindVarrockRoadColor;
CTSubPoints[3].tolerance := 1;
OTRoad.MainPoint := CTMainPoint;
OTRoad.SubPoints := CTSubPoints;
TheRoadOT := AddDTM(OTRoad);
end;
//
procedure WalkTheBank5;
begin
DGMainPoint.x := 589;
DGMainPoint.y := 59;
DGMainPoint.areasize := 1
DGMainPoint.areashape := 0;
DGMainPoint.color := FindVarrockRoadColor;
DGMainPoint.tolerance := 255;
DGSubPoints[0].x := 593;
DGSubPoints[0].y := 55;
DGSubPoints[0].areasize := 1;
DGSubPoints[0].areashape := 0;
DGSubPoints[0].color := FindVarrockRoadColor;
DGSubPoints[0].tolerance := 1;
DGSubPoints[1].x := 585;
DGSubPoints[1].y := 55;
DGSubPoints[1].areasize := 1;
DGSubPoints[1].areashape := 0;
DGSubPoints[1].color := FindVarrockRoadColor;
DGSubPoints[1].tolerance := 1;
DGSubPoints[2].x := 585;
DGSubPoints[2].y := 63;
DGSubPoints[2].areasize := 1;
DGSubPoints[2].areashape := 0;
DGSubPoints[2].color := FindVarrockRoadColor;
DGSubPoints[2].tolerance := 1;
DGSubPoints[3].x := 593;
DGSubPoints[3].y := 63;
DGSubPoints[3].areasize := 1;
DGSubPoints[3].areashape := 0;
DGSubPoints[3].color := FindVarrockRoadColor;
DGSubPoints[3].tolerance := 1;
IGRoad.MainPoint := DGMainPoint;
IGRoad.SubPoints := DGSubPoints;
TheRoadIG := AddDTM(IGRoad);
end;
//
procedure WalkTheBank;
var
FT, iX, iY, tx, ty: Integer;
AngleVar: Extended;
begin
if (not (LoggedIn)) then NextPlayer(False);
begin
HighestAngle;
if FindSymbol(x, y, 'mining site') then ;
Mouse(x, y, 2, 2, true);
Flag;
RadialRoadWalk(FindStoneColor, -15, 80, 35, 1, 1);
Flag;
end;
begin
PerfectNorth
Mouse(657, 29, 2, 2, true);
Wait2(4000, true);
Flag;
Writeln('Used mouse coord');
end;
begin
PerfectNorth;
WalkTheBank2;
if DTMRotated(TheRoadJE, tx, ty, 610, 10, 680, 60) then
begin
Mouse(tx, ty, 1, 1, True);
Writeln('2nd Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Wait2(1000, true);
Flag;
FreeDTM(TheRoadJE);
end else ;
RadialRoadWalk(FindVarrockRoadColor, 320, 355, 63, 1, 1);
Flag;
end;
begin
WalkTheBank3;
if DTMRotated(TheRoadUT, tx, ty, 610, 10, 680, 60) then
Mouse(tx + 5, ty, 1, 1, True);
Writeln('3rd Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Wait2(1000, true);
Flag
FreeDTM(TheRoadUT);
end;
begin
WalkTheBank4;
if DTMRotated(TheRoadOT, tx, ty, 590, 5, 660, 50) then
Mouse(tx, ty, 1, 1, True);
Writeln('4th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Wait2(1000, true);
Flag;
FreeDTM(TheRoadOT);
end;
begin
WalkTheBank5;
if DTMRotated(TheRoadIG, tx, ty, 550, 30, 610, 90) then
Mouse(tx, ty, 1, 1, True);
Writeln('5th Click at ' + IntToStr(tx) + ', ' + IntTostr(ty));
Wait2(1000, true);
Flag;
FreeDTM(TheRoadIG);
end;
begin
RadialRoadWalk(FindVarrockRoadColor, 246, 288, 52, 2, 2);
Wait2(1000, true);
Flag;
end;
begin
RadialRoadWalk(RoadColor, 252, 286, 52, 2, 2);
Wait2(1000, true);
FFlag(5);
//FreeDTM(TheRoadKT);
end;
repeat
Ft := Ft + 1;
if FindDTMRotated(VarBankers, iX, iY, MMX1, MMY1, MMX2, MMY2, -2.0, 3.0, 1, AngleVar) then ;
Mouse(iX + 15, iY + 2, 0, 0, true); //From Wizzup?'s Ess Miner<^
Flag;
until (ft >= 2);
if (TimeFromMark(WalkTime) > 15 * 60000) then
begin
Players[CurrentPlayer].loc := 'Lost to Bank';
Writeln('Player is lost');
NextPlayer(false);
Exit;
end;
Writeln('Counting ores...');
IronMined := IronMined + CountItemsColor('Inventory', 2306125, 8);
TinMined := TinMined + CountItemsColor('Inventory', 8487307, 8);
CopperMined := CopperMined + CountItemsColor('Inventory', 3636696, 8);
ReportVars[0] := ReportVars[0] + CountItemsColor('Inventory', 2306125, 8);
ReportVars[1] := ReportVars[1] + CountItemsColor('Inventory', 8487307, 8);
ReportVars[2] := ReportVars[3] + CountItemsColor('Inventory', 3636696, 8);
SRLRandomsReport;
SendSRLReport;
end;
//
//***End Walking DDTMS***\\(yay :p)
procedure BankTheOre;
begin
repeat
OpenMyBank;
until (BankScreen) or (PinScreen);
Wait(300 + random(500));
begin
if (Players[CurrentPlayer].Booleans[0] = True) then ;
Deposit(1, 28, 2);
end;
begin
if (Players[CurrentPlayer].Booleans[0] = False) then ;
Deposit(2, 28, 2);
end;
Wait(400 + random(300));
CloseBank;
Banks := Banks + 1;
Load := Load + 1;
SRLRandomsReport;
SendSRLReport;
CoolDown;
Report;
Players[CurrentPlayer].loc := 'Bank';
end;
//
procedure Extras;
begin
SetBar('Brightness', 4);
FindPickHeadColor;
DoYouAbuse;
Players[CurrentPlayer].integers[0] := GetSkillLevel('mining');
Players[CurrentPlayer].integers[2] := GetSkillLevel('attack');
Players[CurrentPlayer].integers[3] := GetSkillLevel('smithing');
end;
//
procedure SetUp;
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
ScriptID := '385';
end;
//
procedure TheScript;
begin
ClearDebug;
Signature;
LoadPics;
Setup;
SetupSRL;
SetUpMining;
DeclarePlayers;
ActivateClient;
LoginPlayer;
SymbolAccuracy := 0.5;
end;
{-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_}
{-_-_-_-_-_-_-_-_-_-_MainLoop-_-_-_-_-_-_-_-_-_-_-_-_-_}
{-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_}
begin
Disguise('Windows Live Messenger');
TheScript;
Extras;
repeat
repeat
MouseSpeed := Mspeed + random(1);
WalkTheMine;
WhichOre;
WalkTheBank;
BankTheOre;
until (Load >= Loads);
SRLRandomsReport;
SendSRLReport;
NextPlayer(True);
Extras;
until not (Players[CurrentPlayer].Active);
FreeDtm(Pick);
FreeDtm(Pickaxe);
FreeDtm(Pickaxestick);
FreeDtm(VarBankers);
FreeDtm(pickaxehead);
FreeDtm(BrokenPickaxe);
end.
//The End! :)
KillerDou's AdvanceObjFinder:
(Save it in/as SRL/SRL/Core/LoveAdvanceObj)
var
AI, BI, Color, TheBitMap: integer;
// from mastaraymond
Function TPointArrayToIntegerArray(ThePoints:TPointArray;ReturnX:Boolean): TIntegerArray;
var
I:integer;
begin;
Try
SetArrayLength(Result,Length(ThePoints));
For I:= 0 to Length(ThePoints)-1 do
If ReturnX then Result[i]:=ThePoints[i].x
else Result[i]:=ThePoints[i].y;
Except
Writeln('There is an error, sorry!');
end;
end;
Function Density(A : TPointArray) : Extended;
var
B, C : Array of Integer;
D, E : Integer;
Begin
B := TPointArrayToIntegerArray(A, True);
C := TPointArrayToIntegerArray(A, False);
BubbleSort(B);
BubbleSort(C);
D := GetArrayLength(A);
E := (B[D - 1] - B[0] + 1)*(C[D - 1] - C[0] + 1)
Result := 1 / (E / D);
end;
Function RemoveSmallDensityGroups(A :TPointArrayArray; WhatDensity: Extended) : TPointArrayArray;
var
RV, I: Integer;
begin
RV := 0;
For I := 0 To Length(A) - 1 do
Begin
If Density(A[i]) > WhatDensity then
begin
RV := RV + 1;
SetLength(Result, RV);
Result[RV - 1] := A[i];
end;
end;
end;
Function RemoveBigDensityGroups(A : TPointArrayArray; WhatDensity: extended) : TPointArrayArray;
var
RV, I: Integer;
begin
RV := 0;
For I := 0 To Length(A) - 1 do
Begin
If Density(A[i]) < WhatDensity then
begin
RV := RV + 1;
SetLength(Result, RV);
Result[RV - 1] := A[i];
end;
end;
end;
Function WhatIsDistance(a :TPointArray) : integer;
var
X, Y : integer;
begin
FindMiddle(X, Y, A);
Result := Distance(X, Y, 259, 144);
end;
//rearrange procedures thanks to wizzup
Procedure SwapA(var a, b :TPointArray);
Var
c: TPointArray;
Begin
c := a;
a := b;
b := c;
End;
Procedure RearrangeArrayByDensity(var a: Array Of TPointArray; Small: Boolean);
Var
B: Boolean;
I: Integer;
L: extended;
Begin
B := True;
L := GetArrayLength(a);
While B Do
Begin
B := False;
For I := 0 To L - 2 Do
If Small Then
Begin
If Density(a[i]) > Density(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End
Else
Begin
If Density(a[i]) < Density(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End;
End;
End;
Procedure RearrangeArrayByDistance(var a: Array Of TPointArray; Small: Boolean);
Var
B: Boolean;
L, I: Integer;
Begin
B := True;
L := GetArrayLength(a);
While B Do
Begin
B := False;
For I := 0 To L - 2 Do
If Small Then
Begin
If WhatIsDistance(a[i]) > WhatIsDistance(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End
Else
Begin
If WhatIsDistance(a[i]) < WhatIsDistance(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End;
End;
End;
Procedure RearrangeArrayByLength(var a: Array Of TPointArray; Small: Boolean);
Var
B: Boolean;
L, I: Integer;
Begin
B := True;
L := GetArrayLength(a);
While B Do
Begin
B := False;
For I := 0 To L - 2 Do
If Small Then
Begin
If GetArrayLength(a[i]) > GetArrayLength(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End
Else
Begin
If GetArrayLength(a[i]) < GetArrayLength(a[i+1]) then
Begin
SwapA(a[i], a[i + 1]);
B := True;
End
End;
End;
End;
Function Checkall(A : TPointArrayArray; UpText: String; Left : boolean) : boolean;
var
I, X, Y : integer;
begin
For I := 0 to Length(A) - 1 do
begin
FindMiddle(X, Y, A[i]);
MMouse(X, Y, 0, 0);
Wait(50 + Random(25));
If IsUpText(UpText) then
begin
Mouse(X, Y, 0, 0, Left);
Result := True;
Exit;
end;
end;
end;
Function LoveObjectFinder(Colors : Array of Integer; Sort : String) : Boolean;
Var
Dev : Boolean;
I, A,Tol, MaxDist, AccA, AccB, TempI, ColorMarker, FindGroupsMarker: Integer;
HueMod, SatMod : extended;
SplittedText : Array of String;
FoundPoints, FoundPoints2 : TPointArray;
TwoDArrayOfTPoints: array of TPointArray;
Begin
HueMod := 0.2;
SatMod := 0.2;
Tol := 15;
MaxDist := 5;
AccA := 0;
AccB := 1;
SplittedText := SplitText(Sort);
For I := 0 to GetArrayLength(SplittedText) - 1 do
Case LowerCase(GetLetters(SplittedText[i])) of
'huemod' : HueMod := StrToInt(GetNumbers(SplittedText[i])) div IntPow(10,Length(GetNumbers(SplittedText[i])) - 1);
'satmod' : SatMod := StrToInt(GetNumbers(SplittedText[i])) div IntPow(10,Length(GetNumbers(SplittedText[i])) - 1);
'tol' : Tol := StrToInt(GetNumbers(SplittedText[i]));
'maxdist' : MaxDist := StrToInt(GetNumbers(SplittedText[i]));
'acca' : AccA := StrToInt(GetNumbers(SplittedText[i]));
'accb' : AccB := StrToInt(GetNumbers(SplittedText[i]));
'dev' : Dev := True;
end;
If AccA > MaxDist then
begin
TempI := AccA;
AccA := MaxDist;
MaxDist := TempI;
end;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(HueMod, SatMod);
If dev then TheBitmap := BitMapFromString(MSX2 - MSX1, MSY2 - MSY1, '');
If dev then CopyClientToBitmap(TheBitMap, MSX1, MSY1, MSX2, MSY2);
if dev then ColorMarker:= GetTimeRunning;
For A := 0 to GetArrayLength(Colors) - 1 do
begin
FindColorsSpiralTolerance(259, 144, FoundPoints2, Colors[A], MSX1, MSY1, MSX2, MSY2, Tol);
AddTPointArray(FoundPoints, FoundPoints2);
end;
if dev then WriteLn('Colorfinding took: ' + IntToStr(GetTimeRunning - ColorMarker) + 'ms.');
if dev then FindGroupsMarker := GetTimeRunning;
TwoDArrayOfTPoints := FindGroups(FoundPoints, MaxDist, AccA, AccB);
if dev then WriteLn('FindGroups took: ' + IntToStr(GetTimeRunning - FindGroupsMarker) + 'ms.');
If GetArrayLength(TwoDArrayOfTPoints) = 0 then Exit;
For I := 0 to GetArrayLength(SplittedText) - 1 do
begin
If LowerCase(GetLetters(SplittedText[i])) = 'removedensity' then
Begin
If Copy(SplittedText[i], 14, 1) = '<' then
TwoDArrayOfTPoints := RemoveSmallDensityGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])) div IntPow(10,Length(GetNumbers(SplittedText[i])) - 1));
If Copy(SplittedText[i], 14, 1) = '>' then
TwoDArrayOfTPoints := RemoveBigDensityGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])) div IntPow(10,Length(GetNumbers(SplittedText[i])) - 1));
end;
If LowerCase(GetLetters(SplittedText[i])) = 'removeamount' then
Begin
If Copy(SplittedText[i], 13, 1) = '<' then
TwoDArrayOfTPoints := RemoveSmallPointGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])));
If Copy(SplittedText[i], 13, 1) = '>' then
TwoDArrayOfTPoints := RemoveBigPointGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])));
end;
If LowerCase(GetLetters(SplittedText[i])) = 'removedistance' then
Begin
If Copy(SplittedText[i], 15, 1) = '<' then
TwoDArrayOfTPoints := RemoveLowerDistancePointGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])));
If Copy(SplittedText[i], 15, 1) = '>' then
TwoDArrayOfTPoints := RemoveHigherDistancePointGroups(TwoDArrayOfTPoints, StrToInt(GetNumbers(SplittedText[i])));
end;
Case LowerCase(SplittedText[i]) of
'lengthtrue' : RearrangeArrayByLength(TwoDArrayOfTPoints,True);
'distancetrue' : ReArrangeArrayByDistance(TwoDArrayOfTPoints,True);
'densitytrue' : ReArrangeArrayByDensity(TwoDArrayOfTPoints,True);
'lengthfalse' : RearrangeArrayByLength(TwoDArrayOfTPoints,False);
'distancefalse' : ReArrangeArrayByDistance(TwoDArrayOfTPoints,False);
'densityfalse' : ReArrangeArrayByDensity(TwoDArrayOfTPoints,False);
end;
end;
For I := 0 to GetArrayLength(SplittedText) - 1 do
begin
If LowerCase(Copy(SplittedText[i], 1, 9)) = 'clickleft' then
begin
Delete(SplittedText[i], 1, 9);
Result := CheckAll(TwoDArrayOfTPoints, LowerCase(GetLetters(SplittedText[i])), True);
end;
If LowerCase(Copy(SplittedText[i], 1, 10)) = 'clickright' then
begin
Delete(SplittedText[i], 1, 10);
Result := CheckAll(TwoDArrayOfTPoints, LowerCase(GetLetters(SplittedText[i])), False);
end;
end;
Result := True;
If dev then
Begin
For AI := 0 To GetArrayLength(TwoDArrayOfTPoints) - 1 do
begin
Color := Round((16581375/GetArrayLength(TwoDArrayOfTPoints)) * (AI + 1));
For BI := 0 to GetArrayLength(TwoDArrayOfTPoints[AI]) - 1 do
FastSetPixel(TheBitMap, TwoDArrayOfTPoints[AI][BI].x - MSX1, TwoDArrayOfTPoints[AI][BI].y - MSY1, Color);
end;
SaveBitmap(TheBitmap, 'c:\TheBitmap.bmp');
DisplayDebugImgWindow(MSX2 - MSX1, MSY2 - MSY1);
SafeDrawBitmap(TheBitmap, GetDebugCanvas, 0, 0);
ActivateClient;
end;
end;