SRL Archive - Archive

mc_teo - SRL Member Application


mc_teo

2009-06-26 23:52:25

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
I started with VB.NET and have a working knowledge of VB, C/C++, Perl, Python, PHP, Pascal.


Are you a member of any other communities?
Not many, aciidforum i suppose, but i havent been on there in ages.


Tell us about yourself…
From: mc_teo
I am 16 yo, live in Ireland. I'm a very logical person. Maths, and Science are my favourite subjects. I love programming, esp. games because they give me a chance to try out maths, physics and logic, all in one place.
I have spent the bones of the last week on the IRC channel… its very tiring… hah…
I dont really like talking about my self to a box, so I'll go now…



Please show us one (or multiple) of your scripts.
{===================================================================]
[ The HoneyComber ]
[ ]
[ NAME : The HoneComber ]
[ WRITER : mc_teo ]
[ DESCRIPTION : Collects and Banks Honeycomb. ]
[ AUTOCOLOR : Yes ]
[ SRL Used : 4.00 Revision #35 ]
[ SCAR Used : 3.20d ]
[ Version : 1.0 ]
[ ]
[ More Scripts can be found at, ]
[ [url]www.villavu.com[/url] ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. USE Runescape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE colour. ]
[ 3. Setup lines 44-46, with your name, pass and nick. ]
[ 6. Have a bottle of insect repellant in first inventory section. ]
[ 7. Start in Catherby's Bank, Logged out or Logged in. ]
[===================================================================]
[ Credits ]
[===================================================================]
[ All at SRL-Forums/Villavu who answered my many questions, ]
[ and all at #SRL for putting up with me for a while now. ]
[===================================================================}

program HoneyComber;
{.include SRL\SRL.scar}

var
x, y, totalTime, HC_Banked:integer;

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

Players[0].Name := ''; //UserName goes here
Players[0].Pass := ''; //Password goes here
Players[0].Nick := ''; //Put three/four letters from middle of username here
Players[0].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[0].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[0].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[0].Active := true; //If you want this player to be used

{
Players[1].Name := ''; //UserName goes here
Players[1].Pass := ''; //Password goes here
Players[1].Nick := ''; //Put three letters from middle of username here
Players[1].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[1].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[1].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[1].Active := true; //If you want this player to be used

Players[2].Name := ''; //UserName goes here
Players[2].Pass := ''; //Password goes here
Players[2].Nick := ''; //Put three letters from middle of username here
Players[2].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[2].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[2].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[2].Active := true; //If you want this player to be used
}
end;

{*******************************************************************************
*************** Please don't touch anything after this **********************
***************** unless you super 1337 and making it better ****************
*******************************************************************************}

procedure ProgressReport;
var
minutes: Extended;
time, seconds: Integer;
begin
time := TimeFromMark(totalTime);
minutes := time / 60000;
seconds := Round(DecRet(minutes) * 100);
ClearDebug;
WriteLn(Padr(' |*******************************************', 45)+'|');
WriteLn(Padr(' | HoneyComber by mc_teo ', 45)+'|');
WriteLn(Padr(' |___________________________________________', 45)+'|');
WriteLn(Padr(' | Total Time Running: ' + IntToStr(Floor(minutes))+':'+IntToStr(seconds), 45)+'|');
WriteLn(Padr(' | Loads To Bank: ' + IntToStr(HC_Banked) , 45)+'|');
WriteLn(Padr(' | HoneyComb Colected: ' + IntToStr((HC_Banked)*27), 45)+'|');
WriteLn(Padr(' | Money-wise, thats ' + IntToStr(((HC_Banked)*27)*112)+' Gold Coins!', 45)+'|');
WriteLn(Padr(' |___________________________________________', 45)+'|');
end;

procedure AntiBan;
begin
if(not(LoggedIn))then
LoginPlayer;
case Random(15) of
0: begin
HoverSkill('Random', false);
wait(2453+Random(432));
end;
1: RandomRClick;
2: PickUpMouse;
3: RandomMovement;
4: begin
MakeCompass('N');
wait(10+random(5));
MakeCompass('E');
wait(10+random(5));
MakeCompass('N');
end;
5: begin
SetAngle(false);
wait(10+random(10));
SetAngle(true);
end;
end;
end;

function CheckRepellant:boolean;
var
insect:integer;
begin
insect := BitmapFromString(16, 7, 'beNpjYPRwMEFGDAyM5vZGE9p' +
'ameVYgGwDBQW4OEQETbFzupVHsBMcAUXgaiBagAxna0MPO6hizwJ7' +
'3zKngGo3/0oXIMM21sTQWwuiBa4ewnbNsvEudgQqC6pzhyCgLqAJQ' +
'C0WYYYQiyDqgQz3XFugYqCCkEbPsBYvCAKygVYAtdgnmFlFGZkF60' +
'N0ARVD3ABUE9Hmg4yAgkAXAq3esXbt3EkTIeqBIkBnAE2L7vH/iwr' +
'ev3378O6dM0ePAtXPnjCBAQAZzWQH');
if (FindBitmapToleranceIn(insect, x, y, MIx1, MIy1, MIx2, MIy2, 10)) then
result := true;
FreeBitmap(insect)
end;

procedure HoneyComber;
var
color:TIntegerArray;
text:TStringArray;
begin
color := [9606046, 13224400, 14869221];
text := ['ake', 'rom', 'eehive'];
repeat
if FindObjCustom(x, y, text, color, Players[CurrentPlayer].Integers[0]) then
begin
Mouse(x, y, 5, 5, false);
Wait(500 + random(250));
ChooseOption('honey');
ProgressReport;
Wait(500+random(250));
end;
until(InvFull);
end;

procedure Bank;
begin
repeat
MakeCompass(IntToStr(RandomRange(340, 380)));
if (BankScreen) then
CloseBank;
if(FindObj(x, y, 'ooth', 5798280, Players[CurrentPlayer].Integers[0])) then
begin
Mouse(x, y, 4, 4, false);
ChooseOption('uickly');
Wait(1000+random(250));
Deposit(2, 28, true);
if StrToInt(TimeRunning) > 20000 then
Inc(HC_Banked);
CloseBank;
end;
until(not InvFull);
ProgressReport;
if(HC_Banked >= Players[CurrentPlayer].Integers[1]) then
begin
RandomNextPlayer(True);
HC_Banked := 0;
end;
end;

procedure WaitForFlag;
var
T:integer;
begin
MarkTime(T);
repeat
Wait(2000+random(150));
until((FlagDistance < 15) or (TimeFromMark(T) > 20000));
end;

procedure HiveToTree;
begin
SymbolAccuracy := 0.4;
if FindSymbol(x, y, 'Tree') then
begin
Mouse(x, y, 4, 4, true);
SetRun(True);
Wait(20000+random(3000));
end;
Players[CurrentPlayer].Loc := 'Tree';
end;

procedure Travel; //This was originally two procedures
var //But I updated it to be dynamic
Dir, Dest :String;
TimeFailSafe,BankDTM,I:Integer;
angle:extended;
begin
MarkTime(TimeFailSafe);
SetRun(true);
if Players[CurrentPlayer].Loc = 'Bank' then
begin
SymbolAccuracy := 0.6;
Dir := '100';
Dest := 'Tree';
end else
begin
SymbolAccuracy := 0.6;
Dir := '280';
Dest := 'Bank';
end;
Status(Players[CurrentPlayer].Loc + ' to ' + Dest);
BankDTM := DTMFromString('78DA632C606260B06500034608C570E6E8510' +
'67E28FF3F10305600D5E830A080929C1C143D8CC1403571A86A3A' +
'AA0C51D58402D5B8A3AA692AB04155130254A34BC09C34A01A255' +
'43535516EA86ADA816A4C50D5B4161AA0AAC901AA09C6EF2F00CB' +
'D21412');
repeat
MakeCompass(Dir);
Mouse(MMCx, (MMy1+15), 3, 3, true);
WaitForFlag;
if ((TimeFromMark(TimeFailsafe) > 60000) or (I > 10)) then
break;
Inc(I);
if( Dest = 'Bank') then
if (FindDTMRotated(BankDTM, x, y, MMx1, MMy1, MMx2, MMy2, 0, 360, 10, angle)) then
Break;
until(FindSymbol(x, y, Dest));
if(I > 10) then
begin
WriteLn(Players[CurrentPlayer].Name + ' is Lost');
Players[CurrentPlayer].Loc := 'Lost';
RandomNextPlayer(False);
end;
I := 0;
FreeDTM(BankDTM);
FindSymbol(x, y, Dest);
Mouse(x, y, 3, 3, true);
WaitForFlag;
Players[CurrentPlayer].Loc := Dest;
SetRun(False);
AntiBan;
If FindNormalRandoms Then
If Not LoggedIn Then
NextPlayer(True);
end;

procedure TreeToHive;
begin
MakeCompass('n');
x := MMCx;
y := MMCy;
if FindColorSpiralTolerance(x, y, 469464, MMx1, MMy1, MMx2, MMy2, Players[CurrentPlayer].Integers[0]) then
begin
Mouse(x, (y-15), 3, 3, true);
Wait(20000+random(3000));
Players[CurrentPlayer].Loc := 'Hive';
end;
end;

procedure Setup;
begin
SetupSRL;
try
DeclarePlayers;
except
Writeln('You did not Declare Players correctly, check your DeclarePlayers setup.');
TerminateScript;
end;
ActivateClient;
if(not LoggedIn) then
LoginPlayer;
Wait(2000+random(250));
MarkTime(totalTime);
if not CheckRepellant then
begin
WriteLn('ERROR: No Insect Repellant Found');
WriteLn('Soloution: Get some in the building just north of the bank');
TerminateScript;
end;
ProgressReport;
end;

procedure MainLoop;
begin
if Players[CurrentPlayer].Loc = 'Bank' then
begin
Status('Banking...');
Bank;
Travel
end;
if (Players[CurrentPlayer].Loc = 'Tree') and (not InvFull) then
begin
Status('Tree To Hive');
TreeToHive
end;
if Players[CurrentPlayer].Loc = 'Hive' then
begin
Status('HoneyCombing...');
HoneyComber;
Status('Hive To Tree');
HiveToTree;
end;
if (Players[CurrentPlayer].Loc = 'Tree') and (InvFull) then
begin
Status('TreeToBank');
Travel;
end;
end;

begin
Setup;
repeat
MainLoop;
until(AllPlayersInactive);
end.

Mr.Klean

2009-06-26 23:55:20

Check your Pms, you left you pass in your script. I changed your pass for you and pm'd it to you.

ZaSz

2009-06-26 23:57:30

Left pass in?

NCDS

2009-06-27 00:38:13

procedure WaitForFlag;
var
T:integer;
begin
MarkTime(T);
repeat
Wait(2000+random(150));
until((FlagDistance < 15) or (TimeFromMark(T) > 20000));
end;
Just use FFlag(15); ?

You should still look up more fail safe's, your HiveToTree still completely depends on Symbol walking.

Travel and TreeToHive, also need fail safes.

hmm, script is pretty short to judge on. Do you have anything else you have made? Something a little longer maybe we could look at as well?

Blumblebee

2009-06-27 04:05:31

no. You borrow my account to test and let it die so I lose my stuff? Thats not cool man, not cool at all. I lost over 2m of stuff, almost 3m…

ZaSz

2009-06-27 04:20:18

From: Blumblebee
no. You borrow my account to test and let it die so I lose my stuff? Thats not cool man, not cool at all. I lost over 2m of stuff, almost 3m…


Do you know that he actually died? Maybe he stole it all.. (no offence Mc_teo but got to be cautious)

Blumblebee

2009-06-27 04:21:43

im not sure, either way im missing 3m of stuff. I would love an explaination as I'm not impressed. I put myself on a limb and lend you a members account and he does something like that? Sigh fml.

Naike

2009-06-27 04:25:33

Everyone should hold their vote until we know what happened with Blumblebees account.

Not saying anything, but after what blumbleebee told me over msn he could easily just
faked the accounts death and stole the GP's, or he actually died but either way you
talk to the guy which account it was.

JAD

2009-06-27 07:11:06

In procedure HoneyComber, with FindObjCustom, it finds the object, but then you have it click at the location with random 5 x an y. This is a bad idea since you never check if that is the place. Just do a GetMousePos(x,y) after the begin, and then Mouse(x,y,0,0,true) so it clicks in the place that it originally moved the mouse to.

You are going to call a LOT of progress reports if you call each one if it finds the object. Also, maybe add some anti ban in there? Definitely add more fail safes though.

The loop in the HoneyComber procedure is an infinite loop. What if you get lost and stop picking stuff up? Then your inv will never be full, and it will never break out. Try something like:


MarkTime(Timer); //Timer would be an integer var you created
repeat
if(FindObjCustom(...etc))
...etc.
until(InvFull) or (TimeFromMark(Time) > 60000) //1 minute
if(TimeFromMark(Time) > 60000)then
begin
Writeln('Problem picking honey comb');
//choose appropriate action to take here
end;


In Bank the if(BankScreen)then is not necessary. Just calling CloseBank already checks if it's at the bank screen already.

Again with your custom banker you find the object, but then click at a random location near there. Do GetMousePos then Mouse with 0,0.

What if it doesn't find the option uickly? Maybe do an if(not(BankScreen))then do something after this. You have to try to inturpret all of the things that could possibly go wrong.

If you were already at the bank screen, why would you want to close the bank and then reopen it anyway? You should skip the bank finding if it's already open anyways. I would suggest using a few of SRL's find banks though as they may be more reliable than yours due to lack of fail safes and only using colors (not using D/DTM's).


As said above, WaitForFlag could just be FFlag.

In HiveToTree I think that you wait much too long after clicking the tree symbol. Also, what if it doesn't find the tree symbol? It shouldn't proceed to the next function without getting to the tree symbol then, should it? Consider switching players here or (better yet) adding another method of getting to the location.

In TreeToHive, why do you set x and y to the middle of the MM coordinates, if the line below that they just get changed to the place where the color was found? Remove those 2 lines.

I personally would use Flag or FFlag instead of the waiting 20-23 seconds. It's less banable in my opinion and more efficient.

In setup, you don't need to check if you're not logged in to login the player. LoginPlayer checks that before proceeding.

In procedure MainLoop, a case of statement should be used for Players[CurrentPlayer].Loc like so:


case (Players[CurrentPlayer].Loc) of
'Bank': begin
Status('Banking...');
.........
end;
'Tree': ........etc.

...etc.
end;
Much cleaner looking




You just work on a few things (fail safes mainly).

Yes from me. Great job :)

mc_teo

2009-06-27 12:27:47

Sorry Blumblebee, i only logged on to your account once, then my connection lagged out so badly, i couldn't even use it…

I had to setup DTMs from only picture…

Sorry again…

Naike

2009-06-27 13:43:30

If thats all you got to say, then no.
Basically because you can't take care of borrowed stuff which we still don't know if you stole or not.

ian.

2009-06-27 13:47:37

And if you can't take care of some stupid pixels then you'd most likely leak member scripts.

mc_teo

2009-06-27 14:05:43

Blumblebee, im really sorry… I am…

Ive only one RS acc… and thats only lvl 53… i only just bought full rune… now im selling everything to make that 2 mil back for you

Sir R. M8gic1an

2009-06-27 17:03:56

From: mc_teo
Sorry Blumblebee, i only logged on to your account once, then my connection lagged out so badly, i couldn't even use it…

I had to setup DTMs from only picture…

Sorry again…


Well, that's easy enough to sort out. If all you said is true, then the only way the char could've died is if it was in an agressive area.

Blumblebee, were you in an agressive area before you lent mc_teo the account?
And how come you haven't brought this up before?

~RM

mc_teo

2009-06-27 19:18:09

It makes me feel worse than I already do, that I am being judged by one mistake I made, rather than the content of my application.

noidea

2009-06-27 19:22:22

Just give Blumblebee his 3m.
2+ mill (Already his) then some moar for recooperation.

mc_teo

2009-06-27 19:25:47

From: noidea
Just give Blumblebee his 3m.
2+ mill (Already his) then some moar for recooperation.


if i sold everything i have in RS for high on the GE its only about 400k… Ive been trying to get some more though

Sir R. M8gic1an

2009-06-27 19:27:02

From: mc_teo
It makes me feel worse than I already do, that I am being judged by one mistake I made, rather than the content of my application.


Lagging is not a mistake, if that is what happened.

An SRL Member imposes a great deal of respect on the rest of the communitty, SRL Members are trustable above all other qualities, and therefore yes, your application is not solemly judged on your scripting abilities, never has been, and at least while i have a say won't be.

If you wish to have some feedback on your scripting ability I can tell you this: you are not there yet.

What you have so far is mostly good, but still very simple, and with this blumblebee issue overshadowing your effort to script i wouldn't vote yes based on attitude.

Finally, it is not good practice to switch player in the middle of a procedure/function as you do, you should switch them in the mainloop, otherwise a new player might get stuck in the previous' player loop.

e.g.
[INDENT]Player 1 has moved to the tree spot but is unable to find the trees.
You Switch Player
Player 2 thinks he's at the tree spot and that he should be looking for trees, but he's actually at the bank[/INDENT]

~RM

mc_teo

2009-06-27 19:30:52

Thank you RM… All the same, I would rather get a million "No" votes based on my scripting abilities than, fail due to that

Macro_FTW

2009-06-27 19:58:50

From: mc_teo
Thank you RM… All the same, I would rather get a million "No" votes based on my scripting abilities than, fail due to that


If you got a million no votes, then you would truly have to be special.

There aren't even 1m people on this forum. D:

Griff

2009-06-27 21:52:26

From: Macro_FTW
If you got a million no votes, then you would truly have to be special.

There aren't even 1m people on this forum. D:


I know you're joking, but come on, he's kinda had an unlucky app, and the message is he'd rather be judged on scripting abilities than what happened to Blumblebee's account.

My advice to you MC, would be to get back Blumblebee's 3m, work on your scripting, (cause your not quite there yet), and then re-apply in 1 month.

Blumblebee

2009-06-28 02:00:04

So, his story checks out (afaik) from him starting and nearly completing a quest. I dont really get why he was doing a quest (repaying me for using the account?) when it was for use to fix his honeycomber, to which there is 0 honeycomb on my account, which sorta makes me doubt that he even tested his honeycomber on it. With this said, pixels are pixels, he sounds sincerely sorry, thus I guess I can forgive him.

Please judge his members application regarding his script not my account.

ZaSz

2009-06-28 02:14:54

From: mc_teo
Thank you RM… All the same, I would rather get a million "No" votes based on my scripting abilities than, fail due to that


I cracked bobohobo's (sp) woodcutter demo to full version a year ago. I didn't give it to other people, then I pm'd him trying to help he fix it. But that app I had about a month after that. People only looked at the fact i cracked the script. -.0

Simtoon

2009-06-28 10:14:48

Wait. Wait. Wait.

You made this script for? Why? Did you have members? If not why make it?

mc_teo

2009-06-28 14:48:02

I had members about two months ago…

my friend and i got it together, but I only got it for one month, because i had exams, etc… and i was on holidays for 3 weeks, so i didnt want to waste my money till i have a month free… lol

Nose Smasher

2009-07-01 00:51:39

Seems like this is gonna be another flame thread because of something stupid that happened… Well besides that, The script isn't bad (from what I've seem by glancing at it) I'm not gonna vote (cuz I never vote) But I like the script. Interesting and new idea, i dont even know what honeycombs are used for in RS but apparently they are 112 gp ea. so they must be useful to some people… :p

Lil tip:
For something like this -
 if (FindBitmapToleranceIn(insect, x, y, MIx1, MIy1, MIx2, MIy2, 10)) then
result := true;

Do this instead -
 result := (FindBitmapToleranceIn(insect, x, y, MIx1, MIy1, MIx2, MIy2, 10)); 

Functions like those are Boolean functions (Returns 'True' or 'False') So they can be used to set a variable, like 'Result' for example, to whatever it is that the function returns. It's cleaner and makes you seem more like a 1337 Scr1ptz0r ;)

Good luck with everything, if you don't make it this time don't give up! ( jus don't re-apply too soon ;) )

And lets hope everyone can get over whatever it is that you did wrong ;)

Sir R. M8gic1an

2009-08-12 00:48:51

I am sorry for the late answer. Unfortunately it seems like you won't make it this time, feel free to try again in a month. Good effort, keep working for it :)

~RM