SRL Archive - Archive

Shermanator - SRL Member Application Form


The_Shermanator

2008-10-13 02:04:50

<!– BEGIN TEMPLATE: formanswers –>
Shermanator - SRL Member Application Form
Shermanator

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
No Sorry

Other Communitys
RunescapeCommunity

How Long have You Played Runescape
4 Years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Hello, My real name is Joseph otherwise known as the "Shermanator." I am 15 years of age. I live in Imperial Beach, California, I play baseball and love to party(In Tijuana)! I first came by these forums about 1-2 years ago one day when I was searching for RS Hacks/Bots. Tried to learn to script but soon became bored/was too hard/complicated(I was dumb back then). Left these forums and played like a normal RS player up until 5 or so months ago when I lost membership and remembered this community! I immediately started to learn to script, and soon became pretty good in my opinion. I love to be challenged and help people and scripting for this community meets both of those things :]

The scripts I have made are:

An Air crafter(Horrible now that I look at it)
Earth Crafter(Big Learning experience but still pretty bad)
Essence Miner(First script that was actually good - never released though- was another huge learning experience)
Guild Miner(Best project to date and my application)

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

Simple but works:D

Function MyFindPick: Boolean;
Var
Color, Tolerance, PickaxeStick, PickAxeHead, FindTime: Integer;
Sat, Hue: Extended;
CTS, X, Y, T, I, ax, ay: Integer;
TPA: TPointArray;
aTPA: T2DPointArray;
GotPick, EquipedPick: Boolean;
Begin
if(not(LoggedIn))then
Exit;
Marktime(FindTime);
GotPick := False;
PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
'204D44801095E026A40F2CA04D408000929026A048184220135E2' +
'404214BF1A00B23A014A');
PickAxeHead := DTMFromString('78DA63CC67626078C280024C9DCD18FE03694' +
'620FE0F048C6540357718D000231209A44B8850930254F382809A' +
'7422D4E401D53C24A0A618A8E639013559987EC750530A54F3940' +
'83504DC03006F691312');
MarkTime(T);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
Case Players[CurrentPlayer].Strings[0] of
'Rune' :begin
Color := 6774085; //Color
Hue := 0.04; //Hue
Sat := 0.08; //Sat
Tolerance := 12; //Lum
end;
'Addy' :begin
Color := 4148798; //Color
Hue := 0.14; //Hue
Sat := 0.05; //Sat
Tolerance := 8; //Lum
end;
'Mith' :begin
Color := 5125428; //Color
Hue := 0.13; //Hue
Sat := 0.15; //Sat
Tolerance := 5; //Lum
end;
'Steel' :begin
Color := 7237496; //Color
Hue := 0.13; //Hue
Sat := 0.07; //Sat
Tolerance := 13; //Lum
end;
'Iron' :begin
Color := 4014670; //Color
Hue := 0.71; //Hue
Sat := 1.24; //Sat
Tolerance := 7; //Lum
end;
'Bronze':begin
Color := 1522515; //Color
Hue := 0.11; //Hue
Sat := 3.07; //Sat
Tolerance := 7; //Lum
end;
end;
SetColorspeed2Modifiers(Hue, Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tolerance);
aTPA := TPAToATPAEx(TPA, 10, 10);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
WriteLn('Looking For Pick...');
For I:= 0 To High(aTPA) Do
Begin
Wait(200+ random(100));
MiddleTPAEx(aTPA[I], X, Y);
MMouse(X, Y, 0, 0);
If(IsUpTextMultiCustom(['ake', 'ickhead', 'head', 'ick']))Then
Begin
WriteLn('Found PickHead In: ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
Mouse(x, y, 0, 0, True);
Flag;
GotPick := True;
Break;
End;
end;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
Wait(500+random(500));
If(GotPick)then
begin
If Players[CurrentPlayer].Booleans[0] then //if handle is equipted
GameTab(5);
If FindDTM(PickAxeStick, x, y, MIx1, Miy1, MIx2, MIy2) then
begin
Mouse(x, y, 0, 0, True);
Wait(500);
end else
begin
If(not(Players[CurrentPlayer].Booleans[0]))then//failsafe for in case Booleans[0] is wrong for some reason
GameTab(4)
else
GameTab(5);
If FindDTM(PickAxeStick, x, y, MIx1, Miy1, MIx2, MIy2) then
begin
Mouse(x, y, 0, 0, True);
Wait(500);
end else
begin
Result := False;
WriteLn('Couldn''t Find Your Pick-Handle!');
Exit;
end;
end;
Wait(500);
GameTab(4);
if FindDTM(PickAxeHead, X, Y, MIx1, MIy1, MIx2, MIy2)
and(FindDTM(PickAxeStick, ax, ay, MIx1, MIy1, MIx2, MIy2))then
begin
Mouse(x, y, 0, 0, True);
Wait(500+random(500));
Mouse(ax, ay, 0, 0, True);
EquipedPick := True;
end;
If EquipedPick then
begin
WriteLn('SuccessFully attached your pickaxe');
WriteLn('Finding and Attaching your pickaxe took: '+inttostr(Timefrommark(findtime))+' milliseconds!');
Result := True;
end;
end else
begin
Result := False;
WriteLn('Couldn''t Find Your Pick-Head!');
end;
FreeDTM(PickAxeHead);
FreeDTM(PickAxeStick);
end;

I tried to upload an Attachment but it said I couldn't upload an Attachment because of privileges so if its ok I'll just post here.
program GuildMiner;
{.include SRL/SRL.scar}
{.Include SRL\SRL\skill\Mining.scar}
{.include srl/srl/misc/path.scar}
{=========================================================================]

[=========================================================================]
[ NAME : Guild Miner ]
[ WRITER : Shermanator ]
[ CATEGORY : Mining ]
[ DESCRIPTION : Walks to Mining guild, Mines, Banks, Repeats ]
[ USAGE : Mining experience and money ]
[ AUTOCOLOR : Yes ]
[ CONTACT : MSN - [email]Whiteboysherman@hotmail.com[/email] ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ 1. USE Runescape With Low Detail, Very Bright. ]
[ 2. Set your Screen To 32 bit TRUE color. ]
[ 3. Position Players In Bank. ]
[ 4. Drag The Cross Hair Over Runescape, Hit Play, And Enjoy! ]
[=========================================================================]
[=========================================================================}
const
LoadsToDo = 10; // Loads to do per player?
YourSRLId = ''; // Must be STRING!
YourSRLPass = ''; // MUST be STRING!
UseDebug = True; // Use "WriteLn"?
DropTheGems = True; // Drop Gems if get?
MineTheMith = True;
UseResponder = True; //Better anti-ban :] but laggs a little...so you choose..
UseRandomTalk = True;//Randomly Talk? - Better anti-ban...
SpeedofMouse = 15;
SmartWorld = 'world101';//Smart World...

var
x, y, LoadsDone, GasAvoided, TotalOre, WaitTime, TotalGems, TotalCoal, RandomTalked: Integer;
Relocated, Responded, TotalMith: Integer;
Wielded: Boolean;

Procedure DeclarePlayers;
Begin
CurrentPlayer := 0;
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // Nickname, 3 - 4 letters of username
Players[0].Loc := 'Bank';// Just don't touch :)
Players[0].Active := True; // I think your active ;]
Players[0].Pin := ''; // Your pin, if any.

end;

procedure Write(s: string);// saw in this one script, looked good, who made it though?
begin
if(UseDebug)then
WriteLn(S);
end;

Function GetUpTextBlue:String;//forget who by...
Begin
Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
true, 0, 2, 15066384, 50, True, tr_AllChars));
End;

Function IsUpTextBlue(Text: String): Boolean;//forget who by...
Begin
Result := (Pos(Text, GetUpTextBlue) <> 0)
End;

Function RandomSay: Boolean;
begin
if(Not(UseRandomTalk))then
Exit;
Case Random(300) of
0: Result := True;
5: Result := True;
10: Result := True;
15: Result := True;
20: Result := True;
25: Result := True;
30: Result := True;
35: Result := True;
40: Result := True;
45: Result := True;
50: Result := True;
55: Result := True;
60: Result := True;
65: Result := True;
70: Result := True;
75: Result := True;
80: Result := True;
85: Result := True;
90: Result := True;
95: Result := True;
100: Result := True;
110: Result := True;
150: Result := True;
170: Result := True;
190: Result := True;
199: Result := True;
end;
if (Result) then
begin
Case Random(30) of
0: TypeSend('so boring');
1: TypeSend('this is sooooo boring');
2: TypeSend('this good money');
3: TypeSend('this is good money');
4: TypeSend('rawr');
5: TypeSend('im bored');
6: TypeSend('my music owns');
7: TypeSend('muhahaha');
8: TypeSend('i wana go to the beach');
9: TypeSend('i cant wait for pvp');
10: TypeSend('i wish there were more rocks');
11: TypeSend('hope I dont break a pick again lol');
12: TypeSend('only a wee bit more');
13: TypeSend('almost done');
14: TypeSend('hi');
15: TypeSend('its looks good outside');
16: TypeSend('im tired');
17: TypeSend('i wana go take a nap');
18: TypeSend('members is overrated');
19: TypeSend('i need to train my combat');
20: TypeSend('haha a funny commercial on tv');
21: TypeSend('wow im laggin');
22: TypeSend('laaaagg');
23: TypeSend('lagg');
24: TypeSend('omg sooo much lag');
25: TypeSend('oo good song');
26: TypeSend('omg I love this song');
27: TypeSend('god i hate the news');
28: TypeSend('oh yea');
29: TypeSend('boooo');
end;
ReportVars[6] := ReportVars[6] + 1;
RandomTalked := RandomTalked + 1;
end;
end;

Procedure LoadPaths;
begin
SetPathLength(2);

Path[0].Mainpoint.x:=630; //Right Outside Bank...
Path[0].Mainpoint.y:=76;
Path[0].Subpoints[0].x:=629;
Path[0].Subpoints[0].y:=76;
Path[0].Subpoints[1].x:=629;
Path[0].Subpoints[1].y:=62;
Path[0].Subpoints[2].x:=601;
Path[0].Subpoints[2].y:=64;
Path[0].Subpoints[3].x:=604;
Path[0].Subpoints[3].y:=81;
Path[0].Subpoints[4].x:=645;
Path[0].Subpoints[4].y:=66;
Path[0].Subpoints[5].x:=600;
Path[0].Subpoints[5].y:=86;
Path[0].Subpoints[6].x:=629;
Path[0].Subpoints[6].y:=71;
Path[0].Subpoints[7].x:=620;
Path[0].Subpoints[7].y:=61;

end;

Function FindBankBooth: Boolean;
Var
CTS, X, Y, T, I, Mark: Integer;
P: TPointArray;
aTPA: T2DPointArray;

Begin
if(not(LoggedIn))then
Exit;
MarkTime(T);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 1.04);
FindColorsSpiralTolerance(MSCX, MSCY + 20, P, 4219516, MSX1, MSY1, MSX2, MSY2, 5)
aTPA := TPAToATPAEx(P, 25, 25);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
For I:= 0 To High(aTPA) Do
Begin
MiddleTPAEx(aTPA[I], X, Y);
MMouse(X, Y, 0, 0);
Wait(200+ random(100));
If(IsUpTextMultiCustom(['ank', 'Bo', 'ot']))Then
Begin
GetmousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(50+Random(20));
if ChooseOption('uickly') then
begin
FFlag(0);
MarkTime(Mark);
repeat
Wait(100);
if TimeFromMark(Mark) > 20000 then
begin
WriteLn('Couldn''t find the bank. Exiting');
Exit;
end;
until BankScreen or PinScreen;
Result := True;
WriteLn('Took ' + IntToStr(TimeFromMark(T))+' MilliSeconds!');
Break;
End;
End;
End;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
End;

function MyWalkPath(ThePath: Integer): Boolean;
var
WhichAngle: Extended;
TheDTM, x, y: Integer;
begin
TheDTM := SetPath(ThePath);
if FindDtmRotated(TheDTM, x, y, MMX1, MMY1, MMX2, MMY2, Radians(-35), Radians(35), 0.05,
WhichAngle) then
begin
Mouse(x + 10, y - 2, 0, 0, True);
FFlag(5);
Result := True;
end
else
Result := False;
FreeDTM(TheDTM);
end;

Function AtMine: Boolean;

begin
if(not(LoggedIn))then
Exit;
Result := FindColoredAreaTolerance(x, y, 65536, MMX1, MMY1, MMX2, MMY2, 100, 5);
end;

Function FindCoal(var Ix, Iy: Integer): Boolean;
Var
Color, Tolerance: TIntegerArray;
Sat, Hue: TExtendedArray;
CTS, X, Y, T, I: Integer;
TPA, P: TPointArray;
aTPA: T2DPointArray;
Begin
if(not(LoggedIn))then Exit;
MarkTime(T);

Color := [2306867, 7576747]; //Color
Hue := [0.08, 0.05]; //Hue
Sat := [0.14, 0.94]; //Sat
Tolerance := [10, 5]; //Lum
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
For I:= 0 To High(Color) Do
Begin
SetColorspeed2Modifiers(Hue[I], Sat[I]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color[I], MSX1, MSY1, MSX2, MSY2, Tolerance[I]);
P := CombineTPA(TPA, P);
End;
aTPA := TPAToATPAEx(P, 13, 13);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
//SortATPASize(aTPA, True);
//SetColorspeed2Modifiers(0.08, 0.14);
//SetColorspeed2Modifiers(0.08, 0.26);
For I:= 0 To High(aTPA) Do
Begin
MiddleTPAEx(aTPA[I], X, Y);
if(CountColorTolerance(2306867, X - 20, Y - 20, X + 20, Y + 20, 10) < 15)then Continue;
Wait(200+ random(100));
//Wait(500);
//Write('Yellow: '+IntToStr(CountColorTolerance(2987738, X - 20, Y - 20, X + 20, Y + 20, 13)));
//Write('Coal: '+IntToStr(CountColorTolerance(2306867, X - 20, Y - 20, X + 20, Y + 20, 10)));
MMouse(X, Y, 0, 0);
If(IsUpTextMultiCustom(['Mine', 'ine']))Then
Begin
Status('Found Coal Rock In: ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
GetmousePos(Ix, Iy);
Result := True;
Break;
End;
End;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
End;

Function FindMith(var Ix, Iy: Integer): Boolean;
Var
CTS, X, Y, T, I: Integer;
TPA: TPointArray;
aTPA: T2DPointArray;
Begin
if(not(LoggedIn))then Exit;
MarkTime(T);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.05);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6965576, MSX1, MSY1, MSX2, MSY2, 14);
aTPA := TPAToATPAEx(TPA, 13, 13);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
//SortATPASize(aTPA, True);
//SetColorspeed2Modifiers(0.08, 0.14);
For I:= 0 To High(aTPA) Do
Begin
MiddleTPAEx(aTPA[I], X, Y);
Wait(200+ random(100));
MMouse(X, Y, 0, 0);
If(IsUpTextMultiCustom(['Mine', 'ine']))Then
Begin
Status('Found Mith Rock In: ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
GetmousePos(Ix, Iy);
Result := True;
Break;
End;
End;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
End;

Function GasCheck(GP: TPoint): Boolean;// By wizzup but Custom colors and edited a bit.

Var
CTS, I, Le, T, Time: Integer;
P, P2: TPointArray;
C, C2: TIntegerArray;
R, G, B: Integer;
X, Y, Z: Extended;

Begin
Result := False;
Time := GetSystemTime;
Status('Checking for Gas');
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.11, 0.27);
FindColorsSpiralTolerance(MSCX, MSCy, P, 8031633, GP.x - 25, GP.y - 25, GP.X + 25, GP.Y + 25, 19);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
If Length(P) < 40 Then
Exit;
Status('Length is > 40');
C := GetColors(P);
C2 := C;
ClearSameIntegers(C);
If Length(C) < 20 Then
Exit;
Status('Length is > 30');
WriteLn('Passed Color Diversity: ' + IntToStr(Length(C)));
Writeln('Total different colors found: ' + IntToStr(Length(P)));
SetLength(C, 0);
SetLength(C, Length(C2));
SetLength(P2, Length(P));
Le := High(C2);
For I := 0 To Le Do
begin
ColorToRGB(C2[I], R, G, B);
if (R >= 97) and (R <= 187) and (G >= 92) and (G <= 185) and (B >= 76) and (B <= 174) then
begin
ColorToXYZ(C2[I], X, Y, Z);
if (X >= 10.27) and (X <= 44.95) and (Y >= 10.94) and (Y <= 47.76) and (Z >= 8.57) and (Z <= 46.39) then
Begin
C[T] := C2[I];
P2[T] := P[I];
T := T + 1;
End;
End;
End;
SetLength(C, T);
ClearSameIntegers(C);
If Length(C) < 15 Then
Begin
Exit;
End;
WriteLn('Passed Color Diversity after filtering the colors: ' + IntToStr(Length(C)));
Writeln('Total colors found, after filtering: ' + IntToStr(Length(P2)));
Result := True;
WriteLn('GasCheck Gave TRUE');
writeln('Time taken: ' + IntToStr(GetSystemTime - Time));
End;

Procedure PlayTabs;// by me ;]
var
T, Mul, Times, ToDo: Integer;
begin
ToDo := Random(3)+1;
repeat
case random(14) of
0, 11 : T := 1;
3, 10 : T := 2;
5, 9 : T := 3;
6, 8, 13 : T := 4;
1, 12, 4 : T := 5;
end;
Mul := 56 * T;
MouseBox(7 + Mul, 483, 58 + Mul, 500, 1);
Wait(500+random(500));
Times := Times + 1;
Mul := 0;
until(Times = ToDo);
Times := 0;
SleepAndMoveMouse(1500+random(1500));
Case random(2) of
0 : MouseBox(7, 483, 58, 500, 1);
1 : MouseBox(7+112, 483, 58+112, 500, 1);
end;
end;

Procedure AntiBan;
Begin
Case Random(40) of
1: RandomRClick;
2: Begin GameTab(1 + Random(14)); Wait(500 + Random(500)); GameTab(4); End;
3: HoverSkill('random', False);
4: PickUpMouse;
5: PlayTabs;
7: SleepAndMoveMouse(1000+random(2000));
End;
End;

Function RocksAround(Subx, Suby: Integer; Color: Integer): Integer;
begin
if Color = 0 then
Color := FindRockColor;
Result := CountColor(Color, MMCX-Subx, MMCY-Subx, MMCX+Suby, MMCY+suby);
end;

function AutoColorFloor: Integer;
var
i, R, G, B, tmpCTS, GC, TestColor: Integer;
P: TPointArray;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.39, 0.25);
GC := 5403005;
FindColorsSpiralTolerance(MMCX, MMCY, P, GC, MMX1, MMY1, MMX2, MMY2, 8);
for i:=0 to High(p)-1 do
begin
if rs_OnMinimap(P[i].x,P[i].y) then
begin
TestColor := GetColor(P[i].x,P[i].y);
ColorToRGB(TestColor, R, G, B);
if (R >= 103) and (R <= 146) and (G >= 93) and (G <= 132) and (B >= 65) and (B <= 100) then
if GetColor(P[i].x + 5, P[i].y + 5) = TestColor then
if GetColor(P[i].x + 3, P[i].y + 3) = TestColor then
if GetColor(P[i].x, P[i].y + 5) = TestColor then
if GetColor(P[i].x + 5, P[i].y) = TestColor then
if GetColor(P[i].x, P[i].y + 3) = TestColor then
if GetColor(P[i].x + 3, P[i].y) = TestColor then
if GetColor(P[i].x + 5, P[i].y + 3) = TestColor then
if GetColor(P[i].x + 3, P[i].y + 5) = TestColor then
begin
Result := TestColor;
Writeln('Floor Color = '+IntToStr(Result));
exit;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function RespondToPlayer: Boolean;
var
Complaint, Level, Greetings : TStringArray;
I, Stats : Integer;
begin
if (not(UseResponder)) then
Exit;
Complaint := ['boring', 'tired', 'talk', 'auto', 'utoer'];
Level := ['lvl', 'level', 'ining', 'yours', 'Mining'];
Greetings := ['Hi', 'ello', 'up', 'Yo', 'Hey'];
if (InChat(Players[CurrentPlayer].Nick)) then
begin
Wait(250);
case Random(11) of
0: TypeSend('yes');
1: TypeSend('may i help you');
2: TypeSend('do I know you');
3: TypeSend('what');
4: TypeSend('rawr');
5: TypeSend('this is my rock');
6: TypeSend('what do you want');
7: TypeSend('what can i do for you');
8: TypeSend('im kinda busy here');
9: TypeSend('hahahaha');
10: TypeSend('i dont wana talk');
end;
Result := True;
Responded := Responded + 1;
ReportVars[2] := ReportVars[2] + 1;
Exit;
end;
for I := 0 to 4 do
begin
if (InChat(Level[I])) then
begin
Stats := GetSkillInfo('Mining', False);
Wait(150);
case (Random(6)) of
0: TypeSend(IntToStr(Stats));
1: TypeSend('Mines '+ IntToStr(Stats));
2: TypeSend(IntToStr(Stats) +' u');
3: TypeSend('99 lol im really '+ IntToStr(Stats));
4: TypeSend('uhh '+ IntToStr(Stats));
5: TypeSend('er '+ IntToStr(Stats));
end;
Result := True;
Responded := Responded + 1;
ReportVars[2] := ReportVars[2] + 1;
Exit;
end;
if (InChat(Greetings[I])) then
begin
Wait(250);
case (Random(11)) of
0: TypeSend('hey');
1: TypeSend('yo');
2: TypeSend('sup');
3: TypeSend('yea hi');
4: TypeSend('yea hey');
5: TypeSend('wazzup');
6: TypeSend('wassup');
7: TypeSend('how are you');
8: TypeSend('ello');
9: TypeSend('haha hi');
10:TypeSend('yo sup');
end;
Result := True;
Responded := Responded + 1;
ReportVars[2] := ReportVars[2] + 1;
Exit;
end;
if (InChat(Complaint[I])) then
begin
Wait(250);
case Random(15) of
0: TypeSend('too bad');
1: TypeSend('sorry, im here');
2: TypeSend('nty');
3: TypeSend('...');
4: TypeSend('its just a rock');
5: TypeSend('this is my rock!');
6: TypeSend('too lazy');
7: TypeSend('*sigh*');
8: TypeSend(' ...lol');
9: TypeSend('hahahaha');
10: TypeSend('noooo u');
11: TypeSend('yea');
12: TypeSend('no way');
13: TypeSend('yea this is boring');
14: TypeSend('zomg');
end;
Result := True;
Responded := Responded + 1;
ReportVars[2] := ReportVars[2] + 1;
Exit;
end;
end;
end;

Procedure DoChats;
Begin
if(Not(LoggedIn))then
Exit;
SetChat('On',1);
SetChat('Off',2);
SetChat('Off',3);
SetChat('Off',4);
SetChat('Off', 5);
End;

Procedure DropGems;
var
GemDTM: Integer;

begin
if(not(DropTheGems))then
Exit;
GemDTM := DTMFromString('78DA637462626078C68002F84B8518FE03694' +
'620FE0F048C164035F719D000231209A4416A1E11A1E6190135B6' +
'4035EF09A8B104AA7945408D0D50CD1D026AEC8950E30C54F3818' +
'01A0F22D47803D53C26C29CBB04D4F810F63B00092414BF');
repeat
if FindDTM(GemDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 0, 0, False);
Wait(100+random(300));
ChooseOption('rop');
TotalGems := TotalGems + 1;
end;
Wait(500+random(500));
until(not(FindDTM(GemDTM, x, y, MIX1, MIY1, MIX2, MIY2)))
Wait(300+random(200));
FreeDTM(GemDTM);
end;

Procedure LevelForPick(Pick: String; Var Attack, Mining: Integer);// by jukka
Begin
Case LowerCase(Pick) Of
'bronze', 'iron':
Begin
Attack := 1;
Mining := 1;
End;
'steel':
Begin
Attack := 5;
Mining := 6;
End;
'mith','mithril':
Begin
Attack := 20;
Mining := 21;
End;
'addy','adamant','adamantite':
Begin
Attack := 30;
Mining := 31;
End;
'rune', 'runite':
Begin
Attack := 40;
Mining := 41;
End;
Else Write('ERROR!!! No Such Pick As '+Pick+' > Procedure LevelForPick(Pick: String; Var Attack, Mining: Integer); <');
End;
End;

Procedure EquipIfPossible;//by jukka
Var
I, bmp_PickAxe, X, Y, bmp_Pick, Attack, Mining, {CTS,} Att, myMin: Integer;
Pickaxe: String;
B: Boolean;
Begin
Try
If(GetCurrentTab <> 5)Then
Begin
GameTab(5);
Wait(500);
End;
GameTab(5);
bmp_PickAxe := BitmapFromString(30, 14, 'z78DA3330A03E70C3010C' +
'0625C0EF36FAB8DC8D2C407F37D32E36A96B267D521DB56C19A8D' +
'C41B9FBDDA80406732C0F8F544A7C0C0E6CBA25AF641BD8B211BF' +
'AB28C94DB47039ADC307D3FDB42B2107674D34185A1400863DFCA' +
'8');
B := FindBitmapMaskTolerance(bmp_PickAxe, X, Y, MIX1, MIY1, MIX2, MIY2, 10, 10);
FreeBitmap(bmp_PickAxe);
If(B)Then
Begin
Write('Pick is equipped');
EquipPick := True;
Players[CurrentPlayer].Booleans[0] := True;
NoPick := False;
Exit;
End;

If(Players[CurrentPlayer].Level[1] = 0)Then
Players[CurrentPlayer].Level[1] := GetSkillInfo('attack', True);

If(Players[CurrentPlayer].Level[15] = 0)Then
Players[CurrentPlayer].Level[15]:= GetSkillInfo('mining', True);

Att := Players[CurrentPlayer].Level[1];
myMin := Players[CurrentPlayer].Level[15];

If(GetCurrentTab <> 4)Then
Begin
GameTab(4);
Wait(500);
End;

//CTS := GetColorToleranceSpeed;
//ColorToleranceSpeed(2);
For I:= 66 DownTo 61 Do
Begin
bmp_Pick := srl_GetBitmap(I);
If(FindBitmapTolerancein(bmp_Pick, X, Y, MIX1, MIY1, MIX2, MIY2, 20))Then
Break;
End;
FreeBitmap(bmp_Pick);
srl_FreeBitmaps;
Case I Of
66: Pickaxe := 'Rune';
65: Pickaxe := 'Addy';
64: Pickaxe := 'Mith';
63: Pickaxe := 'Steel';
62: Pickaxe := 'Iron';
61: Pickaxe := 'Bronze';
Else
Begin
NoPick := True;
Write('No Pick!');
Exit;
End;
End;
//ColorToleranceSpeed(CTS);
LevelForPick( PickAxe, Attack, Mining);

If( Att >= Attack)And(myMin >= Mining)Then
Begin
Write('Equipping ' + PickAxe+ ' pickaxe');
Mouse(X, Y, 8, 8, True);
FTWait(2);
NoPick := False;
Wielded := True;
Players[CurrentPlayer].Booleans[0] := True;
Players[CurrentPlayer].strings[0] := PickAxe;
End Else
Begin
NoPick := False;
Wielded := False;
Players[CurrentPlayer].Booleans[0] := False;
Players[CurrentPlayer].strings[0] := PickAxe;
Write('Cant equip ' + PickAxe+ ' pickaxe');
End;
Except End;
End;

Function MyFindPick: Boolean;
Var
Color, Tolerance, PickaxeStick, PickAxeHead, FindTime: Integer;
Sat, Hue: Extended;
CTS, X, Y, T, I, ax, ay: Integer;
TPA: TPointArray;
aTPA: T2DPointArray;
GotPick, EquipedPick: Boolean;
Begin
if(not(LoggedIn))then
Exit;
Marktime(FindTime);
GotPick := False;
PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
'204D44801095E026A40F2CA04D408000929026A048184220135E2' +
'404214BF1A00B23A014A');
PickAxeHead := DTMFromString('78DA63CC67626078C280024C9DCD18FE03694' +
'620FE0F048C6540357718D000231209A44B8850930254F382809A' +
'7422D4E401D53C24A0A618A8E639013559987EC750530A54F3940' +
'83504DC03006F691312');
MarkTime(T);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
Case Players[CurrentPlayer].Strings[0] of
'Rune' :begin
Color := 6774085; //Color
Hue := 0.04; //Hue
Sat := 0.08; //Sat
Tolerance := 12; //Lum
end;
'Addy' :begin
Color := 4148798; //Color
Hue := 0.14; //Hue
Sat := 0.05; //Sat
Tolerance := 8; //Lum
end;
'Mith' :begin
Color := 5125428; //Color
Hue := 0.13; //Hue
Sat := 0.15; //Sat
Tolerance := 5; //Lum
end;
'Steel' :begin
Color := 7237496; //Color
Hue := 0.13; //Hue
Sat := 0.07; //Sat
Tolerance := 13; //Lum
end;
'Iron' :begin
Color := 4014670; //Color
Hue := 0.71; //Hue
Sat := 1.24; //Sat
Tolerance := 7; //Lum
end;
'Bronze':begin
Color := 1522515; //Color
Hue := 0.11; //Hue
Sat := 3.07; //Sat
Tolerance := 7; //Lum
end;
end;
SetColorspeed2Modifiers(Hue, Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tolerance);
aTPA := TPAToATPAEx(TPA, 10, 10);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
WriteLn('Looking For Pick...');
For I:= 0 To High(aTPA) Do
Begin
Wait(200+ random(100));
MiddleTPAEx(aTPA[I], X, Y);
MMouse(X, Y, 0, 0);
If(IsUpTextMultiCustom(['ake', 'ickhead', 'head', 'ick']))Then
Begin
WriteLn('Found PickHead In: ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
Mouse(x, y, 0, 0, True);
Flag;
GotPick := True;
Break;
End;
end;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
Wait(500+random(500));
If(GotPick)then
begin
If Players[CurrentPlayer].Booleans[0] then //if handle is equipted
GameTab(5);
If FindDTM(PickAxeStick, x, y, MIx1, Miy1, MIx2, MIy2) then
begin
Mouse(x, y, 0, 0, True);
Wait(500);
end else
begin
If(not(Players[CurrentPlayer].Booleans[0]))then//failsafe for in case Booleans[0] is wrong for some reason
GameTab(4)
else
GameTab(5);
If FindDTM(PickAxeStick, x, y, MIx1, Miy1, MIx2, MIy2) then
begin
Mouse(x, y, 0, 0, True);
Wait(500);
end else
begin
Result := False;
WriteLn('Couldn''t Find Your Pick-Handle!');
Exit;
end;
end;
Wait(500);
GameTab(4);
if FindDTM(PickAxeHead, X, Y, MIx1, MIy1, MIx2, MIy2)
and(FindDTM(PickAxeStick, ax, ay, MIx1, MIy1, MIx2, MIy2))then
begin
Mouse(x, y, 0, 0, True);
Wait(500+random(500));
Mouse(ax, ay, 0, 0, True);
EquipedPick := True;
end;
If EquipedPick then
begin
WriteLn('SuccessFully attached your pickaxe');
WriteLn('Finding and Attaching your pickaxe took: '+inttostr(Timefrommark(findtime))+' milliseconds!');
Result := True;
end;
end else
begin
Result := False;
WriteLn('Couldn''t Find Your Pick-Head!');
end;
FreeDTM(PickAxeHead);
FreeDTM(PickAxeStick);
end;

Function CheckPickaxe: Boolean;//by masterkill, used in his miner, works wonders <3
var
PickaxeStick, BrokenPickaxe, PickaxeD: Integer;
begin
PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
'204D44801095E026A40F2CA04D408000929026A048184220135E2' +
'404214BF1A00B23A014A');
BrokenPickaxe := DTMFromString('78DA6334676660A8656440058C4824907603A' +
'A2926A0C61BA8A688801A3BA09A4C026A8C806A728950D34A408D' +
'13504D3E7E3500C8FC050A');
PickaxeD := DTMFromString('78DA6314606060E06540038C4824909605125' +
'C04D470020976026A40662810502302245808A801B9590CBF1A00' +
'612000CF');
If Players[CurrentPlayer].Booleans[0] = True Then
GameTab(5)
Else
GameTab(4);
If FindDTM(PickaxeStick, x, y, 532, 183, 751, 485) Then
Begin
Write('Noes! your pickhead flyd off!');
If Not MyFindPick Then
Begin
Result := True;
//Write('We lost your pickaxe head... moving back to bank...');
GameTab(5);
Mouse(584, 302, 10, 10, True);
Exit;
End;
End;
If FindDTM(BrokenPickaxe, x, y, 532, 183, 751, 485) Then
Begin
Result := True;
Write('Sorry, but ' + Players[CurrentPlayer].Nick + ' broke your pickaxe');
GameTab(5);
Mouse(584, 302, 10, 10, True);
Exit;
End;
If Not FindDTM(PickaxeD, x, y, 532, 183, 751, 485) Then
Begin
Result := True;
End;
FreeDTM(PickaxeD);
FreeDTM(PickaxeStick);
FreeDTM(BrokenPickaxe);
End;

Procedure WhatPick;// took bits out of jukkas euip if possible - needed to use MyFindPick
Var
I, X, Y, bmp_Pick: Integer;
Pickaxe: String;
PickFound: Boolean;
Begin
If(GetCurrentTab <> 5)Then
Begin
GameTab(5);
Wait(500);
End;
For I:= 66 DownTo 61 Do
Begin
bmp_Pick := srl_GetBitmap(I);
If(FindBitmapTolerancein(bmp_Pick, X, Y, MIX1, MIY1, MIX2, MIY2, 20))Then
begin
PickFound := True;
Break;
end;
end;
if(Not(PickFound))then
begin
GameTab(4);
For I:= 66 DownTo 61 Do
Begin
bmp_Pick := srl_GetBitmap(I);
If(FindBitmapTolerancein(bmp_Pick, X, Y, MIX1, MIY1, MIX2, MIY2, 20))Then
begin
PickFound := True;
Break;
end;
end;
end;
FreeBitmap(bmp_Pick);
srl_FreeBitmaps;
Case I Of
66: Pickaxe := 'Rune';
65: Pickaxe := 'Addy';
64: Pickaxe := 'Mith';
63: Pickaxe := 'Steel';
62: Pickaxe := 'Iron';
61: Pickaxe := 'Bronze';
end;
WriteLn('You Currently have a: '+PickAxe+' PickAxe!');
Players[CurrentPlayer].Strings[0] := PickAxe;
end;

Function CountItemColorTol(Color, Tol: Integer): Integer;
//Since the one in SRL is F-IN HARD TO USE! Using this one by Jukka(?)

Var
Dx, Dy, I: Integer;
ItemTp: TPoint;

Begin
GameTab(4);
For I:= 1 To 28 Do
Begin
ItemTP:= ItemCoords(I);
If(FindColorTolerance(Dx,Dy,Color,ItemTP.X-10,ItemTP.Y-10,ItemTP.X+10,ItemTP.Y+10, Tol))Then
Inc(Result);
End;
End;

Procedure CountAllOres;
var
CurrentMith, CurrentOres: Integer;
begin
Write('Counting Mith...');
CurrentMith := 0;
CurrentMith := CountItemColorTol(6965576, 5);
ReportVars[5] := ReportVars[5] + CurrentMith;
TotalOre := TotalOre + CurrentMith;
TotalMith := TotalMith + CurrentMith;
Players[CurrentPlayer].Integers[1] := Players[CurrentPlayer].Integers[1] + currentMith;
Write('Counting Coal...');
Currentores := 0;
Currentores := CountItemColorTol(2241074, 5);
ReportVars[0] := ReportVars[0] + CurrentOres;
Totalore := TotalOre + CurrentOres;
TotalCoal := TotalCoal + CurrentOres;
Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] + currentores;
end;

Procedure MineMith;
var
MineTime, Ix, Iy, A, B, C: Integer;
begin
If(not(loggedIn))then
Exit;
Wait(100+random(500));
Disguise('Mining Mithril');
repeat
if FindMith(Ix, Iy)then
begin
Case random(5) of
0, 3, 4: begin
Mouse(Ix, Iy, 0, 0, True);
FindNormalRandoms;
Flag;
Wait(100+random(500));
end;
1, 2: begin
Mouse(Ix, Iy, 0, 0, False);
Wait(100+ random(300));
ChooseOption('Mine');
FindNormalRandoms;
Flag;
Wait(100+random(500));
end;
end;
A := InvCount;
Marktime(MineTime);
case Random(3) of
0: RespondToPlayer;
1: RandomSay;
end;
repeat
Wait(100);
if FindNpcChatText('ickaxe', Nothing) then
begin
Write('Zomg no pick!');
if CheckPickaxe Then
begin
Logout;
Exit;
end;
end;
Wait(100);
if GasCheck(Point(MSCX, MSCY)) then
begin
GasAvoided := GasAvoided + 1;
ReportVars[3] := ReportVars[3] + 1;
MFNF(MMCX, MMCY + 10, 5, 5);
SleepandMovemouse(500+random(2500));
Case random(10) of
0: TypeSend('phew..');
1: TypeSend('that was close..');
2: TypeSend('haha it missed');
3: TypeSend('LOL?');
4: TypeSend('lawls');
5: TypeSend('...');
6: TypeSend('god those are annoying');
7: TypeSend('not this time ;]');
8: TypeSend('dumb gas');
9: TypeSend('hahaha!');
end;
repeat
Wait(100);
AntiBan;
Wait(500);
FindNormalRandoms;
C := C + 1;
until C = 2 + random(5);
C := 0;
Break;
end;
Wait(100);
AntiBan;
Wait(100);
FindNormalRandoms;
Wait(500+random(1500));
B := InvCount;
until(A < B)or(TimeFromMark(MineTime) > 25000)or(NoPick);
end;
Wait(200);
FindNormalRandoms;
until(not(LoggedIn))or(NoPick)or(Not(FindMith(Ix, Iy)))or(InvFull);
end;



procedure MineCoal;
var
A, B, MineTime, MithTime, C, RockColor, Ix, Iy, FloorC: Integer;

begin
If(Not LoggedIn)Then Exit;
if MineTheMith then
Marktime(MithTime);
Disguise('Mining Coal');
RockColor := FindRockColor;
repeat
if FindCoal(Ix, Iy)then
begin
Case random(5) of
0, 3, 4: begin
Mouse(Ix, Iy, 0, 0, True);
FindNormalRandoms;
Flag;
Wait(100+random(500));
end;
1, 2: begin
Mouse(Ix, Iy, 0, 0, False);
Wait(100+ random(300));
ChooseOption('Mine');
FindNormalRandoms;
Flag;
Wait(100+random(500));
end;
end;
A := InvCount;
Marktime(MineTime);
case Random(3) of
0: RespondToPlayer;
1: RandomSay;
end;
repeat
Wait(100);
if FindNpcChatText('ickaxe', Nothing) then
begin
Write('Zomg no pick!');
if CheckPickaxe Then
begin
Logout;
Players[CurrentPlayer].Loc := 'No Pick';
end;
end;
Wait(100);
if GasCheck(Point(MSCX, MSCY)) then
begin
GasAvoided := GasAvoided + 1;
ReportVars[3] := ReportVars[3] + 1;
MFNF(MMCX, MMCY + 10, 5, 5);
SleepandMovemouse(500+random(2500));
Case random(10) of
0: TypeSend('phew..');
1: TypeSend('that was close..');
2: TypeSend('haha it missed');
3: TypeSend('LOL');
4: TypeSend('lawls');
5: TypeSend('...');
6: TypeSend('god those are annoying');
7: TypeSend('not this time');
8: TypeSend('dumb gas');
9: TypeSend('hahaha!');
end;
repeat
Wait(100);
AntiBan;
Wait(500);
FindNormalRandoms;
C := C + 1;
until C = 5;
C := 0;
Break;
end;
Wait(100);
AntiBan;
Wait(100);
FindNormalRandoms;
Wait(500+random(1500));
B := InvCount;
until(A < B)or(TimeFromMark(MineTime) > 16000)or(NoPick)or(InvFull);
if B = 26 then
DropGems;
Disguise('Mined ['+Inttostr(B)+' of 28]');
end;
Wait(200);
if RocksAround(15, 15, RockColor) < 30 then
begin
FloorC := AutoColorFloor;
If FloorC = 0 then
FloorC := FindRockColor;
If RadialWalk(RockColor, 150, 210, 45, 10, 10)then
Flag;
Wait(1000);
FindSymbol(x, y, 'mining site');
Mouse(x, y, 20, 20, true);
Flag;
Relocated := Relocated + 1;
ReportVars[4] := ReportVars[4] + 1;
Wait(500);
end;
if(TimeFromMark(MithTime) > 60000 * 3)and(not(InvFull))then
begin
if FindSymbol(x, y, 'mining site')then
begin
if(Distance(MMCX, MMCY, x, y) > 25)then
Mouse(x, y, 5, 5, true);
Wait(2500);
Flag;
Wait(500+random(500));
Mouse(MMcx+ 10, MMcy + 25, 0, 0, True);
Flag;
Wait(500);
MineMith;
end;
Marktime(MithTime);
end;
FindNormalRandoms;
until(InvFull)or(not(LoggedIn))or(NoPick);
SetRun(False);
end;

procedure MineThem;
begin
If(not(LoggedIn))then
Exit;
SetRun(True);
Disguise('Starting Mine Loop');
Players[CurrentPlayer].Loc := 'In Mine - Mining';
if MineTheMith then
MineMith;
If(not(loggedIn))or(NoPick) then
Logout;
MineCoal;
CountAllOres;
end;

procedure InitPlayer;

begin
NoPick := False;
Wait(1000);
SetAudio(1, 1, 1, nochange);
Retaliate(False);
FindPickHeadColor;
EquipIfPossible;
WhatPick;
GameTab(4);
DoChats;
SetAngle(True);
RandomSay;
End;

//My own with help from ACA v2 by Sumilion & nielsie95
function LadderAutoColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
R, G, B: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.45, 3.59);

FindColorsSpiralTolerance(MMCX, MMCY + 40, arP, 797782, MMX1, MMY1, MMX2, MMY2, 7);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
if CountColor(arC[i], arP[i].x - 10, arP[i].y - 10, arP[i].x + 10, arP[i].y + 10) = 9
then Continue;
ColorToRGB(arC[i], R, G, B);

if (R >= 62) and (R <= 110) and (G >= 17) and (G <= 68) and (B >= 0) and (B <= 33) then
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 2.46) and (X <= 8.50) and (Y >= 1.60) and (Y <= 7.35) and (Z >= 0.16) and (Z <= 2.29) then
begin
Result := arC[i];
Writeln('LadderColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('LadderAutoColor failed in finding the color.');
end;

Function MiddleOfMine(Var x, y: Integer): Boolean;//from wizzups miner nothing special was just too lazy to do myself, may eventually...
Var
Rocks: TPointArray;
TP: TPoint;
Color: Integer;

Begin
Color := FindRockColor;
FindColorsTolerance(Rocks, Color, MMX1, MMY1, MMX2, MMY2, 0);
Result := (Length(Rocks) > 0);
If Result Then
TP := MiddleTPA(Rocks);
x := TP.X;
y := TP.Y;
End;

Function U_FindLadder: Boolean;
Var
Color, Tolerance: TIntegerArray;
Sat, Hue: TExtendedArray;
CTS, X, Y, T, I: Integer;
TPA, P: TPointArray;
aTPA: T2DPointArray;
Begin

MarkTime(T);

Color := [2505027, 3427932, 2834508]; //Color
Hue := [0.05, 0.04, 0.08]; //Hue
Sat := [0.07, 0.07, 0.13]; //Sat
Tolerance := [9, 8, 7]; //Lum
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
For I:= 0 To High(Color) Do
Begin
SetColorspeed2Modifiers(Hue[I], Sat[I]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color[I], MSX1 + 20, MSY1 + 20, MSX2 - 20, MSY2 - 20, Tolerance[I]);
P := CombineTPA(TPA, P);
End;
aTPA := TPAToATPAEx(P, 20, 20);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
//SortATPASize(aTPA, True);
For I:= 0 To High(aTPA) Do
Begin
MiddleTPAEx(aTPA[I], X, Y);
MMouse(X, Y, 0, 0);
Wait(200+ random(100));
If(IsUpTextMultiCustom(['limb-u', 'Climb', 'Climb-up']))or(IsUpTextBlue('limb'))Then
Begin
Write('Took ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
GetmousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(50+Random(20));
If(ChooseOption('Climb'))Then
Begin
FFlag(0);
Result := True;
Break;
End;
End;
End;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
End;

function LadderWalk(var fx, fy: Integer;YourX, YourY, Color: Integer; Size: Boolean): Boolean;
var
I: Integer;
P: TPointArray;
Lad: T2DPointArray;

begin
FindColorsSpiralTolerance(YourX, YourY, P, Color, MMX1, MMY1, MMX2, MMY2, 1);
Lad := TPAtoATPAEx(P, 25, 25);
If Size then
SortATPASize(Lad, True)
else
SortATPAFrom(Lad, Point(YourX, YourY));
For I:= 0 To High(Lad) Do
begin
MiddleTPAEx(Lad[I], X, Y);
Fx := X;
Fy := Y;
Result := True;
Break;
end;
end;

procedure WalkInMine;
var
RockColor, arP, Ix, Iy: Integer;

begin
if(not(LoggedIn))then Exit;
if(AtMine)then
Players[CurrentPlayer].Loc := 'In Mine';
RockColor := FindRockColor;
X := MSCX;
Y := MSCY;
FindColorSpiral(X, Y, RockColor, MMx1, MMy1, MMx2, MMy2);
Mouse(x, y, 0, 0, true);
Flag;
Wait(500);
if MineTheMith then
arP := 1
else
arP := 2;
Case Random(arP) of
0: begin
MiddleOfMine(x, y);
Mouse(x, y, 15, 15, True);
Flag;
Wait(500);
Disguise('Going to mith ore');
If FindSymbol(Ix, Iy, 'mining site') then
Mouse(Ix+10, Iy + 25, 0, 0, True);
Flag;
Wait(500+random(500));
end;
end;
end;

//Should handle the DAMN DOOR!
Procedure DamnDoor;
var
RockColor : Integer;

begin
Disguise('Damn Door!');
RockColor := FindRockColor;
if RadialWalk(RockColor, 150, 220, 60, 10, 10)then
FFlag(5);
end;


procedure GetOutofMine;
var
RockColor, StoneColor, I: Integer;

begin
if(not(LoggedIn))then Exit;
If(Not(GetColor(MMCx, MMcy + 40) = 65536))then
DamnDoor;
Players[CurrentPlayer].Loc := 'Getting Out Of Mine';
RockColor := 0;
RockColor := AutoColorFloor;
if RockColor = 0 then
RockColor := FindRockColor;
For I := 0 to 2 do
begin
RadialWalk(RockColor, 200, 330, 50, 10, 10);
FFlag(5);
end;
StoneColor := FindStoneColor;
if StoneColor = 0 then
StoneColor := FindLadderColor;
if FindColorTolerance(x, y, StoneColor, MMx1, MMy1, MMx2, MMy2, 1)then
Mouse(x-5, y-3, 5, 5, True);
Flag;
Wait(100+random(300));
end;

procedure ToBank;

var
TheDTM, Color: Integer;
WhichAngle: Extended;

begin
if(not(LoggedIn))then
Exit;
SetRun(True);
//MakeCompass('N');
Wait(500);
Color := 0;
Color := FindLadderColor;
if Color = 0 then
Color := LadderAutoColor;
RoadColor := FindFallyRoadColor;
TheDTM := DTMFromString('78DA63AC67626088634001FFFFFD63F80FA41' +
'9416C2060AC01AA4987C83141D5FCF9C3C4C0055503028CAD44A8' +
'E924AC0600131E11B5');
if RadialWalk(RoadColor, 110, 70, 60, 10, 10)then
begin
FFlag(5);
Players[CurrentPlayer].Loc := 'To Bank - RadialWalk 1';
end;
if RadialWalk(RoadColor, 313, 406, 20, 10, 10)then
begin
FFlag(5);
Players[CurrentPlayer].Loc := 'To Bank - RadialWalk 2';
end;
if RadialWalk(RoadColor, 300, 344, 70, 10, 10)then
begin
FFlag(5);
Players[CurrentPlayer].Loc := 'To Bank - RadialWalk 3';
end Else
begin
if LadderWalk(x, y, MMCX - 30, MMCY - 30, Color, False)then
begin
Mouse(x - 15, y, 5, 5, True);
FFlag(5);
Players[CurrentPlayer].Loc := 'To Bank - LadderWalk';
end;
end;
if FindDtmRotated(TheDTM, x, y, MMX1, MMY1, MMX2, MMY2, Radians(-30), Radians(30), 0.05,WhichAngle) then
begin
Mouse(x, y, 0, 0, True);
Write('Using DTM');
Sleepandmovemouse(1000+random(3000));
FFlag(0);
Players[CurrentPlayer].Loc := 'Bank';
Wait(100);
end Else
if FindSymbol(x, y, 'bank') then
begin
Write('Using Symbol');
RandomSay;
Players[CurrentPlayer].Loc := 'Bank';
Mouse(x, y, 5, 5, true);
Sleepandmovemouse(1000+random(3000));
FFlag(0);
end;
FreeDTM(TheDTM);
end;

procedure WalkToBank;

begin
if(not(LoggedIn))then Exit;
Case Random(3) of
1: SetRun(True);
end;
Players[CurrentPlayer].Loc := 'To Bank - At Ladder';
ToBank;
Wait(500);
if FindBankBooth then
begin
Players[CurrentPlayer].Loc := 'Bank';
ReportVars[1] := ReportVars[1] + 1;
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
end else
begin
if(not(FindBank('feb')))then
begin
Players[CurrentPlayer].Loc := 'No Bank!';
Logout;
end else
begin
ReportVars[1] := ReportVars[1] + 1;
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
Players[CurrentPlayer].Loc := 'Bank';
end;
end;
if PinScreen then
begin
if Players[CurrentPlayer].Pin = '' then
begin
Write('You did not put in your PIN!!');
Players[CurrentPlayer].Loc := 'Bank - No Pin';
Logout;
NextPlayer(False);
Exit;
end else
begin
InPin(Players[CurrentPlayer].Pin);
end;
end;
if Players[CurrentPlayer].Booleans[0] = True then
DepositAll
Else Deposit(2, 28, True);
Wait(500);
CloseBank;
Wait(500);
LoadsDone := LoadsDone + 1;
end;

procedure ToMine;
var
Color: Integer;

begin
if(not(LoggedIn))then
Exit;
//MakeCompass('N');
Wait(500);
Color := 0;
Color := FindLadderColor;
if Color = 0 then
Color := LadderAutoColor;
RoadColor := FindFallyRoadColor;
if MyWalkPath(0)then
Players[CurrentPlayer].Loc := 'To Mine - Path';
if LadderWalk(x, y, MMCX, MMCY, Color, False)then
begin
Mouse(x - 15, y, 5, 5, True);
FFlag(5);
Players[CurrentPlayer].Loc := 'To Mine - LadderWalk';
end;
if LadderWalk(x, y, MMCX, MMCY, Color, True)then
begin
Mouse(x, y + 10, 5, 5, True);
Flag;
Players[CurrentPlayer].Loc := 'To Mine - At Ladder';
end;
end;

procedure WalkToMine;

begin
if(not(LoggedIn))then Exit;
Case Random(3) of
1: SetRun(True);
end;
ToMine;
end;

Function FindLadder: Boolean;
Var
Color, Tolerance: TIntegerArray;
Sat, Hue: TExtendedArray;
CTS, X, Y, T, I: Integer;
TPA, P: TPointArray;
aTPA: T2DPointArray;

Begin
if(not(LoggedIn))then Exit;
MarkTime(T);

Color := [2641764, 3561063, 3037553]; //Color
Hue := [0.08, 0.7, 0.03]; //Hue
Sat := [1.24, 0.10, 0.05]; //Sat
Tolerance := [6, 4, 10]; //Lum
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
For I:= 0 To High(Color) Do
Begin
SetColorspeed2Modifiers(Hue[I], Sat[I]);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color[I], MSX1 + 20, MSY1 + 20, MSX2 - 20, MSY2 - 20, Tolerance[I]);
P := CombineTPA(TPA, P);
End;
aTPA := TPAToATPAEx(P, 25, 25);
SortATPAFrom(aTPA, Point(MSCX, MSCY));
//SortATPASize(aTPA, True);
For I:= 0 To High(aTPA) Do
Begin
MiddleTPAEx(aTPA[I], X, Y);
MMouse(X, Y, 0, 0);
Wait(200+ random(100));
If(IsUpTextMultiCustom(['limb','limb-d', 'down', 'Climb-down']))or(IsUpTextBlue('limb'))Then
Begin
Write('Took ' + IntToStr(TimeFromMark(T))+' MilliSeconds!')
GetmousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(50+Random(20));
If(ChooseOption('Climb'))Then
Begin
FFlag(0);
Result := True;
Break;
End;
End;
End;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
End;

Procedure HandleLadder;

begin
if(Not(LoggedIn))then
Exit;
Wait(500);
if FindLadder then
begin
Marktime(WaitTime);
While(not(AtMine)) do
begin
Wait(500);
if TimeFromMark(WaitTime) > 10000 then
begin
If not FindLadder then
Logout
else Wait(7500+random(2500));
end;
end;
end Else
begin
if not FindLadder then
Logout
else Wait(7500+random(2500));
end;
end;

Procedure HandleLadder2;

begin
if(Not(LoggedIn))then
Exit;
Wait(500);
if U_FindLadder then
begin
Marktime(WaitTime);
While AtMine do
begin
Wait(500);
if TimeFromMark(WaitTime) > 10000 then
begin
If(not(U_FindLadder))then
Logout
else Wait(7500+random(2500));
end;
end;
end Else
begin
GetOutOfMine;
if not U_FindLadder then
begin
Logout;
Players[CurrentPlayer].Loc := 'Lost In Mine';
Players[CurrentPlayer].Active := False;
end else
begin
Flag;
Wait(2500+random(2500));
end;
end;
end;

Procedure ProgressReport;
Var
Sec, I: Integer;
Begin
ClearDebug;
SRLRandomsReport;
Sec := GetTimeRunning div 1000+1;
Writeln('<------------------------------------------------------------------------------>');
Writeln(' Shermanators Guild Miner ');
Writeln('<------------------------------------------------------------------------------>');
Writeln(' Worked For : ' + TimeRunning );
Writeln(' Banked : ' + IntToStr( LoadsDone )+ ' Loads');
Writeln(' Banks per hour : ' + IntToStr(Round(3600*LoadsDone/Sec)));
WriteLn(' Total Ores Mine : '+ inttostr(TotalOre));
WriteLn(' Coal Ores Mined : '+ Inttostr(TotalCoal));
if TotalGems > 0 then WriteLn(' Total Gems : '+Inttostr(TotalGems));
if GasAvoided > 0 then Writeln(' Total Gasses Avoided : '+IntToStr(GasAvoided));
if TotalMith > 0 then WriteLn(' Total Mith Mined : '+inttostr(TotalMith));
if Responded > 0 then WriteLn(' Responded : '+inttostr(Responded)+' Times');
if RandomTalked > 0 then WriteLn(' Randomly Talked : '+inttostr(RandomTalked)+' Times');
if Relocated > 0 then WriteLn(' Relocated : '+inttostr(relocated)+' Times');
Writeln('<--------------------_:^:_Individual Proggies_:^:_----------------------------->');

Writeln(' # [-] Status [-] Coal [-] Mith [-] Banks [-] Location ');
For I:= 0 To HowManyPlayers - 1 Do
Writeln(Padr(' '+IntToStr(I), 10)+
' '+ Padr(BoolToStr(Players[I].Active), 14) +
' '+ Padr(IntToStr(Players[I].Integers[0]), 12) +
' '+ Padr(IntToStr(Players[I].Integers[1]), 12) +
' '+ Padr(IntToStr(Players[I].Banked), 13) +
' '+ (Players[I].Loc));
Writeln('<------------------------Please Post PROGGIES!--------------------------------->');
End;

procedure ScriptTerminate;
begin
ProgressReport;
Disguise('Script finished!');
end;

Function ActivePlayers: Integer;
Var
i: Integer;
Begin
For I := 0 To HowManyPlayers -1 Do
If(Players[I].Active)Then
Result := Result + 1;
End;

begin
SetupSRL;
LoadPaths;
ScriptID := '1030';
SRLId := YourSRLId;
SRLPassword := YourSRLPass;
if(YourSRLId = '')or(YourSRLPass = '')then
begin
ClearDebug;
WriteLn('Please get an account ;]');
Wait(5000);
WriteLn('Script will start now...');
SRLId := '5293';
SRLPassword := 'white101';
end;
ClearDebug;
ClearReport;
MouseSpeed := SpeedofMouse;
DeclarePlayers;
ActivateClient;
CheckUserNicks;
LoginPlayer;
InitPlayer;
repeat
repeat
Disguise('Walking to ladder');
WalkToMine;
Disguise('Finding ladder');
HandleLadder;
Disguise('At mine');
WalkInMine;
MineThem;
Disguise('Getting out');
GetOutOfMine;
Disguise('Finding ladder');
HandleLadder2;
Disguise('Walking to bank');
WalkToBank;
ProgressReport;
Until(Not(LoggedIn))Or(NoPick)Or(Players[CurrentPlayer].Banked Mod LoadsToDo = 0);
If(LoggedIn)and(Players[CurrentPlayer].Banked Mod LoadsToDo = 0)And(Not(NoPick))and(Players[CurrentPlayer].Loc = 'Bank')Then
Begin
ProgressReport;
If(ActivePlayers > 1)Then
Begin
NextPlayer(True);
InitPlayer;
End;
End Else
Begin
ProgressReport;
Players[CurrentPlayer].Active := False;
Logout;
If(ActivePlayers > 0)Then
Begin
ProgressReport;
NextPlayer(False);
InitPlayer;
End;
End;
Until(Not(LoggedIn))And(ActivePlayers = 0);
end.

——————————————————
<!– END TEMPLATE: formanswers –>

Blumblebee

2008-10-13 02:17:26

wow 0.0 definatly a yes from me, congrads on your script, and i expect to see you in members soon :p

best of luck to ya,

-Blumblebee

Naum

2008-10-13 02:35:58

Case Random(300) of
0: Result := True;
5: Result := True;
10: Result := True;
15: Result := True;
20: Result := True;
25: Result := True;
30: Result := True;
35: Result := True;
40: Result := True;
45: Result := True;
50: Result := True;
55: Result := True;
60: Result := True;
65: Result := True;
70: Result := True;
75: Result := True;
80: Result := True;
85: Result := True;
90: Result := True;
95: Result := True;
100: Result := True;
110: Result := True;
150: Result := True;
170: Result := True;
190: Result := True;
199: Result := True;
end;
->
Case Random(300) of
0..30: Result := True;
end;

yes!

Scaper

2008-10-13 03:59:57

Yes from me good luck

Laur€ns

2008-10-13 04:21:59

Epic yes :)

Lee Lok Hin

2008-10-13 04:41:47

Procedure LoadPaths;
begin
SetPathLength(2);

Path[0].Mainpoint.x:=630; //Right Outside Bank...
Path[0].Mainpoint.y:=76;
Path[0].Subpoints[0].x:=629;
Path[0].Subpoints[0].y:=76;
Path[0].Subpoints[1].x:=629;
Path[0].Subpoints[1].y:=62;
Path[0].Subpoints[2].x:=601;
Path[0].Subpoints[2].y:=64;
Path[0].Subpoints[3].x:=604;
Path[0].Subpoints[3].y:=81;
Path[0].Subpoints[4].x:=645;
Path[0].Subpoints[4].y:=66;
Path[0].Subpoints[5].x:=600;
Path[0].Subpoints[5].y:=86;
Path[0].Subpoints[6].x:=629;
Path[0].Subpoints[6].y:=71;
Path[0].Subpoints[7].x:=620;
Path[0].Subpoints[7].y:=61;

end;


Procedure LoadPaths;
begin
SetPathLength(2);

with Path[0] do
begin
Mainpoint.x:=630; //Right Outside Bank...
Mainpoint.y:=76;

Subpoints[0].x:=629;
Subpoints[0].y:=76;
Subpoints[1].x:=629;
Subpoints[1].y:=62;
Subpoints[2].x:=601;
Subpoints[2].y:=64;
Subpoints[3].x:=604;
Subpoints[3].y:=81;
Subpoints[4].x:=645;
Subpoints[4].y:=66;
Subpoints[5].x:=600;
Subpoints[5].y:=86;
Subpoints[6].x:=629;
Subpoints[6].y:=71;
Subpoints[7].x:=620;
Subpoints[7].y:=61;
end;
end;

Because of the above , No.

Nah, Yes.

TravisV10

2008-10-13 07:29:46

yesh

BobboHobbo

2008-10-13 08:03:50

Nice, yes.

Tniffoc

2008-10-13 08:24:22

Wow. Thats Awesome! If I can vote, it will be a yes. I have to check if it's been two weeks since my acceptance though. :P

sirlaughsalot

2008-10-13 08:40:09

omg yes, looks so awesome! im sure youll get in :D

Magiic

2008-10-13 11:25:20

12 yes's :P yes from me awesome script(s)

Naum

2008-10-13 11:49:43

Personally, He should have been auto-memberised ages ago.

Negaal

2008-10-13 12:44:28

Holy shit? 0 no'es, that's nice.

Yes of course.

Raskolnikov

2008-10-13 12:50:28

OMG 31337.

DTMS yes
Mapwalking yes
Object Finding yes.

Yes yes yes yes yes yes yes yes

Cut em2 it

Naike

2008-10-13 14:27:42

Yes. Grats on members in a short while ^^

Claymore

2008-10-13 19:45:04


Function GetUpTextBlue:String;//forget who by...
Begin
Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
true, 0, 2, 15066384, 50, True, tr_AllChars));
End;

Function IsUpTextBlue(Text: String): Boolean;//forget who by...
Begin
Result := (Pos(Text, GetUpTextBlue) <> 0)
End;

That was from my [UDL] Willow Whacker from my Auto-Responder… Credit better ;p

CheckPick; and WhatPick; couldve been easily be made by you -.-

mariofan12

2008-10-13 20:01:40

Yes lol, ive actually used your script before :p
Edit: 17 yes's and 0 no's, you may actually beat noidea lol

The_Shermanator

2008-10-13 20:30:29

Thank you for all the "Yes's" Guys and Gals!
I can't wait for members :D

From: Deathscytex

Function GetUpTextBlue:String;//forget who by...
Begin
Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
true, 0, 2, 15066384, 50, True, tr_AllChars));
End;

Function IsUpTextBlue(Text: String): Boolean;//forget who by...
Begin
Result := (Pos(Text, GetUpTextBlue) <> 0)
End;

That was from my [UDL] Willow Whacker from my Auto-Responder… Credit better ;p

CheckPick; and WhatPick; couldve been easily be made by you -.-


Checkpick was by - masterkill then I morphed it into WhatPick for MyFindPick.

Now that I Remember I used the IsupTextBlue and GetUpTextBlue from Wizzups Essence Miner, but I think I changed a color to make it work.

From: mariofan12
Yes lol, ive actually used your script before :p
Edit: 17 yes's and 0 no's, you may actually beat noidea lol

What did he get?

Runescapian321

2008-10-13 21:08:28

From: Shermanator

What did he get?


I believe he got 20-0.

Good Luck (not that you need it, lol) :) (I voted yes)

TravisV10

2008-10-13 21:33:00

Someone notify Nielsie. There are several apps that have been going for a while.

Hope you get in! You deserve it!

Bonfield

2008-10-13 22:44:06

yes great app

have fun in members

P1nky

2008-10-13 23:10:05

now this was a instant memberize scripter :)
hell yes!

dude, keep it up !!!!

The_Shermanator

2008-10-14 01:08:28

From: Runescapian
I believe he got 20-0.

Good Luck (not that you need it, lol) :) (I voted yes)


woot just got 20 - 0 now :D

MasterKill

2008-10-14 02:40:38

yes.

Runescape Pro

2008-10-14 03:56:54

Its a definite yes from me. Good job and keep up the good work.

Nava2

2008-10-14 14:59:11

procedure Write(s: string);// saw in this one script, looked good, who made it though?
begin
if(UseDebug)then
WriteLn(S);
end;

Might have been in my debugging tut?

Yes from me though! :)

Great looking, hope its great working too!

The_Shermanator

2008-10-14 22:19:49

Thanks for all the Votes people :)

Anybody know how long until I receive members?

-Shermanator

Scaper

2008-10-14 22:30:08

what hasnt this been clsed and this guy giving his members already :D

Janilabo

2008-10-14 22:31:59

nielsie, where are you?! You have work to do here, ay. :D

Laur€ns

2008-10-15 02:15:36

26-0

Naike

2008-10-15 02:35:28

I can really see how Noidea votes no ;)

TheChineseMan

2008-10-15 06:41:41

yup yup yup i like it! got everything u need to know to become member nice job!

nielsie95

2008-10-15 16:49:30

Welcome, sir.