SRL Archive - Archive

SeanStar - SRL Member Application


SeanStar

2013-03-31 09:16:25

How Long have You Played Runescape?
7 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
-


What is your general programming knowledge?
C, C++, Java, Python, Perl, PHP, etc.


Are you a member of any other communities?
-


Tell us about yourself…
From: SeanStar
17 year old programmer/web developer. I've contributed slightly towards some of the SRL-OSR repository, and even made my own SPS to go with it. Most of the scripts I develop are goldfarming related and thus are not released in the public sections (Don't want to ruin prices for myself)



Please show us one (or multiple) of your scripts.
A script I made especially for this application: A simple lumbridge copper/tin miner, bronze bar smelter, and banker. The script passed BobboHobbo's SRL Member Decider.

program BronzeBarMaker;
{$DEFINE SMART8}
{$i SRL/Srl.simba}
{$i SPS/sps.simba}

Var
Lumbridge, LumbridgeLoadstone: Integer;
PathToMine, PathToFurnace: TPointArray;

Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := ''; // ***RS Username***
Pass := ''; // ***RS Pass***
Pin := ''; // ***RS Pin***
BoxRewards := ['Coins', 'oins'];
Active := True;
End;
End;
function FindRock(var fx, fy, rt: Integer): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
tmpCTS, I, RTColor, RTTol: Integer;
P: TPoint;
RTMod1, RTMod2: Extended;
Begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
Case rt Of //0 is copper, 1 is tin
0:
Begin
RTMod1 := 0.03;
RTMod2 := 1.56;
RTColor := 6132201;
RTTol := 14;
End;
1:
Begin
RTMod1 := 0.08;
RTMod2 := 2.21;
RTColor := 12501219;
RTTol := 16;
End;
End;

SetColorSpeed2Modifiers(RTMod1, RTMod2);
If Not(FindColorsTolerance(TPA, RTColor, MSX1, MSY1, MSX2, MSY2, RTTol)) Then
Begin
Result := False;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
End;
SortTPAFrom(TPA, Point(MSCX, MSCY));
ATPA := TPAtoATPAEx(TPA, 10, 10);
For I := 0 To High(ATPA) Do
Begin
If (Length(ATPA[I]) < 15) Then Continue;
P := MiddleTPA(ATPA[I]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (WaitUpTextMulti(['ine','ore','ocks'], 500)) then //Find uptext of rocks
Begin;
Result := True;
Break;
End;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
GetMousePos(fx, fy);
End;

Procedure CreateBitmaps;
Begin
LumbridgeLoadstone := BitmapFromString(14, 18, 'meJxtkSFIA2EYhrPNYDAaZK4MBB' +
'2ICxNlXlCMOhhTWPCuLgriiaAzWDWclk1Y0CCyMEQQhoLK4iwuLIh' +
'FWJlxGHzkleNzJzwc733f8//f/f8FB8XAUD0pBftFqPg5cbi1vreR' +
'AgJUdnO/+Lnt5aTrxD0nrqcCIO8Usn4hS7COGzG9fMZdSa2lY8DrQ' +
'mz44aoMBO/vKjmCbvW41O1+fPX79dMjyQNOqHVeX9DEzfU5xVBYmh' +
'4DKpzr/a3T++zhEHiSJcuZn/rROBG70QI04BuAwCAEaZyo1WyohU9' +
'ut56B3G49ERiHtpqeoWI1S/P+9vGuBm4+w4UwURp1ixxo1C+5Cn0V' +
'U1SMOsBuHE0Tw9aAI02gqRJ1rAa2bmdZ51+fvDk3y4VclM+sz4msT' +
'wtnYmQInGSCLrBEwa7i5+JMjo8CYTGZ4AdJg28v5q6s');
End;
Procedure CreateDTMs;
Begin
Lumbridge := DTMFromString('mggAAAHicY2NgYChmYmCoZoLQiUBcC8QTgLidAYJ7gTgbiCOh/P///zP4h3iDsWGKKBg7pkgz8APllLFgRhwYAgBjNw15');
End;

Procedure FreeImages;
Begin
FreeBitmap(LumbridgeLoadstone);
FreeDTM(Lumbridge);
End;

Procedure Setup;
Begin
ClearDebug;
{$IFDEF SIMBAMAJOR980}
SMART_SERVER := 10;
SMART_MEMBERS := TRUE;
SMART_SIGNED := TRUE;
SMART_SUPERDETAIL := FALSE;
{$ELSE}
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}
SetupSRL;
DeclarePlayers;
If Not LoggedIn Then
LoginPlayer;
CreateBitmaps;
CreateDTMs;
AddOnTerminate('FreeImages'); //Free bitmaps/dtms on terminate.
SPS_Setup(RUNESCAPE_SURFACE, ['10_10', '10_8', '10_9', '11_10', '11_8', '11_9']);
MakeCompass('N');
End;

Procedure TeleportLumbridge;
Var
X,Y,T: Integer;
Angle: Extended;
Begin
GameTab(tab_Magic);
If (CountColorTolerance(3815994, 650, 210, 655, 215, 5) < 20) Then
Mouse(665,225,12,12,mouse_Left); //If we're not on mage tab, select it.
If (CountColorTolerance(16695068, 650, 245, 680, 247, 5) < 20) Then
Mouse(665,260,12,12,mouse_Left); //If we're not on teleports tab, select it.
Wait(RandomRange(350,700));
Mouse(575,305,12,12,True); //Click loadstone teleport button
MarkTime(T);
Repeat
Wait(RandomRange(350,700)); //Wait until we find the Lumbridge teleport from Loadstone Interface.
Until FindBitmapSpiralTolerance(LumbridgeLoadstone, X, Y, MSX1, MSY1, MSX2, MSY2, 10) or (TimeFromMark(T) > 5000);
If (TimeFromMark(T) > 5000) Then //If it took longer than 5 seconds for the interface to pop up
Begin
If Not LoggedIn Then //Check if we're logged in
LoginPlayer;
TeleportLumbridge; //Try to teleport again
Exit;
End;
Mouse(X+7,Y+9,10,10,mouse_Left); //Click Lumbridge teleport from Loadstone Interface
MarkTime(T);
Repeat
Wait(1000);
Until FindDTMRotated(Lumbridge, X, Y, MMX1, MMY1, MMX2, MMY2, -Radians(35), Radians(35), 0.05, Angle) or (TimeFromMark(T) > 30000);
If (TimeFromMark(T) > 30000) Then //Did it take longer than 30 seconds to arrive at our location?
Begin
If Not LoggedIn Then //Check if we're logged in
LoginPlayer;
TeleportLumbridge; //Try to teleport again
Exit;
End Else
Begin
Wait(RandomRange(2350,2700));
End;
End;
Procedure WalkToMine;
Var
I: Integer;
Begin
PathToMine := [Point(4742, 3797), Point(4771, 3853), Point(4721, 4001)];
For I:=0 To High(PathToMine) Do
Begin
SPS_BlindWalk(PathToMine[I]); //Loop through path to mine using blindwalk
End;
End;
Procedure WalkToFurnace;
Var
I: Integer;
Begin
PathToFurnace := [Point(4711, 3675), Point(4702, 3642), Point(4700, 3589)];
For I:=0 To High(PathToFurnace) Do
Begin
SPS_BlindWalk(PathToFurnace[I]); //Loop through path to furnace using blindwalk
End;
End;
Procedure WalkToBank;
Var
X,Y: Integer;
Angle: Extended;
Begin
Wait(RandomRange(1500,2500));
RadialWalkTolerance(8095110,260,280,74,5,5,35); //Walk to castle
FFlag(0);
RadialWalkTolerance(667482,260,200,70,5,5,20); //Walk to stairs
FFlag(0);
//If FindDTMRotated(CastleStairs, X, Y, MMX1, MMY1, MMX2, MMY2, -Radians(35), Radians(35), 0.05, Angle) Then
// Mouse(X,Y,2,2,mouse_Left);
FFlag(0);
Wait(RandomRange(600,800));
If FindObjCustom(X,Y,['limb','tair','case'],[9541271],8) Then //Find Staircase
Begin
ClickMouse2(True);
End;
FFlag(0);
Wait(RandomRange(1500,2500));
If FindObjCustom(X,Y,['limb','tair','case'],[9541271],8) Then //Find Staircase
Begin
ClickMouse2(False);
ChooseOptionMulti(['limb-up','up']); //Select to climb up the staircase.
End Else
Begin
If Not LoggedIn Then
LoginPlayer;
WalkToBank;
Exit;
End;
FFlag(0);
Wait(RandomRange(1500,2500));
If (FindSymbol(X,Y,'Bank')) Then //Click near bank symbol
Mouse(X,Y,5,5,mouse_Left)
Else
Begin
If Not LoggedIn Then //Check if logged in
LoginPlayer;
WalkToBank;
Exit;
End;
FFlag(0);
Wait(RandomRange(900,1500));
End;
Procedure MineOres;
Var
X,Y,T,OreCount,RT: Integer;
Begin
Repeat
If (InvCount >= 14) Then
RT := 1
Else
RT := 0;
If FindRock(X,Y,RT) Then
Begin
OreCount := InvCount;
ClickMouse2(True);
FFlag(0);
MarkTime(T);
Repeat
Wait(RandomRange(500,800));
Until (OreCount < InvCount) or (TimeFromMark(T) > 15000); //Wait until ore mined or timeout
Wait(RandomRange(500,800));
End;
If Not LoggedIn Then
LoginPlayer;
Until (InvFull) //Repeat until inventory is full
End;
Procedure SmeltBars;
Var
X,Y,T: Integer;
Begin
FFlag(0);
If FindObj(X,Y,'melt',2043102,10) Then //Find furnace
Begin
ClickMouse2(True);
FFlag(0);
MarkTime(T);
Repeat
Wait(RandomRange(500,700)); //Wait until Smithing Interface is up
Until (CountColorTolerance(921102, 400, 50, 450, 85, 5) > 1250) or (TimeFromMark(T) > 5000);
If (TimeFromMark(T) > 5000) Then //If it takes longer than 5 seconds, try again.
Begin
If Not LoggedIn Then
LoginPlayer;
SmeltBars;
Exit;
End;
If (CountColorTolerance(1290732, 30, 84, 60, 86, 15) < 10) Then
Mouse(45,100,12,12,mouse_Left); //If bronze bars not selected, select them
Wait(RandomRange(500,1500));
MouseBox(260,305,480,320,mouse_Left); //Click blue "Smith" button on Smithing Interface
Wait(RandomRange(500,1500));
Repeat
Wait(RandomRange(500,700));
Until (CountColorTolerance(263402, 220, 175, 300, 185, 15) < 400); //Wait until red cancel box is gone.
End Else
Begin
If Not LoggedIn Then
LoginPlayer;
TeleportLumbridge;
WalkToFurnace;
SmeltBars;
Exit;
End;
End;
Procedure BankBars;
Var
X,Y: Integer;
Begin
FindNormalRandoms;
Repeat
If FindObj(X,Y,'ooth',8817040,10) Then //Finding bank booth
Begin
Mouse(X,Y,3,3,True);
FFlag(0);
Wait(RandomRange(700,1200));
End;
Until BankScreen or PinScreen;
If PinScreen Then //If pinscreen, insert pin
InPin(Players[0].Pin);
If BankScreen Then //If bankscreen, deposit entire inventory of bars
Begin
QuickDeposit(SRL_DEPOSIT_ALL);
CloseBank;
End;
End;

Procedure Calibrate;
Begin
MakeCompass('N');
SetAngle(0);
End;

Procedure Antiban;
Begin
FindNormalRandoms;
Case Random(90) Of
1,2,3,4,5: Begin PickUpMouse; End;
6: Begin BoredHuman; Calibrate; End;
7: Begin RandomAngle(1); Calibrate; End;
8: Begin Wait(1000+Random(2500)); End;
9: Begin Wait(4000+Random(1000)); End;
10,11: Begin RandomMovement; Calibrate; End;
12,13,14: Begin HoverSkill('Mining', False); Gametab(tab_inv); End;
15,16,17,18: Begin HoverSkill('Smithing', False); Gametab(tab_inv); End;
End;
End;
Begin
Setup;
While (True) Do
Begin
TeleportLumbridge;
Antiban;
WalkToMine;
Antiban;
MineOres;
Antiban;
TeleportLumbridge;
Antiban;
WalkToFurnace;
Antiban;
SmeltBars;
Antiban;
TeleportLumbridge;
Antiban;
WalkToBank;
Antiban;
BankBars;
Antiban;
End;
End.

rj

2013-03-31 11:17:42

I beleive people are looking for custom TPA functions

and I am 80% sure this:

SetColorSpeed2Modifiers(RTMod1, RTMod2);
If Not(FindColorsTolerance(arP, RTColor, MSX1, MSY1, MSX2, MSY2, RTTol)) Then
Begin
Result := False;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
End;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
For I:=0 To arL Do
Begin
ColorToXYZ(arC[I], X, Y, Z);
If ((X >= 40.24) and (X <= 61.59) and (Y >= 32.27) and (Y <= 55.44) and (Z >= 9.56) and (Z <= 32.28)) or
((X >= 38.14) and (X <= 88.15) and (Y >= 39.37) and (Y <= 90.76) and (Z >= 41.64) and (Z <= 96.09)) Then
Begin
For J:=0 To arL2 Do
Begin
If (arUC[I] = arC[J]) Then
Begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[J];
End;
End;
End;
End;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
For I := 0 To arL Do
Begin
If (Length(ararP[i]) < 5) Then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(600 + Random(100));
if (IsUpTextMultiCustom(['ine','ore','ocks'])) then //Find uptext of rocks
Begin;
Result := True;
Break;
End;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
If (I = arL + 1) Then
Begin
Result := False;
Exit;
End;
GetMousePos(fx, fy);
End;

Is ACA generated, GL on your app correct me if I'm wrong!

SeanStar

2013-03-31 13:17:57

From: RJJ95
I beleive people are looking for custom TPA functions

and I am 80% sure this:

SetColorSpeed2Modifiers(RTMod1, RTMod2);
If Not(FindColorsTolerance(arP, RTColor, MSX1, MSY1, MSX2, MSY2, RTTol)) Then
Begin
Result := False;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
End;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
For I:=0 To arL Do
Begin
ColorToXYZ(arC[I], X, Y, Z);
If ((X >= 40.24) and (X <= 61.59) and (Y >= 32.27) and (Y <= 55.44) and (Z >= 9.56) and (Z <= 32.28)) or
((X >= 38.14) and (X <= 88.15) and (Y >= 39.37) and (Y <= 90.76) and (Z >= 41.64) and (Z <= 96.09)) Then
Begin
For J:=0 To arL2 Do
Begin
If (arUC[I] = arC[J]) Then
Begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[J];
End;
End;
End;
End;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);
For I := 0 To arL Do
Begin
If (Length(ararP[i]) < 5) Then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(600 + Random(100));
if (IsUpTextMultiCustom(['ine','ore','ocks'])) then //Find uptext of rocks
Begin;
Result := True;
Break;
End;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
If (I = arL + 1) Then
Begin
Result := False;
Exit;
End;
GetMousePos(fx, fy);
End;

Is ACA generated, GL on your app correct me if I'm wrong!

Ammended. Please check out the new color function. Nice and simple.

Ashaman88

2013-03-31 23:23:08

Yes

SeanStar

2013-04-01 00:18:10

From: Ashaman88
Yes


Thank you Ashaman. If there is anything I could improve on, let me know! At the moment I'm looking into Brandon's OpenGL :)

Sin

2013-04-01 14:38:20

I voted no because of your activity :/
We've had too many members who got the rank, then left.

The Killer

2013-04-01 14:40:22

Yes. I'v seen you around, was thinking about recommending you for jrs.

Kevin

2013-04-01 14:58:19

From: Sin
I voted no because of your activity :/
We've had too many members who got the rank, then left.


Agreeing with this. As much as Member's may be about scripting ability, it is also about the community and how you can improve Villavu's image as a good representative by being a member. There is a guide to being a member here: http://villavu.com/forum/showthread.php?t=74195.
The first two things Daniel points out are:
I am nice and helpful around the forums?
I have got to know many people from the community?

Since I haven't seen a huge representation from you on that front, I will vote no.

However, concerning your script itself, we tend to like people who are very familiar with the SRL library itself:
I notice you click a lot of static locations in order to pass through the menus instead of bitmap or dtm verification. Also, we have quite efficient methods already to simplify a lot of your work, such as:

GameTab(tab_Magic);
If (CountColorTolerance(3815994, 650, 210, 655, 215, 5) < 20) Then
Mouse(665,225,12,12,mouse_Left); //If we're not on mage tab, select it.
If (CountColorTolerance(16695068, 650, 245, 680, 247, 5) < 20) Then
Mouse(665,260,12,12,mouse_Left); //If we're not on teleports tab, select it.
Wait(RandomRange(350,700));
Mouse(575,305,12,12,True); //Click loadstone teleport button
MarkTime(T);
Repeat
Wait(RandomRange(350,700)); //Wait until we find the Lumbridge teleport from Loadstone Interface.
Until FindBitmapSpiralTolerance(LumbridgeLoadstone, X, Y, MSX1, MSY1, MSX2, MSY2, 10) or (TimeFromMark(T) > 5000);
can be written as simple as:
LodestoneTeleport('Lumbridge');

Although, don't take all my comments as negative, I love how you use Radial Walking, SPS, and symbol walking (very good proof of knowledge). However, you use each one for a separate purpose, and don't have use them as failsafes over each other in case any issues arise. Don't take this as insulting by any means, just friendly advice for improvements! :)

SeanStar

2013-04-01 16:33:19

From: Sin
I voted no because of your activity :/
We've had too many members who got the rank, then left.

My post count may not be incredibly high, but I've been online almost every day since I joined.
(Which may not be immediately apparent unless you thoroughly delved into my history)

See below:

From: nivek1989
Agreeing with this. As much as Member's may be about scripting ability, it is also about the community and how you can improve Villavu's image as a good representative by being a member. There is a guide to being a member here: http://villavu.com/forum/showthread.php?t=74195.

I realize that I probably wouldn't represent very well as far as the way my activity looks (I don't often comment or reply to threads other than my own)
I guess I'll take that at face value and try to improve on it.

Kevin

2013-04-01 16:40:45

From: SeanStar
My post count may not be incredibly high, but I've been online almost every day since I joined.
(Which may not be immediately apparent unless you thoroughly delved into my history)

See below:


I realize that I probably wouldn't represent very well as far as the way my activity looks (I don't often comment or reply to threads other than my own)
I guess I'll take that at face value and try to improve on it.


I understand the feeling of feeling like you're more active than other people can see. I read most posts on a daily basis without posting myself for quite a while and my own first app was eventually declined for roughly the same reason. However, don't be discouraged! As you notice a few help topics here and there that aren't yet responded to, feel free to offer some help. And even if you see someone being helped, feel free to offer differing opinions (don't be intimidated to disagree with a member, we aren't always right)!

John

2013-04-01 17:44:16

Sorry mate but you need to be more active even though I would accept your script.

Sjoe

2013-04-01 17:45:41

From: John
Sorry mate but you need to be more active even though I would accept your script.


He's pretty active!

Ashaman88

2013-04-01 20:13:12

From: Sjoekeloe
He's pretty active!


Agreed search threads created by him as well as posts

SeanStar

2013-04-02 00:37:43

From: nivek1989
I understand the feeling of feeling like you're more active than other people can see. I read most posts on a daily basis without posting myself for quite a while and my own first app was eventually declined for roughly the same reason. However, don't be discouraged! As you notice a few help topics here and there that aren't yet responded to, feel free to offer some help. And even if you see someone being helped, feel free to offer differing opinions (don't be intimidated to disagree with a member, we aren't always right)!

I did one better: http://villavu.com/forum/showthread.php?t=100543

Made a tutorial for help with installing SRL-OSR as most of the people needing help right now have had issues with that. :D

Jakkle

2013-04-02 09:14:50

Hi SeanStar, I've seen a couple of things that could be problematic in your script.
One thing that is very important tho, is not to have an infinite loop. From what I can see there is one in your banking procedure.

This is your code.
Procedure BankBars;
Var
X,Y: Integer;
Begin
FindNormalRandoms;
Repeat
If FindObj(X,Y,'ooth',8817040,10) Then //Finding bank booth
Begin
Mouse(X,Y,3,3,True);
FFlag(0);
Wait(RandomRange(700,1200));
End;
Until BankScreen or PinScreen;
If PinScreen Then //If pinscreen, insert pin
InPin(Players[0].Pin);
If BankScreen Then //If bankscreen, deposit entire inventory of bars
Begin
QuickDeposit(SRL_DEPOSIT_ALL);
CloseBank;
End;
End;
It will repeat until bankscreen or pinscreen but what if niether of the screens come up ? (Failed to walk to or click on the bank)
Here is the same code but with a fail safe added.
Procedure BankBars;
Var
X,Y,Tries: Integer;
Begin
Tries := 0;
FindNormalRandoms;
Repeat
If FindObj(X,Y,'ooth',8817040,10) Then //Finding bank booth
Begin
Mouse(X,Y,3,3,True);
FFlag(0);
Wait(RandomRange(700,1200));
End;
Inc(Tries);
Until BankScreen or PinScreen or Tries > 5;
if Tries > 5 then
begin
Writeln('Could not find the bank, what shall we do ?');
Exit;
end;
If PinScreen Then //If pinscreen, insert pin
InPin(Players[0].Pin);
If BankScreen Then //If bankscreen, deposit entire inventory of bars
Begin
QuickDeposit(SRL_DEPOSIT_ALL);
CloseBank;
End;
End;

There are other places I've seen where you could put more fail safes to make sure it does what it needs to do and is where it's meant to be.
I hope you get what I'm showing you and that you look to see what else you could improve.

For a yes vote from me tho there has to be these simple fail safes in your scripts. I think the effort is there and you know what your doing to a certain extent.
I'm sorry to say it's a no from me this time. Good luck with your app :)

SeanStar

2013-04-02 16:56:09

From: Jakkle
Hi SeanStar, I've seen a couple of things that could be problematic in your script.
One thing that is very important tho, is not to have an infinite loop. From what I can see there is one in your banking procedure.

This is your code.
Procedure BankBars;
Var
X,Y: Integer;
Begin
FindNormalRandoms;
Repeat
If FindObj(X,Y,'ooth',8817040,10) Then //Finding bank booth
Begin
Mouse(X,Y,3,3,True);
FFlag(0);
Wait(RandomRange(700,1200));
End;
Until BankScreen or PinScreen;
If PinScreen Then //If pinscreen, insert pin
InPin(Players[0].Pin);
If BankScreen Then //If bankscreen, deposit entire inventory of bars
Begin
QuickDeposit(SRL_DEPOSIT_ALL);
CloseBank;
End;
End;
It will repeat until bankscreen or pinscreen but what if niether of the screens come up ? (Failed to walk to or click on the bank)
Here is the same code but with a fail safe added.
Procedure BankBars;
Var
X,Y,Tries: Integer;
Begin
Tries := 0;
FindNormalRandoms;
Repeat
If FindObj(X,Y,'ooth',8817040,10) Then //Finding bank booth
Begin
Mouse(X,Y,3,3,True);
FFlag(0);
Wait(RandomRange(700,1200));
End;
Inc(Tries);
Until BankScreen or PinScreen or Tries > 5;
if Tries > 5 then
begin
Writeln('Could not find the bank, what shall we do ?');
Exit;
end;
If PinScreen Then //If pinscreen, insert pin
InPin(Players[0].Pin);
If BankScreen Then //If bankscreen, deposit entire inventory of bars
Begin
QuickDeposit(SRL_DEPOSIT_ALL);
CloseBank;
End;
End;

There are other places I've seen where you could put more fail safes to make sure it does what it needs to do and is where it's meant to be.
I hope you get what I'm showing you and that you look to see what else you could improve.

For a yes vote from me tho there has to be these simple fail safes in your scripts. I think the effort is there and you know what your doing to a certain extent.
I'm sorry to say it's a no from me this time. Good luck with your app :)

This frustrates the hell out of me considering I break out of loops everywhere else in the script. For whatever reason I overlooked the banking procedure..

I know the script doesn't have a million fail-safes built into it, but it was something I made purely for this application to show somewhat what I know. (My main goal wasn't as much functionality as it was proof of concept) In my previous applications, I had some scripts that showed functionality, but lacked in this proof of concept.

Honestly I can say this response hurts more than it helps. Thank you though.

Rich

2013-04-10 14:38:16

The script is far too simple for me, and your activity isn't exactly booming either. No from me I'm afraid.

Hobbit

2013-04-20 17:44:44

Didn't quite make it this time. Take the suggestions given to you above and feel free to reapply in 2 weeks time. :)

Cheers
Hobbit