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…
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. :)
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.
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.
Again, I realise I could have done better for my standards.
I will improve on it quickly. :)
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. :)