SRL Archive - Archive

Zerghunter3000 - SRL Member Application


Zerghunter3000

2009-10-18 12:10:21

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
Mario97000


What is your general programming knowledge?
Can script vbs a bit.
I know the basics of SCAR Scripting.


Are you a member of any other communities?
http://www.bnetdev.net/


Tell us about yourself…
From: Zerghunter3000
Well, I am FranK. I love scripting so much I have been able to teach myself, I just look at other scripts figure out what they do, and try to understand them. I am usally only on the comps during the weekends because of school, but thats fine by me. Umm, I also play StarCraft/BroodWar, Warcraft III The Frozen Throne, and Diablo II. And RS of course.



Please show us one (or multiple) of your scripts.
/////////////////\\\\\\\\\\\\\\\\\
////////////////SCAR\\\\\\\\\\\\\\\\
///////////////////\\\\\\\\\\\\\\\\\\\
//////////////////SCAR\\\\\\\\\\\\\\\\\\
/////////////////////\\\\\\\\\\\\\\\\\\\\\
////////////////////SCAR\\\\\\\\\\\\\\\\\\\\
///////////////////////\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////Edgville WoodCutter.scar\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////Version 0.0.2\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////By: Zerghunter3000\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////Thanks To: Mario97000\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Program WoodCutter;
{.include srl/srl.scar}

var I: Integer;
////////////////////////////////////////////////////////////////////////////
procedure Declareplayers;
begin
HowmanyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Writeln('Logging in...');
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Writeln('Logged in.')
end;

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

Procedure AntiBan;
Begin
If not LoggedIn then Exit;

FindNormalRandoms;
Case Random(40) of
0: Begin
Writeln('Commencing AntiBan: WoodCutting Skill Check.');
HoverSkill('woodcutting',false);
Wait(2453 + Random(442));
End;

1: Begin
Writeln ('Commencing AntiBan: PickUp Mouse.');
PickUpMouse;
End;

2: Begin
Writeln('Commencing AntiBan: Turning N, S ,N')
MakeCompass('N');
Wait(941 + Random(124));
Makecompass('S');
Wait(724 + Random(131));
MakeCompass('N');
FindNormalRandoms;
End;

3: Begin
Writeln('Commencing AntiBan: Turning E, W ,S')
MakeCompass('E');
Wait(1030 + Random(123));
Makecompass('W');
Wait(1940 + Random(112));
MakeCompass('S');
FindNormalRandoms;
End;

4: Begin
Writeln('Commencing AntiBan: Turning S, E ,N')
MakeCompass('S');
Wait(1154 + Random(248));
Makecompass('E');
Wait(774 + Random(347));
MakeCompass('N');
FindNormalRandoms;
End;
End;
End;

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

Procedure ChopTree;
Var
X, Y: Integer;
Begin
Repeat
MakeCompass('N');
FindNormalRandoms;
If FindObj(X, Y, 'hop', 2575932, 35) Then
Begin
Writeln('Found Tree...');
Mouse(X, Y, 0, 0, False);
Writeln('Cutting Down Tree.');
ChooseOption('hop');
End;
Repeat
Wait(2240 + Random(242));
AntiBan;
Until not IsUpText('illow') or InvFull;
Until(InvFull);

If InvFull Then
Writeln('Inventory Full.');
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
SetupSRL;
For I := 2 to 28 do
DropItem(I);
Writeln('Pocket Empty.')
ChopTree;
End;

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

Begin
SetUpSRL;
ActivateClient;
DeclarePlayers;
Repeat
ChopTree;
Until(AllPlayersInactive);
End.

MylesMadness

2009-10-18 12:16:17

No walking, No TPAs, No Banking, and your little known on srl.

Its a no

Dynamite

2009-10-18 12:23:14

:O no progress report!?
:p
No from me:
Need DTMs
Add banking
Need Failsafes
Need walking

Begin      
Writeln('Found Tree...');
Mouse(X, Y, 0, 0, False);
Writeln('Cutting Down Tree.');
ChooseOption('hop');
End;
In the mouse use mouse clicking randomness
Mouse(X, Y, 3, 3, False);
In your waits you do:
Wait(1154 + Random(248));
There is no need for numbers like 1154.
Because you add randomness anyway.
So do
Wait(1000 + Random(248));
IMO it looks better.
Umm why do you SetupSRL everytime you empty your invent? :S
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
SetupSRL;
Why you do that?
Anyway, you seem like you want to learn, but in my opinion you need to learn more.
Reapply in a month with a more advanced version :)

T~M

Main

2009-10-18 12:53:06

I like where your going.

But learn more and try more and you'll be :f:

Kyle Undefined

2009-10-18 13:02:56

It's a no. It's not bad for a script but it needs to be a little more advanced.

- Instead of using FindObj() you could use DTM's.
- Your drop procedure needs to be a little more advanced, it's based on if every person doesn't wield their axe.
- Your waits in your script are way too weird.
- Add waits between your clicking and choosing option.
- Make your mouse clicks random, not zoomed in on the same spot.
- Too many WriteLn()'s. Use those for debugging purposes.

It looks like you understand how to script, just need to improve your skills. Good luck :)

~Camo

JAD

2009-10-18 13:17:07

Your could use improvement:

Procedure ChopTree;
Var
X, Y: Integer;
Begin
Repeat
MakeCompass('N');
FindNormalRandoms;
If FindObj(X, Y, 'hop', 2575932, 35) Then
Begin
Writeln('Found Tree...');
Mouse(X, Y, 0, 0, False);
Writeln('Cutting Down Tree.');
ChooseOption('hop');
End;
Repeat
Wait(2240 + Random(242));
AntiBan;
Until not IsUpText('illow') or InvFull;
Until(InvFull);

If InvFull Then
Writeln('Inventory Full.');
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
SetupSRL;
For I := 2 to 28 do
DropItem(I);
Writeln('Pocket Empty.')
ChopTree;
End;

A couple things:

You don't have fail safes in the repeats. What if the inv is never full? This loop will repeat forever non stop. Try adding a MarkTime fail safe like so:

var Timer: Integer;

MarkTime(Timer);
repeat
wait(50);
until(InvFull) or (TimeFromMark(Timer) > 50000+random(10000));

That's just an example though. Modify for use in your own script.


And when checking if the inventory is full, you need a begin/end like so:

If InvFull Then
begin //HERE
Writeln('Inventory Full.');
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
For I := 2 to 28 do
DropItem(I);
Writeln('Pocket Empty.')
ChopTree;
end; //HERE

Also took out the SetupSRL; there, as it's only necessary one time before the main loop.



This script is simply not complex enough for SRL membership status. Just read some more tutorials, and try implementing new concepts and fail safes.

This is a great start though, and I look forward to reading over your next application. Good luck!

~JAD

Bionicle

2009-10-18 13:18:26

PROs

1) <3 your antiban. But change your 'Case Random(40) of' to 'Case Random(50) of' because you have 0-4, 5 cases.

2) Multiplayer!

3) Fairly good standards

CONs

1) OK, where do I start. First of all you only have three procedures, two of which don't even contribute to the actual playing of runescape.

2) Change:
  If InvFull Then
Writeln('Inventory Full.');
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
SetupSRL;
For I := 2 to 28 do
DropItem(I);
Writeln('Pocket Empty.')
ChopTree;
End;

into:

  If InvFull Then
Writeln('Inventory Full.');
Wait(1130 + Random(162));
Writeln('Emptying Inventory...');
SetupSRL;
For I := 2 to 28 do
DropItem(I);
Writeln('Pocket Empty.')
End;

that extra ChopTree in there is not needed.

3) What tree does this cut? I suggest putting in multiple trees. You can do this using a case statement in a separate procedure, with the tree names as the different cases.

4) Put an "If not LoggedIn then exit;" in your ChopTree procedure.

5) Proggy? (I know you asked about that in another thread, but you should have at least added a proggy before you applied.)

6)
/////////////////\\\\\\\\\\\\\\\\\
////////////////SCAR\\\\\\\\\\\\\\\\
///////////////////\\\\\\\\\\\\\\\\\\\
//////////////////SCAR\\\\\\\\\\\\\\\\\\
/////////////////////\\\\\\\\\\\\\\\\\\\\\
////////////////////SCAR\\\\\\\\\\\\\\\\\\\\
///////////////////////\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////////SCAR\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////Edgville WoodCutter.scar\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////Version 0.0.2\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////By: Zerghunter3000\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////Thanks To: Mario97000\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Um…no.

{Edgville WoodCutter.scar]
[Version 0.0.2]
[By: Zerghunter3000]
[Thanks To: Mario97000}

7) Add instructions? What tree(s)? For leechers: where to put in user name and password?

8) Add TPAs, DTM/Bitmaps, DDTM, Radial walking, FAILSAFES! I suggest looking up some more tutorials on how to do some of these things.

Try incorporating banking, as you can use almost all of the things i mentioned above with those.

Vote

No. The cons outweigh the pros. Sorry, but this script isn't good enough. It is fairly good, and has potential, but it really isn't SRL worthy. Please incorporate the things I said into your script, and apply next month.

program VoteOpinion;

function Vote: boolean;
begin
Result:=False
if Result = False then
WriteLn('Sorry, my vote is no :(. Keep on learning, and don"t get your hopes down!!');
end;

begin
Vote;
end.

Successfully compiled (80 ms)
Sorry, my vote is no :(. Keep on learning, and don"t get your hopes down!!
Successfully executed

Kyle Undefined

2009-10-18 13:20:00

You put Two Pro's just so you know bionicle1800

~Camo

Bionicle

2009-10-18 13:20:38

From: Camo Developer
You put Two Pro's just so you know bionicle1800

~Camo


:duh: lol

edited lol thx

JAD

2009-10-18 13:50:21

From: bionicle1800

2) Multiplayer!



Just saw something I might point out to Zerghunter:

You have the player array included, but you never use it for multiplayer purposes. Adding multiplayer is not very hard at all. Try adding:


if not LoggedIn then Exit;

As the first line of your chopping procedure and antiban procedure (and any future procedures/functions you may add to this script).


Then, change your main loop from:

Repeat
ChopTree;
Until(AllPlayersInactive);

To:

Repeat
ChopTree;
if not LoggedIn then NextPlayer(False);
Until(AllPlayersInactive);

Then you will have multiplayer in your script :)



@Bionicle, I thought his comment intro was kinda cool :p

Bionicle

2009-10-18 13:53:16

From: JAD
@Bionicle, I thought his comment intro was kinda cool :p


Each to his own i guess lol. Looked like spam to me :p no offence @ zerg

cycrosism

2009-10-19 05:33:46

No Multiplayer
No TPA's. Try not to use FindObj, make your own TPA.
No DDTM's
No Radial Walk
No Banking

Suggestions:

Make an auto axe detector (If you need help with this, ask me) which (If the person is weilding the axe) it sets a variable to true (Possible WeildingAxe := True) If there is no axe then you set it to false. When it comes to dropping the wood it will drop all if he is weilding his axe. Of course this might not be needed if you add banking (Which you should if you want to achieve SRL members.

Add more failsafes, for every If statement you have, it would be wise to end it with else or end else. That is, of course it is not necessary. (Like an if statement in a progress report)

Script needs to be much bigger and much more advanced. Voted No.

P.S Don't give up, keep trying. I was once at where you were at and I never stopped trying.

Edit - Making an example

Make a bitmap of the axe first (This is if you want to add an axe detector)

If FindBitmapToleranceIn(axe, MIX1, MIY1, MIX2, MIY2, 30) then
WeildingAxe := True

You won't need to do anything else to that because it will be set to false by default. If you want to go further, make it click the gametab of the worn inventory (I think thats what it's called) then search for the bitmap there. If it can't find it, make the player logout as a fail safe and write something in the debug like Writeln('No axe found');

YoHoJo

2009-10-21 18:33:31

We Have Spoken.
Good Luck Next Time.
Please Do Take Advantage Of All Of This Wonderful Feedback.