Deadly Serious
2012-01-16 04:59:19
It is fully functional with SRL5
You need to download this to be able to use the script: http://villavu.com/forum/showthread.php?t=68112&highlight=objdtm+walking
Follow the instructions at the bottom of this page on how to download and install it correctly.
This is my first script, it crafts air tiaras and runs back to the bank to withdraw more tiaras and air talismans.
Why use this method?
This method is 2.5x faster then air runecrafting and you can do it at level 1 runecrafting!
The downside is it costs around 14.5gp per exp.
Important
Make sure your tiaras and talismans are visible in your bank when you first open it up, make sure there is no other runes visible in the bank/ bank tabs.
Better safe then sorry.
Start Point:

Recommended Set Ups
Light weight gear and air tiara equipped
Current Features
Rests at the musician when run energy is below 50%
Future Updates
Progress Reports (How long the script has been running, how many trips you've made and eventually runecrafting exp gained, Tiaras crafted, cash gained.)
Auto Updater and a downloadable link.
Known Bugs
Currently none!
Current Version:
Version 1: Released!
You need to download this to be able to use the script: http://villavu.com/forum/showthread.php?t=68112&highlight=objdtm+walking
Follow the instructions at the bottom of this page on how to download and install it correctly.
This is my first script, it crafts air tiaras and runs back to the bank to withdraw more tiaras and air talismans.
Why use this method?
This method is 2.5x faster then air runecrafting and you can do it at level 1 runecrafting!
The downside is it costs around 14.5gp per exp.
Important
Make sure your tiaras and talismans are visible in your bank when you first open it up, make sure there is no other runes visible in the bank/ bank tabs.
Better safe then sorry.
Start Point:

Recommended Set Ups
Light weight gear and air tiara equippedCurrent Features
Rests at the musician when run energy is below 50%
Future Updates
Progress Reports (How long the script has been running, how many trips you've made and eventually runecrafting exp gained, Tiaras crafted, cash gained.)
Auto Updater and a downloadable link.
Known Bugs
Currently none!
Current Version:
Version 1: Released!
program Deadlys_Air_Tiara_Crafter;
{$i srl/srl/misc/smart.simba}
{$i SRL/SRL.simba}
//{.Include SRL\SRL\Misc\Debug.simba}
//{$i SRL/SRL/misc/paintsmart.simba}
{$i ObjectDTM/ObjDTMInclude.Simba}
Const //Yoho's
SERVER = ('54'); // Enter "0" to pick a random server.
MEMBERS = False; // Set to True if using a RS-Members account. False if F2P.
SRLStats_Username = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
NumbOfPlayers= 1; //How many players are you using
StartPlayer= 0; //Player to start auoting with! (0 means first char)
Version = 1.1;
Var
Crafted:Integer;
aFound: Extended;
{*******************************************************************************
procedure DeclarePlayers;
By: SRL
Description: SRL's Player Setup
*******************************************************************************}
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(2);
CurrentPlayer := 0;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name :=''; // Name
Pass :=''; // Pass
Active := True; //True if you want this player to be ran in the script, false if not
* Pin := ''; * * * * * *// Leave blank if you have no pin.
with Players[1] do
begin
Name :=''; // Name
Pass :=''; // Pass
Active := True; //True if you want this player to be ran in the script, false if not
Pin := ''; // Leave blank if you have no pin.
end;
end;
end;
Procedure ObjSetup; //Euph's
begin;
ObjDTM_Setup;
end;
Procedure StatsGuise(wat:String); //Yoho's
Begin
Status(wat);
Disguise(wat);
End;
//Function CheckAndClick(X,Y:Integer):Boolean;
//By: YoHoJo
//Description: Moves mouse to x,y, checks for uptext, and clikcs if found
//*******************************************************************************}
Function CheckAndClick(X,Y:Integer):Boolean;
Begin
MMouse(x, y, 5, 5);
{Wait(100 + Random(50));
If CountUpColor('B', 41, 5, 86, 24, 70, 140) Then}
If WaitUpTextMulti(['Mine','ine'], 150) Then
Begin
Result:=True;
GetMousePos(x, y);
Mouse(x, y, 0, 0,True);
Wait(100+Random(50));
FFlag(0);
End;
End;
Procedure FailSafe(Reason:String); //Yoho's
begin
Players[CurrentPlayer].Loc:=reason;
Logout;
Terminatescript;
end;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
Procedure Loadvars;
begin;
MouseSpeed := RandomRange(14, 18);
end;
Procedure Antiban; //I liked a few of Yoho's antibans, I implemented them here
Begin
Case Random(192) Of
0: HoverSkill('runecrafting', False);
1: Begin PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
2: IdleTime(100+random(700), 100+Random(100), 0.2+RandomE/2);
3: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
4: HoverSkill('random', False);
5: RandomMovement;
End;
end;
Procedure ProgressReport;
begin
Cleardebug;
Writeln('You have been crafting for:' + TimeRunning);
Writeln('Exp gained:' + IntToStr(Crafted*14*25));
end;
Procedure WithdrawTiara1;
var
Talisman, I, x, y:integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
Begin;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('W');
If (FindObjCustom(x,y,['Bank','nk','booth','oot'], [1717052], 5)) Then
begin
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(600+random(250));
ChooseOption('uickly');
Wait(2500+random(500));
end;
Talisman := DTMFromString('mlwAAAHicY2dgYDjLxMBwCYivAfEFID4KxSeAuJuRgaEOiDuBeBIQzwLiPiBuBeKywkKgbiasmAtI4sKMeDAUAAAlsQs2');
If FindDTM(Talisman, X, Y, MSX1, MSY1, MSX2, MSY2) Then
begin
Writeln('Withdrawing the Talismans');
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(300+random(250));
ChooseOption('X');
Wait(1000+random(250));
TypeSend('14');
end;
begin
FindColorsTolerance(TPA, 9406857, MSX1, MSY1, MSX2, MSY2, 5); // Thanks to Naums' Tutorial
ATPA := TPAToATPAEx(TPA, 30, 10);
For I := 0 To High(ATPA) Do
Begin
If MiddleTPAEx(ATPA[I], X, Y) Then
begin
Writeln('Withdrawing the Tiaras');
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(300+random(250));
ChooseOption('All');
Wait(500+random(250));
end;
end;
end;
FreeDtm(Talisman)
end;
end;
Procedure WithdrawTiara2;
var
Talisman, I, x, y:integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
Begin;
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('W');
If (FindObjCustom(x,y,['Bank','nk','booth','oot'], [1717052], 5)) Then
begin
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(600+random(250));
ChooseOption('uickly');
Wait(2500+random(500));
DepositAll
end;
begin
Talisman := DTMFromString('mlwAAAHicY2dgYDjLxMBwCYivAfEFID4KxSeAuJuRgaEOiDuBeBIQzwLiPiBuBeKywkKgbiasmAtI4sKMeDAUAAAlsQs2');
If FindDTM(Talisman, X, Y, MSX1, MSY1, MSX2, MSY2) Then
begin
Writeln('Withdrawing the Talismans');
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(300+random(250));
ChooseOption('14');
Wait(1000+random(250));
end;
begin
FindColorsTolerance(TPA, 9406857, MSX1, MSY1, MSX2, MSY2, 5); // Thanks to Naums' Tutorial
ATPA := TPAToATPAEx(TPA, 30, 10);
For I := 0 To High(ATPA) Do
Begin
If MiddleTPAEx(ATPA[I], X, Y) Then
begin
Writeln('Withdrawing the Tiaras');
MMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(300+random(250));
ChooseOption('All');
Wait(500+random(250));
end;
end;
end;
FreeDtm(Talisman)
end;
end;
end;
function Walking(Color, Tolerance: Integer; SortFrom: tpoint): Boolean;
var
i, x, y, rx, ry: Integer;
TPA: TPointArray;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
FindColorsSpiralTolerance(MMCX, MMCY, TPA, Color, MMX1, MMY1, MMX2, MMY2, Tolerance);
SortTPAFrom(TPA, SortFrom);
for i := 0 to High(TPA) do
begin
x := TPA[i].x;
y := TPA[i].y;
rx := RandomRange(-6, 6);
ry := RandomRange(-6, 6);
if (not rs_OnMinimap(x + rx, y + ry)) then
Continue;
Mouse(x + rx, y + ry, 0, 0, true);
FFlag(0);
Wait(200 + Random(500));
Result := True;
Break;
end;
end;
Procedure Walkies;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
begin
if (Walking(2570554, 15, Point(583, 38))) then
begin
Wait(1800+Random(500));
end;
end;
end;
procedure Resting;
var
X,Y: Integer;
s: String;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
begin
if (Not runenergy(50)) then
begin
If FindObjCustom(x, y, ['Talk', 'alk'], [14464635, 9469760, 4297607], 10) then
begin
Writeln('Listening to the blissful music')
Getmousepos(x, y)
begin;
MMouse(X, Y, 3, 3);
ClickMouse2(False);
Waitoption('isten', 3000);
Wait(8000+Random(5000));
RestUntil(80)
end;
end;
end;
end;
end;
procedure WalkToAlter; //Mine, that's rare
var
Path: TStringArray;
I: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
begin
Path:= ['568:98:5:1:7:613:100:1:7:625:122:1:7:588:117:0:7:647:111:1:7:647:61'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(2000+Random(500));
begin
Resting;
end;
begin
Path:= ['570:120:4:5:7:571:77:1:7:560:99:1:7:581:94:1:7:559:78'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(2000+Random(500));
Path:= ['566:117:4:1:7:576:103:3:7:582:128:1:7:593:103:1:7:606:115'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(3500+Random(1000));
end;
end;
end;
Procedure Enter;
var
X,Y: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
begin
If FindObjCustom(x, y, ['Ent', 'Enter'], [16631951, 16629135, 16171659, 14925721, 16499851], 15) then
begin
Writeln('Entered into the Mysterious rock formation')
Getmousepos(x, y)
if IsUpText('nter') then
Case random(11) of
0..10: begin
MMouse(X, Y, 8, 8);
ClickMouse2(True);
end;
// 9..10: begin;
// MMouse(X, Y, 5, 5);
//ClickMouse2(False);
// Waitoption('nter', 3000);
end;
end;
end;
end;
//end;
Procedure Crafting;
Var
x,y: integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
ProgressReport;
begin
If FindObjCustom(x, y, ['raft', 'Rune'], [5591380, 5920344, 5723222, 5525587, 5525843, 5722966, 5723222], 3) then
begin
Writeln('Crafted Air runes')
Getmousepos(x, y)
if IsUpText('raft') then
Case random(11) of
0..10: begin
MMouse(X, Y, 15, 15);
ClickMouse2(True);
end;
// 9..10: begin;
// MMouse(X, Y, 15, 15);
// ClickMouse2(False);
// Waitoption('raft', 3000);
end;
end;
end;
end;
//end;
Procedure Waiting;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
begin
Wait(5500+random(500));
end;
end;
Procedure Leave;
var
X,Y,I: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
Begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
begin
FindColorsTolerance(TPA, 5081226, MSX1, MSY1, MSX2, MSY2, 10); // Thanks to Naums' Tutorial
ATPA := TPAToATPAEx(TPA, 28, 28);
For I := 0 To High(ATPA) Do
Begin
If MiddleTPAEx(ATPA[I], X, Y) Then
begin
MMouse(X, Y, 2, 2);
ClickMouse2(True);
Writeln('Leaving the Mysterious rock formation');
Wait(4000+random(500));
End;
End;
End;
End;
Procedure BackToTheBank;
var
Path: TStringArray;
Alterarea, X, Y, I: Integer;
Begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
AlterArea := DTMFromString('mwQAAAHic42RgYKhgYmCIBuIyIJ4GxDVAnAjEU4G4F4gzgTgcqC4CiK0YIOxiIM4F4mwgdoLiolRNhu7qIDCO9DdjiA40Z8hIUmWwNBVnqCnVAYtzAdURwoxEYDgAAF6XES8=');
if FindDTMRotated(AlterArea, x, y, 0, 0, 700, 500, -Pi, Pi, Pi/30, aFound) then
begin
leave;
end;
begin
Path:= ['685:61:4:3:7:631:39:1:7:673:69:1:7:676:39:1:7:661:77'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(2000+Random(500));
Path:= ['684:52:4:1:7:693:78:5:7:634:38:1:7:643:56:1:7:623:39'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(3000+Random(500));
begin
Resting;
end;
begin
Path:= ['675:49:4:1:7:666:69:1:7:678:90:1:7:642:85:1:7:658:104'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(1000+Random(200));
Path:= ['685:56:4:0:7:650:114:1:7:650:66:1:7:635:22:1:7:618:104'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(3000+Random(500));
end;
FreeDTM(AlterArea);
end;
end;
begin
Smart_Server := 54;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
Loadvars;
ObjSetup;
Declareplayers;
if not (LoggedIn) then
LoginPlayer;
WithdrawTiara1;
Repeat
Repeat
Walkies;
WalkToAlter;
Enter;
Waiting;
Crafting;
Waiting;
Leave;
Waiting;
BackToTheBank;
WithdrawTiara2;
Until(false) or (not LoggedIn);
NextPlayer(Players[CurrentPlayer].Active);
Until(false)
end.