Simba Code:
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.