SRL Archive - Archive

Yanhua - SRL Member Application


Yanhua

2011-12-18 23:55:15

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
I'm taking Computer Sciences at school, so I know am pretty familiar with basic programming theory along with syntax.

I know basic elements of web design and HTML.

Also have very basic knowledge of Object Oriented Languages such as Java.

I'm also taking Control Technology (Electronics) at school, we do a lot of programming there for the PicAxe Microcontroller. The language is called PBasic and the editor is called PicAxe Programming Editer.

And of course, just recently I have taught myself a firm knowledge of Pascal and the syntax and structure of it.

My standards for Simba may not be perfect yet as I'm used quite used to programs such as eclipse which does it automatically.
I'll learn fast though.


Are you a member of any other communities?
No


Tell us about yourself…
From: Yanhua
I live in Auckland, New Zealand.

Currently a student.

My interests: Computers, games, science, electronics, swimming, badminton.

I'm mainly active during weekends as I need to focus on school work during the week.

Lastly, I feel that the community here is a very mature one; not like over at PB or RSBuddy.

I would very much like to join the community and become an SRL Member.

Thanks for your time and reading through all this. I appreciate it.



Please show us one (or multiple) of your scripts.
This is a Swamp Toad collector that I've created in a day due to seeing it requested in "Script Requests" section.

The only function that may need a bit of tweaking is the ClickToad function.

It's a bit slow because the colours of toads and the grass around are very, very similar.

As the toads are extremmly small I cannot use bitmaps or DTMs, I'm really stuck with just colour.

Apart from that, and occasional SPS stuff ups, its pretty much 100% flawless. :)


program SwampToad;

{$DEFINE SMART}
{$i SRL\SRL.scar}
{$i sps/sps.simba}

Const
NumbOfPlayers = 1; //How many players are you using
StartPlayer = 0; //Player to start botting with

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 := ''; //Player username.
Pass := ''; //Player password.
Active := True;
end;

end;

Procedure Start;
Begin
SetUpSRL;
MouseSpeed := 12;
ActivateClient;
DeclarePlayers;
If (Not LoggedIn) then
LoginPlayer;
SPS_Setup(RUNESCAPE_SURFACE, ['4_7', '3_7', '3_6']);
SetAngle(True);
MakeCompass('n');
End;


procedure Antiban;
begin
If Not FindNormalRandoms Then
Begin
if not (LoggedIn) then
Exit;
begin
case Random(50) of
10: RandomRClick;
20: PickUpMouse;
30: RandomMovement;
40: BoredHuman;
49: ExamineInv;
end;
end;
End;
end;


Function ToSwamp : Boolean;
var
Path:TPointArray;
Begin
If Not FindNormalRandoms Then
Begin
Path := [Point(1621, 2898), Point(1600, 2852), Point(1569, 2809), Point(1554, 2763), Point(1548, 2712), Point(1539, 2658), Point(1522, 2614)];
WriteLn('Walking to the swamp.');
If SPS_WalkPath(Path) Then
writeln('We have made it to the swamp.');
result := True;
End;
End;

Procedure MoveToCenter;
Var
Path:TPointArray;
Begin
Writeln('Moving to center');
Path := [Point(1510, 2589)];
SPS_WalkPath(Path);
End;

Function ClickToad : Boolean;
Var
X, Y:Integer;
begin;
If Not FindNormalRandoms Then
Begin
If (Not InvFull) Then

Repeat

Begin
If FindObjCustom(X, Y, ['wam'], [2058558, 1991489, 1261353, 2257226, 2257211, 1261867, 1128998, 1925426, 1991495, 2390351, 2323781, 996383], 2) Then
Begin
AntiBan;
MMouse(X, Y, 1, 1);
Wait(400+random(100));
Mouse(X, Y, 0, 0, True);
Wait(600+RandomRange(200,300));
FFlag(0);
Result := True;
End;
End;
Until (InvFull);
End;
End;
Function ToBank : Boolean;
Var
Path:TPointArray;
Begin
If Not FindNormalRandoms Then
Begin
Path := [Point(1526, 2613), Point(1538, 2666), Point(1550, 2725), Point(1570, 2779), Point(1592, 2833), Point(1610, 2868), Point(1622, 2894)];
If SPS_WalkPath(Path) Then
begin
WriteLn('We have arrived at the bank.')
Result := True;
End;
end;
End;

Function AtBank : Boolean;
Var
AtBankDTM, X, Y:Integer;
Begin
If Not FindNormalRandoms Then
begin
AtBankDTM := DTMFromString('mggAAAHicY2NgYJBjgAAQbQLEzEBsA8TyQCwNlZMBYkcojnNVYGBjYsXAXAzYASMODAEA6p8Cog==');
If FindDTM(AtBankDTM, X, Y, MMX1, MMY1, MMX2, MMY2) Then
Result := True;
end;

End;

Function Bank : Boolean;
Var
X, Y, A, B, C, D:Integer;

Begin
If Not FindNormalRandoms Then
Begin
A := 626+Random(3);
B := 53+Random(3);
MakeCompass('s');
SetAngle(False);
If FindObjCustom(X, Y, ['airca'], [528920, 396817, 462612, 330510, 529176, 727586], 3) Then
Begin
MMouse(X, Y, 5, 5);
Wait(500+RandomRange(200,300));
Mouse(X, Y, 0, 0, True);
Wait(3500+RandomRange(500,800));
If AtBank Then
begin
MMouse(A, B, 0, 0);
Wait(200+Randomrange(20,50));
Mouse(A, B, 0, 0, True);
Wait(2500+Randomrange(200,300));
writeln('Looking for the bank');
SetAngle(True);
If FindObjCustom(C, D, ['anker'], [8435943, 8762864, 8367589, 9092602], 5) Then
begin;
MMouse(C, D, 3, 3);
Wait(200+RandomRange(50,100));
Mouse(C, D, 0, 0, False);
Wait(200+Randomrange(100,150));
ChooseOption('ank Gno');
Wait(800+RandomRange(500,700));
DepositAll;
Wait(500+randomrange(200,300));
CloseBank;
writeln('Successfully Banked all toads!')
Result := True;
End;
End;
End;
End;



Function ExitBank : Boolean;
Var
X, Y, A, B:Integer;
Begin
If Not FindNormalRandoms Then
Begin
X := 630+Randomrange(2, 5);
Y := 20+RandomRange(2, 5);
SetAngle(True);
MakeCompass('n');
MMouse(X, Y, 0, 0);
Wait(100+randomrange(20,30));
Mouse(X, Y, 0, 0, True);
Wait(3500+randomrange(300,500));
If FindObjCustom(A, B, ['airca'], [667723, 401458, 400943], 3) Then
Begin
repeat
MMouse(A, B, 2, 2)
Wait(100+randomrange(10,20));
Mouse(A, B, 0, 0, False);
Wait(100+Randomrange(200,400));
ChooseOption('airca');
writeln('We have gone down the stairs of the bank!');
until(Not AtBank);
End;
If AtBank Then
Result := True;
End;
End;




begin
Start;
repeat
If InvFull Then
Begin
ToBank;
Bank;
ExitBank;
end;
ToSwamp;
ClickToad;
until(false)

end.

This is a warriors guild shot put token collector. It gets tokens for you to swap for time in the defender room.

Pretty much flawless now.

Already released and have good feedback:
http://villavu.com/forum/showthread.php?t=69404

No anti-ban or anti-randoms in the script yet, I wrote it in about 10 minutes.

It's only meant to be ran for a short period of time anyway, as too many tokens is useless.

program WarriorGuildTokens;

{$DEFINE SMART}
{$i SRL\SRL.scar}
// INSTRUCTIONS: FILL YOUR USERNAME AND PASSWORD INSIDE THE '' and ''.

Const
NumbOfPlayers = 1; //How many players are you using
StartPlayer = 0; //Player to start auoting with! (0 means first char)
BreakEvery = 0; //How many loads to take a break after.
BreakFor = 0; //How many minutes to break for
Version = '1..0';

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 := ''; //Player username.
Pass := ''; //Player password.
Active := True;
end;

end;

Procedure Throw;
Var
ShotputDTM, A, B, X, Y:Integer;
aFound:Extended;
Begin
A := (255+Random(3));
B := (446+Random(3));

ShotPutDTM := DTMFromString('mbQAAAHicY2VgYHBhYWAwB+JAIPYGYkcgZmBkYPgCpPiB9G8gzQakXRwdGTzd3BjsbWzAGMTGBhixYDAAAAEMB1w=');

If FindDTMRotated(ShotputDTM, X, Y, MSX1, MSY1, MSX2, MSY2, -Pi/2, Pi/2, Pi/30, aFound) Then
Begin
MMouse(X, Y, 3, 3);
If (IsUpText('lb sho')) Then
Begin
Wait(200+random(100));
Wait(100+random(50));
Mouse(X, Y, 0, 0 ,True);
Wait(3000+Random(1500));
writeln('Interface is up. Selecting Option 3 "Spin and Throw"');
MMouse(A, B, 0, 0);
Wait(500+random(200));
Mouse(A, B, 3, 3, True);
Wait(8000+Random(3500));
FreeDTM(ShotputDTM);
end;
end;
end;





begin
SetupSRL;
ActivateClient;
DeclarePlayers;
If Not LoggedIn Then
LogInPlayer;
Wait(1500+Random(200));
SetAngle(True);
Wait(500+Random(200));
MakeCompass('e');
Wait(500+Random(300));
repeat
Throw;
until(false);

end.

Below is just a start of a Soul Wars script I am currently working on. At the moment the script has very limited functionality; it will only join games (Goes to the red barrier and pass it) and wait in the lobby until called to game.

Expect a full release of this in 1-2 weeks. Or, if the current walking isn't that great I'll have to wait for SPS 2.0 as in Soul Wars, you need to be walking a lot and it will be heavily reliant on walking.

program new;

{$i SRL\SRL.scar}
{$i sps/sps.simba}

Procedure ToBarrier; //Moves RS Character towards the tile next to the red barrier

Var
X, Y:Integer;
Path:TPointArray;
begin
Writeln('Going to the tile next to barrier.');
Path :=[Point(680, 5297), Point(717, 5310)];
SPS_WalkPath(Path);
end;

Procedure PassBarrier; //Locates the red barrier and passes through it

Var
X, Y:Integer;
Begin
writeln('Going through the red barrier.');
MakeCompass('w');
SetAngle(True);
Wait(200+Random(100));
If FindObj (X, Y, 'arrier', 4277627, 10) then
Begin
Wait(500+Random(200));
MMouse(X, Y, 3, 3);
Wait(200+Random(100));
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
End;
Wait(1000+Random(500));
End;

Function GameIP:Boolean; //Checks if the a game is currently in progress. Will click to continue if true.

Var
X, Y:Integer;

Begin
X := 260
Y := 408
If ClickContinue(True, False) Then
begin
writeln('There is currently a game in progress. Click through dialog to join game.');
Wait(1000+Random(200));
MMouse(X, Y, 3, 3);
Wait(200+Random(100));
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
Wait(1000+random(200));
end;
End;

Function InLobby:Boolean; //Checks to see if we are in a lobby waiting for a game to begin.

Var
X, Y, Spot:Integer;
Path:TPointArray;

begin
Spot := DTMFromString('mwQAAAHic42RgYHgLxFcYGRhOAvEJIJYC8vkZIIAJSlcC8UogrgficKiYDRCzAdXvhMrbWFoy/L2lgheLMBAGjERgOAAAzfUXmg==');
Path := [Point(736, 5310)];
SPS_WalkPath(Path);
Wait(500+random(100));
MakeCompass('e');
if FindDTM(Spot, X, Y, MSX1, MSY1, MSX2, MSY2) Then
begin
writeln('We are currently in the Soul Wars game lobby waiting for a game to start.');
Result := True;
end;
FreeDTM(Spot);
End;

Procedure StartUp;
Begin
writeln('Starting up Soul Wars Script by Yanhua. Enjoy.');
SetUpSRL;
ActivateClient;
SPS_SETUP(RUNESCAPE_SURFACE, ['1_13']);
End;
Procedure MoveToBarrier;
Begin
writeln('Moving to barrier');
wait(500+Random(100));
ToBarrier;
Wait(1000+random(500));
PassBarrier;
Wait(1000+random(500));
End;

Function InGame:Boolean;
Var
X, Y, BB:Integer;
Begin
X := 325;
Y := 40;
BB := BitmapFromString(45, 4, 'meJydkUEKgDAMBPNgTz0q/YzgRRD' +
'Ep7RePAg+xdXFumhRUYJMQkjGaGZVN/l+RpiZH5aTD0ADIkHZjlpE' +
'irg3sM5g6ppY1AFc1NE1G6ACwJtMky8aOjaroQ2qoc++OlyYQzjnW' +
'ePydXqBVw0CNuIgXK0yac6Pa+jfyXpm03QBNVkBIU79iA==');
MMouse(X, Y, 3, 3);
Wait(500+random(200));
If FindBitMapToleranceIn(BB, X, Y, MSX1, MSY1, MSX2, MSY2, 5) Then
Begin
Writeln('We have arrived in a Soul Wars game! :)');
Result := True;
End;
FreeBitMap(BB);
end;

Function IsKicked:Boolean;
Var
X, Y, K:Integer;
Begin
K := BitmapFromString(54, 5, 'meJydkcEKwkAMRPeDPdmLVPozBT0' +
'UCsXv8GLbPXgQ/BTHnXYM2VWkZQ6zYWhekrqLh/Ot7mYohEADHfu7' +
'ivqa4WE9BY8wZJOssJh7m1RHVXbtmDTtT1MKRMiFUSFh1V75W8E0l' +
'+fHZ4Q0bKeiRnYB0255AglsCRJ4b4OKpWJMI4sQMUL+Q2g7Fgnze7' +
'lLpY4jCU0s2sFFuO55FsNvQreT4pW/EdIADGskoTh5aO7QEVrsDTt' +
'0U+cjFJ/aIfUCVy98Zw==');

If FindBitMapToleranceIn(K, X, Y, MSX1, MSY1, MSX2, MSY2, 10) Then
writeln('We have been banned because we have a game early. Waiting.');
Result := True;
End;







begin //Main loop
StartUp;
repeat
MoveToBarrier;
PassBarrier;
GameIP;
If InLobby Then
Writeln('We are in the game lobby.');
Writeln('Waiting for the game to begin :).');
repeat
Begin
writeln('Checking to see if we are in a game or not');
Wait(20000+Random(1000));
End;
until(InGame);

If InGame Then
begin
WriteLn('We have been added to the game!')
end;


until(false);
end.

Again, I realise I could have done better for my standards.

I will improve on it quickly. :)

cycrosism

2011-12-19 00:52:48

Script is very simple and you do not have much activity either. 50 posts in almost 3 years. Sorry but it is a no from me

Yanhua

2011-12-19 00:57:36

From: cycrosism
Script is very simple and you do not have much activity either. 50 posts in almost 3 years. Sorry but it is a no from me


Forgot to mention about that.

I registered in Feb 2009 but have not been active since 2 weeks ago.

YoHoJo

2011-12-19 01:01:17

Good effort and lots of potential I like it, but unfortunately for me also the scripts are just too simple.
I like your attitude and all though so definitely A+ for character and all that jazz.

Your scripting however, can improve much more, and once it does you get my yes! Good Luck!

Yanhua

2011-12-19 01:25:48

From: YoHoJo
Good effort and lots of potential I like it, but unfortunately for me also the scripts are just too simple.
I like your attitude and all though so definitely A+ for character and all that jazz.

Your scripting however, can improve much more, and once it does you get my yes! Good Luck!


Thanks YoJoHo! I'll be waiting on more tutorials from you. And hopefully you've managed to fix YuGAY.

To whoever voted yes, THANK YOU! :D :D

YoHoJo

2011-12-19 01:28:46

Got and idea this morning on a possible fix, going to be testing it tomorrow and stuff, thanks!

Kyle Undefined

2011-12-19 02:26:29

I'm sorry, you're off to a good start with scripting. However, you have 54 posts in 3 years. I'd like to see more activity, at least Jr. Memb.

BraK

2011-12-19 06:04:20

I voted yes because I can like usual :)

Yanhua

2011-12-19 06:07:38

From: BraK
I voted yes because I can like usual :)


Sweet, cheers :)

Sabzi

2011-12-19 06:41:24

I'm not going to vote, but I am leaning towards no, but I won't vote because I can. (hahh, BraK, I can do it too!, cheers!)

The reason I am posting is to give a suggestion about the swamp script.
Usually when there is a problem about similar colors, it's a good thing to use higher color tolerance speed A.K.A. cts along with auto-color techniques.

So if you want to improve that maybe hit up some tutorials about color tolerance speeds, TPAs, ATPAs and maybe auto-coloring.
Also you may or may not know, but there are very good TPA/ATPA debugging tools in debug.scar under misc folder in srl.

Dervish

2011-12-19 07:14:50

I have a feeling it would be more beneficial to you if I vote no as I believe it would make you learn more and more extensively about the SRL include and thus better your script.

On the other hand I sort of want to let you in but I'll lean towards the no. Don't take this in a bad way, its just that I'm thinking what would be the best for your position here at SRL.

WT-Fakawi

2011-12-19 07:29:47

From: BraK
I voted yes because I can like usual :)

Same here.

Yanhua

2011-12-20 06:12:10

Just released an essence miner!

Be sure to check it out :)

http://villavu.com/forum/showthread.php?t=69595

What would you guys like to see me improve on or add in my scripts?

Please give some tips and suggestions. :)

BraK

2011-12-23 18:25:04

I'd like you to not double post ;) also seeing as it's 3-8 and no one else is voting It's probably best if you work towards your next members app :)

Yanhua

2011-12-23 18:27:06

From: BraK
I'd like you to not double post ;) also seeing as it's 3-8 and no one else is voting It's probably best if you work towards your next members app :)


Sorry for the double post BraK, didn't notice it :D

I will work towards my next app, but I've ran out of ideas.

What am I missing or need to improve on in my current scripts? I don't see any major flaws or errors in syntax.

Main

2011-12-23 18:45:33

You should add tpa or atpa in the future then it should be all good. TBH its not hard at all.

Blumblebee

2011-12-23 18:53:42

From: Yanhua
Sorry for the double post BraK, didn't notice it :D

I will work towards my next app, but I've ran out of ideas.

What am I missing or need to improve on in my current scripts? I don't see any major flaws or errors in syntax.


It's not so much error or flaw as missing complexity. Keep reading tutorials and work towards understanding more complex techniques, making your code more efficient/clean looking, and creating functions from scratch (making your own TPA instead of FindObject). Things I would suggest are:

1. TPA/aTPA
2. RadialWalk/Walking w/o SPS (can include DDTM, DTM, TPA, Radial, etc)
3. DTM/Bitmaps
4. Failsafes (while..do, repeat..until, for..do, etc)
5. Progress Reports/extras in scripts

even 2/5 of those would push you towards an easy yes. Good luck sir and keep working :)

Yanhua

2011-12-23 19:00:46

From: Blumblebee
It's not so much error or flaw as missing complexity. Keep reading tutorials and work towards understanding more complex techniques, making your code more efficient/clean looking, and creating functions from scratch (making your own TPA instead of FindObject). Things I would suggest are:

1. TPA/aTPA
2. RadialWalk/Walking w/o SPS (can include DDTM, DTM, TPA, Radial, etc)
3. DTM/Bitmaps
4. Failsafes (while..do, repeat..until, for..do, etc)
5. Progress Reports/extras in scripts

even 2/5 of those would push you towards an easy yes. Good luck sir and keep working :)


Thank you for your clear suggestions Sir! :)