[-jesus-]
2007-11-09 20:58:30
<!– BEGIN TEMPLATE: formanswers –>
[-jesus-] - SRL Member Application Form
[-jesus-]
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
None
Other Communitys
Sythe ocassionally
How Long have You Played Runescape
Since Dec 205
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I began Runescape cheating around June 2007 I think. Was referred to Sythe by Wizzi1 over IRC. After a few weeks- 1 month I saw a mods' post about Aresbot.com so I headed there. Never got around to actually buying the bot, Ollie left before I would have bought it(probably wont ever buy a script. Sorry Hy :p ). Before the site closed I had seen someone talking about Scar. So I began Googling around and finally found Freddy1990.com. I think I may have actually downloaded Scar before this but didn't understand it so I probably uninstalled it. Anyways… I came to Srl-Forums and just leeched around for about a week before really becoming interested in scripting. Once I did become interested I read through a lot of people scripts like 24/7 and edited them a bit sometimes.
Thanks; Hope you accept me ,
~ [-Jesus-]
P.S.: To run my VarrockEastMiner, you will need to download Killerdou's Obj Finder & add the Scar file(below): http://www.srl-forums.com/forum/love...er-t15230.html
Ram Requested that I make another application thread…
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
KillerDou's AdvanceObjectFinder is needed for this script!
Save this file in {.include SRL/SRL/Core/LoveAdvanceObj.scar}
——————————————————
<!– END TEMPLATE: formanswers –>
[-jesus-] - SRL Member Application Form
[-jesus-]
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
None
Other Communitys
Sythe ocassionally
How Long have You Played Runescape
Since Dec 205
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I began Runescape cheating around June 2007 I think. Was referred to Sythe by Wizzi1 over IRC. After a few weeks- 1 month I saw a mods' post about Aresbot.com so I headed there. Never got around to actually buying the bot, Ollie left before I would have bought it(probably wont ever buy a script. Sorry Hy :p ). Before the site closed I had seen someone talking about Scar. So I began Googling around and finally found Freddy1990.com. I think I may have actually downloaded Scar before this but didn't understand it so I probably uninstalled it. Anyways… I came to Srl-Forums and just leeched around for about a week before really becoming interested in scripting. Once I did become interested I read through a lot of people scripts like 24/7 and edited them a bit sometimes.
Thanks; Hope you accept me ,
~ [-Jesus-]
P.S.: To run my VarrockEastMiner, you will need to download Killerdou's Obj Finder & add the Scar file(below): http://www.srl-forums.com/forum/love...er-t15230.html
Ram Requested that I make another application thread…
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
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] + 1;
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('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 AdvanceObjectFinder is needed for this script!
Save this file in {.include SRL/SRL/Core/LoveAdvanceObj.scar}
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;
——————————————————
<!– END TEMPLATE: formanswers –>