I just want to mention that the script by the looks of it seems unstable.
I hoped others would point things out, but oh well:
You got at least one function that you don't even use and that's for a mining script if I am not mistaken. The CheckAndClick function that is.
You seem to miss quiet a lot begin/end after certain ifs so check them out, if you don't have a begin/end only the first line(or better say, instruction) after an if statement will or won't run depending on the outcome of the statement.
I see you like FindObjCustom, which is bad in my opinion, take a look at other methods, such as TPA/ATPA object finding. I see you already tried dtms for items, you can also try bitmaps, but TPAs should work too. Dtms, I think, should work tho.
I am not sure how you gathered the colors, it's best way to use ACA while changing servers(or whatever to update the colors). There is even a video tutorial by YoHoJo about using it.
To tell the truth at the half of the script I lost patience because of the ugly, horrible standards, so I gave up, I highly suggest you to correct that.
EDIT: Okay, I took the time to fix up standards:
program Deadlys_AirCrafter;
{$i SRL/SRL.simba}
{DEFINE SMART}
//{.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)
{*******************************************************************************
procedure DeclarePlayers;
By: SRL
Description: SRL's Player Setup
*******************************************************************************}
procedure DeclarePlayers;
var
i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := 'Username'; //Player username.
Pass := 'Password'; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
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: RandomAngle(1);
4: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
5: HoverSkill('random', False);
6: RandomMovement;
End;
end;
Procedure WithdrawEss;
var
x, y:integer; //esssdtm
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
SetAngle(SRL_ANGLE_HIGH);
If (FindObjCustom(x,y,['Bank','nk','booth','oot'], [5662832, 5927290, 6323335, 6584191], 2)) Then
Mouse(x, y, 5, 5, False);
Wait(300+random(250));
ChooseOption('Use-quickly');
Wait(2500+random(500));
Wait(300+random(400));
//EsssDTM := DTMFromString('mwQAAAHic42RgYDjAyMBwGIjPA/EhIN4MxDuB+DQQnwXibUCcDVQXwwChK4E4E4jjgTgRiIuAuBSI3ZydgSQTXgw0iioYDgALlQuK');
//if FindDTM(EsssDTM,x, y, 1, 1, 200, 200) then
If (FindObjCustom(x,y,['ithdraw'], [4408134, 5066065, 4802892], 1)) Then
Mouse(x, y, 5, 5, False);
Wait(300+random(250));
ChooseOption('All');
Wait(500+random(250));
//FreeDTM(EsssDTM);
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;
if (Walking(2570554, 15, Point(583, 38))) then
Wait(3000+Random(500));
end;
procedure Resting;
var
X,Y: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
while not RunEnergy(50) do //WTF? This must be wrong ...
If FindObjCustom(x, y, ['Talk', 'alk'], [14464635, 9469760, 4297607], 10) then
begin
Writeln('Listening to the blissful music')
Getmousepos(x, y)
Mouse(x, y, 3, 3, False);
Waitoption('isten', 3000);
Wait(10000+Random(5000));
RunEnergy(70);
end;
end;
procedure WalkToAlter; //Mine, that's rare
var
Path: TStringArray;
I: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
Path:= ['570:108:4:1:7:584:129:1:7:610:111:1:7:602:150:1:7:623:133'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(3000+Random(500));
Resting;
Path:= ['572:124:4:5:7:569:77:1:7:558:100:1:7:579:95:1:7:557:78'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(2500+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(5000+Random(1000));
end;
Procedure Enter;
var
X,Y: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
If FindObjCustom(x, y, ['Ent', 'Enter'], [16631951, 16629135, 16171659, 14925721, 16499851], 30) then
begin
Writeln('Entered into the Mysterious rock formation')
Getmousepos(x, y)
Case random(11) of
0..8: mouse(x, y, 8, 8, true);
9..10:
begin;
Mouse(x, y, 5, 5, False);
Waitoption('nter', 3000);
end;
end;
end;
end;
Procedure Crafting;
Var
x,y: integer;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
If FindObjCustom(x, y, ['raft', 'Rune'], [5591380, 5920344, 5723222, 5525587, 5525843, 5722966, 5723222], 3) then
begin
Writeln('Crafted Air runes')
Getmousepos(x, y)
Case random(11) of
0..8: mouse(x, y, 15, 15, True);
9..10:
begin;
Mouse(x, y, 15, 15, False)
Waitoption('raft', 3000);
end;
end;
end;
end;
Procedure Waiting;
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
Wait(4500+random(600));
end;
Procedure Leave;
var
X,Y: Integer;
Begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
If FindObjCustom(x, y, ['Ent', 'Enter'], [6594721, 4884104], 10) then
begin
Writeln('Leaving the Mysterious rock formation')
Getmousepos(x, y)
Case random(11) of
0..8: mouse(x, y, 2, 2, true);
9..10:
begin;
Mouse(x, y, 2, 2, false)
Waitoption('nter', 3000);
end;
end;
end;
end;
Procedure BackToTheBank;
var
Path: TStringArray;
I: Integer;
Begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
Case Random(5) Of
0..4:
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(2500+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(3500+Random(500));
Resting;
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(5500+Random(500));
end;
end;
end;
begin
//Here should be smart settings if I'm not mistaken.
SetupSRL;
Declareplayers;
Loadvars;
ObjSetup;
Repeat
Withdrawess;
Walkies;
WalkToAlter;
Enter;
Waiting;
Crafting;
Waiting;
Leave;
Waiting;
BackToTheBank;
Until(false)
end.
It's interesting why there is only one space where I used tab, but if you paste this back to simba it should be okay, I tired.
Please note that I didn't changed anything in the program flow, everything should be the same as before, I have only removed unnecessary begins and ends, there were a lot at obscure places. I may have made mistakes of course.
You are using DidRedClick in a bad way, it should be like:
if DidRedClick then
DoStuff;
It's seems a butchered together script if you ask me, which is not bad with proper crediting which you seem to do IF you understand what you do which you don't seem to do. Prove me wrong, I would be happy.
EDIT EDIT: Oh, I think I made it SRL-5 I think, not sure, it compiled for me, but that's all I checked.