tehq
2012-04-10 20:06:50
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Visual Basic, Matlab, and Python. Fairly knowledgeable in Pascal now.
Are you a member of any other communities?
None
Tell us about yourself…
Please show us one (or multiple) of your scripts.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Visual Basic, Matlab, and Python. Fairly knowledgeable in Pascal now.
Are you a member of any other communities?
None
Tell us about yourself…
From: tehq
Hello, my name is Eric and I am 21 years old.. My birthday is in 4 days! I am a fourth year university student. This is my second time applying for SRL members. The last time I applied was on Feb 19, 2012. I believe I've improved my scripting abilities a lot since I last applied. I've been dedicating most of my free time to improving my public scripts (links in signature). I've included two private versions of my public scripts for this application. I apologize for the length.
Please show us one (or multiple) of your scripts.
program TehSuperheat; { v 2.1 - Members only }
{$DEFINE SMART} { }
{$DEFINE SRL5} { }
{$i SRL/srl.simba} { }
var
SuperHeatDTM, Sx, Sy, X, Y, Count, Magic_XP, Smithing_XP, Silver, Coal, Iron, Gold, Addy,
Rune, Mith, Mxph, Sxph, T, J, Antibans, Waits, NumbCoal, NumbIron, NumbGold, NumbMith,
NumbAddy, NumbRune, NumbSilver : integer;
{ Form vars }
LoadCount, BarType, CoalBag, GoldGaunts, BankLoc, Server1, SHI : integer;
frmDesign : TForm;
BeginButton : TButton;
TitleLabel, UserLabel, PassLabel, PinLabel, InventoryLabel, ServerLabel, StatsUserLabel,
StatsPassLabel, CoalBagLabel, BarLabel, GGLabel, BankLabel : TLabel;
User, Pass, BankPin, Server, Inventory, StatsUser, StatsPass: TEdit;
User1, Pass1, BankPin1, StatsUser1, StatsPass1 : String;
ListBars, CBList, GGList, BLList : TListBox;
ImageSH : TImage;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Players[0].Name := User1;
Players[0].Pass := Pass1;
Players[0].BoxRewards := ['amp'];
Players[0].LampSkill := SKILL_SMITHING;
Players[0].Pin := BankPin1;
Players[0].Active := True;
end;
end;
Procedure Run;
begin
Smart_Members := False;
Smart_Server := Server1;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
SetupSRLStats(753, StatsUser1, StatsPass1);
DeclarePlayers;
LoginPlayer;
Count := 0;
Wait(500+Random(200));
if FindNormalRandoms or FindNonInventoryRandoms then
Exit;
Antibans := 0;
Waits := 0;
end;
Procedure ButtonClick(Sender: TObject);
begin
frmDesign.ModalResult := mrOk;
User1 := User.TEXT;
Pass1 := Pass.TEXT;
BankPin1 := BankPin.TEXT;
StatsUser1 := StatsUser.TEXT;
StatsPass1 := StatsPass.TEXT;
Server1 := StrToInt(Server.TEXT);
LoadCount := StrToInt(Inventory.TEXT);
BarType := ListBars.ITEMINDEX;
CoalBag := CBList.ITEMINDEX;
GoldGaunts := GGList.ITEMINDEX;
BankLoc := BLList.ITEMINDEX;
ClearDebug;
WriteLn('Your bank location is: '+IntToStr(BankLoc));
WriteLn('You chose: '+IntToStr(GoldGaunts) +' for gold gaunlets');
WriteLn('You chose: '+IntToStr(CoalBag) +' for coal bag');
WriteLn('You chose: '+IntToStr(BarType)+' bars');
WriteLn('Will run for: '+IntToStr(LoadCount)+' inventories on server: '+IntToStr(Server1));
Wait(RandomRange(2000,2100));
ClearDebug;
WriteLn('Thanks for using Teh''s Superheater, please leave feedback');
FreeBitmap(SHI);
end;
Procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 480;
frmDesign.Top := 250;
frmDesign.Width := 500;
frmDesign.Height := 400;
frmDesign.Caption := 'Tehq''s Superheater';
frmDesign.Font.Color := ClRed;
frmDesign.Font.Name := 'Calibri';
frmDesign.Color := ClBlack;
BeginButton := TButton.Create(FrmDesign);
BeginButton.Parent := FrmDesign;
BeginButton.Left := 380;
BeginButton.Top := 250;
BeginButton.Height := 30;
BeginButton.Width := 100;
BeginButton.Caption := 'Begin Script';
BeginButton.OnClick := @ButtonClick;
TitleLabel := TLabel.Create(FrmDesign);
TitleLabel.Parent := FrmDesign;
TitleLabel.Left := 10;
TitleLabel.Top := 8;
TitleLabel.Caption := 'Tehq''s Superheater';
TitleLabel.Font.Size := 18;
TitleLabel.Font.Color := ClRed;
TitleLabel.Font.Name := 'Calibri';
User := TEdit.Create(FrmDesign);
User.Parent := FrmDesign;
User.Top := 60;
User.Left := 75;
User.Width := 125;
User.Height := 20;
User.Text := 'Username';
UserLabel := TLabel.Create(FrmDesign);
UserLabel.Parent := FrmDesign;
UserLabel.Top := 60;
UserLabel.Left := 5;
UserLabel.Caption := 'Username';
UserLabel.FONT.Color := ClWhite;
StatsUser := TEdit.Create(FrmDesign);
StatsUser.Parent := FrmDesign;
StatsUser.Top := 250;
StatsUser.Left := 110;
StatsUser.Width := 160;
StatsUser.Height := 20;
StatsUser.Text := '';
StatsUserLabel := TLabel.Create(FrmDesign);
StatsUserLabel.Parent := FrmDesign;
StatsUserLabel.Top := 250;
StatsUserLabel.Left := 5;
StatsUserLabel.Caption := 'SRL Stats User';
StatsUserLabel.FONT.Color := ClWhite;
StatsPass := TEdit.Create(FrmDesign);
StatsPass.Parent := FrmDesign;
StatsPass.Top := 285;
StatsPass.Left := 110;
StatsPass.Width := 160;
StatsPass.Height := 20;
StatsPass.Text := '';
StatsPassLabel := TLabel.Create(FrmDesign);
StatsPassLabel.Parent := FrmDesign;
StatsPassLabel.Top := 285;
StatsPassLabel.Left := 5;
StatsPassLabel.Caption := 'SRL Stats Pass';
StatsPassLabel.FONT.Color := ClWhite;
Pass := TEdit.Create(FrmDesign);
Pass.Parent := FrmDesign;
Pass.Top := 90;
Pass.Left := 75;
Pass.Width := 125;
Pass.Height := 20;
Pass.Text := 'Password';
PassLabel := TLabel.Create(FrmDesign);
PassLabel.Parent := FrmDesign;
PassLabel.Top := 90;
PassLabel.Left := 5;
PassLabel.Caption := 'Password';
PassLabel.FONT.Color := ClWhite;
BankPin := TEdit.Create(FrmDesign);
BankPin.Parent := FrmDesign;
BankPin.Top := 150;
BankPin.Left := 75;
BankPin.Width := 125;
BankPin.Height := 20;
BankPin.Text := '';
BankPin.MaxLength := 4;
PinLabel := TLabel.Create(FrmDesign);
PinLabel.Parent := FrmDesign;
PinLabel.Top := 150;
PinLabel.Left := 5;
PinLabel.Caption := 'Bank Pin';
PinLabel.FONT.Color := ClWhite;
Server := TEdit.Create(FrmDesign);
Server.Parent := FrmDesign;
Server.Top := 180;
Server.Left := 75;
Server.Width := 125;
Server.Height := 20;
Server.Text := '0';
ServerLabel := TLabel.Create(FrmDesign);
ServerLabel.Parent := FrmDesign;
ServerLabel.Top :=180;
ServerLabel.Left := 5;
ServerLabel.Caption := 'Server';
ServerLabel.FONT.Color := ClWhite;
Inventory := TEdit.Create(FrmDesign);
Inventory.Parent := FrmDesign;
Inventory.Top := 210;
Inventory.Left := 75;
Inventory.Width := 125;
Inventory.Height := 20;
Inventory.TEXT := '500';
InventoryLabel := TLabel.Create(FrmDesign);
InventoryLabel.Parent := FrmDesign;
InventoryLabel.Top := 210;
InventoryLabel.Left := 5;
InventoryLabel.Caption := '# Invs';
InventoryLabel.FONT.Color := ClWhite;
ListBars := TListBox.Create(FrmDesign);
ListBars.Parent := FrmDesign;
ListBars.Top := 60;
ListBars.Left := 220;
ListBars.Width := 120;
ListBars.Height := 140;
ListBars.Items.Add('Gold');
ListBars.Items.Add('Iron');
ListBars.Items.Add('Steel');
ListBars.Items.Add('Mith');
ListBars.Items.Add('Addy');
ListBars.Items.Add('Rune');
ListBars.Items.Add('Silver');
BarLabel := TLabel.Create(FrmDesign);
BarLabel.Parent := FrmDesign;
BarLabel.Top := 35;
BarLabel.Left := 217;
BarLabel.Caption := 'What type of bars?';
BarLabel.FONT.Color := ClWhite;
CBList := TListBox.Create(FrmDesign);
CBList.Parent := FrmDesign;
CBList.Top := 328;
CBList.Left := 110;
CBList.Width := 50;
CBList.Height := 44;
CBList.Items.Add('Yes');
CBList.Items.Add('No');
CoalBagLabel := TLabel.Create(FrmDesign);
CoalBagLabel.Parent := FrmDesign;
CoalBagLabel.Top := 340;
CoalBagLabel.Left := 5;
CoalBagLabel.Caption := 'Use coal bag?';
CoalBagLabel.FONT.Color := ClWhite;
BLList := TListBox.Create(FrmDesign);
BLList.Parent := FrmDesign;
BLList.Top := 320;
BLList.Left := 370;
BLList.Width := 115;
BLList.Height := 60;
BLList.Items.Add('Soul Wars');
BLList.Items.Add('Castle Wars');
BLList.Items.Add('Varrock East');
BLList.Items.Add('Varrock West');
BLList.Items.Add('Falador East');
BLList.Items.Add('Falador West');
BLList.Items.Add('Yanille');
BLList.Items.Add('Camelot');
BLList.Items.Add('Catherby');
BankLabel := TLabel.Create(FrmDesign);
BankLabel.Parent := FrmDesign;
BankLabel.Top := 295;
BankLabel.Left := 370;
BankLabel.Caption := 'Where to bank?';
BankLabel.FONT.Color := ClWhite;
GGList := TListBox.Create(FrmDesign);
GGList.Parent := FrmDesign;
GGList.Top := 328;
GGList.Left := 307;
GGList.Width := 50;
GGList.Height := 44;
GGList.Items.Add('Yes');
GGList.Items.Add('No');
GGLabel := TLabel.Create(FrmDesign);
GGLabel.Parent := FrmDesign;
GGLabel.Top := 340;
GGLabel.Left := 170;
GGLabel.Caption := 'Use gold gauntlets?';
GGLabel.FONT.Color := ClWhite;
ImageSH := TImage.Create(FrmDesign);
ImageSH.Parent := FrmDesign;
ImageSH.Left := 370;
ImageSH.Top := 50;
ImageSH.Width := 120;
ImageSH.Height := 186;
SHI := BitmapFromString(120, 186, 'meJztna+X4zrShi8MDAw1NAw0' +
'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' + {superheating bmp}
'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' +
'XP8Fot5h/A==');
DrawBitmap(SHI, ImageSH.canvas, 0, 0);
end;
procedure SafeInitForm;
var
v: TVariantArray;
begin
SetArrayLength(v, 0);
ThreadSafeCall('InitForm', v);
end;
procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;
procedure SafeShowFormModal;
var
v: TVariantArray;
begin
SetArrayLength(v, 0);
ThreadSafeCall('ShowFormModal', v);
end;
Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
Procedure OnSmart;
begin
Mxph := round((Magic_xp) / (GetTimeRunning / 3600000.0));
Sxph := round((Smithing_xp)/ (GetTimeRunning / 3600000.0));
PrintOnSmart(['Version: 2.0 by Tehq','',''+'Smithing XP Gained: ' +IntToStr(Smithing_XP),'Magic XP Gained: ' +IntToStr(Magic_XP),'',
''+'Smithing XP/Hour: ' +IntToStr(Sxph), ''+'Magic XP/Hour: ' +IntToStr(Mxph),'',
''+MsToTime(GetTimeRunning, Time_Abbrev),''+'Antibans done: ' +IntToStr(Antibans)
,''+'Mini breaks taken: ' +IntToStr(Waits)],Point(32,10), 16777215);
end;
Procedure JE4;
begin
if (J = 4) then
begin
WriteLn('Withdrawing failed, logging out');
repeat
Logout;
TerminateScript;
until (not LoggedIn);
end;
end;
Procedure JE3;
begin
if (J = 3) then
begin
WriteLn('Opening bank failed, logging out');
repeat
Logout;
TerminateScript;
until (not LoggedIn);
end;
end;
Procedure BankDeposit;
begin
case CoalBag of
1 :
begin
T := 0;
repeat
Inc(T);
Deposit(2, 28, True);
until ((invcount = 1) or (T = 7));
if (T = 7) then
begin
WriteLn('Depositing failed, logging out');
repeat
Logout;
TerminateScript;
until (not LoggedIn);
end;
T := 0;
end;
0 :
begin
J := 0;
repeat
Inc(J);
Deposit(3, 28, True);
until ((invcount = 2) or (J = 7));
if (J = 7) then
begin
WriteLn('Depositing failed, logging out');
repeat
Logout;
TerminateScript;
until (not LoggedIn);
end;
J := 0;
end;
end;
end;
Procedure LoadOreDTMs;
begin
Coal:= DTMFromString('mQwAAAHicY2ZgYBBmZGDgAGIpIJ7BAMFzgVhVVYYh3scUTLMC+TDMiISBAACc8gPH');
Iron:= DTMFromString('mQwAAAHicY2ZgYDADYm0gtgfiGVA8B4gtFCUYwl0NGEzlxRlYgXwYZkTCQAAAtHMEKg==');
Gold:= DTMFromString('mQwAAAHicY2ZgYEgC4gggzgLibCDOA+JCIF7TIcGQ5GfGsKlXkoEVyIdhRiQMBAD7rQYO');
Addy:= DTMFromString('mQwAAAHicY2ZgYHgOxHeA+B0Q50BxIRDbuNkwxHubMFg5WzGwAvkwzIiEgQAALOQGYw==');
Mith:= DTMFromString('mQwAAAHicY2ZgYLBnZGAwAWJ3IM5hgOACIDYzC2KI9zYB06xAPgwzImEgAAC6AQR1');
Silver:= DTMFromString('mQwAAAHicY2ZgYHBgZGAwBWI3IJ7BAMFzgXjixBkMyf7mDJ2d/QysQD4MMyJhIAAAFF4G5Q==');
Rune:= DTMFromString('mQwAAAHicY2ZgYBBhZGDgBGIpIJ4O5M8A4rlA7BoSxZDoa8rg4BvCwArkwzAjEgYCAMC+BNM=');
end;
Procedure FreeOreDTMs;
begin
FreeDTM(Iron);
FreeDTM(Coal);
FreeDTM(Gold);
FreeDTM(Mith);
FreeDTM(Addy);
FreeDTM(Rune);
FreeDTM(Silver);
end;
Procedure ResetOres;
begin
NumbCoal := 0;
NumbIron := 0;
NumbGold := 0;
NumbMith := 0;
NumbAddy := 0;
NumbRune := 0;
NumbSilver := 0;
end;
Procedure MagicTab;
begin
Gametab(tab_magic);
end;
Procedure ResetJ;
begin
J := 0;
end;
Procedure FindHeat;
var
Time: Integer;
begin
MarkTime(Time);
repeat
wait(RandomRange(1,2));
until (FindDTM(SuperHeatDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or ((TimeFromMark(Time) > 1080));
if (not FindDTM(SuperHeatDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or ((TimeFromMark(Time) > 1080)) then
begin
Magictab;
end;
Mouse(sx, sy, 6, 6, mouse_left);
end;
Procedure NotFindHeat;
begin
ResetJ;
if FindBlackChatMessage('uperheat') then
repeat
Inc(J);
Writeln('Can''t superheat that!');
Logout;
TerminateScript;
until ((not LoggedIn) or (J = 4));
if (J = 4) then
begin
WriteLn('Can''t superheat that, logging out');
Logout;
TerminateScript;
end;
ResetJ;
end;
Procedure GetOres;
begin
LoadOreDTMs;
case CoalBag of
0 :
begin
case Bartype of
2 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(iron, 'dtm', 17, 'r', [3]);
wait(RandomRange(950, 1000));
NumbIron := CountItems('dtm', iron, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbIron) +' iron ores');
until ((NumbIron > 14) or (J = 4));
JE4;
ResetJ;
end;
3 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(mith, 'dtm', 10, 'r', [3]);
wait(RandomRange(950, 1000));
NumbMith := CountItems('dtm', mith, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbMith) +' mith ores');
until ((NumbMith > 7) or (J = 4));
JE4;
ResetJ;
end;
{10}
4 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(addy, 'dtm', 7, 'r', [3]);
wait(RandomRange(950, 1000));
NumbAddy := CountItems('dtm', addy, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbAddy) +' addy ores');
until ((NumbAddy > 5) or (J = 4));
JE4;
ResetJ;
end;
{7}
5 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(rune, 'dtm', 5, 'r', [3]);
wait(RandomRange(950, 1000));
NumbRune := CountItems('dtm', rune, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbRune) +' rune ores');
until ((NumbRune > 3) or (J = 4));
JE4;
ResetJ;
end;
{5}
6 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(silver, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbSilver := CountItems('dtm', silver, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbSilver) +' silver ores');
until ((NumbSilver > 20) or (J = 4));
JE4;
ResetJ;
end;
{all} {ores}
0 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(gold, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbGold := CountItems('dtm', gold, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbGold) +' gold ores');
until ((NumbGold > 20) or (J = 4));
JE4;
ResetJ;
end;
{all}
1 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(iron, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbIron := CountItems('dtm', iron, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbIron) +' iron ores');
until ((NumbIron > 20) or (J = 4));
JE4;
ResetJ;
end; {all}
end;
end;
1 :
begin
case Bartype of
2 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(iron, 'dtm', 9, 'r', [3]);
wait(RandomRange(950, 1000));
NumbIron := CountItems('dtm', iron, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbIron) +' iron ores');
until ((NumbIron > 7) or (J = 4));
JE4;
ResetJ;
end;
3 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(mith, 'dtm', 5, 'r', [3]);
wait(RandomRange(950, 1000));
NumbMith := CountItems('dtm', mith, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbMith) +' mith ores');
until ((NumbMith > 3) or (J = 4));
JE4;
ResetJ;
end;
{10}
4 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(addy, 'dtm', 3, 'r', [3]);
wait(RandomRange(950, 1000));
NumbAddy := CountItems('dtm', addy, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbAddy) +' addy ores');
until ((NumbAddy > 2) or (J = 4));
JE4;
ResetJ;
end;
{7}
5 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(rune, 'dtm', 3, 'r', [3]);
Wait(RandomRange(950, 1000));
NumbRune := CountItems('dtm', rune, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbRune) +' rune ores');
until ((NumbRune > 2) or (J = 4));
JE4;
ResetJ;
end;
{5}
6 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(silver, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbSilver := CountItems('dtm', silver, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbSilver) +' silver ores');
until ((NumbSilver > 24) or (J = 4));
JE4;
ResetJ;
end;
{all} {ores}
0 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(gold, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbGold := CountItems('dtm', gold, []);
wait(RandomRange(300, 400));
WriteLn('There are: ' +IntToStr(NumbGold) +' gold ores');
until ((NumbGold > 24) or (J = 4));
JE4;
ResetJ;
end;
{all}
1 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(iron, 'dtm', 0, 'r', [3]);
wait(RandomRange(950, 1000));
NumbIron := CountItems('dtm', iron, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbIron) +' iron ores');
until ((NumbIron > 24) or (J = 4));
JE4;
ResetJ;
end; {all}
end;
end;
end;
Wait(600+Random(200));
if (invfull) then
closebank;
if (not invfull) then
begin
case CoalBag of
0 :
begin
case BarType of
2 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 8, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 14) or (J = 4));
JE4;
ResetJ;
end;
{8}
3 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 14, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 9) or (J = 4));
JE4;
ResetJ;
end;
{14}
4 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 16, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 8) or (J = 4));
JE4;
ResetJ;
end;
{16} {coal}
5 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 14, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 10) or (J = 4));
JE4;
ResetJ;
end; {14}
end;
end;
1 :
begin
case BarType of
2:
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 0, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 13) or (J = 4));
JE4;
ResetJ;
end;
{all}
3 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 20, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 3) or (J = 4));
JE4;
ResetJ;
end;
{20} {coal}
4 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 18, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 5) or (J = 4));
JE4;
ResetJ;
end;
{18}
5 :
begin
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 0, 'a', [3]);
wait(RandomRange(950, 1000));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: ' +IntToStr(NumbCoal) +' coal');
until ((NumbCoal > 18) or (J = 4));
JE4;
ResetJ;
end; {all}
end;
end;
end;
Wait(400+Random(100));
closebank;
end;
FreeOreDTMs;
ResetOres;
end;
Procedure Banking;
begin
if FindNormalRandoms or FindNonInventoryRandoms or (not(LoggedIn)) then
Exit;
ResetJ;
repeat
Inc(J);
SetAngle(SRL_ANGLE_HIGH);
Case Bankloc of
0 : OpenBankChest(SRL_BANK_SW);
1 : OpenBankChest(SRL_BANK_CW);
3 : OpenBankFast('vwb');
2 : OpenBankFast('veb');
4 : OpenBankFast('feb');
5 : OpenBankFast('fwb');
7 : OpenBankFast('clt');
8 : OpenBankFast('ctb');
6 : OpenBankFast('ynb');
end;
Wait(Random(100));
until ((BankScreen) or (PinScreen) or (J = 3));
JE3;
ResetJ;
if (PinScreen) then
begin
ResetJ;
repeat
Inc(J);
InPin(Players[CurrentPlayer].Pin);
Wait(Random(300));
until (BankScreen or (J = 4));
if (J = 4) then
begin
repeat
Logout;
TerminateScript;
until (not LoggedIn);
WriteLn('Couldn''t enter pin, logged out');
end;
end;
end;
Procedure CoalToInv;
begin
Coal:= DTMFromString('mQwAAAHicY2ZgYBBmZGDgAGIpIJ7BAMFzgVhVVYYh3scUTLMC+TDMiISBAACc8gPH');
Case Coalbag of
0 :
begin
Banking;
ResetJ;
repeat
Inc(J);
WithdrawItem(coal, 'dtm', 0, 'a', [3]);
wait(RandomRange(1000, 1100));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
WriteLn('You have: '+IntToStr(NumbCoal) +' coal');
until (((NumbCoal > 20) and (Invfull)) or (J = 4));
if (J = 4) then
begin
repeat
Logout;
TerminateScript;
until (not LoggedIn);
WriteLn('Couldn''t withdraw coal to inv, logging out');
end;
end;
end;
ResetOres;
FreeDTM(Coal);
end;
Procedure CoalInBag;
begin
Coal:= DTMFromString('mQwAAAHicY2ZgYBBmZGDgAGIpIJ7BAMFzgVhVVYYh3scUTLMC+TDMiISBAACc8gPH');
Case Coalbag of
0 :
begin
ResetJ;
repeat
Inc(J);
MouseItem(2, Mouse_Right);
WaitOption('ill', 800);
Wait(RandomRange(800, 900));
NumbCoal := CountItems('dtm', coal, []);
wait(RandomRange(300, 400));
until (((InvCount = 2) and (NumbCoal = 0)) or (FindBlackChatMessage('read')) or (J = 4));
if (J = 4) then
begin
repeat
Logout;
TerminateScript;
until (not LoggedIn);
WriteLn('Couldn''t fill coal bag, logged out');
end;
WriteLn('Filled coal bag.');
end;
end;
ResetJ;
FreeDTM(Coal);
ResetOres;
end;
Procedure Superheat;
var
I : integer;
begin
if FindNormalRandoms or FindNonInventoryRandoms or (not LoggedIn) then
Exit;
SuperHeatDTM := DTMFromString('mbQAAAHicY2VgYJjLxMAwE4inA/EiIF4MxOWMDAxlQFwHxDVAXAnEsoxMDHqMzAx2TMxgGoSxAUYsGAwAHzIGhQ==');
LoadOreDTMs;
case BarType of
2 :
case coalbag of
1 :
begin
MagicTab;
For I := 2 to 10 do
begin
FindHeat;
if ExistsItemDTM(iron, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 17);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 17);
end;
end;
0 :
begin
MagicTab;
For I := 3 to 19 do
begin
Findheat;
if ExistsItemDTM(iron, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 17);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 17);
end;
end;
end;
1 :
begin
MagicTab;
for I := 2 to 28 do
begin
FindHeat;
if ExistsItemDTM(iron, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 12);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 12);
end;
end;
6 :
begin
MagicTab;
for I := 2 to 28 do
begin
FindHeat;
if ExistsItemDTM(silver, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 14);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 14);
end;
end;
0 :
begin
Magictab;
for I := 2 to 28 do
begin
FindHeat;
if ExistsItemDTM(gold, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
stats_IncVariable('Magic EXP (Gained)', 53);
begin
case GoldGaunts of
1 :
begin
IncEx(Smithing_xp, 22);
stats_IncVariable('Smithing EXP (Gained)', 22);
end;
0 :
begin
IncEx(Smithing_xp, 56);
stats_IncVariable('Smithing EXP (Gained)', 56);
end;
end;
end;
end;
end;
3 :
case coalbag of
1 :
begin
MagicTab;
for I := 2 to 6 do
begin
FindHeat;
if ExistsItemDTM(mith, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 30);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 30);
end;
end;
0 :
begin
MagicTab;
for I := 3 to 12 do
begin
FindHeat;
if ExistsItemDTM(mith, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 30);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 30);
end;
end;
end;
4 :
case CoalBag of
1 :
begin
MagicTab;
for I := 2 to 4 do
begin
FindHeat;
if ExistsItemDTM(addy, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 37);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 37);
end;
end;
0 :
begin
MagicTab;
for I := 3 to 9 do
begin
FindHeat;
if ExistsItemDTM(addy, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 37);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 37);
end;
end;
end;
5 :
case CoalBag of
1 :
begin
MagicTab;
for I := 2 to 4 do
begin
FindHeat;
if ExistsItemDTM(rune, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 50);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 50);
end;
end;
0 :
begin
MagicTab;
for I := 3 to 7 do
begin
FindHeat;
if ExistsItemDTM(rune, x, y) then
Mouse(x, y, 15, 15, mouse_left);
NotFindHeat;
IncEx(Magic_xp, 53);
IncEx(Smithing_xp, 50);
stats_IncVariable('Magic EXP (Gained)', 53);
stats_IncVariable('Smithing EXP (Gained)', 50);
end;
end;
end;
end;
FreeDTM(SuperHeatDTM);
FreeOreDTMs;
end;
Procedure Commit;
begin
Stats_Commit;
end;
Procedure Proggy;
var
mxph, sxph: integer;
begin
Mxph := round((Magic_xp) / (GetTimeRunning / 3600000.0));
Sxph := round((Smithing_xp) / (GetTimeRunning / 3600000.0));
ClearDebug;
WriteLn('=-=-=-=-=-=-=-= Superheater by TehQ =-=-=-=-=-=-=');
WriteLn(' Time Running: '+TimeRunning);
WriteLn(' Bars Superheated: ' +IntToStr(BarType));
WriteLn(' Magic XP Gained: ' +IntToStr(Magic_XP));
Writeln(' Magic XP/Hour: ' +IntToStr(Mxph));
WriteLn(' Smithing XP Gained: ' +IntToStr(Smithing_XP));
Writeln(' Smithing XP/Hour: ' +IntToStr(Sxph));
WriteLn(' Antibans done: ' +IntToStr(Antibans));
WriteLn(' Mini-breaks taken: ' +IntToStr(Waits));
WriteLn('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
Commit;
end;
Procedure Antiban;
begin
Wait(300+RandomRange(250,300));
Case Random(40) Of
5:
begin
HoverSkill('magic', False);
Antibans := (Antibans + 1);
end;
10:
begin
HoverSkill('random', False);
Antibans := (Antibans + 1);
end;
20:
begin
Boredhuman;
Antibans := (Antibans + 1);
end;
30:
begin
RandomRClick;
Antibans := (Antibans + 1);
end;
35:
begin
HoverSkill('smithing', False);
Antibans := (Antibans + 1);
end;
end;
end;
Procedure Breaking;
begin
Case random(40) Of
5:
begin
Wait(16000+Random(4000));
Waits := (Waits + 1);
end;
15:
begin
Wait(12000+Random(9000));
Waits := (Waits + 1);
end;
25:
begin
Wait(9000+Random(14000));
Waits := (Waits + 1);
end;
35:
begin
Wait(3000+Random(18000));
Waits := (Waits + 1);
end;
end;
end;
begin
SafeInitForm;
SafeShowFormModal;
Freeform(frmdesign);
Run;
begin
ClickNorth(SRL_ANGLE_HIGH);
Banking;
BankDeposit;
repeat
while (LoggedIn and (not(FindNormalRandoms) or (FindNonInventoryRandoms))) do
begin
CoalToInv;
CoalInBag;
Banking;
BankDeposit;
GetOres;
Antiban;
Proggy;
OnSmart;
Superheat;
Breaking;
Banking;
BankDeposit;
Inc(Count);
end;
until ((Count = Loadcount) or (not LoggedIn) or (FindNormalRandoms) or (FindNonInventoryRandoms));
WriteLn('Task completed!');
end;
end.program TehF2PQuester;
{ V X.0 - Members only }
{$DEFINE SMART} { }
{$DEFINE SRL5}
{$i SRL/srl.simba}
{$i sps/sps.simba}
const
Method = 'walking'; { walking or teleport - Only works with RuneMysteries }
Quest = 'RuneMysteries'; { RuneMysteries, RestlessGhost }
Server = 0 ;
var
All : integer;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := ''
BoxRewards := ['amp'];
LampSkill := SKILL_ATTACK;
Pin := '';
Active := True;
end;
end;
Procedure Run;
begin
Smart_Members := True;
Smart_Server := Server;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Wait(500+Random(200)); {check}
if FindNormalRandoms or FindNonInventoryRandoms then
exit;
SetAngle(SRL_ANGLE_HIGH);
SetRun(true);
SPS_Setup(RUNESCAPE_SURFACE, ['10_9','10_8','10_7','11_7','11_9','12_9','11_10','10_10','12_7','11_8']);
end;
Procedure Greetings;
begin
ClearDebug;
WriteLn('');
WriteLn('=-=-=-=-=-=-=-= F2P Questing by TehQ =-=-=-=-=-=-=');
WriteLn('');
Writeln('Doing quest: ' +(Quest));
WriteLn('');
WriteLn('Method: ' +(Method));
WriteLn('');
WriteLn('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-');
WriteLn('');
end;
Procedure ResetAll;
begin
All := 0;
end;
Procedure IncAll;
begin
Inc(All);
end;
{----------------------------------------------- WALKING ---------------------------------------}
Procedure ToTower;
{check}
var
WalkToTower: TPointArray;
begin
WalkToTower := [Point(4664, 3819), Point(4679, 3819), Point(4694, 3801), Point(4695, 3788), Point(4721, 3784), Point(4739, 3783), Point(4774, 3795), Point(4780, 3842), Point(4809, 3888), Point(4793, 3944), Point(4766, 3985), Point(4730, 4035), Point(4670, 4043), Point(4613, 4044), Point(4556, 4042), Point(4511, 4012), Point(4476, 3967), Point(4457, 3920), Point(4424, 3878), Point(4384, 3840), Point(4337, 3813), Point(4292, 3825), Point(4289, 3884), Point(4289, 3941), Point(4271, 3988)];
SPS_WalkPath(WalkToTower);
WriteLn('Walking to Wizards Tower');
WriteLn('' +TimeRunning);
end;
Procedure WalkToDoor2;
var
ToDoor2: TPoint;
begin
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(480,530));
ToDoor2 := (Point(4268, 4011));
SPS_WalkToPos(ToDoor2);
WriteLn('' +TimeRunning);
end;
Procedure ToGrave;
var {check}
Grave1: TPointArray;
Grave2: TPoint;
begin
Grave1 := [Point(4798, 3823), Point(4780, 3825), Point(4780, 3835), Point(4798, 3868), Point(4813, 3880)];
WriteLn('Walking to Grave');
SPS_WalkPath(Grave1);
Wait(RandomRange(1000,1100));
Grave2 := Point(4828, 3888);
SPS_WalkToPos(Grave2);
WriteLn('' +TimeRunning);
end;
Procedure ToMine;
var {check}
WalkMine: TPointArray;
begin
WalkMine := [Point(4815, 3891), Point(4802, 3926), Point(4791, 3980), Point(4782, 4022), Point(4781, 4073)];
WriteLn('Walking to Mine');
SPS_WalkPath(WalkMine);
Wait(RandomRange(1000,1100));
WriteLn('' +TimeRunning);
end;
Procedure ToVarrock;
var {check}
WalkToVarrock: TPointArray;
begin
WalkToVarrock := [Point(4723, 3788), Point(4763, 3782), Point(4764, 3738), Point(4764, 3682), Point(4760, 3627), Point(4792, 3570), Point(4789, 3509), Point(4790, 3449), Point(4790, 3393), Point(4796, 3333), Point(4749, 3299), Point(4736, 3241), Point(4707, 3196), Point(4684, 3145), Point(4683, 3095), Point(4734, 3091), Point(4785, 3095), Point(4837, 3090), Point(4846, 3051)];
WriteLn('Walking to Varrock');
SPS_WalkPath(WalkToVarrock);
WriteLn('' +TimeRunning);
end;
Procedure RocksToGrave;
var {check}
Back2Grave: TPointArray;
Grave2: TPoint;
begin
Back2Grave := [Point(4792, 4059), Point(4796, 4025), Point(4795, 3982), Point(4804, 3936), Point(4813, 3902), Point(4830, 3890)];
WriteLn('Walking back to Grave');
SPS_WalkPath(Back2Grave);
Wait(RandomRange(1000,1100));
Grave2 := Point(4828, 3888);
SPS_WalkToPos(Grave2);
WriteLn('' +TimeRunning);
end;
Procedure Bobshop;
var {check}
ToBobs: TPointArray;
IntoBob: TPoint;
begin
ToBobs := [Point(4727, 3784), Point(4775, 3799), Point(4759, 3847)];
WriteLn('Walking to Bobs');
SPS_WalkPath(ToBobs);
Wait(RandomRange(1000,1100));
IntoBob := Point(4751, 3848);
SPS_WalkToPos(IntoBob);
WriteLn('' +TimeRunning);
end;
Procedure ToChurch;
var {check}
WalkToChurch: TPointArray;
begin
WalkToChurch := [Point(4728, 3786), Point(4745, 3784), Point(4760, 3785), Point(4771, 3794), Point(4775, 3809), Point(4782, 3820), Point(4800, 3822), Point(4808, 3823)];
WriteLn('Walking to Church');
SPS_WalkPath(WalkToChurch);
WriteLn('' +TimeRunning);
end;
Procedure WalkToHut;
var {check}
ToHut: TPointArray;
begin
ToHut := [Point(4799, 3824), Point(4777, 3828), Point(4783, 3840), Point(4783, 3852), Point(4800, 3873), Point(4810, 3893), Point(4800, 3924), Point(4790, 3954), Point(4783, 3967), Point(4761, 4006), Point(4724, 4035), Point(4692, 4044), Point(4665, 4050)];
WriteLn('Walking to Hut');
SPS_WalkPath(ToHut);
WriteLn('' +TimeRunning);
end;
Procedure IntoHut;
var {check}
InHut: TPoint;
begin
InHut := Point(4663, 4067);
WriteLn('Walking into Hut');
SPS_WalkToPos(InHut);
WriteLn('' +TimeRunning);
end;
Procedure VarrockToShop;
var {check}
ToShop: TPointArray;
begin
ToShop := [Point(4684, 2951), Point(4678, 3006), Point(4682, 3062), Point(4719, 3090), Point(4766, 3094), Point(4813, 3095), Point(4842, 3082), Point(4847, 3047)];
Writeln('Walking to Magic Shop');
SPS_WalkPath(ToShop);
WriteLn('' +TimeRunning);
end;
Procedure InsideShop;
var
Shop: TPoint;
begin
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(600,700));
Shop := Point(4846, 3049);
SPS_WalkToPos(Shop);
WriteLn('' +TimeRunning);
end;
Procedure WalkToFather;
var
Father: TPoint;
begin
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(1500,1600));
Father := Point(4811, 3834);
SPS_WalkToPos(Father);
WriteLn('' +TimeRunning);
end;
Procedure CastleToLumby;
var {check}
CastleToLumb: TPointArray;
begin
CastleToLumb := [Point(4667, 3749), Point(4696, 3766), Point(4734, 3784)];
Writeln('Walking to Lumbridge');
SPS_WalkPath(CastleToLumb);
WriteLn('' +TimeRunning);
end;
{----------------------------------- TELEPORTS -------------------------------}
Procedure FindTeleportVarrock;
var
Time, sx, sy, TeleportDTM : Integer;
Varrock : TBox; {check}
begin
Varrock := PointToBox(Point(4659, 2915), Point(4722, 2969));
TeleportDTM := DTMFromString('mggAAAHicY2NgYOhjZmCYCMTdzBB2F5TfzsjA0ALF3UDcCcUeVuEMzvauDL9//2ZYv/8xg5N8LBjzA83ChhlxYAgAAPXHD1w=');
Gametab(tab_magic);
MarkTime(Time);
ResetAll;
repeat
repeat
wait(RandomRange(10,20));
until (FindDTM(TeleportDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or((TimeFromMark(Time) > 780));
if not (FindDTM(TeleportDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or ((TimeFromMark(Time) > 780)) then
Gametab(tab_magic);
Mouse(sx, sy, 1, 1, mouse_left);
WriteLn('Teleporting to Varrock');
Wait(RandomRange(100,200));
IncAll;
until ((PointInBox(SPS_GetMyPos, Varrock)) or (All = 3));
ResetAll;
FreeDTM(TeleportDTM);
end;
Procedure FindTeleportLumby;
var {check}
Time, sx, sy, TeleLDTM : Integer;
Lumby : TBox;
begin
TeleLDTM := DTMFromString('mlwAAAHicY2dgYGBjYWDgAGIWKAaxuYCYCYjzGRkYiqA4B4rzoXjfkU8MK/c+BeO/f/+CsY9uGhjzA83FhRnxYCgAAB2VEoQ=');
Gametab(tab_magic);
MarkTime(Time);
ResetAll;
Lumby := PointToBox(Point(4697, 3747), Point(4743, 3814));
repeat
repeat
wait(RandomRange(10,20));
until (FindDTM(TeleLDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or((TimeFromMark(Time) > 780));
if not (FindDTM(TeleLDTM, sx, sy, MIX1, MIY1, MIX2, MIY2)) or ((TimeFromMark(Time) > 780)) then
Gametab(tab_magic);
Mouse(sx, sy, 1, 1, mouse_left);
Wait(1000+(random(100)));
Mouse(MCCX, MCCY+35, 1, 1, mouse_left);
WriteLn('Teleporting to Lumbridge');
Wait(RandomRange(100,200));
IncAll;
until ((PointInBox(SPS_GetMyPos, Lumby)) or (All = 3));
ResetAll;
FreeDTM(TeleLDTM);
end;
{-----------------------------------------------------------------RUNE MYSTERIES-------------------------------------------------------}
Procedure TalkDuke;
var
x, y, DukeDTM, ThroughDTM : integer;
{check}
begin
DukeDTM := DTMFromString('mQwAAAHicY2ZgYKhjZmCoBOImIM5hZGAoA+JyIHZz1GCwjmpmsAirY+AHqoNhRiQMBAD77AXl');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
repeat
if WaitFindDTMEx(DukeDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 5, 5);
IncAll;
until ((WaitUpText('uke', 500)) or (All = 5));
ClickMouse2(True);
until WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 4500);
ResetAll;
WriteLn('Talking to Duke');
FreeDTM(DukeDTM);
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure ThroughOptions1;
var
x, y, ThroughDTM, QuestsDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
QuestsDTM := DTMFromString('mlwAAAHicY2dgYLgCxAGMDAzpQLoFiLuA+A4QswHFSoB0MRSXAXE+EFdAaSEZRYbjQcoMh9xEGfgl5RhOnDgBxkJScgz8QHlcmBEPhgIAo30PAw==');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 2500) then
begin
WriteLn('Found NPC Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
until ((WaitFindDTMEx(QuestsDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 4000)) or (All = 5));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(QuestsDTM);
WriteLn('' +TimeRunning);
end;
Procedure ThroughOptions4;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 600, 4200) then
begin
WriteLn('Found NPC Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure ThroughOptions2;
var
x, y, ThroughDTM, AcceptDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
AcceptDTM:= DTMFromString('mbQAAAHicY2VgYPjDzMCwF4gtWBgYfjBD8D1GBoa7QHwHiJ8D8WUg5te1ZMgxF2CoshVg6HEUZriZxc/AD9SPjhmxYDAAALrgDL4=');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 800, 4200) then
begin
WriteLn('Found NPC Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
until ((WaitFindDTMEx(AcceptDTM, x, y, MSX1, MSY1, MSX2, MSY2, 400, 3800)) or (All = 4));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(AcceptDTM);
WriteLn('' +TimeRunning);
end;
Procedure ThroughOptions3;
var
x, y, ThroughDTM, HeadWizardDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
HeadWizardDTM := DTMFromString('mbQAAAHicY2VgYGBjYWBYAsSlzAwM34D4CxBPYWJgmAzFfUA8DYiFZBQZ5rnKgvGJEyfAmB+oHx0zYsFgAACE2Q1X');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 800, 4200) then
begin
Writeln('Found Text. Clicking ahead');
Mouse(x, y, 1, 1, Mouse_left);
end;
until ((WaitFindDTMEx(HeadWizardDTM, x, y, MCX1, MCY1, MCX2, MCY2, 800, 4200)) or (All = 4));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(HeadWizardDTM);
WriteLn('' +TimeRunning);
end;
Procedure AnyQuests;
var
x, y, QuestsDTM : integer;
begin
QuestsDTM := DTMFromString('mlwAAAHicY2dgYLgCxAGMDAzpQLoFiLuA+A4QswHFSoB0MRSXAXE+EFdAaSEZRYbjQcoMh9xEGfgl5RhOnDgBxkJScgz8QHlcmBEPhgIAo30PAw==');
if WaitFindDTMEx(QuestsDTM, x, y, MCX1, MCY1, MCX2, MCY2, 800, 2400) then
begin
Writeln('Found Text Option. Clicking');
Mouse(x, y, 4, 4, Mouse_left);
end;
FreeDTM(QuestsDTM);
WriteLn('' +TimeRunning);
end;
Procedure AcceptQuest;
var
x, y, AcceptDTM : integer;
begin
AcceptDTM:= DTMFromString('mbQAAAHicY2VgYPjDzMCwF4gtWBgYfjBD8D1GBoa7QHwHiJ8D8WUg5te1ZMgxF2CoshVg6HEUZriZxc/AD9SPjhmxYDAAALrgDL4=');
if WaitFindDTMEx(AcceptDTM, x, y, MSX1, MSY1, MSX2, MSY2, 600, 1800) then
begin
Mouse(x, y, 3, 3, mouse_left);
Writeln('Accepted Quest');
end;
FreeDTM(AcceptDTM);
writeln('' +TimeRunning);
end;
Procedure OpenDoor;
var
x, y, DoorClosedDTM, DoorOpenDTM, Found : integer;
begin
DoorClosedDTM := DTMFromString('mQwAAAHicY2ZgYHBlYmBwY4LQcxkZGFqBeAMQT6xOZFjRVwDG/EB1MMyIhIEAACytB5g=');
DoorOpenDTM := DTMFromString('mQwAAAHicY2ZgYCgA4kggDgHiGUBcAsTzgbinLJZhWU8+GPMD+TDMiISBAAAypged');
SetAngle(SRL_ANGLE_HIGH);
Found := 0;
repeat
Inc(Found);
if WaitFindDTMEx(DoorClosedDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until ((WaitUpText('pen', 500)) or (Found = 5));
if WaitUpText('pen', 500) then
begin
ClickMouse2(True);
WriteLn('Opening door');
Wait(RandomRange(1500,1600));
end;
Found := 0;
FreeDTM(DoorClosedDTM);
FreeDTM(DoorOpenDTM);
WriteLn('' +TimeRunning);
end;
{-----------------------------------------------------------begin wizard's tower----------------------------------------------------}
Procedure OpenWizDoor1;
var
x, y, WizDoor1Closed, WizDoor1Open, Found : integer;
begin
WizDoor1Closed := DTMFromString('mggAAAHicY2NgYNjJzMDwCIhnAPEKIL4AxHuA+AgjA8NBID4AxNeA+BYQ3wPiTH89holTZzBMnjaLoThQmSHfT5GhJdmKgR9oFjbMiANDAADFzxEG');
WizDoor1Open := DTMFromString('mWAAAAHicY2FgYPgAxPeAWI8Rwj4AxJOAeApUPDtAn6Fv4lSGabPmMhSGGjLwA8WQMSMaBgEAi5ELWA==');
SetAngle(SRL_ANGLE_HIGH);
Found := 0;
repeat
Inc(Found);
if WaitFindDTMEx(WizDoor1Closed, x, y, MSX1, MSY1, MSX2, MSY2, 600, 2400) then
MMouse(x, y, 3, 3);
until ((WaitUpText('pen', 600)) or (Found = 5));
if WaitUpText('pen', 600) then
begin
ClickMouse2(True);
WriteLn('Opening door');
Wait(RandomRange(1500,1600));
end;
if WaitUptext('los', 600) then
WriteLn('Door opened');
Found := 0;
FreeDTM(WizDoor1Closed);
FreeDTM(WizDoor1Open);
WriteLn('' +TimeRunning);
end;
Procedure OpenWizDoor2;
var
x, y, WizDoor2Closed, WizDoor2Open, Found : integer;
begin
WizDoor2Closed := DTMFromString('mbQAAAHicY2VgYDBmYWDgAuIoIHYCYmUgvs3IwHAAiP8D8VMgPgvEpREmDPMXLQPjwlAjhggndQZ+oH50zIgFgwEANNYMPw==');
WizDoor2Open := DTMFromString('mWAAAAHicY2FgYEhjZGCQAuIYILYF4jlAsXYg3gnEu4C4OFCZYf6iZWBcWJjDwA8UQ8aMaBgEAAv6Cfs=');
setangle(SRL_ANGLE_HIGH);
Found := 0;
repeat
Inc(Found);
if WaitFindDTMEx(WizDoor2Closed, x, y, MSX1, MSY1, MSX2, MSY2, 600, 2400) then
MMouse(x, y, 3, 3);
until ((WaitUpText('pen', 500)) or (Found = 5));
if WaitUpText('pen', 500) then
begin
ClickMouse2(True);
WriteLn('Opening door');
wait(RandomRange(1500,1600));
end;
if WaitUptext('los', 500) then
WriteLn('Door opened');
FreeDTM(WizDoor2Closed);
FreeDTM(WizDoor2Open);
WriteLn('' +TimeRunning);
end;
Procedure FindDung;
var
x, y, DungeonDTM : integer;
begin
DungeonDTM:= DTMFromString('mbQAAAHicY2VgYJBhhWB5IBYHYiUgzmJkYCgA4nwgzgHiDCD+oKUFxgcOHADjv67SDPxA/eiYEQsGAwDFzwuG');
if WaitFindDTMEx(DungeonDTM, x, y, MMX1, MMY1, MMX2, MMY2, 600, 2800) then
Mouse(x, y, 3, 3, mouse_left);
FreeDTM(DungeonDTM);
WriteLn('' +TimeRunning);
end;
Procedure FindWizStairsDown;
var
x, y, WizStair1DTM : integer;
begin
WizStair1DTM:= DTMFromString('mrAAAAHic42BgYDBiYWCQAGJJIPYB4iAWhFgAiGZiYNAF4j+MDAx/gVgLyGYAYhEo5uPlZQjyd2dIS0tkyMlJZwjwdWWorcwF45rybAZ+oHJ8mJEAhgEAUZ0NZA==');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
IncAll;
WaitFindDTMEx(WizStair1DTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 3000);
MMouse(x, y, 5, 5);
until ((WaitUpText('dder', 600)) or (All = 5));
if WaitUpText('dder', 600) then
ClickMouse2(True);
ResetAll;
WriteLn('Going down ladder');
FreeDTM(WizStair1DTM);
WriteLn('' +TimeRunning);
end;
Procedure ToWizDoor;
var
x, y : integer;
begin
SetAngle(SRL_ANGLE_HIGH);
Wait(RandomRange(2500,2700));
if WaitFindColor(x, y, 394227, MMX1, MMY1, MMX2, MMY2, 15, 3000) then
begin
RadialWalkTolerance(394227, 110, 170, 40, 0, 0, 15);
WriteLn('Walked to Wizard''s door');
end;
WriteLn('' +TimeRunning);
end;
Procedure OpenWizDoor3;
var
x, y, WizDoor3Closed, Found : integer;
begin
WizDoor3Closed := DTMFromString('mlwAAAHicY2dgYLjEzMBwBYgvAPF5KBuErwHxQ0agPBC/BeLPQHwGiF8A8U0gdrBQBmNPR02GkpxIhrl9GQxOVqpgMX6gubgwIx4MBQCOXBJo');
SetAngle(SRL_ANGLE_HIGH);
Found := 0;
repeat
Inc(Found);
if WaitFindDTMEx(WizDoor3Closed, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until (WaitUpText('pen', 600) or (Found = 8));
if WaitUpText('pen', 600) then
begin
ClickMouse2(True);
Writeln('Opening door');
Wait(RandomRange(1500,1600));
end;
if WaitUptext('los', 600) then
WriteLn('Door opened');
Found := 0;
FreeDTM(WizDoor3Closed);
WriteLn('' +TimeRunning);
end;
Procedure FindWizard;
var
x, y, i, ThroughDTM : integer;
TPA : TPointArray;
{ATPA : T2DPointArray;}
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
repeat
WaitFindColors(TPA, 15577418, MSX1, MSY1, MSX2, MSY2, 15, 5000);
{ATPA := TPAToATPAEx(TPA, 30, 40); }
SortTPAFrom(TPA, Point(MSCX,MSCY));
for i := 0 to High(TPA) do
begin
x := TPA[i].x;
y := TPA[i].y;
MMouse(x, y, 5, 5);
end;
IncAll;
until ((WaitUpText('edr', 600)) or (All = 8));
if (All = 8) then
begin
WriteLn('Couldn''t find wizard');
Logout;
TerminateScript;
end;
ClickMouse2(True);
until WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 3000);
ResetAll;
WriteLn('Talking to Wizard');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure HeadWizardOption;
var
x, y, HeadWizardDTM, ThroughDTM : integer;
begin
HeadWizardDTM:= DTMFromString('mbQAAAHicY2VgYGBjYWBYAsSlzAwM34D4CxBPYWJgmAzFfUA8DYiFZBQZ5rnKgvGJEyfAmB+oHx0zYsFgAACE2Q1X');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(HeadWizardDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 3000) then
Mouse(x, y, 3, 3, mouse_left);
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 3000)) or (All = 5));
ResetAll;
WriteLn('Found Head Wizard Option');
FreeDTM(ThroughDTM);
FreeDTM(HeadWizardDTM);
WriteLn('' +TimeRunning);
end;
Procedure WizOptions;
var
WO : integer;
begin
repeat
Inc(WO);
ThroughOptions4;
until (WO = 14);
WriteLn('' +TimeRunning);
end;
Procedure Certain;
var
x, y, CertDTM : integer;
begin
CertDTM := DTMFromString('mggAAAHicY2NgYPjAzMBgxsLAsBBIHwTi40AsAuSnMDEwJENxPBSnAbGQjCLDPFdZMD5x4gQc8wPNwoYZcWAIAADWdg+P');
if (WaitFindDTMEx(CertDTM, x, y, MCX1, MCY1, MCX2, MCY2, 900, 5000)) then
begin
WriteLn('Found Text Option. Clicking');
Mouse(x, y, 3, 3, Mouse_left);
Wait(RandomRange(800,900));
end;
FreeDTM(CertDTM);
WriteLn('' +TimeRunning);
end;
{------------------------------------------------------begin Varrock-------------------------------------------------------------}
Procedure TalkOwner;
var
x, y, OwnerDTM, ThroughDTM : integer;
{check}
begin
OwnerDTM := DTMFromString('mggAAAHicY2NgYBBkZGDgB2IhKBYBYgEgVoNiFSDWgLJB9PYN6xk2rV4NxjMmTmRYuWghw7plyxhYgWZhw4w4MAQAAKciDUs=');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
repeat
IncAll;
WaitFindDTMEx(OwnerDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 4000);
MMouse(x, y, 5, 5);
until ((IsUpText('ury')) or (All = 5));
if (All = 5) then
begin
Writeln('Couldn''t find Aubury');
Logout;
TerminateScript;
end;
ClickMouse2(True);
until WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 300, 2400);
WriteLn('Talking to Aubury');
ResetAll;
FreeDTM(OwnerDTM);
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure SentHere;
var
x, y, SentDTM, ThroughDTM : integer;
begin
SentDTM := DTMFromString('mggAAAHicY2NgYBBiZGCYA8RZQHYkkG4C0h1AfADI3g/Fe4H4EBDvAmIhGUUGLl5eMD5x4gQc8wP1YMOMODAEAACmoQ8B');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(SentDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 4800) then
begin
WriteLn('Found Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 2800)) or (All = 4));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(SentDTM);
WriteLn('' +TimeRunning);
end;
Procedure OwnerOptions;
var
OO : integer;
begin
repeat
inc(OO);
ThroughOptions4;
until (OO = 7);
WriteLn('' +TimeRunning);
end;
Procedure TeleportWiz;
var
x, y, YesTeleDTM, ThroughDTM : integer;
begin
YesTeleDTM := DTMFromString('mlwAAAHicY2dgYLgDxJOB2JSRgeEQkD4GxM+A+D8QyzIisBQUS0D5QlJyDEFO+gx+9noMJ06cQMGsQL24MCMeDAUAQKoRMw==');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 5000) then
begin
WriteLn('Found Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
until ((WaitFindDTMEx(YesTeleDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 4000)) or (All = 4));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(YesTeleDTM);
WriteLn('' +TimeRunning);
end;
Procedure TeleToWizard;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
Wait(RandomRange(600, 800));
FindNPCChatText('es', clickleft);
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 4500)) or (All = 8));
ResetAll;
WriteLn('Teleporting to Wizards Tower');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure TeleToEnd;
var
Teh : integer;
begin
OpenWizDoor1;
WalkToDoor2;
OpenWizDoor2;
FindDung;
FindWizStairsDown;
ToWizDoor;
OpenWizDoor3;
FindWizard;
repeat
Inc(Teh);
ThroughOptions4;
until (Teh = 27);
end;
Procedure Ending;
var
x, y, ThroughDTM, ContinueDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY'); {28 options to finish quest}
ContinueDTM:= DTMFromString('mbQAAAHicY2VgYNjHwsDQC8VJQPwAiLcwMTBsBeINQLwJivkM7BgenzkPxqvCxBgWBYgw8AP1o2NGLBgMAPxUDp8=');
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 600, 6000) then
begin
WriteLn('Found Text. Clicking ahead');
Mouse(x, y, 3, 3, Mouse_left);
end;
until ((WaitFindDTMEx(ContinueDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 3500)) or (All = 4));
ResetAll;
FreeDTM(ThroughDTM);
FreeDTM(ContinueDTM);
WriteLn('' +TimeRunning);
end;
Procedure FinishQuestRM;
var
x, y, ContinueDTM : integer;
begin
ContinueDTM:= DTMFromString('mbQAAAHicY2VgYNjHwsDQC8VJQPwAiLcwMTBsBeINQLwJivkM7BgenzkPxqvCxBgWBYgw8AP1o2NGLBgMAPxUDp8=');
if WaitFindDTMEx(ContinueDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 3000) then
Mouse(x, y, 3, 3, mouse_left);
FreeDTM(ContinueDTM);
WriteLn('' +TimeRunning);
end;
Procedure FinishQuestRG;
var
x, y, Continue2DTM : integer;
begin
Continue2DTM := DTMFromString('mWAAAAHicY2FgYAhjZGC4D6TvAOkoIM5jYmDIAOIsIE4GYj4DO4ZlEbIMiwJEGB6fOc8AAiJQDAKMaBgEAAajCWU=');
if WaitFindDTMEx(Continue2DTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 3000) then
Mouse(x, y, 3, 3, mouse_left);
FreeDTM(Continue2DTM);
WriteLn('' +TimeRunning);
end;
{Procedure FindBob;
begin
SetAngle(SRL_ANGLE_HIGH);
BobDTM := DTMFromString('mbQAAAHicY2VgYKhjZmCoAeIGKAaxcxkZGPKAuACIc4A4G4jtbW0YrCzMGdws9RnMTU3BfFagfnTMiAWDAQBfxAg4');
PickDTM := DTMFromString('mlwAAAHicY2dgYNAGYhkgdgNidyjbFIiNgNgDiFOA2ARKg8SjgDgRiD3NFRg0lWUYxIUF4fT//wxgzM+AGzPiwVAAAGnLCeU=');
repeat
repeat
Wait(RandomRange(480,530));
FindDTMRotatedSE(BobDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
MMouse(x, y, 1, 1);
until IsUpText('ob');
ClickMouse2(False);
WaitOption('rade', 800);
until FindDTM(PickDTM, x, y, MSX1, MSY1, MSX2, MSY2);
WriteLn('Trading with Bob');
FreeDTM(BobDTM);
FreeDTM(PickDTM);
WriteLn('' +TimeRunning);
end; }
{---------------------------------------------------------RESTLESS GHOST------------------------------------------------------------}
Procedure FindFather;
var
x, y, FatherDTM, ThroughDTM : integer;
begin
FatherDTM := DTMFromString('mLgAAAHicY2IAAkYI/gCkvgBxTOpSBm0dfQYuIJsLIQ0EAGxHA+s=');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
repeat
IncAll;
if WaitFindDTMEx(FatherDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until ((WaitUpText('ath', 500)) or (All = 4));
if (All = 4) then
begin
WriteLn('Couldn''t find father');
Logout;
TerminateScript;
end;
ClickMouse2(True);
until WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 3200);
ResetAll;
WriteLn('Talking to Father');
FreeDTM(FatherDTM);
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure GhostQuest;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
Wait(RandomRange(600,800));
FindNPCChatText('uest', clickleft)
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 3500)) or (All = 8));
ResetAll;
WriteLn('Begin quest option');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure FatherOptions;
var
FO : integer;
begin
FO := 0;
repeat
Inc(FO);
ThroughOptions4;
until (FO = 7);
WriteLn('' +TimeRunning);
end;
Procedure HutDoor;
var
x, y, WoodsDoor, Found : integer;
begin
WoodsDoor := DTMFromString('mQwAAAHicY2ZgYPgPxBeAWJORgeEakH4AxI+BOD85lOF+vQ7D1UptBmYgXwSKGZEwEAAAhDEI7g==');
SetAngle(SRL_ANGLE_HIGH);
Found := 0;
repeat
Inc(Found);
if WaitFindDTMEx(WoodsDoor, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until ((WaitUpText('pen', 500)) or (Found = 5));
if WaitUpText('pen', 500) then
begin
ClickMouse2(True);
WriteLn('Opening door');
Wait(RandomRange(1500,1600));
end;
if WaitUptext('los', 500) then
WriteLn('Door opened');
Found := 0;
FreeDTM(WoodsDoor);
WriteLn('' +TimeRunning);
end;
Procedure FindUrh;
var
x, y, Father2DTM, ThroughDTM : integer;
begin
Father2DTM := DTMFromString('mbQAAAHicY2VgYFBgZGCQA2IlRgT7H1CcgRGB/wKpnWsXMKxfMp2ht6UKTJ/cs46BFSiOjhmxYDAAAPYeDF0=');
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
repeat
IncAll;
if WaitFindDTMEx(Father2DTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until ((WaitUpText('athe', 400)) or (All = 4));
if (All = 4) then
begin
Writeln('Couldn''t find Urhney');
Logout;
TerminateScript;
end;
ClickMouse2(True);
until WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 3400);
ResetAll;
WriteLn('Talking to Urhney');
FreeDTM(Father2DTM);
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure AboutQuest;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
Wait(RandomRange(800,1000));
FindNPCChatText('alk', clickleft)
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 2500)) or (All = 8));
if (All = 8) then
begin
WriteLn('Couldn''t find option');
Logout;
TerminateScript;
end;
ResetAll;
WriteLn('The Father from Lumbridge sent me');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure Ghosts;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
Wait(RandomRange(800,1000));
FindNPCChatText('host', clickleft)
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 500, 4000)) or (All = 8));
if (All = 8) then
begin
Writeln('Couldn''t find ghost option');
Logout;
TerminateScript;
end;
ResetAll;
WriteLn('Ghosts are haunting Lumbridge!');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure Father2Options;
var
FO2 : integer;
begin
FO2 := 0;
repeat
Inc(FO2);
ThroughOptions4;
until (FO2 = 10);
FO2 := 0;
WriteLn('' +TimeRunning);
end;
Procedure Ammy;
var
x, y, AmmyDTM : integer;
begin
AmmyDTM := DTMFromString('mggAAAHicY2NgYMhgYmAoAeI0IC4D4goo+zVQ7hYQ3wHiR1D6DRB3NJYyxDnJMgRaSjJ4GIkxRNnLMGyYVcrAD5RDx1xAzIgDQwAAtEMOMQ==');
ResetAll;
repeat
Wait(RandomRange(1000,1100));
IncAll;
until ((WaitFindDTMEx(AmmyDTM, x, y, MIX1, MIY1, MIX2, MIY2, 500, 4500)) or (All = 5));
ResetAll;
if WaitFindDTMEx(AmmyDTM, x, y, MIX1, MIY1, MIX2, MIY2, 500, 4500) then
MMouse(x, y, 3, 3);
if WaitUpText('mul', 600) then
begin
ClickMouse2(true);
Writeln('Amulet on');
end;
ResetAll;
WriteLn('' +TimeRunning);
Wait(RandomRange(300,400));
FreeDTM(AmmyDTM);
end;
Procedure FindCoffin;
var
x, y, CoffinClosed, CoffinOpen : integer;
begin
CoffinClosed := DTMFromString('mggAAAHicY2NgYNBnZGBwAeIQINYDYj8gtgRiBiBmAeLPQOYXBggfRGuqq4CxgpwMg5qKIoOCtCgYswLlsGFGHBgCAFQVBtw=');
CoffinOpen := DTMFromString('mQwAAAHicY2ZgYLgLxGeA+DAQbwPiHUC8HYjFBDgZ2mqLGdrrSxlYgXwuKGZEwkAAAFy8B9E=');
SetAngle(SRL_ANGLE_HIGH);
ResetAll;
repeat
IncAll;
if WaitFindDTMEx(CoffinClosed, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
Mouse(x, y, 3, 3, mouse_left);
if WaitFindDTMEx(CoffinOpen, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
Mouse(x, y, 3, 3, mouse_left);
until WaitUpText('pen', 600);
if WaitUpText('pen', 600) then
begin
ClickMouse2(True);
WriteLn('Found coffin');
end;
ResetAll;
FreeDTM(CoffinOpen);
FreeDTM(CoffinClosed);
WriteLn('' +TimeRunning);
end;
Procedure TalkToGhost;
var
x, y, ThroughDTM, GhostDTM : integer;
begin
ResetAll;
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
GhostDTM := DTMFromString('mbQAAAHicY2VgYHgIxU+g+BEQ2wGxCRBbAbEhELsBcXxGKsPStcsY8nOTGCbOmMQQn5rIwAoU50LDjFgwGAAApTMNCQ==');
repeat
IncAll;
if WaitFindDTMEx(GhostDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 5000) then
MMouse(x, y, 3, 3);
until ((WaitUpText('est', 400)) or (All = 4));
if (WaitUpText('est', 400)) then
ClickMouse2(True);
FreeDTM(ThroughDTM);
FreeDTM(GhostDTM);
ResetAll;
WriteLn('' +TimeRunning);
end;
Procedure ItWorks;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
wait(RandomRange(800,1000));
FindNPCChatText('mule', clickleft);
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 3800)) or (All = 5));
if (All = 5) then
begin
Writeln('Amulet doesn''t work');
Logout;
TerminateScript;
end;
ResetAll;
WriteLn('Wow, this amulet works!');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure WhyGhost;
var
x, y, ThroughDTM : integer;
begin
ThroughDTM := DTMFromString('mbQAAAHicY2VgYFjAzMBwAogbgbgBiE8C8TwmBoZpULwEiq2TRRgYmZgZ8sJsGMrCLRguXrzIgA0wYsFgAAA+hQuY');
ResetAll;
repeat
IncAll;
Wait(RandomRange(800,1000));
FindNPCChatText('host', clickleft);
until ((WaitFindDTMEx(ThroughDTM, x, y, MCX1, MCY1, MCX2, MCY2, 400, 3600)) or (All = 8));
if (All = 8) then
begin
Writeln('You''re not a ghost?');
Logout;
TerminateScript;
end;
ResetAll;
WriteLn('Why are you a ghost?');
FreeDTM(ThroughDTM);
WriteLn('' +TimeRunning);
end;
Procedure GhostOptions1;
var
GO : integer;
begin
GO := 0;
repeat
Inc(GO);
ThroughOptions4;
until (GO = 4);
GO := 0;
WriteLn('' +TimeRunning);
end;
Procedure GhostOptions2;
var
GO2 : integer;
begin
GO2 := 0;
repeat
Inc(GO2);
ThroughOptions4;
until (GO2 = 5);
GO2 := 0;
WriteLn('' +TimeRunning);
end;
Procedure FindRocks;
var
x, y, RocksDTM : integer;
begin
RocksDTM := DTMFromString('mbQAAAHicY2VgYHBmZGAwAWIdIA4BYh8gzgeKJwFxPRBXA3ECEAcG+DHEx0YxxERHMHh5ujN4uLsysALF0TEjFgwGADVmCFk=');
ResetAll;
repeat
IncAll;
WaitFindDTMEx(RocksDTM, x, y, MSX1, MSY1, MSX2, MSY2, 500, 4500);
MMouse(x, y, 3, 3);
until ((WaitUpText('ock', 800)) or (All = 4));
if (WaitUpText('ock', 800)) then
begin
ClickMouse2(True);
Writeln('Found skull');
end;
ResetAll;
FreeDTM(RocksDTM);
WriteLn('' +TimeRunning);
end;
Procedure FindSkull;
var
x, y, FS, SkullDTM : integer;
begin
SkullDTM:= DTMFromString('mQwAAAHicY2ZgYHBhYmCwAWI3IL4H5L8C4rdAvHrRFIaju1YBWUwMXEAShhmRMBAAAEMnB7I=');
FS := 0;
repeat
Gametab(tab_inv);
Wait(RandomRange(1000,1100));
Inc(FS);
until ((WaitFindDTMEx(SkullDTM, x, y, MIX1, MIY1, MIX2, MIY2, 500, 3500)) or (FS = 5));
if WaitFindDTMEx(SkullDTM, x, y, MIX1, MIY1, MIX2, MIY2, 500, 3500) then
MMouse(x, y, 1, 1);
if WaitUpText('kul', 800) then
begin
ClickMouse2(true);
WriteLn('Found Skull');
end;
FS := 0;
WriteLn('' +TimeRunning);
Wait(RandomRange(300,400));
FreeDTM(SkullDTM);
end;
Procedure EndingRG;
begin
Wait(15000+(random(1000)));
end;
Procedure BuryBones;
var
i, x, y, BonesDTM, AO : integer;
begin
SetAngle(SRL_ANGLE_HIGH);
BonesDTM := DTMFromString('mbQAAAHicY2VgYHBmYmCwBmI7IHYDYh8gfgwUfwTEr4H4LhA/AeIgb3OGvsZ4Bj83E4aybH+GvBQvBmagODpmxILBAAAHVQs5');
AO := 0;
repeat
Gametab(tab_inv);
Wait(RandomRange(300,400));
Inc(AO);
until (WaitFindDTMEx(BonesDTM, x, y, MIX1, MIY1, MIX2, MIY2, 500, 3500));
for i := 0 to 28 do
begin
if WaitFindDTMEx(BonesDTM, x, y, MIX1, MIY1, MIX2, MIY2, 400, 2400) then
MMouse(x, y, 5, 5);
if WaitUpText('on', 600) then
begin
ClickMouse2(true);
WriteLn('Bured a bone');
end;
WriteLn('' +TimeRunning);
Wait(RandomRange(200,300));
end;
AO := 0;
FreeDTM(BonesDTM);
end;
{loop}
begin
Run;
begin
Case Quest of
'RuneMysteries':
begin
Case Method of
'walking':
begin
Greetings;
TalkDuke;
ThroughOptions1;
AnyQuests;
ThroughOptions4;
ThroughOptions4;
ThroughOptions2;
AcceptQuest;
FindTeleportLumby;
CastleToLumby;
ToTower;
OpenWizDoor1;
WalkToDoor2;
OpenWizDoor2;
FindDung;
FindWizStairsDown;
ToWizDoor;
OpenWizDoor3;
FindWizard;
ThroughOptions4;
HeadWizardOption;
WizOptions;
Certain;
ThroughOptions4;
ThroughOptions4;
ThroughOptions4;
FindTeleportLumby;
ToVarrock;
InsideShop;
TalkOwner;
SentHere;
OwnerOptions;
TeleportWiz;
TeleToWizard;
ThroughOptions4;
ToTower;
TeleToEnd;
Ending;
FinishQuestRM;
end;
'teleport':
begin
Greetings;
TalkDuke;
ThroughOptions1;
AnyQuests;
ThroughOptions4;
ThroughOptions4;
ThroughOptions2;
AcceptQuest;
FindTeleportLumby;
CastleToLumby;
ToTower;
OpenWizDoor1;
WalkToDoor2;
OpenWizDoor2;
FindDung;
FindWizStairsDown;
ToWizDoor;
OpenWizDoor3;
FindWizard;
ThroughOptions4;
HeadWizardOption;
WizOptions;
Certain;
ThroughOptions4;
ThroughOptions4;
ThroughOptions4;
FindTeleportVarrock;
VarrockToShop;
InsideShop;
TalkOwner;
SentHere;
OwnerOptions;
TeleportWiz;
TeleToWizard;
ThroughOptions4;
ToTower;
TeleToEnd;
Ending;
FinishQuestRM;
end;
end;
end;
'RestlessGhost':
begin
Greetings;
FindTeleportLumby;
CastleToLumby;
ToChurch;
WalkToFather;
FindFather;
ThroughOptions4;
GhostQuest;
ThroughOptions2;
AcceptQuest;
FatherOptions;
WalkToHut;
HutDoor;
IntoHut;
FindUrh;
ThroughOptions4;
AboutQuest;
ThroughOptions4;
Ghosts;
Father2Options;
Ammy;
FindTeleportLumby;
CastleToLumby;
ToGrave;
FindCoffin;
TalkToGhost;
GhostOptions1;
ItWorks;
ThroughOptions4;
WhyGhost;
GhostOptions2;
ToMine;
FindRocks;
RocksToGrave;
FindCoffin;
FindSkull;
FindCoffin;
EndingRG;
FinishQuestRG;
BuryBones;
end;
end;
end;
WriteLn('It took: '+(TimeRunning)+' to finish ' +(Quest));
Wait(RandomRange(4000,4200));
Logout;
TerminateScript;
end.