SRL Archive - Archive

Garrett92 - SRL Member Application Form


Garrett

2007-08-22 17:30:17

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

What is the meaning to life?


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



Programming Knowledge
PHP

Other Communitys


How Long have You Played Runescape
2 Years

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

I have been here with SRL for about 2 months now, and I have created a fire crafter and now a rune mysteries quest runner. I will be submitting my Quest Runner to see if I can get approved, hope you guys will like it, thanks.

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

Enjoy!

Also, I'll fix up some loops for the npc talking when I get a chance.

{///////////////////////////////////////////////////////////////////////////////
| Garrett's Rune Mysteries Quest Runner
|
| Instructions
| ============
| Start In Lumbridge Castle Courtyard (Where You Spawn).
| RuneScape Full Bright and Low Detail
| SCAR Divi 3.11
| SRL 4
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
| Version Info:
| V1.0-First Release.
| V1.1-Some Bug Fixes.
| V1.2-Fixed For SRL 4.
///////////////////////////////////////////////////////////////////////////////}
Program GarrettsRuneMysteriesQuestRunner;
{.include SRL/SRL.Scar}

Const
//Settings
BackToVarr = 'True'; // Walks back to Varrock after finishing the quest. True or False.
YourSRLID = ''; // SRL ID
YourSRLPASS = ''; // SRL Password
Antibann = 'On'; // AntiBan - On / Off Change Scripts Speed and Antiban.
WaitTime = 400; // This is sets the wait time. 500 Max, 200 Min. Sets Random Wait Time + Wait Time.
// Wait(Number+Random(Number))

procedure DeclarePlayers;
begin
NumberOfPlayers(3);
HowManyBooleans := 0;

Players[0].Name := 'Name';
Players[0].Pass := 'Pass';

Players[1].Name := 'Name';
Players[1].Pass := 'Pass';

Players[2].Name := 'Name';
Players[2].Pass := 'Pass';

Writeln('Using '+IntToStr(HowManyPlayers)+' Players');
LoadPlayerArray;
end;

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// Do NOT Edit Below This - Unless You Know What Your Doing ///////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

///////////////////////////////
Const VersionNum = '1.2'; // Do Not Edit This.
///////////////////////////////

var
LumbyCastle, GetLumbyCo, Success, Ix, Iy, DirtRoad, DirtRoadCo, Rx, Ry,
QuestionSymbolCo, QuestionSymbol, WizardsBridge, WizardsBridgeCo, MageShop,
DraynorRoad, DraynorRoadCo, MapLadderCo, LumbyBridge, LumbyBridgeCo, PlayersCompleted,
VarrockRoad, VarrockRoadCo, VarrockDirtRoadCo, VarrockDirtRoad, WaterSymbol, x, y: Integer;

Procedure LoadPics;
Begin
LumbyCastle := BitmapFromString(8, 8, 'z78DA337331333733331' +
'B2507880400C4B154C1');
QuestionSymbol := BitmapFromString(3, 3, 'z78DA733277367272' +
'752291040068570D1E');
DirtRoad := BitmapFromString(4, 4, 'z78DA33713436377434A119' +
'0900FD6D1511');
WizardsBridge := BitmapFromString(9, 9, 'z78DA333730B330B33' +
'41F258735090085646685');
DraynorRoad := BitmapFromString(7, 6, 'z78DA333337753333301' +
'B91240017AF36CD');
LumbyBridge := BitmapFromString(12, 5, 'z78DA333133B6303432' +
'1925694C020095CD4921');
VarrockRoad := BitmapFromString(7, 5, 'z78DAB330307731B7B01' +
'84624000ADD2E37');
VarrockDirtRoad := BitmapFromString(4, 4, 'z78DAB3B03437357' +
'5B1A01909000BDC1561');
End;

function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;

procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;

Procedure AntiBanage;
Begin
If(Antibann = 'Off')Then Exit;
If(Not(LoggedIn))Then Exit;
case Random(6) of
0: PickUpMouse;
1: GameTab(1 + Random(12));
2: SleepAndMoveMouse(500+random(500));
end;
end;

function FindVarrockDirtPath:integer;
var
GC, ColorCount, a, i, j, n, l, TestColor, Red, Green, Blue : integer;
var
ColorArray : array of integer;
var
P : array of Tpoint;
begin
GC := 6851738;
Flag;
FindColorsSpiralTolerance(x, y, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
l:=GetArrayLength(P);
SetArrayLength(ColorArray,32);
for a:= 0 to l-1 do
begin
TestColor := GetColor(P[a].x, P[a].y);
red := (TestColor mod 256);
green := ((TestColor / 256) mod 256);
blue := ((TestColor / 256) / 256);
if Blue <= 104 then if Red - Blue <= 50 then if Red <= 155 then
if Green <= 145 then if Green >= 93 then if Green - Blue >= 0 then
if Green - Blue <= 40 then if Red >= 100 then if Red - Green >= 8 then
if Red - Green <= 30 then if Red - Blue >= 40 then
begin
n:=0;
for i:= 0 to 3 do
begin
for j:= 0 to 7 do
begin
ColorArray[n]:=GetColor(P[a].x+i,P[a].y-3+j);
n:=n+1;
end;
end;
ColorCount:=0;
for n:= 0 to 31 do
begin
if ColorArray[n]=TestColor then ColorCount:=ColorCount+1;
end;
if ColorCount<17 then if ColorCount>12 then
begin
Result := TestColor;
WriteLn('Varrock Dirt Road Color = ' + IntToStr(TestColor));
Exit;
end;
end;
end;
WriteLn('Could Not Find Varrock Dirt Road Color!');
Result := 0;
end;

function FindVarrockDirtPath2:integer;
var
GC, ColorCount, a, i, j, n, l, TestColor, Red, Green, Blue : integer;
var
ColorArray : array of integer;
var
P : array of Tpoint;
begin
GC := 4284524;
Flag;
FindColorsSpiralTolerance(x, y, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
l:=GetArrayLength(P);
SetArrayLength(ColorArray,32);
for a:= 0 to l-1 do
begin
TestColor := GetColor(P[a].x, P[a].y);
red := (TestColor mod 256);
green := ((TestColor / 256) mod 256);
blue := ((TestColor / 256) / 256);
if Blue <= 104 then if Red - Blue <= 50 then if Red <= 155 then
if Green <= 145 then if Green >= 93 then if Green - Blue >= 0 then
if Green - Blue <= 40 then if Red >= 100 then if Red - Green >= 8 then
if Red - Green <= 30 then if Red - Blue >= 40 then
begin
n:=0;
for i:= 0 to 3 do
begin
for j:= 0 to 7 do
begin
ColorArray[n]:=GetColor(P[a].x+i,P[a].y-3+j);
n:=n+1;
end;
end;
ColorCount:=0;
for n:= 0 to 31 do
begin
if ColorArray[n]=TestColor then ColorCount:=ColorCount+1;
end;
if ColorCount<17 then if ColorCount>12 then
begin
Result := TestColor;
WriteLn('Varrock Dirt Road Color = ' + IntToStr(TestColor));
Exit;
end;
end;
end;
WriteLn('Could Not Find Varrock Dirt Road Color!');
Result := 0;
end;

Function CheckDoor(DoorColor, Tolerance: Integer): Boolean;
Var
x, y: Integer;
Begin
If FindObj(x, y, 'oor', DoorColor, Tolerance) Then
Begin
GetMousePos(x, y);
Wait(100);
If IsUpText('pen') Then
Begin
Status('Door Is Closed.');
Mouse(x, y, 0, 0, True);
Result := True;
Wait(100);
FFlag(0);
End
Else If IsUpText('lose') Then
Begin
Status('Door Is Open.');
Mouse (x, y, 0, 0, False);
Result := True;
ChooseOption('Walk');
Wait(100);
FFlag(0);
End;
End;
End;

procedure Garrett (DoThis: String);
Begin
Case Lowercase(DoThis) Of
'dowait': Begin
wait(WaitTime+random(WaitTime));
End;
'checklogged': Begin
If (Not(LoggedIn)) Then LoginPlayer;
End;
'fixscreen': Begin
makecompass('N');
highestangle;
GameTab (4);
End;
'antibanrandom': Begin
FindRandoms;
AntiBanage;
End;
'doall': Begin
FindRandoms;
AntiBanage;
makecompass('N');
highestangle;
GameTab (4);
If (Not(LoggedIn)) Then TerminateScript;
End;
'reset': Begin
Success := 0;
End;
End;
End;

Function AutoRetaliate: Boolean;
Begin
GameTab(1);
Wait(500);
If (GetColor(643, 382) = 1974408) Then
Begin
Mouse(650, 380, 10, 10, True);
Wait(250);
Exit;
End Else
Result := True
End;

{var
mainmenu : TForm;
NewsBtn, SetupUsersBtn, CheckVerBtn, StartScriptBtn : TButton;
Memo1 : TMemo;
useropened : integer;
N : string;

Procedure CheckVersion;
var
Ver: String;
Begin
Ver := GetPage('http://garrett.freehostia.com/versionGRMQR.php');
If(Ver > VersionNum)Then
begin
Memo1.Lines.Add('');
Memo1.Lines.Add('Your Version: '+VersionNum);
Memo1.Lines.Add('Latest Version: '+Ver);
Memo1.Lines.Add('Version is not up to date.');
Memo1.Lines.Add('Please visit this website for the latest version.');
Memo1.Lines.Add('http://www.villavu.com/forum/showthread.php?t=12772');
Exit;
end;
Memo1.Lines.Add('');
Memo1.Lines.Add('Latest Version: '+Ver);
Memo1.Lines.Add('Your Version: '+VersionNum);
Memo1.Lines.Add('You have the latest version.');
end;

Procedure WriteNews;
Begin
N := Getpage('http://garrett.freehostia.com/newsGRMQR.php');
Memo1.Lines.Add('');
Memo1.Lines.Add(+N);
end;

// From the SL Port Sarim Script
Procedure ButtonClick(Sender: TObject);
Begin
case Sender of
StartScriptBtn :
begin
If (useropened = 0) Then StartPlayers(true, '');
mainmenu.ModalResult:= mrOk;
end;
SetupUsersBtn :
Begin
StartPlayers(true, '');
useropened := 1;
Memo1.Lines.Add('');
Memo1.Lines.Add('Players Settings Were Saved.');
end;
CheckVerBtn :
CheckVersion;
NewsBtn :
WriteNews;
end;
end;

Procedure GarrettMainMenu;
Begin
mainmenu := CreateForm;
mainmenu.Left := 275;
mainmenu.Top := 157;
mainmenu.BorderStyle := bsSingle;
mainmenu.Caption := 'Garrett'#39's RuneMysteries Quest Runner '+VersionNum;
mainmenu.ClientHeight := 286;
mainmenu.ClientWidth := 595;
mainmenu.Color := clBtnFace;
mainmenu.Font.Color := clWindowText;
mainmenu.Font.Height := -11;
mainmenu.Font.Name := 'MS Sans Serif';
mainmenu.Font.Style := [];
mainmenu.Visible := False;
mainmenu.PixelsPerInch := 96;
NewsBtn := TButton.Create(mainmenu);
NewsBtn.Parent := mainmenu;
NewsBtn.Left := 11;
NewsBtn.Top := 10;
NewsBtn.Width := 75;
NewsBtn.Height := 25;
NewsBtn.Caption := 'News';
NewsBtn.TabOrder := 8;
NewsBtn.OnClick := @ButtonClick;
CheckVerBtn := TButton.Create(mainmenu);
CheckVerBtn.Parent := mainmenu;
CheckVerBtn.Left := 11;
CheckVerBtn.Top := 40;
CheckVerBtn.Width := 75;
CheckVerBtn.Height := 25;
CheckVerBtn.Caption := 'Check Version';
CheckVerBtn.TabOrder := 9;
CheckVerBtn.OnClick := @ButtonClick;
SetupUsersBtn := TButton.Create(mainmenu);
SetupUsersBtn.Parent := mainmenu;
SetupUsersBtn.Left := 11;
SetupUsersBtn.Top := 71;
SetupUsersBtn.Width := 75;
SetupUsersBtn.Height := 25;
SetupUsersBtn.Caption := 'Setup Users';
SetupUsersBtn.TabOrder := 10;
SetupUsersBtn.OnClick := @ButtonClick;
Memo1 := TMemo.Create(mainmenu);
Memo1.Parent := mainmenu;
Memo1.Left := 95;
Memo1.Top := 10;
Memo1.Width := 487;
Memo1.Height := 262;
Memo1.Lines.Add('Garrett'#39's RuneMysteries Quest Runner. Version: '+VersionNum);
Memo1.Lines.Add('Please Use The Start Script Button To Start The Script.');
Memo1.TabOrder := 11;
StartScriptBtn := TButton.Create(mainmenu);
StartScriptBtn.Parent := mainmenu;
StartScriptBtn.Left := 11;
StartScriptBtn.Top := 247;
StartScriptBtn.Width := 75;
StartScriptBtn.Height := 25;
StartScriptBtn.Caption := 'Start Script';
StartScriptBtn.TabOrder := 12;
StartScriptBtn.OnClick := @ButtonClick;
end;

Procedure GTheForm;
var
v: TVariantArray;
Begin
SetArrayLength(V, 0);
ThreadSafeCall('GarrettMainMenu', v);
end;

Procedure GShowFormModal;
Begin
mainmenu.ShowModal;
end;

Procedure GTehForm;
var
v: TVariantArray;
Begin
SetArrayLength(V, 0);
ThreadSafeCall('GShowFormModal', v);
End;}

Procedure ProgressReport;
Begin
Cleardebug;
WriteLn('//////////////////////////////////////////////////')
WriteLn('| Garrett' + #39 + 's RuneMysteries Quest Runner');
WriteLn('| Version: '+VersionNum);
WriteLn('| AntiBan: '+AntiBann);
WriteLn('| ');
WriteLn('| Players Completed: '+IntToStr(PlayersCompleted));
Writeln('| Worked for '+ TimeRunning);
WriteLn('//////////////////////////////////////////////////')
SRLRandomsReport;
End;

Procedure Part1IntoLumbridgeCastle;
Begin

Status('Part 1 - Into Lumbridge Castle.');
Wait(3000);
Status('Setting Screen.');
makecompass('E');
Garrett('FixScreen');
Status('Turning On Run.');
SetRun(True);
Status('Getting Lumbridge Castle Color.');
GetLumbyCo := FindRoadColor;
Status('Castle Color: '+IntToStr(GetLumbyCo));
Garrett('DoWait');

If(GetLumbyCo = 0)Then
Begin
Repeat
Garrett('DoWait');
GetLumbyCo := AutoColorThis(LumbyCastle, 25, MMX1, MMY1, MMX2, MMY2);
Until(Not(GetLumbyCo = 0));
End;

Garrett('DoWait');
Garrett('Reset');
Garrett('DoAll');
Status('Walking To Stairway.');

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 210, 260, 50, 0, -7))Then
Begin
Success := 1;
FFlag(0);
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('Reset');
Garrett('DoAll');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 270, 55, 10, -15))Then
Begin
Success := 1;
FFlag(0);
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Climbing Up Stairs.');

Repeat
If(FindObj(Ix, Iy, 'imb-up', 606303, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('imb-up');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Finding Room...');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 0, 20, 50, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

Repeat
If(CheckDoor(2904695, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Finding The Duke...');

Repeat
If(FindObj(Ix, Iy, 'oracio', 4196352, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('alk-to');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Status('Talking To The Duke.');

Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('quest', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('problem', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Checking If Door Is Opened Or Closed.');

Repeat
If(CheckDoor(2904695, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Finding Stairs...');

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 200, 40, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1)

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 200, 40, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1)

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Climbing Down Stairs.');

Repeat
If(FindObj(Ix, Iy, 'limb', 606303, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('mb-dow');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Status('Walking To Courtyard.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 75, 90, 30, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 35, 65, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

End;

Procedure Part2WalkToWizards;
Begin

Garrett('DoWait');
Status('Part 2 - Walking To Wizards Tower.');
Wait(3000);
Garrett('DoAll');
Garrett('Reset');
Status('Turning On Run.');
SetRun(True);
Garrett('DoWait');
GetLumbyCo := FindRoadColor;
Status('Walking Up Road.');

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 0, 40, 63, 0, 0))Then
Begin
Wait(5000+Random(1000));
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');

Status('Searching For Dirt Road.');

Status('Checking Run. If Off, Turning On.');
SetRun(True);

Mouse(590, 65, 0, 0, true);
Wait(3000+Random(1000));
FFlag(0);
Mouse(590, 80, 0, 0, true);
Wait(3000+Random(1000));
FFlag(0);

Status('Checking Run. If On, Turning Off.');
SetRun(False);

DirtRoadCo := FindDirtRoadColor;

If(DirtRoadCo = 0)Then
Begin
Repeat
Garrett('DoWait');
DirtRoadCo := AutoColorThis(DirtRoad, 25, MMX1, MMY1, MMX2, MMY2);
Until(Not(DirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 180, 300, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Walking On Dirt Road.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Turning Off Auto Retaliate.');
AutoRetaliate;
Status('Turning On Run.');
SetRun(True);
Status('Running Along Dirt Road.');

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

DraynorRoadCo := AutoColorThis(DraynorRoad, 20, MMX1, MMY1, MMX2, MMY2);
Status('On Draynor Road.');

If(DraynorRoadCo = 0)Then
Begin
Repeat
Garrett('DoWait');
DraynorRoadCo := FindRoadColor;
Until(Not(DraynorRoadCo = 0));
End;

Repeat
If(RadialWalk(DraynorRoadCo , 150, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning Off Run.');
SetRun(False);
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('On Wizards Bridge.');

Mouse(649, 137, 0, 0, true);
FFlag(0);
Mouse(649, 137, 0, 0, true);
FFlag(0);

WizardsBridgeCo := FindRoadColor;
Repeat
If(RadialWalk(WizardsBridgeCo , 160, 240, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WaterSymbol := AutoColorThis(QuestionSymbol, 10, MMX1, MMY1, MMX2, MMY2);
Status('Walking To Symbol.');

If(RadialWalk(WaterSymbol , 90, 270, 40, 0, 0))Then
Begin
FFlag(0);
End Else
Begin
Mouse(648, 95, 0, 0, true);
FFlag(0);
End;

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
MapLadderCo := FindLadderColor;
Status('Searching For Ladder.');

If(MapLadderCo = 0)Then
Begin
Repeat
Garrett('DoWait');
MapLadderCo := FindLadderColor;
Until(Not(MapLadderCo = 0));
End;

Repeat
If(RadialWalk(MapLadderCo , 220, 270, 61, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Checking Doors.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Climbing Down Ladder.');

Repeat
If(FindObj(Ix, Iy, '-down', 1118484, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, True);
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
QuestionSymbolCo := AutoColorThis(QuestionSymbol, 35, MMX1, MMY1, MMX2, MMY2);
Status('Walking To Symbol.');

Repeat
Garrett('DoWait');
If(RadialWalk(QuestionSymbolCo , 130, 220, 55, 15, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Mouse (629, 83, 0, 0, True);
FFlag(0);
Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Finding Sedridor...');

Repeat
If(FindObj(Ix, Iy, 'edridor', 16493109, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('alk-to');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Status('Talking To Sedridor.');

Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('head', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('here', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('certainly', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

makecompass('E');
lowestangle;

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('DoAll');

Status('Searching For Ladder.');

Mouse (630, 20, 0, 0, True);
FFlag(0);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Climbing Up Ladder.');

Repeat
If(FindObj(Ix, Iy, 'limb-up', 1118484, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, True);
FFlag(0);
Success := 1;
End;
Until (Success = 1);

End;

Procedure Part3WalkToVarrock;
Begin

Status('Part 3 - Walk To Varrock.');
Wait(3000);
Garrett('Reset');
Status('Turning Off Run.');
SetRun(False);
Garrett('DoWait');
Garrett('DoAll');
Status('Checking Doors.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Status('Walking Up Wizards Bridge.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , 0, 50, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , -40, 35, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , -40, 35, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning On Run.');
SetRun(True);
Status('Running Along Dirt Road.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');

DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

If(RadialWalk(DirtRoadCo , 0, 100, 60, 0, 0))Then
Begin
FFlag(0);
End;

Mouse(688, 80, 0, 0, true);
FFlag(0);

Garrett('DoWait');
Garrett('Reset');
Status('Into The Smith.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 70, 90, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning Off Run.');
SetRun(False);

Mouse(666, 64, 0, 0, true);
Wait(5000+Random(1000))
FFlag(0);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Across Bridge.');
LumbyBridgeCo := FindBridgeColor;

Repeat
Garrett('DoWait');
If(RadialWalk(LumbyBridgeCo , 55, 120, 65, 0, 0))Then
Begin
Wait(3000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -30, 30, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -30, 10, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -5, 40, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 0, 55, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Getting On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -30, 30, 65, 0, 0))Then
Begin
Wait(10000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 245, 295, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -50, 15, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 300, 350, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -40, 10, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

End;

Procedure Part4WalkToAuburyAndBack;
Begin

Status('Part 4 - Walk To Aubury And Back To Gate.');
Wait(3000);
Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Checking Run. If Off, Turning On.');
SetRun(True);
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

If(VarrockDirtRoadCo = 0)Then
Begin
Repeat
VarrockDirtRoadCo := FindVarrockDirtPath2;
Until(Not(VarrockDirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 0, 65, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

If(VarrockDirtRoadCo = 0)Then
Begin
Repeat
VarrockDirtRoadCo := FindVarrockDirtPath2;
Until(Not(VarrockDirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 80, 120, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

If(VarrockDirtRoadCo = 0)Then
Begin
Repeat
VarrockDirtRoadCo := FindVarrockDirtPath2;
Until(Not(VarrockDirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 80, 120, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

If(VarrockDirtRoadCo = 0)Then
Begin
Repeat
VarrockDirtRoadCo := FindVarrockDirtPath2;
Until(Not(VarrockDirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , -40, 30, 45, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Searching For Magic Shop.');
MageShop := GetSymbolColor(Rx, Ry, 'Magic Shop');

If(RadialWalk(MageShop , -40, 100, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

Repeat
If(CheckDoor(4879748, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Finding Aubury...');

Repeat
If(FindObj(Ix, Iy, 'ubury', 1952487, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('alk-to');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Status('Talking To Aubury.');

Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('package', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Garrett('DoWait');
Repeat
If(FindObj(Ix, Iy, 'ubury', 1952487, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('alk-to');
FFlag(0);
Success := 1;
End;
Until (Success = 1);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Checking Door.');

Repeat
If(CheckDoor(4879748, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 150, 210, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 260, 300, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 260, 300, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 200, 250, 40, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

End;

Procedure Part5WalkToWizardsTower;
Begin

Status('Part 5 - Walk To Wizards Tower. Finish Quest.');
Wait(3000);
Garrett('DoWait');
Status('Checking Run. If On, Turning Off.');
SetRun(False);
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 160, 230, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 120, 190, 50, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 120, 190, 51, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 100, 170, 50, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 140, 210, 50, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 75, 130, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 70, 120, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 70, 120, 40, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 250, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 260, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 180, 260, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 130, 220, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 120, 200, 55, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Mouse(649, 131, 0, 0, true);
FFlag(0);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Across Bridge.');
LumbyBridgeCo := FindBridgeColor;

Repeat
Garrett('DoWait');
If(RadialWalk(LumbyBridgeCo , 180, 300, 60, 0, 0))Then
Begin
Wait(3000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Down The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 260, 300, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Mouse(593, 115, 0, 0, true);
FFlag(0);

Status('Checking Run. If On, Turning Off.');
SetRun(False);

DirtRoadCo := FindDirtRoadColor;

If(DirtRoadCo = 0)Then
Begin
Repeat
Garrett('DoWait');
DirtRoadCo := AutoColorThis(DirtRoad, 25, MMX1, MMY1, MMX2, MMY2);
Until(Not(DirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 180, 340, 60, 0, 0))Then
Begin
Wait(10000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Walking On Dirt Road.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Turning Off Auto Retaliate.');
AutoRetaliate;
Status('Turning On Run.');
SetRun(True);
Status('Running Along Dirt Road.');

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 200, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DraynorRoadCo := AutoColorThis(DraynorRoad, 20, MMX1, MMY1, MMX2, MMY2);
Status('On Draynor Road.');

If(DraynorRoadCo = 0)Then
Begin
Repeat
Garrett('DoWait');
DraynorRoadCo := FindRoadColor;
Until(Not(DraynorRoadCo = 0));
End;

Repeat
If(RadialWalk(DraynorRoadCo , 150, 270, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning Off Run.');
SetRun(False);
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('On Wizards Bridge.');

Mouse(649, 137, 0, 0, true);
FFlag(0);
Mouse(649, 137, 0, 0, true);
FFlag(0);

WizardsBridgeCo := FindRoadColor;
Repeat
If(RadialWalk(WizardsBridgeCo , 160, 240, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WaterSymbol := AutoColorThis(QuestionSymbol, 10, MMX1, MMY1, MMX2, MMY2);
Status('Walking To Symbol.');

If(RadialWalk(WaterSymbol , 90, 270, 40, 0, 0))Then
Begin
FFlag(0);
End Else
Begin
Mouse(648, 95, 0, 0, true);
FFlag(0);
End;

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
MapLadderCo := FindLadderColor;
Status('Searching For Ladder.');

If(MapLadderCo = 0)Then
Begin
Repeat
Garrett('DoWait');
MapLadderCo := FindLadderColor;
Until(Not(MapLadderCo = 0));
End;

Repeat
If(RadialWalk(MapLadderCo , 220, 270, 61, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
Status('Checking Doors.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Climbing Down Ladder.');

Repeat
If(FindObj(Ix, Iy, '-down', 1118484, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, True);
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
QuestionSymbolCo := AutoColorThis(QuestionSymbol, 35, MMX1, MMY1, MMX2, MMY2);
Status('Walking To Symbol.');

Repeat
Garrett('DoWait');
If(RadialWalk(QuestionSymbolCo , 130, 220, 55, 15, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Mouse (629, 83, 0, 0, True);
FFlag(0);
Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Finding Sedridor...');

Repeat
If(FindObj(Ix, Iy, 'edridor', 16493109, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, False);
Garrett('DoWait');
ChooseOption('alk-to');
FFlag(0);
Success := 1;
End;
Until (Success = 1);

Status('Talking To Sedridor.');

Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);
Wait(2000+random(500));
ClickNpcChatText('continue', True);

Mouse (440, 78, 0, 0, True);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Checking If Door Is Opened Or Closed.');

makecompass('E');
lowestangle;

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Status('Searching For Ladder.');
Garrett('DoAll');

Mouse (630, 20, 0, 0, True);
FFlag(0);

Garrett('Reset');
Garrett('DoWait');
Garrett('DoAll');
Status('Climbing Up Ladder.');

Repeat
If(FindObj(Ix, Iy, 'limb-up', 1118484, 20))Then
Begin
Mouse (Ix, Iy, 0, 0, True);
FFlag(0);
Success := 1;
End;
Until (Success = 1);

End;

Procedure Part6WalkToVarrockBank;
Begin

Status('Part 6 - Walk Back to Varrock Bank.');
Wait(3000);
Garrett('Reset');
Status('Turning Off Run.');
SetRun(False);
Garrett('DoWait');
Garrett('DoAll');
Status('Checking Doors.');

Repeat
If(CheckDoor(1726064, 20))Then
Begin
Success := 1;
End;
Until (Success = 1);

Status('Walking Up Wizards Bridge.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , 0, 50, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , -40, 35, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
WizardsBridgeCo := FindRoadColor;

Repeat
If(RadialWalk(WizardsBridgeCo , -40, 35, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning On Run.');
SetRun(True);
Status('Running Along Dirt Road.');
Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');

DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('Reset');
Garrett('DoAll');
Garrett('DoWait');
DirtRoadCo := FindDirtRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(DirtRoadCo , 0, 150, 60, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('Reset');
Status('Into The Smith.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 70, 90, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Status('Turning Off Run.');
SetRun(False);

Mouse(666, 64, 0, 0, true);
Wait(5000+Random(1000))
FFlag(0);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Across Bridge.');
LumbyBridgeCo := FindBridgeColor;

Repeat
Garrett('DoWait');
If(RadialWalk(LumbyBridgeCo , 55, 120, 65, 0, 0))Then
Begin
Wait(3000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -30, 30, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -30, 10, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , -5, 40, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Going Up The Road.');
GetLumbyCo := FindRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(GetLumbyCo , 0, 55, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Mouse(648, 69, 0, 0, true);
FFlag(0);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Getting On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -30, 30, 65, 0, 0))Then
Begin
Wait(10000)
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 245, 295, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -50, 15, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , 300, 350, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Road.');
VarrockRoadCo := FindVarrockRoadColor;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockRoadCo , -40, 10, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Checking Run. If Off, Turning On.');
SetRun(True);
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

If(VarrockDirtRoadCo = 0)Then
Begin
Repeat
VarrockDirtRoadCo := FindVarrockDirtPath;
Until(Not(VarrockDirtRoadCo = 0));
End;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 0, 65, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 80, 120, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Garrett('DoWait');
Garrett('DoAll');
Garrett('Reset');
Status('Walking On Varrock Dirt Road.');
VarrockDirtRoadCo := FindVarrockDirtPath;

Repeat
Garrett('DoWait');
If(RadialWalk(VarrockDirtRoadCo , 80, 120, 65, 0, 0))Then
Begin
FFlag(0);
Success := 1;
End;
Until(Success = 1);

Mouse (669, 24, 0, 0, True);
FFlag(0);

Mouse (663, 28, 0, 0, True);
FFlag(0);

FindBank('veb');
Garrett('DoWait');
fixbank;
Garrett('DoWait');
depositall;
Garrett('DoWait');
closebank;
Garrett('DoWait');

End;

Procedure Setup;
Begin
Status('Starting Script...');
setupsrl;
ScriptID := '210';
SRLID := YourSRLID;
SRLPassword := YourSRLPASS;
PlayersCompleted := 0;
{GTheForm;
GTehForm;}
activateclient;
Garrett('DoWait');
If (Not(LoggedIn)) Then LoginPlayer;
ClearDebug;
Garrett('DoAll');
Garrett('Reset');
End;

Begin
Setup;
If (Not(LoggedIn)) Then LoginPlayer;
LoadPics;
Repeat
Part1IntoLumbridgeCastle;
Part2WalkToWizards;
Part3WalkToVarrock;
Part4WalkToAuburyAndBack;
Part5WalkToWizardsTower;
PlayersCompleted := PlayersCompleted + 1;
ProgressReport;
If(BackToVarr = 'True')Then Part6WalkToVarrockBank;
ProgressReport;
NextPlayer(False);
Until(Not(LoggedIn));
End.

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

jhildy

2007-08-22 18:09:02

not bad but some of the failsafes arn't great like until(sucess = 1) because what if it never does then it will be stuck there forever. but overall a nice script.

R0b0t1

2007-08-22 18:10:20

Maybe Chicka Maybe?

pwnaz0r

2007-08-22 23:03:01

I would say yes. Nice job. You have been here since I have. Anyways did you use Nielse's ACA ;). I can see :p. GJ though

Garrett

2007-08-23 00:05:50

Thanks.. and yes, I once used Nielse's ACA.

Sp0rky

2007-08-23 00:16:59

I'm going to say… Yes.

I think he's a good scripter. He should maybe be a little more active in the community?

I don't see many of his posts, but, It's a yes from me.

ZephyrsFury

2007-08-23 04:45:06

I'll vote yes because your script looks good and you seem to be a good enough scripter. :)

Although I really think you should have added a simple repeat until loop to your 'ClickNPCChatText' lines before you applied with it. Also, your loops don't really have any failsafes like jhildy mentioned. You should added a variable such as 'Tries' or something that has one added to it everytime the loop is repeat. Then you could added until(Sucess = 1) or (Tries = 3); so then the loop wouldn't be stuck forever.

Also, what happened to your forms? They looked pretty good last time I ran your script… ;)

Nice job :D

Santa_Clause

2007-08-23 06:00:49

Yes from me.

Pancakes

2007-08-23 06:36:17

I vote yes because your cool :p

EDIT: Among other things haha…

EDIT EDIT: Although, looking over the script again, it could use some more standards / tidying up. Still a yes though.

n3ss3s

2007-08-23 08:02:28

Yes from me btw.

Garrett

2007-08-23 09:19:08

Thanks to all of you.. and yes, I'll have to work on the script quite a bit.

3Garrett3

2007-08-23 10:35:00

Work on it a bit, but its still a yes from me :)

MasterKill

2007-08-23 13:24:10

i gues you got all you need

yes.

Kik

2007-08-24 13:22:39

Seems good enough (first member app i've posted on =o). Yes.

It could have used a little bit more failsafes or a loop in your npc text, though.

Wizzup?

2007-08-24 14:44:02

Yes!

WT-Fakawi

2007-08-26 05:20:51

Accepted!