SCAR Code:
Program TutorialIslandRunner;
{.Include SRL/SRL/Misc/SMART.Scar}
{.Include SRL/SRL.Scar}
{.Include SRL/SRL/Skill/Mining.scar}
Var
X, Y, DTM, MaxTime, PlayersDone:Integer;
Const
YourSRLID = ''; // Insert your SRL Stats ID here (It is dIfferent than your Forum's username!)
YourSRLPassword = ''; // SRL Stats password here.
FullDebug = True; // Prints out a TON of crap so you can see whats going on. I use for debugging.
TakeScreens = True; // If it messes up or gets lost or something, it will take a SS.
WhichSmartWorld = 11;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='SRL 13'; // Name
Players[0].Pass :='Honden'; // Pass
Players[0].Nick :='Srl'; // Nickname 3 - 4 Letter's of character's name. NO CAPS!
Players[0].Active :=True; // Dont change this unless you don't want the player to mine. True IS DEFAULT.
End;
Procedure LDTM(TheDTM:String);
Begin
Case LowerCase(TheDTM) Of
'axe': DTM := DTMFromString('78DA631464606060634001EEE68A0CFF81342' +
'310FF07024690BC0C031A60442281343B90E027A0460248701050' +
'C3032498F0AB010081C10626');
'box': DTM := DTMFromString('78DA63B466606010624001F18EDC0C72409A1' +
'188FF0301A3369021CE8006189148206D05246409A8710712FC04' +
'D498030956FC6A0067DC064C');
'net': DTM := DTMFromString('78DA634C666060106040013E0E060C72409A1' +
'188FF030163369021CB8006189148201D0C248408A82904123C04' +
'D4C400092EFC6A00CA5C0728');
'b fish': DTM := DTMFromString('78DA63EC646060E06740011141410C72409A1' +
'188FF030163039021C68006189148203D990835338104170135DD' +
'404206BF1A00436F0846');
'c fish': DTM := DTMFromString('78DA63E46060603066400157274A314802694' +
'620FE0F048C4C408615031A60442281B400907020A04606D32E0C' +
'352C40421BBF1A00D02906E9');
'r fish': DTM := DTMFromString('78DA636465606030664001BB164E619004D28' +
'C40FC1F081899800C2B0634C0884402690120E140408D0CA65D18' +
'6A588084367E3500127B0755');
'flour': DTM := DTMFromString('78DA634C606060D0654001DFBF7D639004D28' +
'C40FC1F081893800C670634C0884402E95020614E404D1E90B026' +
'A0261C48E813501305241CF0AB0100D8850A91');
'bucket': DTM := DTMFromString('78DA63EC6660603060400155D5B3182481342' +
'310FF0702C65E20C391010D302291407A2A90B020A0A6850835ED' +
'40C201BF1A00EAA6098C');
'bread': DTM := DTMFromString('78DA63E461606088604001B3EB84192481342' +
'310FF07024656202399010D302291405A0248F81250C30F241208' +
'A8610112E104D470038940FC6A00F80907AA');
'dough': DTM := DTMFromString('78DA6334676060886040011B37F6324802694' +
'620FE0F048C66404612031A60442281B42B904820A0C60A48F810' +
'50A30324828850134B408D339008C4AF060075FB0A06');
'pickaxe': DTM := DTMFromString('78DA63EC66606088664001AB578A32C801694' +
'620FE0F048CCD40462A031A60442281F404201143404D1B900827' +
'A0661A90F0C5AF06001AE80A0C');
'dagger': DTM := DTMFromString('78DA638C656060F0654001261A120CFF81342' +
'310FF0702C61020C38F010D30229140BA0048841050930A243C09' +
'A8890412A904D4C4018928FC6A00F32F09B5');
'hammer': DTM := DTMFromString('78DA6314626060286440017969690C72409A1' +
'188FF0301230B90D1CE800618914820CD0B241A08A89102122504' +
'D4F003895CFC6A0035D70808');
'bar': DTM := DTMFromString('78DA63B460606028634001DE564A0C72409A1' +
'188FF0301A33690D1C88006189148206D0524DA09A87103129504' +
'D4B800895AFC6A003781086B');
'shield': DTM := DTMFromString('78DA634C626060A8644001E10EF20C72409A1' +
'188FF0301632A90D1CE8006189148209D07246A09A8C90412F904' +
'D444038922026AC280443D7E350005A40A0E');
'copper': DTM := DTMFromString('78DA63EC676060A8654001B76BCD19E480342' +
'310FF070246907C33031A60442281742790E824A0661690A824A0' +
'A6114894E257030079230ADF');
'tin': DTM := DTMFromString('78DA63EC676060A86540015D8D0D0C72409A1' +
'188FF03012348BE99010D30229140BA1348741250330B48541250' +
'D308244AF1AB0100760D0ADB');
'sword': DTM := DTMFromString('78DA633461606058CE8002D6AD11659003D28' +
'C40FC1F08180D40820C6880118904D28E40620201351640621101' +
'350E40622A7E3500FDD709D1');
'log': DTM := DTMFromString('78DA639CC6C4C0F08C0105E4879930C801694' +
'620FE0F048C13816A3E32A00146241248B703D5BC20A0660950CD' +
'2B026A6601D5DCC2AF060008B70C9B');
End;
End;
{*******************************************************************************
Procedure Debug(theString: String);
By: The[Cheese]
Description: Writes out lines If fulldebug.
*******************************************************************************}
Procedure Debug(TheString: String);
Begin
If (FullDebug) Then Writeln(TheString);
End;
Function TFix(Border, Exp: String; Spaces: Integer): String;//By Timer
Var
ASD, ZXC, I: Integer;
Begin
Result := Border + ' ';
ASD := Length(Exp);
ZXC := Spaces;
ZXC := ZXC - ASD;
Result := Result + Exp;
For I := 4 To ZXC Do
Result := Result + ' ';
Result := Result + Border;
End;
//N3ss3s FTW!
Function GetPaintBitmap(Color, sX, sY: Integer; Text: TStringArray; Dist: Integer): Integer;
Var
TPA: TPointArray;
H, Q, B: Integer;
Begin
Result := BitmapFromString(sX, sY, '');
For B := 0 To High(Text) Do
Begin
TPA := LoadTextTPA(Text[b], UpChars, H);
For Q := 0 To High(TPA) Do
FastSetPixel(Result, TPA[q].x, TPA[q].y + B * Dist, 255);
End;
End;
Function Proggy: TStringArray;
Var
Prog: TStringArray;
F, TotalLoads:Integer;
Begin
SetArrayLength(Prog, 9 + HowManyPlayers - 1 + 2);
Prog[0] := (TFix('#','##########################################################', 120));
Prog[1] := (TFix('#','Tutorial Island Runner V.0.0.1 By Hermpie & The[Cheese].', 61));
Prog[2] := (TFix('#','Thanks For Using My Script Please Post Proggy'+#39+'s And Bugs.', 120));
Prog[3] := (TFix('#','##########################################################', 120));
Prog[4] := (TFix('#','Script Time = '+ TimeRunning, 120));
Prog[5] := (TFix('#','Total Loads Done = '+ IntToStr(TotalLoads), 120));
Prog[6] := (TFix('#','Clay Softent = '+ IntToStr(TotalLoads*14), 120));
Prog[7] := (TFix('#','##########################################################', 120));
Prog[8] := (TFix('#','User ## Loads ## Soft Clays Made ', 120));
For F:=0 To HowManyPlayers - 1 Do
Begin
Prog[9+F] :=(Tfix('#',+Players[F].Nick+' ## '+IntToStr(Players[F].Integers[3])+' ## '+IntToStr(Players[F].Integers[3]*14), 120));
End;
Prog[9+HowManyPlayers -1+1]:=(TFix('#','##########################################################', 120));
Result:=Prog;
End;
Procedure GlobalProgressReport;
Var
F:Integer;
Begin
DisplayDebugImgWindow(460,250 + 25*HowManyPlayers-1);
CopyCanvas(GetBitmapCanvas(GetPaintBitmap(255, 1000,1000, Proggy, 25)), GetDebugCanvas, 0, 0, 1000, 1000, 0, 0, 1000, 1000);
Writeln(TFix('#','#########################################################', 61));
Writeln(TFix('#','Tutorial Island Runner V.0.0.1 By Hermpie & The[Cheese].', 61));
Writeln(TFix('#','Thanks For Using My Script Please Post Proggy'+#39+'s And Bugs.', 61));
Writeln(TFix('#','#########################################################', 61));
Writeln(TFix('#','Script Time = '+ TimeRunning, 61));
Writeln(TFix('#','Players Done = '+ IntToStr(PlayersDone), 61));
Writeln(TFix('#','#########################################################', 61));
Writeln(TFix('#','User ## Succesfully Ran Tut-Island ', 61));
For F:=0 To HowManyPlayers - 1 Do
Begin
Writeln(TFix('#',+Players[F].Nick+' ## '+IntToStr(Players[F].Integers[3]), 61));
End;
Writeln(TFix('#','#########################################################', 61));
End;
Function HUptext(Text:TStringArray):boolean;
Var
MaxTime:Integer;
Begin
MarkTime(MaxTime);
Repeat
Wait(1);
Result:= IsUpTextMultiCustom(Text);
Until (result Or (TimeFromMark(MaxTime)>100));
Result:=TimefromMark(MaxTime)<100
End;
Function HOption(Text:string):boolean;
Var
MaxTime:Integer;
Begin
MarkTime(MaxTime);
repeat
Wait(1);
Result:= ChooseOption(Text);
Until result Or (TimeFromMark(MaxTime) > 100);
Result:= TimefromMark(MaxTime) < 100 ;
End;
//Very Very Big Updated Thanks, Naum.
Function OtherC2C:Boolean;
Var
OtherC2CBM:Integer;
Begin
OtherC2CBM := BitmapFromString(105, 1, 'beNo7OIeBoQGIbh5dDEG3' +
'TywBklcOL0IWx8WGI4ggXAqoHYiAjBtH5yErAHLhCFkxmka4drg43' +
'By4YogIhI2sGKIeUw2QfeXgHBCCmQDhwnUhi8Odh6wGnQ0ArceeOA' +
'==');
Result:= FindBitmapToleranceIn(OtherC2CBM,X,Y,200,425,315,440,10);
If Result Then Mouse(X,Y,10,2,True);
FreeBitmap(OtherC2CBm);
End;
Function C2C(TheTime:Integer):Boolean;
Var
MaxTime:Integer;
TTMaxT,Click2C:Integer;
Begin
Click2C := BitmapFromString(26, 7, 'beNqtkTEKADAIA+//n047FR' +
'ETHCpOF1FiENz+WCo98kYw/EmV4yHmqFMV1zK9pU1qJ+Vt2ZRLR2t' +
'3TVIMYsrrAJubOcc=');
MarkTime(TTMaxT);
Repeat
OtherC2C;
If FindBitmap(Click2C, X, Y) Then Mouse(X, Y, 15, 1, True);
MMouse(254, 457, 75, 75);
MarkTime(MaxTime)
Repeat
Wait(100);
Result:= FindBitmap(Click2C, X, Y);
Until Result or (TimeFromMark(MaxTime) > 1500);
Result:= (TimeFromMark(MaxTime) < 1500);
Until Not Result or (TimeFromMark(TTMaxT) > TheTime);
FreeBitmap(Click2C);
End;
Function HIsBankOpen(MaxTime:Integer; CheckForPinScreen:Boolean):Boolean;
Var
Timer :Integer;
Begin
MarkTime(Timer);
Repeat
Wait(100);
If CheckForPinScreen Then Result:=PinScreen;
If Result Then Break;
Until (BankScreen or (TimeFromMark(Timer) > MaxTime));
Result:= TimeFromMark(Timer) < Maxtime;
If Not Result Then Writeln('Failed To Find The BankScreen.');
End;
Function InTalk(Text:String):Boolean;
Begin
OtherC2C;
Result:=FindText(X,Y,Text,NpcChars,MCX1,MCY1,MCX2,MCY2);
End;
Function FindMsTpa (var TempX, TempY:Integer; HColor,W,H:Integer; UpText:String; UseYellowArrow:Boolean):Boolean;
Var
TempTpa,YellowTpa,TotalTotal: TpointArray;
Total: T2DPointArray;
L, CTS, I, MaxTime:Integer;
Begin
If Not LoggedIn Then Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
If UseYellowArrow Then
Begin
MarkTime(MaxTime);
Repeat
Wait(10);
FindColorsSpiralTolerance(TempX, TempY, YellowTpa, 3720651,MSX1, MSY1, MSX2, MSY2, 10);
Until (GetArrayLength(YellowTpa)> 30) or (TimeFromMark(Maxtime) > 1250);
End;
FindColorsSpiralTolerance(TempX, TempY, TempTPA, HColor,MSX1, MSY1, MSX2, MSY2, 10);
If GetArrayLength(TempTPA) > 30 Then
Begin
TotalTotal:= CombineTPA(TempTPA,YellowTpa);
Total:= TPAtoATPAEx(TotalTotal, W, H);//Change the Bigness.
SortATPASize(Total, True);
L:=High(Total);
For I := 0 To L Do
Begin
MiddleTPAEx(Total[i], TempX, TempY);
MMouse(TempX, TempY, 0, 0);
Result:=HUpText([UpText]);
If Result Then Break;
End;
End else
Begin
If (GetArrayLength(YellowTpa)> 30) Then
Begin
Total:= TPAtoATPAEx(YellowTpa, W, H);//Change the Bigness.
SortATPASize(Total, True);
L:=High(Total);
For I := 0 To L Do
Begin
MiddleTPAEx(Total[i], TempX, TempY);
MMouse(TempX, TempY + 30, 0, 0);
Result:=HUpText([UpText]);
If Result Then Break;
End;
End;
End;
ColorToleranceSpeed(CTS);
End;
Function FindMMYellowArrowTpa(var TempX, TempY:Integer):Boolean;
Var
TempTpa,YellowTpa: TpointArray;
Total: T2DPointArray;
L, CTS, I, MaxTime:Integer;
Begin
If Not LoggedIn Then Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
MarkTime(MaxTime);
Repeat
Wait(10);
FindColorsSpiralTolerance(TempX, TempY, YellowTpa, 3471867,MMX1, MMY1, MMX2, MMY2, 10);
Until (GetArrayLength(YellowTpa)> 25) or (TimeFromMark(Maxtime) > 1250);
Total:= TPAtoATPAEx(YellowTPA, 5, 5);
SortATPASize(Total, True);
If (GetArrayLength(YellowTpa)> 25) Then MiddleTPAEx(Total[0], TempX, TempY);
Result:=(GetArrayLength(YellowTpa)> 25);
ColorToleranceSpeed(CTS);
End;
Function FindItem(Item:String; Var KX, KY:Integer; Inventory:boolean):boolean;
begin
LDTM(ITEM)
GameTab(4);
If Inventory Then Result:=FindDTM(DTM, KX, KY, MIX1, MIY1, MIX2, MIY2);
If Not Inventory Then
Begin
Result:=BankScreen;
If Not Result Then FreeDTM(DTM);
If Not Result Then Exit;
Result:=FindDTM(DTM, KX, KY, MSX1, MSY1, MSX2, MSY2);
End;
FreeDTM(DTM)
End;
Function TalkToGuide(Color:Integer; InTalkText:String; YellowArrow:Boolean):Boolean;
Var
MaxTimeTotal,MaxTime:Integer;
Begin
MarkTime(MaxTimeTotal);
OtherC2C;
Repeat
If FindMsTpa(X, Y, Color, 25, 25, InTalkText, YellowArrow) Then
Begin
GetMousePos(X, Y);
Case Random(4) Of
0:Mouse(X,Y,0,0,True);
1:Mouse(X,Y,0,0,True);
2:Mouse(X,Y,0,0,True);
3:Mouse(X,Y,0,0,False);
End;
Wait(10 + Random(30));
ChooseOption('alk');
End;
MarkTime(MaxTime);
Repeat
If OtherC2C Then Break;
Wait(100 + Random(50));
Until (TimeFromMark(MaxTime) > 5000) Or InTalk(InTalkText);
Until(TimeFromMark(MaxTimeTotal) > 20000) Or InTalk(InTalkText);
If (TimeFromMark(MaxTimeTotal) > 20000) Then LogOut;
OtherC2C;
Result:=InTalk(InTalkText);
End;
{*******************************************************************************
Function ClickArrowObject(Name: TStringArray; Option: String): Boolean;
By: The[Cheese]
Description: Finds and clicks any arrow object.
*******************************************************************************}
Function ClickArrowObject(Name: TStringArray; Option: String): Boolean;
Var
Arrow1, Searches: Integer;
Begin
Arrow1 := BitmapFromString(21, 2, 'beNpjYEAGS7tDimN0gWjFZKXT' +
'u8zQEETK216FAQeY1+wPUbOsW/H0FjM0hEU7ALFDI4A=');
Debug('Looking for arrow...');
MarkTime(MaxTime);
Repeat
Wait(100);
Until((FindBitMapToleranceIn(Arrow1, x, y, MSX1, MSY1, MSX2, MSY2, 15)) or (TimeFromMark(Maxtime)>2500));
Result:=(TimeFromMark(Maxtime)<2500);
FreeBitMap(Arrow1);
If Result Then
Begin
MMouse(x+10, y+30, 0, 0);
If(IsUpTextMultiCustom(Name))Then Mouse(x+10, y+20, 0, 0, False);
Result:=(ChooseOption(Option));
End;
End;
Function PleaseWait:Boolean;
Var
Please_Wait:Integer;
Begin
Please_Wait := BitmapFromString(71, 4, 'beNp9kUEKwlAMRHv/Q7' +
'ipi+o9Woq4LnzrwptoYPQxJN/CEH6m6SSTzOPzdnEMwzvivp7jETG' +
'g1Blq2jyKEVJ6ADQrJKJhlAo+JCJdneRIptLkNAqGB+2OJ+xiK8xj' +
'PQVcs8r+M5X4iG2ZXvdrMiU7uMMj7TBFfS1Gp5JdBlMo40ut1YurQ' +
'foM8d5+5+haplKgXcCvycYS6V/rlZ2RoEylE/gaXUe/qOC74WVCuX' +
'0ATvZGyg==');
Result:=FindBitmapToleranceIn(Please_Wait,X,Y,MCX1,MCY1,MCX2,MCY2,30);
FreeBitMap(Please_Wait);
Writeln('Please Wait Result ='+ BoolToStr(Result) );
End;
Function RPPleaseWait:Boolean;
Begin
MarkTime(MaxTime);
Repeat
Wait(100 + Random(50));
Until Not PleaseWait Or (TimeFromMark(MaxTime) > 15000);
Result:=(TimeFromMark(MaxTime) < 15000);
End;
Function LightFire:Boolean;
Begin
If FindItem('log',X,Y,True) And FindItem('box',X,Y,True) Then
Begin
If FindItem('box',X,Y,True) Then Mouse(X,Y,3,3,True);
Wait(Random(100));
If FindItem('log',X,Y,True) Then
Begin
Mouse(X,Y,3,3,True);
Result:=True;
Writeln('Light fire.');
End else
Writeln('Failed Light fire.');
End;
End;
Function CantLightFire:Boolean;
Var
NoLight:Integer;
Begin
NoLight := BitmapFromString(120, 2, 'beNqFUcsKgDAM8/8/YgfdR' +
'X9DBkM9evB12KdYqISSjik5hGZNJek6fM8yghBofucoEFK2CapOwA' +
'XYshxv6CLe6K6Hdz7TINAJiEpXDo1Fe8WrkNRfYLdwep97+xt+Dok' +
'cKA2E2cjZqjbnssZqtg1OvRCoIN+I5uzVavXWtlqf9URKvuJffqTw' +
'TV6gL0QG');
Result:= FindBitmapToleranceIn(NoLight,X,Y,MCX1,MCY1,MCX2,MCY2,30);
FreeBitMap(NoLight);
Writeln('CantLigh Result ='+ BoolToStr(Result) );
End;
Procedure HandleClothes;
Var
ButtonTPA: TPointArray;
i, randnum, clicked,ranx,rany: Integer;
Begin
Debug('Checking for Welcome to RuneScape color...');
If Not(FindColorTolerance(x, y, 2070783, 168, 15, 287, 37, 10))Then Exit;
Debug('Solving clothes selecting.');
{SetArrayLength(ButtonTPA, 12)
ButtonTPA[0].x := 166; ButtonTPA[0].y := 91;
ButtonTPA[1].x := 166; ButtonTPA[1].y := 128;
ButtonTPA[2].x := 166; ButtonTPA[2].y := 160;
ButtonTPA[3].x := 166; ButtonTPA[3].y := 196;
ButtonTPA[4].x := 166; ButtonTPA[4].y := 232;
ButtonTPA[5].x := 166; ButtonTPA[5].y := 266;
ButtonTPA[6].x := 166; ButtonTPA[6].y := 303;
ButtonTPA[7].x := 464; ButtonTPA[7].y := 99;
ButtonTPA[8].x := 464; ButtonTPA[8].y := 134;
ButtonTPA[9].x := 464; ButtonTPA[9].y := 168;
ButtonTPA[10].x := 464; ButtonTPA[10].y := 203;
ButtonTPA[11].x := 464; ButtonTPA[11].y := 238;
for i := 0 to 11 do
Begin
RandNum := Random(5) + 1;
Clicked := 0;
RanX:=Random(5)+3;
RanY:=Random(5)+3;
Repeat;
Mouse(ButtonTPA[i].x, ButtonTPA[i].y, ranx, rany, True);
Wait(100 + Random(300));
Inc(Clicked);
Until(Clicked = RandNum);
End;}
MouseBox(228, 270, 289, 297, 1);
Wait(500);
Debug('Selected clothes successfully!');
End;
Function RuneScapeGuide:Boolean;
Begin
Wait(1000 + Random(1000));
Result:= TalkToGuide(528779,'uide',True);
If Not Result Then Logout;
If Not LoggedIn Then Exit;
If Result Then C2C(30000);
MouseBox(668, 472,683, 492, 1);
Result:= TalkToGuide(528779,'uide',True);
If Not Result Then Logout;
If Not LoggedIn Then Exit;
If Result Then C2C(30000);
GameTab(11);
SetRun(True);
Wait(500+Random(500));
SetBar('Brightness', 4);
Wait(500 + Random(500));
End;
Function ToSurvivalExpert:Boolean;
Begin
If FindMsTpa(X,y,1922929,25,25,'oor',true) Then Mouse(X,Y,0,0,true) else
Begin
Wait(1000+random(1000));
If FindMsTpa(X,y,1922929,25,25,'oor',true) Then Mouse(X,Y,0,0,true) else logout;
End;
If Not LoggedIn Then exit;
Flag;
Wait(500 + Random(500));
If FindMMYellowArrowTpa(X,Y) Then MouseFlag(X,Y,3,3);
End;
Function SurvivalExpert:Boolean;
Var
TotalMaxTime:Integer;
Begin
ToSurvivalExpert;
Result:= TalkToGuide(3750755,'xpert',False);
If Not InTalk('xpert') Then TalkToGuide(3750755,'xpert',False);
C2C(300000);
C2C(300000);
//woodcutting
MarkTime(MaxTime);
Repeat
GameTab(4);
Until GameTab(4) Or (TimeFromMark(MaxTime) > 2500);
MarkTime(TotalMaxTime);
Repeat
GameTab(4);
If FindMsTpa(X,Y,1588283,25,25,'ree',True)Then Mouse(X,Y,3,3,true);
MarkTime(MaxTime);
Repeat
Wait(100 + Random(50));
Until (FindItem('log',X,Y,True)) Or (TimeFromMark(MaxTime) > 15000);
GameTab(4)
Until FindItem('log',X,Y,True) Or (TimeFromMark(TotalMaxTime) > 45000);
If (TimeFromMark(TotalMaxTime) > 30000) Then Logout;
If Not LoggedIn Then Exit;
//firemaking
If Not LightFire Then Logout;
If Not LoggedIn Then Exit;
MarkTime(MaxTime);
Repeat
Wait(100);
Until PleaseWait or CantLightFire or (TimeFromMark(MaxTime) > 5000);
If (TimeFromMark(MaxTime) > 5000) Then
Begin
Writeln('Took to long');
If Not LightFire Then Logout;
Writeln('Logged out 1');
If Not LoggedIn Then Exit;
MarkTime(MaxTime);
Repeat
Wait(100 + Random(50));
Until PleaseWait or CantLightFire or (TimeFromMark(MaxTime) > 5000);
If (TimeFromMark(MaxTime) > 5000) Then Logout;
Writeln('Logged out 2');
If (TimeFromMark(MaxTime) > 5000) Then Exit;
End;
If CantLightFire Then
Begin
MarkTime(TotalMaxTime);
Repeat
OtherC2C;
MouseFlag(627, 85, 5, 5);
If Not LightFire Then Logout;
Writeln('Logged out 3');
If Not LoggedIn Then Exit;
MarkTime(MaxTime);
Repeat
Wait(100 + Random(50));
Until PleaseWait or CantLightFire or (TimeFromMark(MaxTime) > 3000);
OtherC2C;
If (TimeFromMark(MaxTime) > 3000) Then Logout;
Writeln('Logged out 4');
If (TimeFromMark(MaxTime) > 3000) Then Exit;
OtherC2C;
If Not CantLightFire Then Break;
If PleaseWait Then Break;
Until (TimeFromMark(TotalMaxTime) > 60000);
If (TimeFromMark(TotalMaxTime) > 60000) Then Logout;
Writeln('Logged out 5');
If Not LoggedIn Then Exit;
End;
If PleaseWait Then RPPleaseWait;
If Not LoggedIn Then Exit;
Wait(10000);
//Fishing
End;
Procedure SetUpScript;
Begin
SmartSetupEx(WhichSmartWorld, false, True);
Wait(1000);
SetTargetDC(SmartGetDC);
While not(SmartReady) do Wait(100);
SetupSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
End;
Procedure SetUpPlayer;
Begin
MakeCompass('N');
SetAngle(True);
End;
Begin
SetUpScript;
OtherC2C;
Repeat
SetUpPlayer;
Repeat
HandleClothes;
RuneScapeGuide;
SurvivalExpert;
TerminateScript;
Until False
Until False
End.