SRL Archive - Archive

Fwd Motion - SRL Member Application


Fwd Motion

2012-01-21 15:15:06

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Some Pascal
A little bit of JavaScript
HTML
PHP
A bit of C


Are you a member of any other communities?
I'm a member of rscheata.net
I've been a member there since 2007
My name there is "A-Sug [A T L Man]"


Tell us about yourself…
From: Fwd Motion
My name is Adam Sugden, I'm from Atlanta Georgia, I'm 18 years old and I love to learn new things and try to absorb as much knowledge as possible about different topics. I love to be the first to know things.

I'm a big problem solver. If something goes wrong I do everything I can do to fix it.

I don't really play much video games anymore, because they just don't interest me too much, but I sit down every once in a while.

I did a little bit of coding with nexus when they were up, but I decided that I needed to get my coding fix, so that's why I joined SRL!

I'm not sure how much it takes to become an SRL member, but I have written one script so far and I'm about to begin working on a summoning script soon, because I noticed that there isn't one in the public forums.



Please show us one (or multiple) of your scripts.
My herblore cleaning script is somewhat simple, but I edited some of the core functions and procedures to make it clean extremely fast!

http://villavu.com/forum/showthread.php?t=72584

(won't let me add as an attachment for some reason)

I also helped NATHAN with a few things in his script, if you look through the thread a bit
http://villavu.com/forum/showthread.php?t=70417


program FwdsMKHerbCleaner;
{$DEFINE SMART}
{.include srl/srl.simba}

var x,y,i,startingxp,InvNum,inventories,herbscleaned,antibans:integer;

const
(************--------------------SETUP-----------------------------************)
Server = 6; //What world?
NumberOfInventories = 200; //How many inventories? # of herbs/28
CleanSpeed = 60; // 60-120 recommended; Lower=Faster; 60=Max xp/hr
BankPin = '0000'; // Enter you bankpin here, leave if you don't have one.
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'Name'; // Username?
Players[0].Pass := 'Pass'; // Password?
Players[0].Nick := 'ick'; // 3 letters of your username (not the first letter)
Players[0].Active := True;
end;


// FUNCTIONS

Function XPPerHour(runtime,gained:integer):String;
begin
result:=inttostr(Round((gained * 3600) / (runtime / 1000)));
end;

Function GainedXP:integer;
begin
result:= GetXPBarTotal - startingxp;
end;

function ClickObj(x, y: Integer; HMod, SMod: Extended; color,tol:Integer; UpText:TStringArray):Boolean;
var
init, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
init:=GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, color, MSX1, MSY1, MSX2, MSY2, tol);
ColorToleranceSpeed(init);
ATPA:=TPAToATPAEx(TPA, 25, 25);
for i:=0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
sleep(100+random(100));
If(IsUpTextMultiCustom(UpText)) then
begin
Result := True;
GetMousePos(x, y);
Mouse(x,y,0,0,true);
sleep(150+random(150));
Break;
end;
end;
end;



Function OpenChest:boolean;
begin
if not(BankScreen) then
begin
if(IsUpText('hest')) then
begin
GetMousePos(x,y);
Mouse(x,y,0,0,true);
end else
begin
if(ClickObj(x,y,0.057,0.0959,8750735,36,['ank','chest'])) then
begin
result:=true;
end;
end;
sleep(200+random(300));
end;
end;
// PROCEDURES

procedure antiban;
begin
case random(1000) of
0..25:
begin
HoverSkill('herblore',false);
antibans:=antibans+1;
end;
26..51:
begin
sleep(2000+random(3000));
antibans:=antibans+1;
end;
800..825:
begin
SleepAndMoveMouse(2000+random(2000));
antibans:=antibans+1;
end;
end;
end;

procedure FMMouse(x, y, rx, ry: integer);
var
cx, cy: integer;
randSpeed: Extended;
{$IFDEF UseLaptopMouse}
seg, e, f, g, nx, ny, hypo: Integer;
a, b, c: Extended;
Miss: Boolean;
{$ENDIF}
begin
GetMousePos(cx, cy);
{$IFDEF UseLaptopMouse}
miss := (Random(LMouse_MissChance) = 0);
e:= 0;
a:= x - cx;
b:= y - cy;
c:= Pow(a,2) + Pow(b,2)
hypo:= Round(Sqrt(c));
case hypo of
0: Exit;
1..225: seg:=1;
226..600: seg:= Random(2) + 1;
601..1800: seg:= random(3) + 2;
else seg := 5;
end;
f := Round( a / seg);
g := Round( b / seg);
repeat
{Begin: Modified from MMouse by Benland100}
randSpeed := (random(MouseSpeed) + MouseSpeed);
if randSpeed = 0.0 then
randSpeed := 0.1;
getMousePos(cx,cy);
nx:= (cx + (f * e)) + random(rx);
ny:= (cy + (g * e)) + random(ry);
{End: Modified from MMouse by Benland100}
if Miss then
begin
nx:= nx + RandomRange(rx, rx * 2);
ny:= ny + RandomRange(ry, ry * 2);
end;
WindMouse(cx,cy,nx,ny,11.0,8.0,0.1,3,10.0*randSpeed,10.0*randSpeed);
e:= e + 1;
until(e = seg);
GetMousePos(cx, cy);
if not PointInBox(Point(cx, cy), IntToBox(x, y, x + rx, y + ry)) then
begin
WindMouse(cx,cy,(x + random(rx)),(y + random(ry)),11.0,6.0,0.1,3,10.0*randSpeed,10.0*randSpeed);
end;
{$ELSE}
randSpeed:= (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
if randSpeed = 0.0 then
randSpeed := 0.1;
X := x + random(rx);
Y := y + random(ry);
WindMouse(cx,cy,x,y,9.0,3.0,0.1,3,10.0*randSpeed,10.0*randSpeed);
{$ENDIF}
end;

procedure FClickMouse2(button: variant);
var
a,b,c : integer;
iButton: Integer;
begin
{ Eventually, should be made to just use Integers }
if (varType(button) = varBoolean) then
begin
if (button) then
iButton := mouse_left
else
iButton := mouse_right;
end else
iButton := button;

if (iButton = mouse_move) then Exit; { we aren't actually clicking! }

GetMousePos(b, c);

HoldMouse(b, c, iButton);
repeat
a := a + 1;
until (a > 4);
GetMousePos(b, c);
ReleaseMouse(b, c, iButton);
end;

procedure FMouse(mousex, mousey, ranx, rany: Integer; button: variant);
begin
FMMouse(mousex, mousey, ranx, rany);
FClickMouse2(button);
end;

procedure FMouseBox(x1, y1, x2, y2: Integer; ClickType: Integer);
var
fx, fy: Integer;
begin
GaussBox(fx, fy, x1, y1, x2, y2);

case ClickType of
mouse_right..mouse_middle : FMouse(fx, fy, 0, 0, clickType);
mouse_move : FMMouse(fx, fy, 0, 0);
else
srl_Warn('MouseBox', 'ClickType is NOT a valid number!', warn_AllVersions);
end;
end;

procedure FMouseBoxEx(x1, y1, x2, y2: Integer; Dist,ClickType: Integer);
var
PT : TPoint;
begin
GetMousePos(pt.x,pt.y);
PT := RandomPointBoxEx(pt,inttobox(x1,y1,x2,y2),Dist);
case ClickType of
mouse_right..mouse_middle : FMouse(pt.x, pt.y, 0, 0, clickType);
mouse_move : FMMouse(pt.x, pt.y, 0, 0);
else
srl_Warn('MouseBox', 'ClickType is NOT a valid number!', warn_AllVersions);
end;
end;

function FInvMouse(InvSlot, Action: Byte) : boolean;
var
TB: TBox;
CurrPT : TPoint;
begin
result := false;
if (not InRange(Action, 0, 3)) then
begin
srl_Warn('InvMouse', 'Action #' + IntToStr(Action) + ' is not a valid action', warn_AllVersions);
Exit;
end;
if (not InRange(InvSlot, 1, 28)) then
begin
srl_Warn('InvMouse', 'Inventory slot #' + IntToStr(InvSlot) + ' is not a valid slot', warn_AllVersions);
Exit;
end;
GameTab(tab_inv);
Result := true;
TB := InvBox(InvSlot);
GetMousePos(CurrPT.x,CurrPT.y);
if PointInBox(CurrPT,TB) then
FMouseBox(Max(CurrPT.x-random(2),TB.x1),Max(CurrPT.y-random(2),TB.y1),
Min(CurrPT.x+random(2),TB.x2),Min(CurrPT.y+random(2),TB.y2),Action) //LOL Pro-human much!
else
FMouseBoxEx(TB.X1, TB.Y1, TB.X2, TB.Y2,14, Action);
end;

Procedure Setup;
begin
if(BankScreen) then
begin
CloseBank;
sleep(300+random(300));
end;
MouseBox(644,168,669,202,1);
MakeCompass('S');
SetAngle(0);
end;

Procedure Bank;
begin
sleep(250+random(250));
if (PinScreen) then
InPin(BankPin);
if (BankScreen) then
begin;
QuickDeposit(SRL_DEPOSIT_ALL)
FixBank;
MMouse(55,108,8,8);
sleep(250+random(250));
if(IsUpTextMultiCustom(['rimy', 'imy'])) then
begin
GetMousePos(x,y);
Mouse(x,y,0,0,false);
WaitOptionMulti(['Withdraw-All', 'All'], 200);
sleep(500+random(100));
end else
if not(IsUpTextMultiCustom(['rimy', 'imy'])) then
begin
MMouse(55,108,8,8);
sleep(2000+random(250));
if(IsUpTextMultiCustom(['rimy', 'imy'])) then
begin
GetMousePos(x,y);
Mouse(x,y,0,0,false);
WaitOptionMulti(['WIthdraw-All', 'All'], 200);
sleep(500+random(250));
end else
if not(IsUpTextMultiCustom(['rimy', 'imy'])) then
begin
Writeln('Out Of Herbs');
if (BankScreen) then
CloseBank;
ExitToLobby;
TerminateScript;
end;
end;
end;
if not(BankScreen) then
begin;
OpenChest();
Bank;
CloseBank;
end;
end;

Procedure CleanHerb;
begin
if not InvFull then
begin;
OpenChest();
Bank;
CloseBank;
sleep(150+random(200));
end;
if invfull then
for i := 1 to 28 do
begin
MouseSpeed:=30;
FInvMouse(i,1);
sleep(cleanspeed+random(10));
HerbsCleaned:=HerbsCleaned+1;
end;
inventories:=inventories+1
//repeat
//MouseSpeed:=30;
//InvNum:=InvNum+1;
//FInvMouse(InvNum,1);
//sleep(CleanSpeed+random(10));
//HerbsCleaned:=HerbsCleaned+1;
//until (InvNum = 28);
//inventories:=inventories+1;
//PROGRESS REPORT STUFF
ClearDebug;
sleep(200+random(200));
Writeln('***************Mouse Keys Herb Cleaner***************');
Writeln('********************By Fwd Motion********************');
Writeln('Running for: ' + TimeRunning);
Writeln('Herbs Cleaned: ' + inttostr(HerbsCleaned));
Writeln('Herbs Cleaned/Hour: ' + XPPerHour(GetTimeRunning,HerbsCleaned));
Writeln('Experience Gained: ' + inttostr(GainedXP));
Writeln('Experience/Hour: ' + XPPerHour(GetTimeRunning,GainedXP));
Writeln('Antibans: ' + inttostr(antibans));
Writeln('*****************************************************');
sleep(200+random(200));
MouseSpeed:=15;
antiban;
sleep(200+random(200));
end;


begin
Smart_Members := True;
Smart_Server := SERVER;
SetupSRL;
DeclarePlayers;
if not(LoggedIn) then
LogInPlayer;
while not(LoggedIn) do
sleep(2500);
if not(IsXPBarOpen) then
ToggleXPBar(True);
startingxp:= GetXPBarTotal;
writeln(GetXPBarTotal);
Setup;
repeat
OpenChest();
Bank;
CloseBank;
CleanHerb;
until (inventories >= NumberOfInventories);
Writeln('Successfully Cleaned ' + inttostr(NumberOfInventories) + ' inventories of herbs!');
ExitToLobby;
end.

noidea

2012-01-21 15:29:10

Please paste the script in the post :)

Fwd Motion

2012-01-21 15:35:41

Done (:

Did I apply too soon?

the scar noob

2012-01-21 16:33:03

Any code that isn't yours? Such as all those mouse functions/procs?
And what about "ClickObj"?

Fwd Motion

2012-01-21 16:37:15

From: the scar noob
Any code that isn't yours? Such as all those mouse functions/procs?
And what about "ClickObj"?


Many of the procedures and functions are from the main includes, I just took out the wait times, and I used ClickObj from Nathan

'Toxin

2012-01-21 16:52:49

I say no, for a few reasons :

1) I'm not trying to be an ass or anything, but I don't think you have enough knowledge of how to actually script in simba. If things are already included in SRL, you do not have to copy and paste the functions into your simba script. Most of the functions/procedures which are in your script are ones which have been around for quite the time, and are nearly perfected. The script you should apply with should be something 'cool' per say, something that you've created yourself. I think having a simple clicking procedure is not really a script, should be more dynamic where you're showing more knowledge of SRL. Such as walking, TPA's, DTM's, etc…

2) You're very new to the community, hasn't even been a month. I think you need to spend some more time around and not only helping others out but at the same time strengthening your knowledge in scripting as much as you can.

Fwd Motion

2012-01-21 17:12:54

From: XxX Toxin XxX
I say no, for a few reasons :

1) I'm not trying to be an ass or anything, but I don't think you have enough knowledge of how to actually script in simba. If things are already included in SRL, you do not have to copy and paste the functions into your simba script. Most of the functions/procedures which are in your script are ones which have been around for quite the time, and are nearly perfected. The script you should apply with should be something 'cool' per say, something that you've created yourself. I think having a simple clicking procedure is not really a script, should be more dynamic where you're showing more knowledge of SRL. Such as walking, TPA's, DTM's, etc…

2) You're very new to the community, hasn't even been a month. I think you need to spend some more time around and not only helping others out but at the same time strengthening your knowledge in scripting as much as you can.


Well, the reason I brought over the procedures and functions into my script is because I did remove the wait times in order to have complete control over exactly how long it waits between cleaning each herb.

I guess this really isn't a very advanced script, but its my start. I will be working on a summoning script over the next few weeks, so it will involve walking, etc… I am excited to become more of a member here and I will continue to script and learn as much as I can about it all.

And honestly, you're not being an ass at all, I 100% welcome constructive criticism, as it is one of the main ways someone gets better an anything. So thank you for your honesty.

'Toxin

2012-01-21 19:12:03

From: Fwd Motion
Well, the reason I brought over the procedures and functions into my script is because I did remove the wait times in order to have complete control over exactly how long it waits between cleaning each herb.

I guess this really isn't a very advanced script, but its my start. I will be working on a summoning script over the next few weeks, so it will involve walking, etc… I am excited to become more of a member here and I will continue to script and learn as much as I can about it all.

And honestly, you're not being an ass at all, I 100% welcome constructive criticism, as it is one of the main ways someone gets better an anything. So thank you for your honesty.


That's what I like to see. As long as your attitude stays positive regardless of the outcome, it's all good. I'm glad that you have other projects in mind, but do keep in mind that you can always edit your post and upload what you have so far, for your summoning script, as I am sure it will influence the decision in a more positive manner.

Kyle Undefined

2012-01-21 20:47:15

I think you're too new here to apply, please make yourself known in the community and then apply :)

Fwd Motion

2012-01-22 01:42:04

Thank you guys for the consideration, I'm sorry that I'm not yet impressive enough to join the awesome club ;)

Anyways, I'll do more for the community and contribute often!

Thanks for the criticism and for the one vote :P

See you guys around! (:

Hobbit

2012-01-29 18:33:53

The poll has closed and you didn't quite make it this time. Please take the suggestions made here and read some more in the tutorial section and improve your script. You may reapply in 4 weeks time.


Cheers
Hobbit