SRL Archive - RS3 Outdated / Broken Scripts

BarbarianAdvancedAgility - The Fastest Agility Bot on SRL


Sin

2011-12-26 15:28:44

Hey guys, im releasing my first Script - BarbAdvAgility.
It pulls over 55K/H right now in it's beta stage.
PLEASEPLEASEPLEASEPLEASE BABYSIT!
Also, run it in a empty world.


Feature to come:
Rope Failsafe
RadialWalking - it's relying on a really ghetto fix right now( Im going to a movie MI4) right now so it was a rush)
Faster reactions
Progress Report


Just remember to Babysit!

Version: 0.3

program BarbAdvAgility;
{$include srl/srl/misc/smart.scar}
{$include srl/srl.scar}

//=========================================================|
//=========================================================|
//==================Welcome to BarbAdvAgility==============|
//========================Script by: S1N===================|
//==================Requirements: 93 Agility===============|
//=========================================================|
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
//=========================================================|
//=========================================================|
//====================Upcoming Features:===================|
//====================Low level course support=============|
//====================More Failsafes=======================|
//=========================================================|
//=========================================================|
//A thank you to "Uze", who's code I sneaked a couple peeks at >:3



//-----------------------------------------------------
//-----------------------------------------------------
//-------------------Setup and Shizzle-----------------


//FILL THIS OUT OR THE SCRIPT WONT FREAKING START!
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;// declare players

//antiban thanks to Uze
procedure AntiBan;
begin
case random(300) of
0: RandomRClick;
1: PickUpMouse;
2: RandomRClick;
3: HoverSkill('agility', False);
end;
end;

procedure AntiRandoms;
begin
FindNormalRandoms;
LampSkill := 'agility';
LevelUp;
end;
procedure SetupLogin;
begin
ClearDebug;
Smart_Server := 87;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
end;


//-----------------------------------------------------
//-----------------------------------------------------
//--------------------Script Code----------------------

Procedure Tarzan;
var
x, y:Integer; //location of rope swing
begin
repeat
if FindObjCustom(x, y, ['Swing', '-on'], [464409, 861996], 3) THEN
Wait(300 + random(100));
WriteLn('We found the Rope Swing!');
MMouse(x, y, 2, 2);
until (IsUpText('Rope'));

begin
WriteLn('Attempting to be Tarzan!');
Mouse(x, y, 2, 2, True);
if FindBlackChatMessage('busy') THEN
begin
wait(2000 + random(300));
Mouse(x, y, 2, 2, True);
end;
wait(1001);
MakeCompass(270 + random(10));
wait(4000 + random(200));
WriteLn('Doing a bit of antiban');

AntiBan;
AntiRandoms;
end;
end;

Procedure WalkBalance;
var
x, y:Integer;
begin
repeat
if FindObjCustom(x, y, ['Walk', '-across'], [7304577], 10) THEN
WriteLn('We found the Slippery Log!');
MMouse(x, y, 2, 2);
until(IsUpText('Walk'));
begin
WriteLn('Attempting to walk and not fall!');
Mouse(x, y, 2, 2, True);
wait(1001);
MakeCompass(170 + random(10));
wait(6500 + random(200));
WriteLn('Doing some more antiban');
AntiBan;
AntiRandoms;
end;
end;

procedure RunWall;
var
x, y:Integer;
begin
repeat
if FindObjCustom(x, y, ['Run-up'], [4278859], 4) Then
WriteLn('We found the wall!');
MMouse(x, y, 2, 2);
until(IsUpText('Run'));

begin
WriteLn('Attempting to do a move from "Matrix"');
Mouse(x, y, 2, 2, True);
wait(1501);
MakeCompass(30 + random(25));
wait(6500 + random(200));
AntiBan;
AntiRandoms;
end;
end;

procedure ClimbDatShit;
var
x, y:Integer;
begin
repeat
if FindObjCustom(x, y, ['Climb'], [3888491], 10) THEN
WriteLn('Attempting to climb');
MMouse(x, y, 2, 2);
until(IsUpText('Climb'));
begin
WriteLn('Climbing!');
Mouse(x, y, 2, 2, True);
wait(1002);
MakeCompass(0 + random(25));
wait(5000 + random(200));
AntiBan;
AntiRandoms;
end;
end;

procedure GetLaunched;
var
x, y:Integer;
begin
repeat
if FindObjCustom(x, y, ['Fire'], [12967652], 10) THEN
WriteLn('Finding the Crossbowthingy');
MMouse(x, y, 2, 2);
until(IsUpText('Fire'));

begin
WriteLn('Flying');
Mouse(x, y, 2, 2, True);
wait (6000 + random(200));
AntiBan;
AntiRandoms;
end;
end;

procedure WalkThePlank;
var
x, y:Integer;
begin
repeat
if FindObjCustom(x, y, ['Cross'], [7106417], 0) THEN
WriteLn('Becoming a pirate and walking the plank');
MMouse(x, y, 2, 2);
until(IsUpText('Cross'));

begin
WriteLn('l337 Pirate');
Mouse(x, y, 2, 2, True);
wait(5000 + random(400));
AntiRandoms;
end;
end;
procedure LeapOfFaith;
var
x,y:Integer;

begin
repeat
if FindObjCustom(x, y, ['Jump', 'over'], [1522509], 10) THEN
WriteLn('Finding the drop!');
MMouse(x, y, 2, 2);
until(IsUpText('Jump'));

begin
WriteLn('Leap of faith!');
Mouse(x, y, 2, 2, True);
wait(2000 + random(300));
AntiBan;
AntiRandoms;
end;
end;

procedure Weee;
var
x, y, a, b:Integer;
begin
repeat
if FindObjCustom(x, y, ['Slide', 'down'], [4345686], 5) THEN
WriteLn('Attempting to find slide');
MMouse(x, y, 2, 2);
until(IsUpText('Slide-down'));

begin
WriteLn('Sliding :D');
Mouse(x, y, 3, 3, True);
wait(1000);
MakeCompass(30);
wait(5500 + random(300));
WriteLn('Attempting to walk back to the start');
//code to walk to start
end;
end;


//----------------------------------------------
//----------------------------------------------
//------------------Main Code-------------------

begin
SetupLogin;
SetupSRL;
DeclarePlayers;
ActivateClient;
repeat
Tarzan;
wait(500 + random(200));
WalkBalance;
wait(500 + random(200));
RunWall;
wait(500 + random(200));
ClimbDatShit;
wait(500 + random(200));
GetLaunched;
wait(500 + random(200));
WalkThePlank;
wait(500 + random(200));
LeapOfFaith;
wait(500 + random(200));
Weee;
wait(500 + random(200));
until(false)
end.

Changelog:
December 26th, 2011 - Initial Release
December 26th, 2011 - Update to solve a couple errors
December 27th, 2011 - Added Rope Swing failsafe (Untested)


Video Demo of the script:
http://youtu.be/F2mIG7dWzLo


Enjoi :)

codtwolfy

2011-12-26 16:26:03

I was thinking about making one of these myself! Will definitely test and report back to you soon.

Sin

2011-12-26 16:27:37

Thanks :D

codtwolfy

2011-12-26 17:54:15

Just starting testing now. Script doesn't seem to work after the rope swing. The cursors just starts spazzing on a random point and doesn't detect the log at all.

Sin

2011-12-26 17:55:41

From: codtwolfy
Just starting testing now. Script doesn't seem to work after the rope swing. The cursors just starts spazzing on a random point and doesn't detect the log at all.


Hmm you sure that youre on max brightness and fixed?

codtwolfy

2011-12-26 18:01:38

Yes, I use other scripts so it shouldn't be an issue with my setup. Have you ever had this problem yourself?

EDIT: The cursor now likes to go to the upper left hand corner of the screen and do nothing. It believes it has detected the log and clicked it. After a pause (while it thinks its walking the log) it searches for the wall to run up. Because the character hasn't moved, it detects the ladder instead.

Sin

2011-12-26 19:06:35

Okay, i'll take a look at it in a while.

uz3

2011-12-26 19:29:40

Best of luck to you! The funny thing is I started scripting by using a cake stealer script to start me off. I basically lost all sanity trying to fix my damn script for hours on end. I didn't want to change mine to object finding because grim was using object finding so I just stayed with color (Don't do that). :)

I'll be sure to use this because regular gnome agility wasn't working on my 98 agility account!

Sin

2011-12-26 19:33:03

From: uz3
Best of luck to you! The funny thing is I started scripting by using a cake stealer script to start me off. I basically lost all sanity trying to fix my damn script for hours on end. I didn't want to change mine to object finding because grim was using object finding so I just stayed with color (Don't do that). :)

I'll be sure to use this because regular gnome agility wasn't working on my 98 agility account!

Don't use it atm, apparently there's a couple problems.

euphemism

2011-12-26 20:08:09

You need to add checks to make sure you have successfully passed an obstacle. Just running through the obstacles with waits is horrible. If it fails one obstacle, what then? You're still standing in front of that obstacle, the script will wait a few seconds, and then it'll try to complete the next obstacle, which is most likely not even visible.

Sin

2011-12-26 20:14:04

From: euphemism
You need to add checks to make sure you have successfully passed an obstacle. Just running through the obstacles with waits is horrible. If it fails one obstacle, what then? You're still standing in front of that obstacle, the script will wait a few seconds, and then it'll try to complete the next obstacle, which is most likely not even visible.

Ik, im working on that.

Anyways -
An update that fixes all the other problems in the thread + a video demonstrating it to the forums.

codtwolfy

2011-12-26 20:43:46

Hey, edit out your script. You left your username/pass in there. PMed with the new pass.

Sin

2011-12-26 20:45:14

From: codtwolfy
Hey, edit out your script. You left your username/pass in there. PMed with the new pass.


Shit Props lmao :P

uz3

2011-12-26 20:51:03

From: S1N
Ik, im working on that.

Anyways -
An update that fixes all the other problems in the thread + a video demonstrating it to the forums.


You can use this to check if it has passed through the obstacles.
FindBlackChatMessage('slippery')
Obviously replacing slippery with what you would see in the chatbox after you passed through an obstacle.

Sin

2011-12-26 20:59:22

Ily :D
I'll include that in v0.3 tommorow :)

Sin

2011-12-26 21:21:22

EDIT*
Updated to version 3!

LemonHaze

2011-12-27 11:35:38

nice! I will test this when i have 99 magic.

Sin

2011-12-27 20:07:52

Kk, let me know how it works :)
Ran it for about an hour and ten minutes before I stopped it.
Adding a Progress Report now ;D

codtwolfy

2011-12-27 22:42:17

A few things:

As it is standing on the plank, it thinks that it is in a random and begins checking music. It figures out it is not in one and then jumps the gap.

No failsafe on the slide messed it up once. When it did complete an entire lap, it began spamming that it found the rope when it hadn't even moved.

DarkCoder

2011-12-28 14:53:57

I will run this for a few hours plus tomorrow and give you some feedback :)

Claymore

2011-12-28 15:27:45

The speed of your script can be improved by replacing the long wait functions with a more reliable function that detects if you finish doing your moves.

I suggest using Pixel Shifting, or detecting animation based on players change in pixels over time.


{*******************************************************************************
function PixelShift(B: TBox; Time: Integer): Integer;
By: marpis
Description: Calculates how many pixels change in box B during time T.
Date: Nov. 29, 2009
*******************************************************************************}
function PixelShift(B: TBox; Time: Integer): Integer;
var
TIA: TIntegerArray;
begin
TIA := PixelShiftMulti([B], Time);
Result := TIA[0];
end;

So first, what you want to do is make a new script to obtain some variables.


program FindMyAnimation; //call it anything really.
($i SRL/SRL.scar}

var
i: Integer;
Box: TBox;

begin
//Setup SMART here.
SetUpSRL;
//DeclarePlayers if you want.
if not LoggedIn then
LogInPlayer;

Box := IntToBox(MSCX - 30, MSCY - 40, MSCX + 30, MSCY + 15); //I hope you know what MSCX and MSCY is (thats the center of your screens point) The Box defines what area you want to observe the change in pixels in. In our case, its going to be around our character. So define this however you want, i just used these points as an example.

i := PixelShift(Box, 500); //the 500, is the time you want to take to observe for the change in pixels.

WriteLn('Pixel changed in 0.5s is = ' + IntToStr(i));

Thats how you find the change in pixels. I leave the rest to you.

Take a look at the include animation down the SRL folder to study this. I dont even know if your going to take this in consideration.

Sin

2011-12-28 15:33:52

From: Deathscytex
The speed of your script can be improved by replacing the long wait functions with a more reliable function that detects if you finish doing your moves.

I suggest using Pixel Shifting, or detecting animation based on players change in pixels over time.


{*******************************************************************************
function PixelShift(B: TBox; Time: Integer): Integer;
By: marpis
Description: Calculates how many pixels change in box B during time T.
Date: Nov. 29, 2009
*******************************************************************************}
function PixelShift(B: TBox; Time: Integer): Integer;
var
TIA: TIntegerArray;
begin
TIA := PixelShiftMulti([B], Time);
Result := TIA[0];
end;

So first, what you want to do is make a new script to obtain some variables.


program FindMyAnimation; //call it anything really.
{DEFINE SMART}
($i SRL/SRL.scar}

var
Box, i: Integer;

begin
//Setup SMART here.
SetUpSRL;
//DeclarePlayers if you want.
if not LoggedIn then
LogInPlayer;

Box := IntToBox(MSCX - 30, MSCY - 40, MSCX + 30, MSCY + 15); //I hope you know what MSCX and MSCY is (thats the center of your screens point) The Box defines what area you want to observe the change in pixels in. In our case, its going to be around our character. So define this however you want, i just used these points as an example.

i := PixelShift(Box, 500); //the 500, is the time you want to take to observe for the change in pixels.

WriteLn('Pixel changed in 0.5s is = ' + IntToStr(i));

Thats how you find the change in pixels. I leave the rest to you.

Take a look at the include animation down the SRL folder to study this. I dont even know if your going to take this in consideration.

I never knew that even existed O.O
I'll try and recreate my script with that, seems more efficient + should account for lag and stuff!
Thanks a lot, +rep!

EDIT*
Okay, so I took a look at the Animation Include, and I found something called "IsMoving",
would this work out :

if IsMoving Then
wait(1000 + random(200));
//move on to the next obstacle
else
begin
wait(4000);
//repeat clicking of the obstacle
else
begin
//shutdown script
end;
end;
obviously it'd be more logical, just wanted to put out a quick question

Claymore

2011-12-28 15:58:14

From: S1N
I never knew that even existed O.O
I'll try and recreate my script with that, seems more efficient + should account for lag and stuff!
Thanks a lot, +rep!

EDIT*
Okay, so I took a look at the Animation Include, and I found something called "IsMoving",
would this work out :

if IsMoving Then
wait(1000 + random(200));
//move on to the next obstacle
else
begin
wait(4000);
//repeat clicking of the obstacle
else
begin
//shutdown script
end;
end;
obviously it'd be more logical, just wanted to put out a quick question


Yes i believe IsMoving is used for if the character is doing ANYTHING. I would try implementing that to your script and see how that goes.

Last i checked, an idle character will have a pixel shift of 110 or moreso. The isMoving tolerates about up to 200.


FindObj();
FFlag(0);

MarkTime(t); // This is a timer. t is an integer! so make sure you declare that.
repeat
if not LoggedIn then
Exit;

if TimeFromMark(t) > 5000 then //This indicates if the timer hits 5 seconds.
Exit;
Wait(500);
if not isMoving then
Break;

FindNormalRandoms;
until (False);

This will go on a loop until the character is not moving.

Sin

2011-12-28 16:04:57

From: Deathscytex
Yes i believe IsMoving is used for if the character is doing ANYTHING. I would try implementing that to your script and see how that goes.

Last i checked, an idle character will have a pixel shift of 110 or moreso. The isMoving tolerates about up to 200.


FindObj();
FFlag(0);

MarkTime(t); // This is a timer. t is an integer! so make sure you declare that.
repeat
if not LoggedIn then
Exit;

if TimeFromMark(t) > 5000 then //This indicates if the timer hits 5 seconds.
Exit;
Wait(500);
if not isMoving then
Break;

FindNormalRandoms;
until (False);

This will go on a loop until the character is not moving.


Ah I get it, i'll try this out in my script after I get back from work (15 and working ftw?).
I'll put credit where it's due, thanks a ton :)

didnotmakeit

2011-12-28 16:46:34

nice script, it would go out of bounds a lot but i think that's due to my poor internet connection. I will check back in a week or two once i changed my ISP. I look forward to see how much you can improve it with your tweaking.

Overtime

2011-12-28 23:00:23

YES awesome! Right now im pcing, but i will deffintely use this VERY SOON, once you update to v4 from what deathsythe said :3

Im at 98 agility and ran out of membership before I could get it to 99, then RSBuddy went down :(

But yes finally awesome, will get on this asap

ministone28

2012-01-02 05:43:53

How do i paste this script so its not on one line?

onilika

2012-01-02 07:40:00

Really Good Script S1N! I remember when you first did the gnome script, and I asked you when the advanced Gnome was going to be made/released! ;b
And now, advanced Barbarian Course is released! Well done mate, really well done! What's your goal now? 200m XP agility? aha
Time to get some strange rocks with this beauty :)
Rep + my friend

WT-Fakawi

2012-01-02 09:16:22

IsMoving detects movement in the Minimap, so
Repeat until not ismoving
will halt until the minimap is static.

Sin

2012-01-02 12:07:44

From: WT-Fakawi
IsMoving detects movement in the Minimap, so
Repeat until not ismoving
will halt until the minimap is static.


Omg are you serious >.>
I thought it read the pixels in a box around the player.
Time to change the whole code…

ministone28

2012-01-02 12:28:18

I copied line by line and seems to work for now, but i get tons of glitch points. The main one i get is when i get past the cross bow, the cursor goes into the upper left hand corner of the screen and stays there.

Sin

2012-01-02 12:29:10

Yes this version is really buggy, im working on V0.4

Please wait for it :)

blinkblink

2012-01-02 15:16:40

Any plans on making a separate or adding the use of the basic course? :)
I suppoose after you perfect the advanced side

LemonHaze

2012-01-02 17:29:00

From: ministone28
How do i paste this script so its not on one line?


I have the same problem, plz help :)

uz3

2012-01-02 18:23:31

From: lordvolt
I have the same problem, plz help :)


I'm not sure if this is out of line but here is a .simba file of this script. I can remove if you want me to.

ministone28

2012-01-02 19:01:02

thanks uz3, now we just need to wait for s1n to update the orginal then we can start testing it more.

Sin

2012-01-02 19:21:11

Okay!
Got my S1NYews script released, now it's time to update BarbAdvAgility with my newfound knowledge :)

LemonHaze

2012-01-03 09:26:48

From: uz3
I'm not sure if this is out of line but here is a .simba file of this script. I can remove if you want me to.


thank you, you should post the file on the first page :)

LemonHaze

2012-01-03 10:01:43

Warning! You passed a wrong ys to a finder function: -5. That is below 0, thus out of bounds. Setting the value to 0 for now.
Successfully executed.
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

Swedish Viking

2012-01-05 22:02:46

cant wait to try this :)

Sin

2012-01-05 22:05:32

Script is not working atm guys, i'm updating EVERYTHING to DTM's so that's quite the overhaul and will take a while.

hello world

2012-01-07 02:42:55

nice script

RuNnNy

2012-01-07 10:37:22

looks cool but, i don't have time to babysit.
lol

Synyster

2012-01-08 01:55:27

Try making a basic one please ! Or do you mind if I use this to make a basic script ? I've written reflection, but will take a look at some tutorials and other agility scripts and see what I can do ! :)

Synyster

2012-01-08 02:35:42

I'm not experienced with color as much as I am reflection, but within the next few days, I'll be studying the new language, but here's what I have so far.

Procedure: Balancing Edge needs some work. I don't know how to make it continue if it fails, etc. Also, couldn't figure out the whole compass turning thing, so right now it's going to turn in like 3 circles, unless I just fixed it, didn't test. :/ :google:

Lol, but S1N, or someone else, please work on this ? :)

d34th20n

2012-01-12 08:22:34

does this support eating, and if so, how does it replenish food?

cheers

Destined2bGreat

2012-01-18 12:44:14

I really wish there was a working one of this =\ Stuck doing ape atoll till 99.

Hoppers

2012-01-31 22:21:38

I got this message when I tried to start it up.


Exception in Script: Unable to find file 'srl/srl/misc/smart.scar' used from ''

Any ideas what to do to fix this?

lilcmp1

2012-01-31 23:33:18

From: Hoppers
I got this message when I tried to start it up.


Exception in Script: Unable to find file 'srl/srl/misc/smart.scar' used from ''

Any ideas what to do to fix this?


This script isn't working but btw if you ever see .scar it needs to be .simba

InHuman

2012-02-01 00:59:05

ahh man i was hoping this worked :/

burni

2012-02-01 08:11:40

From: InHuman
ahh man i was hoping this worked :/


same, I'll be using it when its up :)

Nebula

2012-08-10 03:20:22

Unable to find file 'srl/srl/misc/smart.scar' used from 'C:\Users\Alex\Downloads\S1NYewsLite.simba'

Iv'e been trying to find a fix for this script all night it isn't working. When I search for the error all I get are scripts not help fixing please help :(

http://puu.sh/QkZx

Also I have been looking over the thread and see a few things that could be improved.

Sin

2012-08-10 03:21:49

Why would you bump this?
Can't see what you posted, but this is a clear case of gravedigging.
Do you honestly have nothing better to do than go through my scripts and point out the faults?
Nice life you lead there my friend.

Nebula

2012-08-10 03:25:13

Right so what you did wasn't gravedigging either? You pointed out flaws in a script I made 6 months ago… Just returning the favor bud.

Daniel

2012-08-10 03:28:01

How about both of you grow up, accept your differences, and stop this little spat that you have going?