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…
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
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.