SRL Archive - General Competitions

SRL SC #2 Results!


Starblaster100

2007-08-30 09:41:11

SRL Scripting Competition Results!
Competition 2: Power Fishers



Yo Yo Yo!

Well I've been working over time trying to get these 7 great script marked, and i can now announce i have finally finished and reached my decision on who has won the second official SRL scripting competition.

In the following posts, I will be posting my comments on each persons script; what I liked about them all and what I think could have been improved. The scripts on which i comment on will be attached as i believe a lot of people can learn off of all of the scripts. However, if you want your script removed, please tell me and i will do so.


Table of Contents:
The Scripts

The Winner and a Final Note

Introduction Page



And so the second wave of the brave and beautiful start their pilgrimage! And what great results we have yielded!

Fishers are not easy scripts to create. Lots of waiting around, sometimes we randomly stop fishing, and quite a few specific randoms to overcome. In these scripts, i was specifically looking for what they did whilst fishing, how they detected if they were not fishing, how they found fishing spots and antirandoms.

If you hadn't guessed by now, the point of this competition was to try to motivate lots of people to make a script: a similar script so that at the end you can compare your script to everyone elses, and see what they have done in place of what you have done. This way, we can all see which of the scripting techniques work best in different scenarios.

I hope to get more people involved in the future. The more people who are scripting, the better this competition becomes, and the more experience you can get. I also hope that other people will help me mark the scripts, because currently it is only my views which are taken into account, and so the winner is based on my views of scripting only. The more people marking, the better the results will actually be.

And so as a Disclaimer:

What I say about your scripts are solely my own opinions. All criticism is only meant to be constructive and help you improve your scripts. I'm sorry if any criticism comes out negative, it is not meant like that. Feel free to take none of my advice, I'm not exactly the best SCAR scripter around. I concentrate mainly on criticism, so most of my post will feel negative. I would like to take the opportunity to say now that all of the scripts are of a great quality, and i congratulate you all in making these in such a short time period. Well done.

I would also like to take the opportunity to thank pwnaz0r for helping me mark the scripts. I really appreciate it :)

So on we go! I hope everyone can learn something from the following scripts. I was very impressed with many of them.

Thanks a lot

Starblaster100

Starblaster100

2007-08-30 09:43:45

What I have Marked you on


All of the scripts have been marked using the same extensive criteria. I tried to keep it as fair as possible whilst marking the scripts. Below, I will quickly summarize what I was marking you all on, and what I expected from each


1. Technique (/100)

This relates to what type of loops you have used where, how you found that certain object on the floor, how you detected that door, how you made sure your script was fail safe. It also refers to issues such as whether you should have used DTMs / DDTMs / bitmaps there or not, how you have withdrawn that item from the bank, and if you could have done this any better

2. Individuality (/100)

This refers to whether your scripting style is your own or not. The more individual your script is, the better it is for you, because this means you really understand what all of the different procedures / functions / types / methods should be used for. it means you are relying less on other people, and are developing your own style.

3. Use of SRL (/100)

This relates to how well you have used the SRL include. Are you creating custom functions that are already in SRL, or are you using the existing ones in the include. Also, are you using them correctly? There is no point in creating something which is a;ready in the include. Basically this shows how well you have looked through the include before resorting to making it yourself, and it shows your understanding of the include as well.

4. Efficiency (/100)

This is the thing I am most strict about. The more efficient the script is, the better it is. Why constantly write out procedures when you can use a simple repeat instead? Are you using "end else" when needed? Do you have duplicate functions? Are you freeing DTMs / bitmaps after finishing with them? The more efficient your script is, the better it will run, and the easier errors will be to fix when the arise.

5. Presentation (/100)

Presentation of a script is always important! And this should be easy marks. There are only 4 categories. Do you have a respectable title page? A decent progress report? Good scripting standards? Commented procedures and functions? (which is the one everyone always forgets!)

6. Added Extras (/100)

What extra features did you include in your script? The more that are in there, the better it is. Be careful though, because including extra features which don't work / aren't efficient could get you marked down in other categories!

7. Script Run (/100)

How did the script run when we tested it? Did it do what it was asked for? Any problems? As simple as that.

Starblaster100

2007-08-30 09:51:40

Kraft1



1. Technique (60/100)

WOWOWOW! For to do Loops everywhere! However, you have used them in the wrong places and you are just making SCAR work even harder than it has to, decreasing efficiency. For example, your loginroutine would work much better without all of that for to do.

The procedure "Mouse" has MMouse incorporated into it and so you don't have to do

[php]
MMouse(x, y, 2, 2);
Wait(50);
Mouse(x, y, 2, 2, True);
[/php]

[php]
Mouse(x, y, 2, 2, True);
[/php]

will work just as fine and would be much better to use.

[php]
case J of
0:Wait2(30000,true); //performs antirandom and antiban 30 sec
1:RodFind; //checks inventory for rod and feathers
2:if (Rodfind) then //if finds no equipment performs
begin //nextplayer
LoginRoutine;
end else;
end;
[/php]

I'm not sure why you have called FindRod twice here. It only needs to be called once. (I.E. Take out the First Findrod.) The beauty about Functions is that you can call them in both ways you have shown here. However, for what you want to do, you only have to call it in the second way.

[php]
if (Rodfind) then //if finds no equipment performs
begin //nextplayer
LoginRoutine;
end
[/php]

This will work as follows: Calls the procedure FindRod everytime. If the procedure results as "True" it will continue the "if then" statement. Otherwise it won't complete the "if then" statement.

procedure CleanInv; is a bit dissapointing… what happens if the script doesn't finish the load? 26 will still be added to the amount fished. You may want to think about counting your inventory.

2. Individuality (20/100)

Heh, no doubt this is an individual script with all of the unneccessary for to do loops lol. However, if you were to strip them out and create the script more efficiently, i'm afraid to say it would be a very very basic script, which a lot of people could easily create.

3. Use of SRL (40/100)

SRL has ben used pretty well in the script, however only the basic functions have been used. You could have used a few more to improve accuracy

4. Efficiency (25/100)

Your endless for to do loops brgins the efficiency of the script down a huge amount. In a lot of places they could have been missed out.

function Rodfind : Boolean; is very inefficient! it will cycle through the whole for to do loop until it reaches the end regardless of if the result is set beforehand. You may want to think about breaking out of the loop when you get your desired result.

You have put end else EVERYWHERE! Whilst "end else" does increase the efficiency of scripts, it only does so if used properly. If you don't want the script to do anything else if a condition is not met, don't add in an end else! End else should be used as follows:

[php]
If (Condition) then
begin
DoSomething;
end else
DoSomethingElse;
[/php]

And scripting standards say that there should be no semicolor (';') after "else"

Using

[php]
MMouse
Wait
Mouse
[/php]

is not recommended as stated above. Just mouse is needed.

5. Presentation (40/100)

Standards are basically perfect. Just remember to indent after "const" as well.

Title page could have been better… If you aren't going to go full out, i suggest using the default one by clicking script –> script properties and filling that out.

You have commented every procedure - maybe not in the conventional way - but you ave done so anyways. Maybe just clean it up a bit and make it more presentational.

Progress Report is slightly disappointing, and you don't even include it in your main script!

6. Added Extras (0/100)

No added extras seen.

7. Script Run (30/100)

Pretty good finding techniques. Didn't find the randoms that appeared though. Also, it needs to detect when inventory is full. The script has potential.


Total Score: 215/700

Starblaster100

2007-08-30 09:55:52

LordSaturn



1. Technique (50/100)

Good technique has been used. However I have seen that in quite a few places, you have used the "for to do" loop incorrectly. I'll explain in the efficiency section, as this decreases efficiency a lot.

A small point, but in case statements, when you only have the "case" acting on one thing, you don't need "begin end;"

[php]
case MyName of
'Wizzup' : Writeln('I am Wizzup!');
'Fakawi' : Writeln('I am Fakawi!');
'Star' : begin
Writeln('I am Starblaster100');
Writeln('How did that happen?!');
end;
end;
[/php]

function GetLostEquipment : Boolean; won't work properly! If you run out of bait, or feathers, the script will try looking on the floor for lost equipment! You may want to edit that a bit :p

All over your script you have things like

[php]if (Lowercase(String2) = 'net') then[/php]

however, you never setup String1, String2, String3!!! It won't work!!!

2. Individuality (65/100)

A good script, similar to what a few people may make however. I like the scripting style however. Nice job

3. Use of SRL (70/100)

Well no SRL 4, but i won't mark against that. Used a lot of Antiban procedures, and uses SRL procedures well. Could have used some of SRLs fishing bitmaps however

4. Efficiency (35/100)

[php]
for i := 0 to 2 do
repeat
FindTalk;
Wait(Random(300));
HoverSkill('random', False)
Wait(Random(300))
GameTab(Random(13));
Wait(Random(300));
until
[/php]

You are going to make it check twice for a whirlpool until either the DTMs disappear or the time goes over the mark. Then you are going to make it do the same again. You only need to make it check once.

[php]
until (not(FindDTM(Whirlpool1, x, y, MSX1, MSY1, MSX2, MSY2)) or
not(FindDTM(Whirlpool2, x, y, MSX1, MSY1, MSX2, MSY2)) or
not(FindDTM(Whirlpool3, x, y, MSX1, MSY1, MSX2, MSY2))
[/php]

unfortunately, this won't work either. It is going to wait until 1 of the DTMs disappear before carrying on, which is not what you want. You want to wait until all of the DTMs disappear! Just to make sure there is no whirlpool left.

you do it again in procedure SolveWhirlpool; its unneeded.

You have a lot of global vars, mainly because you have so many DTMs and Bitmaps. Are they all really needed? Some of the fish are exactly the same shape, so you could have made 1 DTM for about 2-3 fist in some cases. (Obviously others such as lobster and swordfish would be on their own)

You have the procedures, freeDTM, FreeBitmaps etc. but you don't use them! In a script, don't include procedure and functions that you never use - it increases compiling time, increase Memory usage and decreases efficiency.

The Procedure CheckEquipment could be shortened much more by using cases.

[php]
case Players[CurrentPlayer].Strings[0] of
'net' := BMPToLookFor := SmallNet;
'rod' := BMPToLookFor := FishingRod
end;

If (FindBitmap(BMPToLOokFor, …)) then
Writeln('Equipment Found')
else
Writeln('No Equipment Found');
[/php]

or something similar, you get the picture… ;)

In procedure Equipment; you look for lost equipment 4 times! Thats very unnecessary! Twice is enough. This is copied and pasted from above as the person before you did exactly the same thing:

I'm not sure why you have called FindRod twice here. It only needs to be called once. (I.E. Take out the First Findrod.) The beauty about Functions is that you can call them in both ways you have shown here. However, for what you want to do, you only have to call it in the second way.

[php]
if (Rodfind) then //if finds no equipment performs
begin //nextplayer
LoginRoutine;
end
[/php]

This will work as follows: Calls the procedure FindRod everytime. If the procedure results as "True" it will continue the "if then" statement. Otherwise it won't complete the "if then" statement.

In the procedure procedure FindRandoms; you need to add small waits.

procedure SetRandomStuff; could easily be condensed.

[php]
SetAreaVolume(Random(5)
[/php]

etc.

Need some waits in procedure WaitWhilstFishing;

5. Presentation (40/100)

Progress Report!!! Disappointing, even if it was 6 am =(

No commented procedures…

Scripting standards are basically perfect, no complaints

No script header? Not even a proper script name! (Program New;…)

6. Added Extras (50/100)

Extensive antiban which i like, used when waiting for the script to fish a load.
All fish fishing.

7. Script Run (50/100)

Had quite a few problems I'm afraid. Sometimes struggled to find fish spot, and started walking of in a random direction?


Total Score: 360/700

Starblaster100

2007-08-30 09:59:19

Markus



1. Technique (85/100)

Excellent technique! Script fits together like a well written book.

However i can't figure out why you have forwarded the procedure WaitWhilstFishing? You shouldn't forward procedures if you can avoid it, it just makes SCAR work harder and become less efficient.

DeclarePlayers could have been written differently, using SRL procedures. Thats what they are designed for after all…

function FindWhirlpool(fx, fy : integer) : boolean; will always add 1 to the whirlpool count every time it is called!

You need to remember to GameTab(4) in function FindFish(var x, y, fishtype : integer) : boolean; otherwise when you try looking for feathers / bait it wont work.

Calling HighestAngle; everytime you start the fishing loop is not recommended.

You don't check for whirlpools in procedure WaitWhileFishing;? Also, waiting a set period of time each time it not recommended. You may want to find a way to realise your character hasn't been fishing for a certain period of time and act accordingly to improve the script.

Glad to see you are using the technique Nextplayer(loggedin);

2. Individuality (85/100)

An individual script, and very well written. Little people script as you do. Good individual style.

3. Use of SRL (70/100)

SRL used very well. Maybe some things from Fishing.scar could have been used, but thats a minor point.
Could have used a SRLRandomsReport in your progress report as well.

4. Efficiency (70/100)

So many global vars? I can see most are for bitmaps / DTMs / Progress Report however, so i can't complain too much. However, you should have thought about using Types for Name, Color and Bitmap.

procedure DropFish; could be more efficient. Instead of using names for all of the dtms, i could have used Arrays with index numbers. That way you could have made something like:

[php]
For i := 0 to 10 do
Begin
If (FindDTM(FishDTM, x, y) then
FishCount := FishCount + 1;
end;
[/php]

You get the picture… ;)

You could have also used "else" in the drop procedure!

function FindEquipment(eq : integer) : boolean; could have used types, and then you wouldn't have to keep calling and freeing the DTMs. SCAR is not 100% efficient itself remember, so call the DTMs / Bitmaps once and leave them in the memory. Also, do you want to click near the water color, even after you have clicked the fishing spot symbol in this script?

procedure FlagTrack(var x, y : integer); is incorrect (Yes, incorrect!)

[php]
x1 := x + 10;
if (x2 < 0) then x2 := 0;
[/php]

you mean x2, right?

I don't like how you constantly load and free the Bitmaps in function FindEquipment(eq : integer) : boolean; I would just keep them loaded

5. Presentation (85/100)

Very nice progress report. Insightful and presentational

Comments on all procedures. Name and a description :D

Great title page (Possibly a bit too big)

Standards are very good, i can onyl catch you off guard a few times (procedure Progressreport;, function FindEquipment(eq : integer) : boolean;, procedure Fish;)

BTW, your instructions are wrong (Strings[0] instructions in the title) but i won't mark down for that.

6. Added Extras (55/100)

All Fish Fishing

Could have used a bit more antiban

Nice Auto detect

7. Script Run (65/100)

It ran well. Doesn't have anyway of finding the fishing spot though. The user has to set max time manually, which may not be good.


Total Score: 515/700

Starblaster100

2007-08-30 10:02:47

N3ss3s



1. Technique (45/100)

procedure AntiRandoms; use a "For to do" loop here combined with "case"

[php]
except
Writeln('lol');
[/php]

use Exit; ;)

function Mordaut: Boolean; forward;
procedure ChickenWait; forward;
function CreateMirroredTPoint(Bx, By, MidPointX, MidPointY: Integer): TPoint; forward;

You have forwarded these 3 procedures for no reason. If you can avoid forwarding procedures you should do, it decreases efficiency, and is bad technique

function FindDesertWhirlPool(SpotX, SpotY: Integer; BeforeFishing: Boolean): Boolean;

You don't want to break; with the except, you just want to skip that one color so you can search for the others. replace break with Wait(1) or something similar.

[php]
for C := 1 to 3 do
begin
Mouse(MMCX, MMCY, 5, 5, True);
end;
[/php]

Maybe clicking will be too fast? Small wait? otherwise the begin and end are not needed.

[php]
repeat
begin
Wait(5 + Random(2));
end;
until (not (FindDesertWhirlPool(0, 0, False))) or (TimeFromMark(W) > 20000) or (not (LoggedIn));
[/php]

begin and end not needed again. Bad technique

[php]
if (not (LoggedIn)) then
begin
Exit;
end;
[/php]
no "begin end" needed again

procedure ImpatiencyEruption(Ms: Integer); will change gametabs too quickly. No one can change 5 game tabs in 1/2 second. Jagex will get too suspicious and ban you.

[php]
repeat
Wait(10 + Random(25));
until (FindText(x, y, 'Trading with', UpChars, MSX1, MSY1, MSX2, MSY2)) or (not (LoggedIn));
[/php]

Infinite loop! Not good! You need to add a time out into the script.

2. Individuality (70/100)

Individual script but similar to what a lot fo people could make. However, the antiban is create, which i like

3. Use of SRL (50/100)

A decent use of SRL uncommon functions, but a few more common SRL functions could have been used

4. Efficiency (40/100)

function Mordaut: Boolean; forward;
procedure ChickenWait; forward;
function CreateMirroredTPoint(Bx, By, MidPointX, MidPointY: Integer): TPoint; forward;

Forwarded for no reason.

procedure ChickenWait;
FreeBitmap(C);

"C" is only assigned to something if D is orginally found. FreeBitmap© should do inside the "If then" loop to increase efficiency.

You have put
[php]
TempColor := GetColor(W, H);
[/php]
Twice in the function procedure AutoColor(AcX, AcY, What: Integer; Update: TIntegerArray);. Remove it from the second case statement.

procedure KillAScorpion; if a scorpian is found, you exit the procedure before setting the mouse speed back to normal.

[php]
Cook := CreateBitmapMaskFromText('succesfully cook', SmallChars);
Burn := CreateBitmapMaskFromText('accidentally burn', SmallChars);
[/php]

You don't free the bitmaps after you have finished using them! Noooo!

procedure CheckEquipment(var NoNet: Boolean; OnlyNetCheck, TakeAction: Boolean); - exiting procedure before freeing btimap if it is found.

MarkTime(Testing); should not go inside the repeat loop

function Fish: Boolean; you need to exit the procedure if the fish are found.

5. Presentation (65/100)

Scripting standards excellent

only two procedures commented properly at the top… maybe you forgot to do the rest?

An better than average title page.

dissappointing progress report.

6. Added Extras (60/100)

procedure DwarfLounch; not allowed. I said you had to make all of your procedures from scratch!

procedure KillAScorpion; is a great idea.

Nice idea for cooking fish.

function HandleTradingNoob: Boolean; - very nice

No all fishing?

7. Script Run (10/100)

There was one problem and one problem only. I checked three different times to make sure the problem wasn't a one time deal. Your script move the Mouse to the fishing spot, but never click. It would just sit there. Had good Finding Procedure though

[php]
if (IsUpTextMulti('ishi', 'shin', 'spot')) then
begin
GetMousePos(Fx, Fy);
Result := True;
end;
[/php]

:duh:


Total Score: 340/700

Starblaster100

2007-08-30 10:06:18

Special Ed



1. Technique (80/100)

Are Fish and WPFish both needed? Can you not combine the two to increase efficiency? Less procedures = more efficient.

Liking the Labels usage. Not commonly seen.

Loving the technique to find the fish and to find the whirlpools.

procedure Antiban; - you have used cases with 1 statement???

You need to Exit out of WaitWhilstFishing if you look for a new fishing spot!

procedure FindRandoms; - at the top you have If not(Loggedin) then exit; and at the bottom you have if(not(LoggedIn))then PActive:= False. The bottom statememnt would never ben used!

The Var FishCaught couldn't have been a Player.Integer?

2. Individuality (80/100)

Labels usage is good.

You have a very individual script, and a great and unique style which i love

3. Use of SRL (70/100)

Using SRL 4? There is IsUpTextMultiCustom now there, which uses TStringArrays (similar to your IsUpTextEx)
Otherwise very good use of SRL.

4. Efficiency (65/100)

You are constantly loading and Freeing DTMs. However, SCAR is not 100% efficient, so you may be better off keeping them loaded in the memory

Every time you call FindRandoms, you are calling SetScreenName(Players[CurrentPlayer].Nick);. If you take a look at SetScreenName:

[php]
procedure SetScreenName(ScreenName: string);
begin
NickNameBMP := CreateBitmapMaskFromText(ScreenName, upchars);
end;
[/php]

Thats means you are constantly loading a Bitmap without freeing it! Also in LoginPlayer, the Nickname is set automatically.

procedure DropAllFish; can be made much more efficient. If the fish isn;t dropped, you could call it again and exit out of the procedure.

[php]
Procedure Drop;
begin
For i := 1 to 28 do
begin
InvSlot:= ItemCoords(i);
If ItemExists(i) then //This would optimize it!
If (FindDTM(..)) then
..
end;
end;
[/php]

you use OptionMenuDTM so much. Why not keep it loaded?

5. Presentation (75/100)

Scripting standards are great, can only catch you off guard a few times.

Nice Script title.

Comments on all procedures (could be slighly more presentational)

Very disappointing progress report.

6. Added Extras (45/100)

Great antiban

Good idea to switch if you loose the other equipment.

7. Script Run (75/100)

It ran fairly nice. A bit too much antiban ( as in, it "Almost Loggedout" over 7 times in the course of one inventory. Also, it started dropping fish before it was a full inventory and while it was fishing ( It doesn't seem to be smart ). Also, did not "ClickToContinue" at all after I gained a level and took quite awhile before it got back on track. Still, had very nice spot finding.


Total Score: 490/700

Starblaster100

2007-08-30 10:08:59

The Claw



1. Technique (70/100)

AutoColourEquip - The paramenter shouldn't be a var. Should be function AutoColourEquip(EquipToColour: Integer): TIntegerArray;

Oh no, you've done it everywhere :(
function FindWhirlPool(var x, y: Integer): Boolean;
function FindEquipment(var UpText: String): Boolean;
function ClickTheSpotText(var x, y: Integer): Boolean;
function FindAllFishSpots(var x, y: Integer): Boolean;

You could have used Types so well here! for all of the names colors, bitmaps etc.

function AreWeFishing(var x, y: Integer): Boolean; - Sometimes the fish spot is present but your are not fishing. maybe you want to check a different way if you are fishing or not?

FindFish - need to reset ColorTolSpeed before exiting. Have to be careful whilst using this, otherwise causes intense problems throughout the rest of SRL

2. Individuality (80/100)

Really need to give the option to check Autoretaliate once? you may as well just check anyways, because they are only going to check once every script run (Thats if your script works properly and doesn't have to be reset
constantly)

Great individual script, very well written.

3. Use of SRL (75/100)

A decent amount of SRL used, lots of common procedures used as expected. Maybe could have used a few more, but can't really complain here.

4. Efficiency (85/100)

EquipmentInfo: Array of Array [0..1] of Integer;
SetArrayLength(EquipmentInfo, 5);

Why didn't you close the array there?

EquipmentInfo: Array [0..5] of Array [0..1] of Integer;

procedure DropAllFish; - could have done without all of the extra vars.
Shrip := Shrip + CountItemBmpTol(ShrimpBmp, 20);

These are all only minor however, very impressed otherwise.

5. Presentation (100/100)

Great title Page.

Great commenting on all procedures + presentational.

Standards are near to perfect

Excellent progress report - just what i was looking for.

6. Added Extras (80/100)

SRL stats
All fish fishing
Auto detecting equipment i great, however, you probably want to search for the best equipment first and solwly ork your way down from there.

7. Script Run (90/100)

Nice Looping and breakouts. Got a few randoms and handled fine. As far as runtime, it needs to have Far Running as an option because of the scorpions setup in Al Kharid and the Wizards set up in draynor ( as well as many other prevention devices). Worked excellent

Total Score: 580/700

Starblaster100

2007-08-30 10:11:21

Town



1. Technique (60/100)

FindFishingEquipmentColor - You should really check that you have the equipment before autocoloring.

CheckEquipment - You could have used types!

DontRun - No one can tress the Ctrl button twice in 0.2 seconds - Jagex may get suspicious, especially if you do it a lot.

[php]if (GetArrayLength(Points) <> 0) or (GetArrayLength(Points) <> 0) then[/php]
is incorrect - second one should be Pointss

Dissappointing FindFishingEquipment procedure. I was looking for more with this procedure.

DropAllFish may be too fast - wait until the inventory count changes and then continue

2. Individuality (65/100)

Individual script, no doubt. Not many people use the same style as you. I would have liked to see the script fleshed out a bit more however so i could get more feel of your style.

3. Use of SRL (60/100)

Good use of SRL, could have used some of Fishing.scar if you didn;t want to make your own Bitmaps / DTMs

4. Efficiency (90/100)

Great use of "try except end"

FindRandoms - you want to break out instantly if 1 of the randoms are found, not continue searching even when one has been found. This is where "for to do" and "case of" works well.

[php]
For i := 1 to 5 do
Begin
case i of
1: If () then
Result := true;
2: If () then
Result := true;
3: If () then
Result := true;
4: If () then
Result := true;
5: If () then
Result := true;
end;
If Result then
Exit;
end;
[/php]

Otherwise efficiency is excellent.

5. Presentation (85/100)

Great Scripting Standards, only off in a few places

Very nice title page

Comments on procedures are good, but could have been better

Progress report is great

6. Added Extras (65/100)

Good idea to cook the fish on fire if found, however remember to GameTab(4);

All Fish Fishing is good

Nice antiban

7. Script Run (50/100)

Three time I ran it. Once, I got an evil chicken, It ran away and stopped working . The other two times, it clicked on the fishing spot and started looking for a grey color. It never found it and logged out for no reason, (NextPlayer).On the fourth time it worked after dropping fish but it had no way of finding if I was fishing.


Total Score: 475/700

Starblaster100

2007-08-30 10:18:07

The Winner!
Congratulations The Claw



Congratulations to The Claw for winning the second scripting competition! His script was really great and i definitely recommend checking it out. The Claw - Contact me for your prize!

In order of First to Last, the scripting competition results are as follows:

  • 1. The Claw - 580
  • 2. Markus - 515
  • 3. Special Ed - 490
  • 4. Town - 475
  • 5. LordSaturn - 360
  • 6. N3ss3s - 340
  • 7. Kraft1 - 215

A Final Message


Congratulations to everyone who entered. Its not easy making scripts in such a short time which are so intensely analyzed, so i respect you all. I hope you don't take offense to anything I said, it was only meant as constructive criticism (Probably came out as a rant, I'm sorry about that). Remember, "Practice makes perfect." Maybe you can try fixing your scripts up now, and seeing if you can get them any better in the 7 categories I marked you in :)

Anyone who got over 400 points is well on their way to becoming a great scripter. Anyone who got under, just needs to put in a little extra effort to pull themselves up.

And that about wraps up this SRL scripting competition! Make sure that if you didn't enter this time, you do so next time, and if you didn't win this time, you kiss ass next time ;)

If you want to learn how to script, this truly is a great way to learn. Help is at hand to anyone who asks politely, and is willing to help themselves!


For now, we worship The Claw. Next time, make sure it is you…



Take it easy guys,

Starblaster100

MasterKill

2007-08-31 06:24:47

nice! my congratz to the claw :D

i didn't join this competition souce i was to bussy update'ing my script's for srl 4.0 but i hope I can join comp. #3 :D

Santa_Clause

2007-08-31 06:26:50

Hooray! First page! So many more applicants than the first competition…:p

nielsie95

2007-08-31 07:34:13

Congratulations to all who joined :)
And, again, StarBlaster has done a great job on marking.. :)

n3ss3s

2007-08-31 07:48:32

Gj claw! Umm star i think the non-clicking is because of uptext, because when i rotate and try again it clicks? Ill look more when im home.

The Claw

2007-08-31 08:11:14

Well done to everyone who entered :)

And thanks for the feedback star, I will make sure to fix up the things that you said.

Starblaster100

2007-08-31 08:25:09

From: The Claw
Well done to everyone who entered :)


says the winner with a big grin on his face :p

N3ss3s, its not the IsUpText I'm looking at, its the absence of Mouse() !

the scar noob

2007-08-31 08:55:27

wow!! nice job to everyone who entered!
I think i'll enter next time!!
And StarBlaster, plz, PM me when you're to busy, remember?
Your busy level is like 150/100, you can't take it anymore :p
Anyways, great job The Claw, Congratz :)

EDIT: @SpecialEd (or SB :p): can you make a nice tutorial about labels plz?
thanks in advance,

stijn.

EDIT 2:
The Claw


[PHP]procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
begin
RunTo(RunDirec, True);
Wait(15000 + random(5000));
RunBack;
ActivateClient;
end;
end;[/PHP]

Why don't you use the Flag or FFlag function instead of a wait?


[PHP]if Z = 4 then
begin
GameTab(2);
HoverSkill('Fishing', False);
end else
GameTab(Z);
GameTab(4);[/PHP]

i prefer adding a small wait between the 2 GameTab?


[PHP]function FindFish(var x, y: Integer; Cx1, Cy1, Cx2, Cy2: Integer): Boolean;[/PHP]

Where aren't you using GetMousePos?

These are only my coments, my personal ones..
Great script and i like the SkipBoxArray's in there as i'm a beginner at those :)

Rikje

2007-08-31 13:15:30

oeh,, gratz to everyone who joined!. nice jobs.
Gratz @ the claw nice script:D

to bad i was on hollyday. ill be back in the next one :p

Aje

2007-08-31 13:44:17

Congrats

n3ss3s

2007-08-31 14:34:19

Sry star, what does absence mean? :p

Bourdou!

2007-08-31 14:45:46

Great job The Claw!! Congratz!

Town

2007-08-31 15:01:42

Note to self: Make sure script works next time.

FindFishingEquipmentColor - You should really check that you have the equipment before autocoloring.


Heh, making DTM's is too tedious.

CheckEquipment - You could have used types!


Didn't think about that, good plan.

DontRun - No one can tress the Ctrl button twice in 0.2 seconds - Jagex may get suspicious, especially if you do it a lot.


Yeah, that was a last minute thing.


[PHP]if (GetArrayLength(Points) <> 0) or (GetArrayLength(Points) <> 0) then [/PHP]

is incorrect - second one should be Pointss


Oops.

Dissappointing FindFishingEquipment procedure. I was looking for more with this procedure.


I probably should have used DTM's. But then again, I didn't.

DropAllFish may be too fast - wait until the inventory count changes and then continue


Oh, right.

Individual script, no doubt. Not many people use the same style as you. I would have liked to see the script fleshed out a bit more however so i could get more feel of your style.


Yeah, this was a short'un. I did think I would get more points here, though.

Good use of SRL, could have used some of Fishing.scar if you didn;t want to make your own Bitmaps / DTMs


Heh, I didn't use any bitmaps or DTM's. I assumed all the ones in Fishing.scar had changed with the update. Did the SRL's FindFishingEquipmentColor work?

FindRandoms - you want to break out instantly if 1 of the randoms are found, not continue searching even when one has been found. This is where "for to do" and "case of" works well.


Wow, I thought that worked differently. I see what you're saying. I'm not sure what I thought before.

Good idea to cook the fish on fire if found, however remember to GameTab(4);

All Fish Fishing is good

Nice antiban


I thought I would get more points here too. I guess the procedures didn't work how they were sopposed to.

Three time I ran it. Once, I got an evil chicken, It ran away and stopped working . The other two times, it clicked on the fishing spot and started looking for a grey color. It never found it and logged out for no reason, (NextPlayer).On the fourth time it worked after dropping fish but it had no way of finding if I was fishing.


Hmph, I guess I should have used a bigger tolerance and that Points —> Pointss thing would have made a difference. The CountColorTolerance should tell whether or not you're fishing. If not there is always the max time variable.

Overall I think I could have done a lot better if I put a little more time into it making DTM's and doing some testing. I don't plan on entering the next one, but you never know.

Good job The Claw.

Wizzup?

2007-08-31 15:25:35

Oh, to everyone:
I don't recommend using types. SCAR can't handle types correctly…

Special Ed

2007-08-31 16:00:26

Hehe, thanks I think it did turn out pretty good although I was kinda disappointed for not getting 500, but I did get my goal of top 3.

For the Fish and WPFish, I just realized at the end I didn't have my whirlpool procedure set up correctly and I didn't want to change everywhere else I had FindFish although it would have been more efficient. The reason I did do the WPFish is because it needed to use a skipbox for where the fishing spot was last time so it didn't click on the whirlpool.

Any ideas on how I could do that? Maybe SkipBox:Boolean in FindFish?Any ideas would be great.

For the Anti - ban with one case… that was supposed to be 10, I jsut mistyped. Which would have also solved your problem of too many AlmostLogOuts. Thanks for catching that though.

For FindRandoms the Reason that I have if(not(LoggedIn))then PActive:= False; at the bottom is because if it finds a random and logs you out for it, it doesn't automatically do NextPlayer(False) *Does it?*, but then it will get to the end of the procedure and set the PActibe to true and in the main loop do NextPlayer(False);

Ahh… FishCaught should have been Player.Integer, I didn't even think of that.

For the use of SRL what would you have recommended using other than FindUpTextMultiCustom?

Oh and for the If(ItemExits(i))then … I didn't even notice that.

Ehh…. Progress reports are just a suggestion. :p

Hey so other than the too much anti - ban how did it work?]

P.S. For anyone who is interested I am updating this script with better BigFish finding and Equip Finding along with the suggestions here, So look for it in the Free Scripts Section.

From: the scar noob
wow!! nice job to everyone who entered!
I think i'll enter next time!!
And StarBlaster, plz, PM me when you're to busy, remember?
Your busy level is like 150/100, you can't take it anymore :p
Anyways, great job The Claw, Congratz :)

EDIT: @SpecialEd (or SB :p): can you make a nice tutorial about labels plz?
thanks in advance,

stijn.


Hey I was thinking about making one, just give me a day I'm like packed with all this stuff going on right now.

EDIT: I almost forgot to congratulate The Claw! Good job man.

lordsaturn

2007-08-31 18:35:24

Hurray! I didn't get last!

pwnaz0r

2007-08-31 19:14:18


I would also like to take the opportunity to thank pwnaz0r for helping me mark the scripts. I really appreciate it :)


Your welcome. I didn't know you would copy exactly what I said though. I would have put a little more thought into it

The Claw

2007-08-31 20:33:48

From: the scar noob
The Claw


[PHP]procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
begin
RunTo(RunDirec, True);
Wait(15000 + random(5000));
RunBack;
ActivateClient;
end;
end;[/PHP]

Why don't you use the Flag or FFlag function instead of a wait?


The wait is so we know for sure the creature isnt attacking us

[PHP]if Z = 4 then
begin
GameTab(2);
HoverSkill('Fishing', False);
end else
GameTab(Z);
GameTab(4);[/PHP]

i prefer adding a small wait between the 2 GameTab?


personal preferance, if you use it feel free to add one in. i dont think it matters that much

[PHP]function FindFish(var x, y: Integer; Cx1, Cy1, Cx2, Cy2: Integer): Boolean;[/PHP]

Where aren't you using GetMousePos?


why would i be? lol

These are only my coments, my personal ones..
Great script and i like the SkipBoxArray's in there as i'm a beginner at those :)


Thanks :)

Bobarkinator

2007-09-01 00:58:19

Congrats Claw. I love how you script. Depending on what kind of script and the restrictions are in the next one, I might join. But I say that every time :p

WhiteShadow

2007-09-01 01:21:06

Thanks Star for grading. :]

Wow I really love The Claw's script, and Markus the report looks cool. :p

Markus

2007-09-01 04:07:05

From: Starblaster100

Also, waiting a set period of time each time it not recommended. You may want to find a way to realise your character hasn't been fishing for a certain period of time and act accordingly to improve the script.


Let's look again at WaitWhileFishing, I added a few comments:
[php]
procedure WaitWhileFishing;
var
ic, wt : integer;
begin
if(not(loggedin)) then exit;
Gametab(4);
marktime(wt); //Mark the time
ic := InvCount; //Store the inventory count
[/php]

This part will record the no. of items in the inventory and the time.
[php]
repeat
//Some failsafes here
if (ic <> InvCount) then //if the stored count isnt the real count then
begin
MarkTime(wt); //New time
ic := InvCount; //Store the current count
end;
[/php]

It checks the no. of items again, if it has changed, ic will get the new number, and it'll mark the time again in wt.

[php]
until(timefrommark(wt)>=FishTime*1000);
[/php]

This will break if the stored time is bigger then the waiting time the user has set. As the timer will be reset every time the inventory changes (and it changes if we fish), it'll break if we haven't catch a fish in the last x seconds.

From: Starblaster100

Also, do you want to click near the water color, even after you have clicked the fishing spot symbol in this script?


Yes, the symbol isn't always close enough to the water to see the fishing spots. This will walk closer to the water to ensure the spots are visible.

rader720

2007-09-01 13:36:35

From: Starblaster100
Remember, "Practice makes perfect."

umm sorry to say but, thats not entirely accurate. Practice makes exactness. Imperfect practice makes exact imperfectness. However i believe you were wanting to say "Perfect practice makes perfect." XD sorry something i learned from Dr. William E. McHenry Director of MCJORTC program. (my old SMI :/ )

Markus

2007-09-01 13:40:50

Practicing doesn't make perfect, perfect practicing makes perfect
- Supreme Grand Master Joo Bang Lee

lordsaturn

2007-09-01 18:01:07

From: markus
Practicing doesn't make perfect, perfect practicing makes perfect
- Supreme Grand Master Joo Bang Lee



Practice doesn't make perfect, practice makes permanent.
- Jeff Hood, King of Dunbar Band.


rofl :p

Starblaster100

2007-09-01 18:14:19

It's a saying for god's sake… hence the quote marks.

RudeBoiAlex

2007-09-02 07:34:14

Congratz everyone but mostly the claw :)

hey everyone i wanna use a powerfisher is the claws srl 4 compatible :p

The Claw

2007-09-02 08:07:33

yup lol..link is in my sig.

thanks to everyone :)

n3ss3s

2007-09-02 09:46:48

I don't recommend using types. SCAR can't handle types correctly…


Types work correctly for me?

Wizzup?

2007-09-02 09:54:08

From: n3ss3s
Types work correctly for me?


http://www.freddy1990.com/forums/index.php?topic=1150.0

n3ss3s

2007-09-02 10:06:42

Newbie
Lawl, youre newbie at freddys forums :p

Too lazy to read the thread, but what I know that types work perfectly for me, if we are talking of the same type.

I have this type, "Ess" in my KYAB script, and it works perfectly?

Wizzup?

2007-09-02 10:10:57

From: n3ss3s
Lawl, youre newbie at freddys forums :p

Too lazy to read the thread, but what I know that types work perfectly for me, if we are talking of the same type.

I have this type, "Ess" in my KYAB script, and it works perfectly?


Sigh, whats the point if you don't read the thread..

n3ss3s

2007-09-02 10:22:09

Now I read it, but I still dont understand, like, okay dont get me like Id be trying to say you dont know your code, but if you have a function or a procedure named ChangeStellingen, isnt it expected that it changes it? Sorry, im propably talking just bs, but im pretty confused..

EDIT: sry for hijacking the thread

Wizzup?

2007-09-02 10:36:44

You should read some lower posts too. :p
Anyway, you are right, back on topic.

[N]ick

2007-09-02 19:39:09

Congratz to Claw, he also has good mining scripts, and also good luck to everyone else in the future.

Sir R. M8gic1an

2007-09-02 19:39:45

/me gets on his knees to worship the claw :p

gothicly2

2007-09-02 19:56:44

Oooooh, Nice scripts and nice job to all of them!

Psychor

2007-09-03 00:11:09

Gratz Claw, that's a real beauty.

Hopefullly i can join in next time.

kraft1

2007-09-03 00:38:53

congrats claw!

also thanks SB for putting so much effort into your analysis of each of our scripts, it was very detailed and now i know what i need to do to clean it up.

BobboHobbo

2007-09-03 07:28:51

Well done everyone who enterd.

Also Star Goodjob on marking all those scripts, you wrote everything in detail.

All good. Congratz Claw on winning :)

Arttuonline

2007-09-03 09:41:23

I tested those scripts too and The Claw's was best, so he deserved the win. :)
Congratz.

n3ss3s

2007-09-03 10:13:58

Oh, seems like I forgot to thank you Star about the marking, I dont think anyone else could do better ;)

HighRoller21

2007-09-04 08:28:17

The claws script = awesome

pathway27

2007-09-04 09:46:39

Cool

IEatJ00erBaybees

2007-09-04 15:23:58

You're too tough Starblaster :p..The Claw ended up getting an 83% and he was the winner :p. I'll maybe join the next one.

SKy Scripter

2007-09-04 23:30:10

lets get this next one started already lol. sorry for pushing yah but i want to see if this next one intrest me.

The Claw

2007-09-05 02:50:32

same here :p

Starblaster100

2007-09-05 04:15:05

Well I'm waiting for *AHEM* someone, aren't I?

"Someone", PM me when you've fixed up that example script we were talking about :p

Santa_Clause

2007-09-05 06:08:19

Is that someone me? :p

Is this example script for the next SC?

Starblaster100

2007-09-05 06:15:11

Haha, no its not you. The persons I'm talking about knows who he is…

pwnaz0r

2007-09-05 21:29:46

um, the someone is working on it. (;))

EDIT: jking of course :p

mattar

2007-09-07 04:21:46

ey the free to use claw scripts owned, so im not too surprised he won this 1 :p

Fibzoo

2007-09-07 08:07:21

Congradulations.

noahthepoo

2007-10-30 02:09:35

y whenever i click on a link it says vb vulliten measge and said i cannot use this cuz of privlages or something can someone tell me why

Wizzup?

2007-10-30 02:32:36

Closed.