SRL Archive - Archive

EtherFreak - SRL Member Application


EtherFreak

2011-11-17 20:48:58

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
N/A


What is your general programming knowledge?
Basic, Matlab, HTML.


Are you a member of any other communities?
no


Tell us about yourself…
From: EtherFreak
I am a recent college grad, and took up fooling with botting when the game became boring. It now has turned into a game of finding out if I can make a computer play a game for me. I suppose I could do this with other games, but I went with runescape due to the hours I spent (wasted? you decide) playing the game.

I like fooling with electronics prototyping, computer software, wasting my time with video games and tinkering with my vehicles.

I am currently unemployed with the college degree, so fooling with the coding to play the game is, well, relaxing for me. I may not be one of the best script writers, and I know my standards still need work, but I try. In the end, I always have something that works, even if marginaly. I sometimes may bite off too large of a project, but whats the fun if you dont try?



Please show us one (or multiple) of your scripts.
I am linking to my older Bow maker and newer log burner scripts. It seems they have gotten quite popular as of recent time. 

Bow Maker Link:
[url]http://villavu.com/forum/showthread.php?t=59042[/url]

Log Burner Link:
[url]http://villavu.com/forum/showthread.php?t=67846[/url]

// script by EtherFreak
program cutnstring1;

//{.Include SRL\SRL\Misc\SMART.SCAR}
//remove the(//) if you want smart
{.include SRL/SRL.scar}

const
// ----------------SETUP-----------------------------
// must be in any bank that has a NPC
//kife in first invintory slot for bow cutting
loadcount= 20 ; //how many cycles you need (14 to a cycle)
sorc=1 ; //0 for stringing, 1 for cutting
colb= 5 ; //unstrung bow row
rowb= 2 ; //unstrung bow col
cols= 3 ; //bowstring col
rows= 2 ; //bowstring row
col= 2 ; //log row
row= 0 ; //log col

bankty= 1 ; //0 for any npc bank, 1 for specific bank
specific='fwb' ; //some valed inputs are: 'veb', 'vwb' 'feb'

var
x, y: integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //set username
Pass := ''; //set password
Nick := ''; //set nick 3-4 char
Active := True;
// ---------------END SETUP----------------------------------------
end;
end;


Procedure initrun;
begin
Smart_Members := True;
Smart_Server := 77;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
wait(3000);
SetAngle(true);
mousespeed:=(7+random(3));
end;

Procedure stringing;
begin
mousespeed:=(7+random(3));
wait(200);
if bankty=0 then
openbanknpc;
if bankty=1 then
openbankfast(specific);
wait(500+random(600))
depositall;
wait(800+random(300));
WithdrawEx(colb,rowb,14,[]);
wait(500+random(500));
withdraw(cols,rows,0);
wait(500+random(1000));
closebank;
wait(1800+random(500));
invmouse((random(13)+1),1);
wait(700+random(300));
Invmouse((15+random(14)),1)
wait(1000+random(1000));
mmouse(359,408,200,200);
mmouse(259,408,30,30);
wait(100+random(200));
getmousepos(x,y);
begin
if ( WaitUpTextMulti(['Mak', 'tions'], 200) ) then
Mouse(x,y,1,1,true)else
exit;
end;
repeat
wait(1000);
until invcount=14
wait(random(5000));
if random(2)=1 then
begin
writeln('taking mini break');
wait(random(20000));
end;
writeln('14 more bows strung');
end;

Procedure Cutting;
var
IT:TInvenItem;
begin
mousespeed:=(7+random(3));
wait(200);
if bankty=0 then
openbanknpc;
if bankty=1 then
openbankfast(specific);
wait(500+random(1000))
invmouse((random(8)+2),2);
wait(400);
FindText(x, y, 'All', UpChars, msx1, msy1, mix2, miy2);
wait(200);
mouse((18+x),(y+2),16,2,true);
wait(800+random(300));
withdraw(col,row,0);
wait(500+random(1000));
closebank;
wait(500+random(1000));
if invfull then
begin
Invmouse((2+random(1)),1)
wait(200+random(300));
invmouse(1,1);
wait(2000+random(1000));
mmouse(359,408,200,200);
mmouse(259,408,30,30);
wait(100+random(200));
getmousepos(x,y);
begin
if ( WaitUpTextMulti(['Mak', 'tions'], 200) ) then
Mouse(x,y,1,1,true)else
exit;
end;
writeln('Started Cutting');
wait(5000);
IT:=GetInven(28);
repeat //untested, replaces static time
wait(1000)
until IT<>GetInven(28)
writeln('Done Cutting');
wait(random(5000));
if random(2)=1 then
begin
wait(random(10000));
writeln('taking min break');
end;
if invfull then
writeln('27 more unstrung bows')else
begin
writeln('I think you lost your knife');
writeln('Logging out...');
logout;
exit;
end;
end else
begin
writeln('Inv not full, banking issue, or out of logs, logging out');
logout;
exit;
end;
end;

Procedure mainloop;
var
counter:integer;
begin
initrun;
counter:=0;
repeat
counter:=1+counter;
if sorc=0 then //stringing
stringing;
if sorc=1 then //Cutting
cutting;
writeln(loadcount-counter);
writeln('loads to go');
until counter=loadcount
writeln('Another set, problem free');
end;

begin
mainloop;
end.
// script by EtherFreak
program LogBurner;
//Remove // for smart

{.Include SRL\SRL\Misc\SMART.SCAR}
{.include SRL/SRL.scar}

Const

// ----------------SETUP-----------------------------
// Have tinderbox in first inv slot. Start in Verock East Bank
loadcount= 10 ; //how many cycles you need (27 logs per cycle)
BankCol=3 ; //log col in bank
BankRow= 2 ; //log row in bank
colorroad= 8752779 ; //grey road color to have RoadColorChecker; work
threelet='' ;//2-4th letters of name. I.E. Johntrucker='ohn' (optional)
BankLoc='feb'; //some valid locations are 'veb' and 'feb'
// ---------------END SETUP----------------------------------------

var
x, y: integer;
counter, count, kill: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
// ----------------SETUP-----------------------------
Name := '';
Pass := '';
Nick := '';
Active := True;

end;
end;
// ---------------END SETUP----------------------------------------

Procedure initrun;
begin
Smart_Members := False;
Smart_Server := 1;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
counter:=2;
count:=0;
kill:=0;
wait(4000);
findnormalrandoms;
roadcolor:=colorroad;
RoadColorChecker;
if findsymbol(x,y,'bank') then
writeln('initrun complete. You are at the bank. The roadcolor is:'+inttostr(roadcolor)+'.')
else
begin
writeln('cant tell if your at the bank. try a different world?');
ExitToLobby;
TerminateScript;
end;
setangle(true);

end;

Procedure Burn;
Begin
counter:=2;
kill:=0;
repeat
findnormalrandoms;
invmouse(1,1); //clicking tinderbox
Wait(RandomRange(850,1000));
invmouse(counter,1); //clicking log
if IsChatBoxTextAnyLine ('ere',clBlack) then //fire on fire detection
begin
inc(kill);
RadialRoadWalk(RoadColor,260,280,70,-2,0);
writeln('Cant light a fire here, trying a different spot');
if kill=2 then
begin
Writeln('Issue making fire, logging out...');
logout;
TerminateScript;
end;
end;
if IsChatBoxTextAnyLine (threelet,clBlue) then //name detection
begin
writeln('Someone said your name, logging out to be safe');
logout;
TerminateScript;
end;
inc(counter);
Wait(RandomRange(1000,1500));
if counter=29 then
exit;
invmouse(counter,1); //clicking log
Wait(RandomRange(850,1800));
invmouse(1,1); //clicking tinderbox
Wait(RandomRange(850,1300));
inc(counter);
until counter>28
counter:=2;
End;

Procedure Bank;
Begin
mousespeed:=(7+random(3));
inc(kill);
findnormalrandoms;
Wait(RandomRange(850,1000));
openbankfast(BankLoc);
Wait(RandomRange(2000,2500));
withdraw(BankCol,BankRow,0);
Wait(RandomRange(2000,2500));
if invcount=28 then
writeln('Banked corectly')
else
bank;
if kill=3 then
Begin
closewindow;
writeln('Banking failed, logging out...');
logout;
TerminateScript;
end;
kill:=0;
End;

Procedure toburn;
Begin
findnormalrandoms;
writeln('Walking to burn. The roadcolor is:'+inttostr(roadcolor)+'.');
RadialRoadWalk(RoadColor,0,75,60,-2,0);
Wait(RandomRange(1000,1500));
End;

Procedure tobank;
Begin
GetNewRoadColor(mmx1,mmy1,mmx2,mmy2,6);
repeat
findnormalrandoms;
RadialRoadWalk(RoadColor,80,110,70,-2,0);
writeln('Walking to bank. The roadcolor is:'+inttostr(roadcolor)+'.');
if kill=3 then
begin
writeln('Walking to bank failed, logging out...');
logout;
TerminateScript;
end;
inc(kill);
until findsymbol(x,y,'bank')
kill:=0;
mouse(x,y,5,5,true);
wait(RandomRange(8000,9000));
End;

begin
initrun;
repeat
bank;
toburn;
burn;
tobank;
inc(count);
writeln('There are '+IntToStr(loadcount-count)+' loads to go.');
until (count=loadcount)
writeln('Completed without error!');
end.

Harry

2011-11-17 21:07:27

Just a tip, more people would vote if your scripts were displayed. Make two Simba tags for each one and paste them here :)

EtherFreak

2011-11-17 21:30:35

Thanks Harry, I Edited my post and pasted both scripts. I look forward to your post as well Harry!

cycrosism

2011-11-17 21:37:33

Your first script is very simple and is not that complex and is not member worthy.

Onto your second script:


if IsChatBoxTextAnyLine (threelet,clBlue) then //name detection
begin
writeln('Someone said your name, logging out to be safe');
logout;
TerminateScript;
end;

That seems a bit weird I must admit.

Your walking procedures do not have any fail safes and are not reliable, neither are these:


invmouse(counter,1); //clicking log
Wait(RandomRange(850,1800));
invmouse(1,1); //clicking tinderbox

May I suggest using a bitmap or a DTM to find the items in your inventory? That way there is less chance of an error occuring such as you clicking on the wrong item. If you would like to know how to use bitmaps, check my sig below and I have a bitmap tutorial that is easy to follow, and bitmaps are quite simple to use.


if findsymbol(x,y,'bank') then
writeln('initrun complete. You are at the bank. The roadcolor is:'+inttostr(roadcolor)+'.')

This procedure wont actually ensure you are at the bank, there may be a bank symbol on the other side of the map and the script could detect it, but you could be standing far away from it.

No from me. Keep trying, you have potential.

Putnam

2011-11-17 21:45:09

I'm going to say no, try not to use mmouse and mouse as much, use DTMs to find items. Your second script is a lot better that your first as far as I can tell, but it's not nearly members-worthy. It's a good start, just try adding more features. Take cycrocism's advice too, I look forward to seeing your next application if this one doesn't make it. :)

Harry

2011-11-17 21:59:46

Lol it's not that bad. I voted yes, there's some funky stuff but it looks like mostly stable logic and he knows what he's doing.

EtherFreak

2011-11-17 23:23:34

cycrosism, I would tend away from using bitmaps for inventory items because it seems to me that RS updates the way items look reasonably frequently. This could just be because I have played the game soo long. Also, I cannot make a bitmap for some logs I do not have access to that members may wish to use.

if IsChatBoxTextAnyLine (threelet,clBlue) then //name detection
begin
writeln('Someone said your name, logging out to be safe');
logout;
TerminateScript;
end;


This may seem wierd, but the reason for it is a lot of people spot possible bot like activity, and then try to engage the bot in conversation. They then may report based on no response. Another possibility is that you try to make an auto responder. It needs to be perfect, or it will guaranteeing you receiving a report. My best example was a person that had detection of "wc" and would state his wc level. the only problem was it did not have a timer. so you could say wc level multiple times, and it would be the same response.

As for fail safes on the log burning script, I will agree they are lacking, and they are in the work to be improved upon. Also, I am working on inventory detection for inventory items, so that if you lag, it will not miss a log. One can never have too many failsafes.

cycrosism

2011-11-18 02:10:04

From: EtherFreak
I cannot make a bitmap for some logs I do not have access to that members may wish to use.


You can get them from the grand exchange

Markus

2011-11-18 04:55:21

Well, seeing as the first script is like 50% wait, I wonder if that can't be done more efficient, I hardly use waits at all for example. Try to adapt them to be more dynamic: wait until you see X, until Y happens, that kind of stuff, I saw you did that once but practice using it more.
I also see a terminatescript, and that's always the worst thing you can do! The only valid excuse for using terminatescript is SPS completely crashing, or bitmaps failing to load, or RuneScape just failing to be RuneScape. Just set the current player to false and switch to the next one.
In your firemaker, you hardcode the tinderbox to be at position one. Again try to make it more dynamic! What if it misclicks or for some reason the tinderbox gets moved? It will mess up. Also it would burn random event gifts, that won't work. Make it check there's actually a log there!
Keep up the good work and I'll vote yes next time :)

EtherFreak

2011-11-18 20:50:59

I will be honest. I get a lot of "I will vote yes next time" responses. I would like to note this is the 4th time I have applied for membership, and I believe I have made MAJOR improvement since the last time. I will admit the first time I applied was wayyyy to early. But I am getting tired of applying. and I feel that if I do not achieve membership status, that I may as well abandon bothering this hobby. I know this comes off as possable childdish, but I am calling it as I see it. If I rub some of you the wrong way, I am sorry, but I feel that there are some that have an opinion that you must be perfect when applying for members to actually progress up the chain. I just wish it were 100% about the love of learning about how to make the perfect bot, and how each person got there was different.


Please pay no attention to my drunken ramblinings. I need to make a better password so I can not get on my computer crap faced drunk. I am sorry to those that may have been offended. On a side note, how much cool stuff is in the "black Market" thread?

Kyle Undefined

2011-11-18 21:03:03

From: EtherFreak
I will be honest. I get a lot of "I will vote yes next time" responses. I would like to note this is the 4th time I have applied for membership, and I believe I have made MAJOR improvement since the last time. I will admit the first time I applied was wayyyy to early. But I am getting tired of applying. and I feel that if I do not achieve membership status, that I may as well abandon bothering this hobby. I know this comes off as possable childdish, but I am calling it as I see it. If I rub some of you the wrong way, I am sorry, but I feel that there are some that have an opinion that you must be perfect when applying for members to actually progress up the chain. I just wish it were 100% about the love of learning about how to make the perfect bot, and how each person got there was different.


I voted no, just for that response right there.

I don't expect people to apply with perfect scripts, hell mine wasn't perfect. I usually read all the responses before I vote, and I was leaning toward a yes.

If you feel like you're not going to make it, then that's your fault.

Griff

2011-11-18 22:22:10

From: EtherFreak
I will be honest. I get a lot of "I will vote yes next time" responses. I would like to note this is the 4th time I have applied for membership, and I believe I have made MAJOR improvement since the last time. I will admit the first time I applied was wayyyy to early. But I am getting tired of applying. and I feel that if I do not achieve membership status, that I may as well abandon bothering this hobby. I know this comes off as possable childdish, but I am calling it as I see it. If I rub some of you the wrong way, I am sorry, but I feel that there are some that have an opinion that you must be perfect when applying for members to actually progress up the chain. I just wish it were 100% about the love of learning about how to make the perfect bot, and how each person got there was different.


I know it can be discouraging, but you are honestly so close, I'm almost 100% positive you will get in the next time, and hey, it's only 3-5 right now anyway. Fix your script with the feedback you've gotten, and then apply again when you can. And I'd recommend editing this post, people might take that the wrong way and vote no for this application.

EtherFreak

2011-11-19 12:06:39

Giff, thank you for the posative feedback to my stupid drunkin ramblings. Camo Developer, Sorry I rubbed you the wrong way. I kind of feel like your avatar right now…

EtherFreak

2011-11-21 21:45:23

I would like to bring to your attention that the fetching script was made some time ago (somewhere between 9-12 months was the last script edit), and has survived quite a few runescape updates without any modifications. This was made possible by the SRL team, and forethought into the script. One might say I have a little pride with that script, even if it is not the cleanest thing in the world.

EDIT:
Just an afterthought, what happens if I have 50% for me and 50% against me? Does someone write a simple script that is the following:

program EtherFreaksMember;

Procedure Fate;
Begin
if random(2)=0 then
Writeln('Accept Etherfreak as a Member :)')
else
WriteLn('Do not accept EtherFreak as a member :(');
end;

begin
Fate;
end.

Daniel

2011-11-22 00:23:00

From: EtherFreak

EDIT:
Just an afterthought, what happens if I have 50% for me and 50% against me?


You're denied. Even if you pass by 1 or a few, you are still denied. Unless a board administrators sees otherwise, of course.

marpis

2011-11-22 01:12:00

Yes.

You have a lot to learn, but don't we all?
More failsafes, use DTMs or bitmaps for item clicking.

EtherFreak

2011-11-23 19:48:52

I think the script would be a more fun way to deal with the situations like this, but you gotta set the standards somewhere…

Markus

2011-11-27 04:25:29

From: EtherFreak
Just an afterthought, what happens if I have 50% for me and 50% against me? Does someone write a simple script that is the following:


The admins decide, sometimes after consulting a bit of the other staff.

About your drunken ramblins: I can't remember voting at earlier applications of you, so I have no idea about your improvements. But imho it's just not good enough yet. The terminatescript actually did it for me.
what happened to the time multiplayer was the #1 requirement for members?

Gu3st...

2011-11-27 09:03:43

Way to many static mouse clicks and the multiplayer isn't really multi-player… sorry, No from me too

EtherFreak

2011-11-28 17:30:40

I chose to logout and terminate the script because I am not a multiple rs player botter. I also do not have multiplayer setup because of this. I supose I could add multiuser support to the script, and that is why I have it set up the way I do (even though its only for one user presently). Also, being that they are both in the public script section, I am not sure I want multi user setup. This would alow wayyyy too many leaches to use it and set up numerous bots. As some believe, bots are what ruined the game…

On a side note, I still see 50% for and against, seems some people want the srl script to decided. ;) (this is where you lol…)

Sabzi

2011-11-28 19:24:44

I would only repeat the reasons what others said, voting no.