SRL Archive - Archive

Reinier - SRL Member Application


Reinier

2012-05-12 13:38:14

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?
Java, C++


Are you a member of any other communities?
RareBot, Sythe, PowerBot, RuneDream.


Tell us about yourself…
From: Reinier
I am from the netherlands, and I am about 5 hours per day on the computer.
I like soccer aswell and I do coding for fun.
I have made 4 private scripts so far and I am working on a fungus collector at the moment.



Please show us one (or multiple) of your scripts.
program BasicRunecrafter;
{$DEFINE SMART}
{$i srl/srl/misc/smart.simba}
{$i srl/srl.simba}
{$i ObjectDTM\ObjDTMInclude.simba}

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := ''; // Username
Pass := ''; // Password
Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Pin := ''; // Leave blank if the player doesn't have a bank pin
Active := True;
end;
end;

Const
ScriptVersion = 'V0.94';
ScriptName = 'BasicRunecrafter';

Var
EssUsed,RunesCrafted,TotalCrafted:Integer;

function CountRunes:Integer;
var
Box: TBox;
begin
Box := InvBox(1);
Result:=GetAmountBox(Box);
end;

procedure Setup; // Setup Smart, SRL and DTM. Logs the player in if he's not.
begin
Smart_Server := 10;
Smart_Members := false;
Smart_Signed := True;

ClearDebug;
SetupSRL;

DeclarePlayers;

if not (LoggedIn) then
LoginPlayer;

FindNormalRandoms;
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
SetRun(True);

ObjDTM_Setup;
ObjDTM_Debug := False;
end;

procedure Antiban;
var
x: Integer;
begin;
if not (LoggedIn) then Exit;
Writeln('Perfoming antiban');
x:= Random(100);
case x of
10, 20, 30, 40: HoverSkill('runecrafting', false);
//20, 25: RandomMovement;
//30, 40: RandomAngle(SRL_ANGLE_HIGH);
50: PickUpMouse;
60: RandomRClick;
70: ExamineInv;
//80: BoredHuman;
end;

case x of
10, 15, 20, 25, 30, 40, 50, 60, 70:
begin
Wait(RandomRange(250, 1000));
GameTab(Tab_Inv);
end;
end;
end;

procedure Banking; // Deposits everything if player has anything in inventory, then withdraws everything from first bank slot.
var
i: Integer;
begin;
if not LoggedIn then Exit;
Antiban;
if OpenBankFast('vwb') then
if InvCount>0 then // If the player's inventory is not empty, deposits all
begin
DepositAll;
end else
FixBank;
for i:=1 to 5 do // Tries to withdraw essences from the first bank slot 5 times before giving up.
begin
if Withdraw(0, 0, 0) then
Break;
if i>=5 then
begin
Writeln('Could not withdraw essences.'+IntToStr(i));
Exit;
end;
end;
end;

procedure Resting; // Checks if rest is needed then listen to the musician if needed.
var
x,y: Integer;
begin
if not loggedin then exit;
FindNormalRandoms;
DidRedClick;

begin
if (Not runenergy(30)) then // If the player doesn't have a minimum of 30 energy, rest at the musician.
begin
writeln('Need rest!')
wait(500+Random(500));
If FindObjCustom(x, y, ['Talk', 'alk'], [14464635, 9469760, 4297607], 10) then
begin
Getmousepos(x, y)
begin;
MMouse(x, y, 3, 3);
ClickMouse2(False);
Waitoption('isten', 3000);
Writeln('Resting...')
Antiban;
Wait(8000+Random(5000));
Antiban;
RestUntil(95)
SetRun(True);
end;
end;
end else;
writeln('Player does not need rest');
end;
end;

procedure WalkToAltar; // Walks to the altar, stops at the musician for rest if needed.
var
Path: TStringArray;
I: Integer;

begin
writeln('Adjusting the view...')
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH)
writeln('Checking if run is on...')
SetRun(True);
Path := ['80:80:6:0:7:83:37:1:7:49:96:10:7:69:53:10:7:116:49:10:7:116:74:10:7:69:70:4:76:51:74:95:103:95:106:50',
'79:109:6:1:7:48:96:10:7:116:74:10:7:116:57:10:7:69:79:0:7:83:37:10:7:69:61:4:72:103:72:112:89:111:85:103',
'45:79:5:1:7:53:66:10:7:73:61:10:7:73:40:10:7:120:53:0:7:53:118:4:40:76:39:85:52:85:51:76',
'43:97:3:0:7:92:118:1:7:57:108:1:7:91:67:4:38:94:49:93:46:104:37:105',
'43:92:4:10:7:36:91:1:7:70:108:1:7:95:91:1:7:107:112:5:45:87:39:88:38:95:49:95:50:87',
'46:112:4:1:7:45:91:1:7:107:99:10:7:73:83:1:7:94:112:4:43:107:42:116:52:115:49:106',
'40:104:6:10:7:109:55:1:7:62:67:1:7:82:63:1:7:58:99:1:7:46:63:1:7:42:83:4:34:100:34:107:46:109:49:100',
'61:100:5:1:7:74:87:1:7:102:115:1:7:86:63:1:7:102:79:3:7:80:111:4:60:91:63:116:67:109:64:88']

WriteLn('Checking if player is in Varrock West Bank...');

if ObjDTM_InArea(Path[0], True) then
begin
WriteLn('Player is in Varrock West Bank.');

if InvCount<28 then // If the player is not full (of essences), start the banking procedure to get essences.
begin
Banking;
end;

for I := 1 to 4 do // Walk to the musician then stops.
begin
ObjDTM_Walk(Path[i], 0, 100, 80, True);
end;

begin
writeln('Checking if player needs rest...')
Resting;
end;

for I := 5 to 7 do // Resume path to the altar.
begin
ObjDTM_Walk(Path[i], 0, 100, 80, True);
end;

if ObjDTM_InArea(Path[High(Path)], True) then
WriteLn('Reached altar.');
end else
begin
WriteLn('Player not in bank');
Exit;
end;
end;

procedure EnterRuins; // Finds and enter the Mysterious Ruins.
var
x,y: Integer;

begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;

if InvCount>1 then // Enter the ruins if the player has not yet crafted any runes (has something other than air runes in inventory).
begin
If FindObjCustom(x, y, ['Ent', 'er My'], [16631951, 16629135, 16171659, 14925721, 16499851], 15) then
begin
Writeln('Entered the ruins.');
Getmousepos(x, y);
if IsUpText('nter') then
begin
MMouse(x, y, 8, 8);
ClickMouse2(True);
Wait(2000+random(500));
end else
begin
Writeln('Could not find the ruins.');
Exit;
end;
end;
end;
end;

function CraftRunes:Boolean;
Var
x,y,Altar,i: integer;

begin
if not loggedin then exit;
FindNormalRandoms;
DidRedClick;

if InvCount>1 then // Crafts runes if the player has not yet done so (has something other than air runes in inventory).
for i:=1 to 5 do // Since this function is a little buggy at the moment, I have it try 5 times.
begin
Altar:=DTMFromString('mrAAAAHic42BgYGhlYmCoA+IaIF4MxEuAOBWI24H4FBA3AtXkAPEMIK4H4sVA3A7EZ4H4AhCnpCQwhAWHM2TmZDDExEQwtHe3MqRmpDCUlOQzNDXVMGgA1UiiYQ0kzEgAwwAAsqoUgA==');
Result:=False;
if i>=5 then
begin
FreeDTM(Altar);
Writeln('Could not find the altar.');
Exit;
end;
if FindDTM(Altar,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Mouse(x,y,2,2,mouse_Left);
Result:=True;
FreeDTM(Altar);
Antiban;
Writeln('Crafted Air runes.');
EssUsed:= EssUsed + 28; // Adds a full inventory of essence to the variable to calculate to total amount of essences used.
Wait(4500+random(500));
RunesCrafted:= CountRunes; // Counts the number of runes in the first inventory slot and put it in RunesCrafted.
TotalCrafted:= TotalCrafted + RunesCrafted; // Takes the Current total of crafted air runes and adds up the amount of runes you just crafted.
RunesCrafted:= 0; // Resets the variable after having used its number.
Exit;
end;
end;
end;

procedure LeaveRuins;
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);
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 ruins.');
Wait(2500+random(500));
End;
End;
End;
End;

procedure WalkToBank; // Running back to the bank after having crafted some runes. Rests if needed.
var
Path: TStringArray;
I: Integer;

begin
writeln('Adjusting the view...')
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH)
writeln('Checking if run is on...')
SetRun(True);
Path := ['80:80:6:1:7:102:55:1:7:98:98:1:7:58:90:1:7:54:38:3:7:108:79:3:7:44:55:11:50:50:51:80:63:93:93:97:114:92:120:80:125:63:122:46:104:35:82:22:58:29',
'116:76:6:1:7:49:102:1:7:46:49:1:7:94:67:1:7:89:111:3:7:36:66:3:7:100:92:4:103:74:109:86:125:79:123:73',
'104:51:5:3:7:63:95:1:7:58:70:1:7:110:104:1:7:86:100:1:7:74:71:4:98:55:98:46:116:46:119:50',
'111:48:5:10:7:114:45:1:7:87:54:1:7:69:115:1:7:66:58:1:7:49:99:4:107:41:104:55:113:51:113:45',
'127:74:5:10:7:86:78:1:7:57:87:1:7:120:96:1:7:107:109:1:7:58:37:4:116:73:118:86:133:79:130:67',
'106:56:5:10:7:40:83:1:7:74:100:1:7:61:112:1:7:90:120:1:7:73:125:4:99:58:112:52:112:63:97:62',
'132:76:4:1:7:109:62:1:7:74:104:0:7:108:114:1:7:86:126:4:122:73:122:83:140:80:137:71',
'90:50:5:0:7:57:118:10:7:77:49:10:7:77:40:10:7:77:31:1:7:57:66:4:87:49:100:47:100:60:87:58']

WriteLn('Checking if player is outside Air Altar...');

if ObjDTM_InArea(Path[0], True) then
begin
WriteLn('Player is outside Air Altar.');

for I := 1 to 3 do
begin
ObjDTM_Walk(Path[i], 0, 100, 80, True);
end;

begin
writeln('Checking if player needs rest...') // Stops on the way back too except it's after 3 steps this time.
Resting;
end;

for I := 4 to 7 do
begin
ObjDTM_Walk(Path[i], 0, 100, 80, True);
end;

if ObjDTM_InArea(Path[High(Path)], True) then
WriteLn('Reached bank.');
end else
begin
WriteLn('Player not outside Air Altar.');
Exit;
end;
end;

procedure ProgressReport;
var
exp:Integer;
begin
exp:=EssUsed*5;
ClearDebug;
Writeln('/-------------------------------------------------------------\');
Writeln('|-------------------------------------------------------------|');
Writeln(PadR('| BasicRunecrafter', 62) + '|');
Writeln(PadR('| Version ' + ScriptVersion, 62) + '|');
Writeln('|-------------------------------------------------------------|');
Writeln(PadR('| Time Running : ' +MsToTime(GetTimeRunning, Time_Abbrev), 62) + '|');
Writeln(PadR('| Airs Made: ' +IntToStr(TotalCrafted), 62) + '|');
Writeln(PadR('| Exp Gained: '+IntToStr(exp), 62) + '|');
Writeln(PadR('| Exp/Hour: '+IntToStr((exp*60/((GetTimeRunning/60000)+1))), 62) + '|');
Writeln(PadR('| ', 62) + '|');
Writeln('|-------------------------------------------------------------|');
Writeln('\-------------------------------------------------------------/');
//Stats_IncVariable('Crafted', TotalCrafted + 'Air Runes);
//Stats_IncVariable('Runecrafting EXP (Gained)',exp);
//Stats_Commit;
end;

begin // Begins the procedures and repeats.
Setup;
DeclarePlayers;
repeat
WalkToAltar;
EnterRuins;
CraftRunes;
ProgressReport;
LeaveRuins;
WalkToBank;
until(false)
ProgressReport;
FreeSRL;
end.

Gucci

2012-05-12 14:01:58

Script is fairly simple, the most complicated function in your script is the walking. You might want to look into TPA's, DTM's and other more complicated functions, as only using FindObj won't be nearly enough to achieve member status. Also what's more key than the script you apply with is your activity although you registered over a year ago you only have 82 posts and your activity is very low. I will hold my vote

Standards are good SPACING wise but there are mistakes like in this procedure


procedure LeaveRuins; 
var
X,Y,I: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;

Begin // Capital B
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;

begin // Lowercase B
FindColorsTolerance(TPA, 5081226, MSX1, MSY1, MSX2, MSY2, 10);
ATPA := TPAToATPAEx(TPA, 28, 28);
For I := 0 To High(ATPA) Do
Begin // Capital again
If MiddleTPAEx(ATPA[I], X, Y) Then
begin
MMouse(X, Y, 2, 2);
ClickMouse2(True);
Writeln('Leaving the ruins.');
Wait(2500+random(500));
End;
End;
End;
End;

You want to keep the casing constant throughout, I was also docked on this in my application, don't get discouraged though I got in on my second try so try to improve and learn more complicated functions and of course be more active and I'm sure you'll get in

[XoL]

2012-05-12 14:18:35

No from me. Sorry. As said above the script is little too simple try to follow Gucci's advise also activity is key, SRL members is a community rank We can't serve the community if we are not active!

Try to follow this guide to become a SRL member:
http://villavu.com/forum/showthread.php?t=74195

For more advanced scripting I would suggest reading these guides:
http://villavu.com/forum/forumdisplay.php?f=96

Also one thing I really think is important is being community focused, you have 81 posts and have been here since December! Posting actively not only shows you genuinely care for the community it also helps your chances of getting accepted.

These guides can help you with that:
http://villavu.com/forum/showthread.php?t=72050
http://villavu.com/forum/showthread.php?t=66084

Anyway, sorry for the roughness. Good luck.

Kyle Undefined

2012-05-12 16:04:56

What's the purpose of this?


//Stats_IncVariable('Crafted', TotalCrafted + 'Air Runes);
//Stats_IncVariable('Runecrafting EXP (Gained)',exp);
//Stats_Commit;

It's either you have stats or you don't. Did you copy the report from another script?

Nava2

2012-05-29 23:38:57

Hi there,

The community has spoken, and you will not be getting into members. Your script looks like you put a lot of work into it, keep it up. I look forward to seeing you apply again.