SRL Archive - Archive

toxjq - SRL Member Application


toxjq

2013-06-13 15:00:15

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Programming Language: C/C++, Java
Scripting Language: Python, PHP
Web: HTML5, CSS3, JavaScript, JQuery
DataBase: MySQL


Are you a member of any other communities?
RsBot, TriBot, Powerbot, Epicbot


Tell us about yourself…
From: toxjq
I am a computer science student from NYU, I enjoy programming and learning new stuff. AI been a huge interest of mine, and writing bot script that are very human like is a good way to learn and practice this. (High level bot script: the future). I have been playing around with simba, and made few script using other scripts as reference for my own use. and must say this is very easy to learn and understand. just takes some time to learn the libraries.



Please show us one (or multiple) of your scripts.
program CowKillerPro;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.simba}
{
CREDIT: Thanks to Saikek for his SaikekChickens

This Program Simply Kill Cows!! WOO
***********************************
How to Use:
Fill In the user name, password, and nick(random 4 character of your rsname)
Run the script near cow, wala! No banking support.
If you want banking, you can try to add your own
}
var
GFailSafe: Integer;

const
//Set your information
USERNAME = ''; //YOUR USER NAME
PASSWORD = ''; //YOUR PASSWORD
NICK = ''; //RANDOM 4 CHARCTER OF YOUR NAME
HPCOLOR = 65280;
COWNCOLOR1 = 4343892;
COWNCOLOR2 = 4740971;
COWNCOLOR3 = 4938351;
COWNCOLOR4 = 1188393;
//HIDECOLOR = ; //uncomment and assign value for cowhide to pick up hide
PICKUP_HIDES = False; //go through the code, uncomment stuff to collect hide & Bank
GFAILSAFE_THREASHOLD = 25;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := USERNAME;
Players[0].Pass := PASSWORD;
Players[0].Nick := NICK;
Players[0].Active := True;
end;

//check for hpcolor
function InCombat: Boolean;
var x, y: Integer;
begin
if(FindColor(x, y, HPCOLOR, 200, 100, 300, 200)) then
Result := true;
else
Result := false;
end;

//Search and attack cows
procedure AttackCow;
var x, y, failsafe: Integer;
begin
if(not InCombat) then
begin
if(FindObjCustom(x, y, ['Cow'], [COWNCOLOR1, COWNCOLOR2, COWNCOLOR3, COWNCOLOR4], 7)) then
begin
GFailSafe := 0;
MMouse(x, y, 3, 3);
ClickMouse2(mouse_left);
repeat
wait(randomrange(300,700));
inc(failsafe);
until((InCombat) or (failsafe >= 5));
end else
begin
writeln('Rotating Camera because no cow found');
MakeCompass(randomrange(0,360));
inc(GFailSafe);
wait(randomrange(200,700);
end;
end;
end;

//Checks to find loot aka leather
procedure FindLoot;
var x, y: Integer;
begin
if((not InCombat) and (PICKUP_HIDES)) then
begin
if(FindObjCustom(x, y, ['hide'], [HIDECOLOR], 3)) then
begin
Mousebox(x, y, x, y, mouse_left);
wait(randomrange(1000,1500));
end;
end;
end;

//checks current in-game state
function CheckState: Integer;
begin
if (GFailSafe >= GFAILSAFE_THRESHOLD) then
Result := 3
else if(not LoggedIn) then
Result := 2
else if(InCombat) then
Result := 1
else if(not InCombat) then
Result := 0
end;

function RandomCombatSkill : String;
var ranNum: Integer;
begin
ranNum := randomrange(0,4);
case(ranNum) of
0:
Result := 'Attack';
1:
Result := 'Strength';
2:
Result := 'Defence';
3:
Result := 'Hitpoints';
4:
Result := 'Ranged';
end;
end;

//Some randomness added to make more humanlike and trying to not get you banned
//NOT GURANTEED YOU WON'T BE BANNED! USE AT YOUR OWN RISK
//PLAY AROUND TO IMPROVE THE ANTI BAN
procedure AntiBan;
var randNum1, randNum2: Integer;
begin
randNum1 := random(900);
if(randNum1 <= 5) then
begin
SetRun(True);
writeln('Anti-Ban In Action');
ran2 := random(10);
case(randNum2) of
1: BoredHuman;
2: RandomRClick;
3: wait(1500 + randomrange(1000,2500));
4: BoredHuman;
5: PickUpMouse;
6: wait(1500 + randomrange(1000,3000));
7: RandomRClick;
8: HoverSkill(RandomCombatSkill, false);
9: HoverSkill(RandomCombatSkill, false);
end;
wait(randomrange(500,1300));
end;
end;
{
THIS IS FOR ALL OF YOU THAT WANT'S TO BANK!
WRITE YOUR CODE BELOW, (FIND BANKS, WALK TO BANKS, DEPOSIT, WALK BACK
DONT FORGET TO UPDATE YOUR MAIN LOOPS WITH ADDED PROCEDURE/FUNCTIONS
}
begin
SetupSRL;
DeclarePlayers;
SetScreenName(Players[0].Nick);
ActivateClient;
wait(1000);
if(LoggedIn) then
Setup;
while(GFailSafe < GFAILSAFE_THRESHOLD) do
begin
case (CheckState) of
0:
begin
if(not InCombat) then
FindNormalRandoms;
if(PICKUP_HIDE) then
FindLoot;
AttackCow;
wait(randomrange(500,700));
end;
1:
begin
AntiBan;
wait(randomrange(50,150));
end;
2:
begin
LoginPlayer;
wait(randomrange(300,600));
Setup;
end;
3:
begin
break;
end;
end;
end;
writeln('Terminating script.');
TerminateScript;
end.

Rich

2013-06-13 15:15:48

Hey man. Sorry but I'm going to be voting no. Your script is far too simple, and we like to see applicants who are fairly active on the forums. Read a few intermediate/advanced guides in the tutorial section (and put what you learn into practice) and you'll have a much better chance next time :)

Ian

2013-06-13 15:19:17

These are the definite requirements as outlined by Daniel:

The requirements I have coloured either red or green, depending on if you have met them or not. Beside the requirement, I wrote why you did/didn't meet them.

  • Intrinsic documentation (is your script formatted properly [i.e. standards]? do you use suitable variable/method names?) Mostly good, definitely not a problem
  • Use of TPAs (TPointArrays)You don't use these, they are very useful in custom object finding procedures
  • Custom object finding (that means using NO FindObj* or ACA, make up your own!)You only use FindObjCustom for finding objects, try more advanced methods. Look into using TPAs/ATPAs
  • Use of auto-colouring (NO ACA generated functions)Just static cow colors
  • Walking (try not to use SPS, but instead try TPA walking/use RadialWalk)No walking.
  • Appropriate use of variable scope (i.e. local/global variables) local variables are used where possible, good.
  • Loops (repeat..Until, while..do and for..to..do) repeat..until, while..do
  • ArraysNo arrays. (If you use TPAs(TPointArrays) for object finding that will get you this one too.)
  • Case statements yep, they're there
  • Randomisation (i.e. use Wait(200 + Random(300)) instead of just Wait(200))No static waits, and randomisation in your case statement, good.
  • Backups/fail safes (in case something goes wrong, do what?)The CheckState is fairly basic, might wasnt to look into using boolean functions.
  • Anti-randomsYes, it's in there
  • A script greater than 300 linesYour script is 191 lines. A more advanced/complicated script will mean you easily pass the 300 line mark.


Please see Daniel's Guide on How to Become an SRL Member

Also at the top you have "CREDIT: Thanks to Saikek for his SaikekChickens". Thank you for crediting him, but remember that you're application needs to be about %65 your own work.


Summary (not at tldr, read the whole thing):
Inprove on the points I listed above, and read Daniel's guide. Make sure your script is mostly your work, and credit specifically where it is someone else's work. I can see you're eager, but unfortunately you're not quite there yet.

Keep improving :)

toxjq

2013-06-13 15:47:34

Ok I will try and write something more advanced I guess

StickToTheScript

2013-06-13 23:26:45

From: toxjq
Ok I will try and write something more advanced I guess


Not guess.. You will. :P

I will also have to vote no for the same reasons stated above. I think that if you looked at these tutorials


and read them and learnt from them, you might have a reasonable chance next time. :D

Good luck!

toxjq

2013-06-14 01:25:18

ok cool, thanks for the advices

Justin

2013-07-01 09:16:33

Sorry - Look's like you aren't becoming a SRL Member at this stage. Don't give up! Keep trying, Read over what other members have said on what you can improve and try to implement them into your script. You may apply again in 2 weeks.

Cheers,

Justin.