SRL Archive - Archive

quickmarch - SRL Member Application Form


Quickmarch

2008-10-12 15:49:27

<!– BEGIN TEMPLATE: formanswers –>
quickmarch - SRL Member Application Form
quickmarch

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?



Programming Knowledge
A Bit Of Actionscript

Other Communitys
None

How Long have You Played Runescape
2 years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

I wanted to cheat because runescape got boring.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

program WillowRemover;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Woodcutting.scar}

const

{=====================================================}
{ Willow Remover }
{=====================================================}
{ Script By Quickmarch. }
{ }
{ 1. Put Players In Draynor Bank. }
{ 2. Setup Lines Below. }
{ 3. Drag Crosshair To Runescape Client. }
{ 4. Click Run. }
{ }
{ }
{ }
{=====================================================}
{ Setup Here }
{=====================================================}
RunDirection= 'N'; //Run Direction If Attacked.
{=====================================================}
{ Declare Your Accounts. }
{=====================================================}

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //username.
Players[0].Pass := ''; //password.
Players[0].Nick := ''; //3-4 letters from your username.
Players[0].Strings[0] := '0000'; //Bank Pin Number Keep 0000 If You Dont Have One.
Players[0].Booleans[0] := True; //Is Axe Wielded? True If Yes.
Players[0].Integers[0] := 50; //Loads To Do Each Player.
Players[0].Active := True;

end;

{=====================================================}
{ Edit If You Have Problems. }
{=====================================================}

function StoneDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..5] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 965;
dtmMainPoint.y := 370;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 4671579;
dtmMainPoint.Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[0].x := 965;
dtmSubPoints[0].y := 370;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 4671579;
dtmSubPoints[0].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[1].x := 947;
dtmSubPoints[1].y := 332;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[2].x := 955;
dtmSubPoints[2].y := 328;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[3].x := 956;
dtmSubPoints[3].y := 319;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 195836;
dtmSubPoints[3].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[4].x := 961;
dtmSubPoints[4].y := 286;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 794717;
dtmSubPoints[4].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

dtmSubPoints[5].x := 955;
dtmSubPoints[5].y := 327;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 195836;
dtmSubPoints[5].Tolerance := 110; //Edit Tolerance Or Area If It Does Not Find Stone.

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;

{=======================================================}
{ Script Start. }
{=======================================================}

var
BrokenDTM, NormalDTM, WillowDTM, BankDTM: integer;

procedure SetupDTMS;
begin
BrokenDTM := DTMFromString('78DA63E4626060E06740019D19420C92409A1' +
'188FF0301232F90C1CC800618E16AC03C5620214E400D0FA65D30' +
'59B81A905DDC04CC110512BC04D488010916FC6A000035065E');

NormalDTM := DTMFromString('78DA639CC0CCC070939101193427093048026' +
'990E87F20609C07547301550D4816A606CC03A9B94C40CD1CA09A' +
'1B04D44C07AAB94240CD64A09AEB04D4F403D53C24A0A60BA8E61' +
'90135BD40357708A8994084DFA700D59CC3AF060021F015F0');

WillowDTM := DTMFromString('78DA63D467616088666440069E4E520C92401' +
'A24FA1F08184D816A0250D58064616AC03C1BA09A78026A2C806A' +
'9209A8D100AAC920A04619A82684801A39A09A04026A74816A82F' +
'1AB0100EBF509F3');

BankDTM := DTMFromString('78DA636C67626008644001FFFFFD63F80FA41' +
'9416C2060AC01AAF182C8B140D5FCF9C304A619A17CB09A204C35' +
'22E86AC2F09B0300F8811153');
end;

procedure Logo;
begin
ClearDebug;
WriteLn('____ ____ __ __ ____ ____ ');
Wait(100);
WriteLn('\ \ / / ___ | | | | ______ \ \ / / ');
Wait(100);
WriteLn(' \ \ / / | | | | | | / __ \ \ \ / / ');
Wait(100);
WriteLn(' \ \ _____ / / | | | | | | / / \ \ \ \ _____ / / ');
Wait(100);
WriteLn(' \ \__/ \__/ / | | | | | | / / \ \ \ \__/ \__/ / ');
Wait(100);
WriteLn(' \ _ / | | | |____ | |____ \ \ / / \ _ / ');
Wait(100);
WriteLn(' \ / \ / | | | / | / \ \__/ / \ / \ / ');
Wait(100);
WriteLn(' \____/ \____/ |___| |_____/ |_____/ \______/ \____/ \____/ ');
Wait(100);
WriteLn(' ');
Wait(100);
WriteLn(' _____ _____');
Wait(100);
WriteLn(' | _ \ | _ \ ');
Wait(100);
WriteLn(' | / \ \ ____ __ __ ______ ___ ___ ____ | / \ \ ');
Wait(100);
WriteLn(' | \_/ \ | __| | \ / | / \ \ \ / / | __| | \_/ \ ');
Wait(100);
WriteLn(' | / | |_ | \ / | / __ \ \ \ / / | |_ | / ');
Wait(100);
WriteLn(' | ^ / | _| | \ / | | / \ | \ \ / / | _| | ^ / ');
Wait(100);
WriteLn(' | | | \ | | | |\ \/ /| | | \__/ | \ \/ / | | | | | \ ');
Wait(100);
WriteLn(' | | | \ | |__ | | \__/ | | \ / \ / | |__ | | | \ ');
Wait(100);
WriteLn(' |__| |___\ |____| |__| |__| \______/ \__/ |____| |__| |___\');
Wait(100);
WriteLn(' ');
Wait(100);
WriteLn(' Created By Quickmarch. ');
Wait(3000); //Delete If You Want.
end;

var
x, y, rx, ry, xp: integer;

procedure SetupScript;
begin
if (not(LoggedIn)) then Exit;
Status('Setting Up Script...');
WriteLn('Setting Up Script...');
MakeCompass('N');
SetAngle(True);
FindAxe;
xp := GetXp('woodcutting');
if (InvFull) then
begin
Status('Banking Stuff.');
WriteLn('Banking Stuff.');
MakeCompass('N');
OpenBank('db', False, False);
Wait(500);
FixBank;
if (Players[CurrentPlayer].Booleans[0] = True) then
Deposit(1, 28, True);
if (Players[CurrentPlayer].Booleans[0] = False) then
Deposit(2, 28, True);
CloseBank;
end;
SetRun(True);
end;

var
RanAway, Ents: integer;

procedure AntiRandoms;
begin
FindNormalRandoms;
FindLamp('woodcutting');
if FindEnt(rx, ry, True) then
begin
Ents := Ents + 1;
end;
if (FindFight) then
begin
Status('Running Away...');
WriteLn('Found A Fight.');
RunAway(RunDirection,True,1,20000);
RanAway := RanAway + 1;
end;
end;

procedure AntiBan; //antiban by quickmarch
begin
case random(7) of
0:begin
HoverSkill('random', False);
AntiRandoms;
Exit;
end;
1:begin
BoredHuman;
AntiRandoms;
Exit;
end;
2:begin
Retaliate(True);
AntiRandoms;
Exit;
end;
3:begin
GameTab(random(12)+1);
AntiRandoms;
Exit;
end;
4:begin
RandomRClick;
AntiRandoms;
Exit;
end;
5:begin
PickUpMouse;
AntiRandoms;
Exit;
end;
6:begin
HoverSkill('woodcutting', False);
AntiRandoms;
Exit;
end;
end;
end;

procedure WalkToBank;
begin
if (not(LoggedIn)) then Exit;
if (InvFull) or not(InvFull) then
begin
Status('Searching For Bank...');
MakeCompass('N');
SetAngle(True);
if DTMRotated(StoneDDTM, rx, ry, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(rx, ry, 4, 4, True);
AntiRandoms;
FFlag(0);
if DTMRotated(BankDTM, rx, ry, MMX1, MMY1, MMX2, MMY2) then
begin
Status('Found Bank.');
WriteLn('Found Bank.');
Mouse(rx, ry, 5, 5, True);
AntiRandoms;
Wait(1000+random(1000));
FFlag(0);
Exit;
end else
begin
Status('Searching For Bank...');
MakeCompass('N');
SetAngle(True);
if FindSymbol(rx, ry, 'bank') then
begin
Status('Found Bank.');
WriteLn('Found Bank.');
Mouse(rx, ry, 5, 5, True);
AntiRandoms;
FFlag(0);
Exit;
end else
begin
Status('Searching For Bank...');
MakeCompass('N');
SetAngle(True);
if FindColorTolerance(rx, ry, 11908545, MMX1, MMY1, MMX2, MMY2, 3) then
begin
Status('Found Bank.');
WriteLn('Found Bank.');
Mouse(rx, ry, 5, 5, True);
AntiRandoms;
FFlag(0);
Exit;
end;
end;
end;
end;
end;
end;

procedure WalkToWillows; //walk to willows
begin
if (not(LoggedIn)) then Exit;
MakeCompass('N');
SetAngle(True);
Status('Finding Stone...');
if DTMRotated(StoneDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Status('Found Stone.');
WriteLn('Found Stone.');
Mouse(x, y, 2, 2, True);
AntiRandoms;
FFlag(0);
SetRun(True);
Exit;
end else
Status('Did Not Find Stone.');
WriteLn('Did Not Find Stone.');
begin
Status('Finding Fishing Symbol.');
MakeCompass('N');
SetAngle(True);
SymbolAccuracy := 0.5;
if FindSymbol(x, y,'fish') then
begin
Status('Found Fishing Symbol.');
WriteLn('Found Fishing Symbol.');
Mouse(x, y, 2, 2, True);
AntiRandoms;
FFlag(0);
SetRun(True);
Exit;
end else
WriteLn('Did Not Find Fishing Symbol.');
Status('Did Not Find Fishing Symbol.');
begin
WriteLn('Using RadialWalk...');
Status('Using RadialWalk...');
RadialWalk(FindWaterColor, 230, 220, 65, 0, 0);
AntiRandoms;
FFlag(0);
Exit;
end;
Status('Error...');
WriteLn('Did Not Find Willows Area.');
Logout;
TerminateScript;
end;
end;

var
Axe, i: Integer;

function FixAxe(Wield: Boolean): Boolean;
begin
if (FindDTM(BrokenDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
case Random(5) of
0: TypeSend('AHHHHHHHHHH i hate woodcutting!!!!!1');
1: TypeSend('Stupid Axe...');
2: TypeSend('im so angry!!!!!!!!!!!!!!!111111');
3: TypeSend('awwwwww not my axe again');
4: TypeSend('red: axes....');
end;
WriteLn('Found Broken Axe.');
WalkToBank;
FFlag(0);
OpenBank('db', False, False);
Deposit(1, 28, True);
if (FindDTM(NormalDTM, rx, ry, MSX1, MSY1, MSX2, MSY2)) then
begin
Result := True;
WriteLn('Found Good Axe.');
Mouse(rx, ry, 3, 3, True);
CloseBank;
if (Wield) then
begin
if (FindDTM(NormalDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
Status('Wielding Axe...');
WriteLn('Wielding Axe...');
Mouse(rx, ry, 4, 4, True);
end else
begin
WriteLn('Couldnt Find Axe DTM.');
MouseItem(1, True);
end;
end;
WalkToWillows;
end;
end;
end;

function FindWillows: Boolean;
var
x, y, rx, ry: Integer;
TPA: TPointArray;
Time, Tries: Integer;
ATPA: T2DPointArray;

begin
if (not(LoggedIn)) then Exit;
Status('Finding Willows...');
MarkTime(Time);
x := MSCX;
y := MSCY;
FindColorsSpiralTolerance(x, y, TPA, 8693935, MSX1, MSY1, MSX2, MSY2, 3);
if Length(TPA) = 0 then FindColorsSpiralTolerance(x, y, TPA, 3231044, MSX1, MSY1, MSX2, MSY2, 3);
ATPA := TPAtoATPAEx(TPA, 50, 50);
for i := 0 to High(ATPA)do
begin
if MiddleTPAEx(ATPA[i], rx, ry) then
MMouse(rx, ry, 4, 4);
if (IsUpTextMultiCustom(['hop', 'own', 'illow'])) then
begin
GetMousePos(rx, ry);
Mouse(rx, ry, 0, 0, False);
Wait(100+random(200));
Result := ChooseOption('hop');
if Result then
begin
Status('Chopping Willows...');
Wait(5000+random(3000));
AntiRandoms;
AntiBan;
if (FindBlackChatMessage('an axe')) then
begin
if (Players[CurrentPlayer].Booleans[0] = True) then
begin
GameTab(4);
if (FindDTM(WillowDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
Status('Fixing Axe...');
Mouse(rx, ry, 5, 5, False);
Wait(100);
ChooseOption('rop');
end;
GameTab(5);
TakeOff(5);
GameTab(4);
FixAxe(True);
Axe := Axe + 1;
if (FindBlackChatMessage('attack')) then
begin
WriteLn('You Do Not Have The Right Level To Wield That Axe.');
Tries := Tries + 1;
FixAxe(True);
if Tries= 3 then
begin
WriteLn('Could Not Find a Good Axe.');
Logout;
TerminateScript;
end;
end;
end;
if (Players[CurrentPlayer].Booleans[0] = False) then
begin
GameTab(4);
if (FindDTM(WillowDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(rx, ry, 5, 5, False);
Wait(100);
ChooseOption('rop');
end;
FixAxe(False);
Exit;
end;
if (TimeFromMark(Time) > 30000) then Exit;
Exit;
end;
if (TimeFromMark(Time) > 30000) then Exit;
Exit;
end;
Wait(350+random(350));
if (TimeFromMark(Time) > 30000) then Exit;
Exit;
end;
end;
end;

var
Loads, Lot2, xp2, xp3: integer;

procedure MyOpenBank;
begin
if (not(LoggedIn)) then Exit;
MakeCompass('N');
SetAngle(True);
OpenBank('db', True, True);
if (Players[CurrentPlayer].Booleans[0] = True) then
begin
if (PinScreen) then
InPin(Players[CurrentPlayer].Strings[0]);
if (FindDTM(WillowDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
Status('Depositing Willows...');
WriteLn('Depositing Willows...');
Mouse(rx, ry, 5, 5, False);
Wait(100);
ChooseOption('ll');
end;
end;
if (Players[CurrentPlayer].Booleans[0] = False) then
begin
if (PinScreen) then
InPin(Players[CurrentPlayer].Strings[0]);
if (FindDTM(WillowDTM, rx, ry, MIX1, MIY1, MIX2, MIY2)) then
begin
Status('Depositing Willows...');
WriteLn('Depositing Willows...');
Mouse(rx, ry, 5, 5, False);
Wait(100);
ChooseOption('ll');
end;
end;
CloseBank;
Loads := Loads + 1;
xp2 := GetXp('woodcutting');
xp3 := xp2 - xp;
WriteLn('|=======================================================|');
WriteLn('| Willow Remover Report |');
WriteLn('|=======================================================|');
WriteLn(' WoodCutting Xp Gained: '+ IntToStr(xp3) +'.');
WriteLn(' Loads Done: '+ IntToStr(Loads) +'.');
WriteLn(' Time Running: '+ TimeRunning +'.');
WriteLn(' Ran Away: '+ IntToStr(RanAway) +'.');
WriteLn(' Ents Avoided: '+ IntToStr(Ents) +'.');
WriteLn(' Broken Axes: '+ IntToStr(Axe) +'.');
WriteLn('|=======================================================|');
WriteLn('| Thank You For Using This Script |');
WriteLn('|=======================================================|');
//MULTIPLAYER!!!!
Lot2 := Lot2 + 1;
if Lot2=(Players[CurrentPlayer].Integers[0]) then
begin
WriteLn('Done All Loads For That Player.');
if (HowManyPlayers= 1) then
begin
WriteLn('All Players Successfully Finished.');
Logout;
TerminateScript;
end else
NextPlayer(False);
Lot2 := 0;
end;
MakeCompass('N');
SetRun(True);
end;



//FREE DTMS!!!!!!!!!!!!
procedure ScriptTerminate;
begin
FreeDTM(StoneDDTM);
FreeDTM(WillowDTM);
FreeDTM(NormalDTM);
FreeDTM(BrokenDTM);
FreeDTM(BankDTM);
end;


procedure MainLoop;
begin
DeclarePlayers;
Loginplayer;
SetupScript;
repeat
WalkToWillows;
repeat
FindWillows;
until(InvFull);
WriteLn('Inventory Full.');
WalkToBank;
MyOpenBank;
until(PlayersActive=0);
end;

begin
Disguise('Willow Remover');
Logo;
SetupDTMS;
SetupSRL;
MainLoop;
end.

{=======================================================}
{ End Script. }
{=======================================================}

——————————————————
<!– END TEMPLATE: formanswers –>

Blumblebee

2008-10-12 15:52:46

Looks really good :p. You have DDTMs, DTMs, Standards, ect. Yes from me, and good luck with your application.

-Blumblebee

Magiic

2008-10-12 16:07:08

yes from me you have
standards
failsafes
(D)Dtms
walking
randoms
and lots of other stuff i cba posting :P

Laur€ns

2008-10-12 16:28:41

Yes. You've got the skills you need.

Heavenzeyez1

2008-10-12 16:29:55

You could add just a few more failsafes,
And 2nd thing.
I didn't notice where did you use this? :
procedure ScriptTerminate;
Yes, you have the skills and keep learning!
~Eerik~

sirlaughsalot

2008-10-12 16:39:30

fo shizzle mofo! i hope you get in :p

JuKKa

2008-10-12 17:05:54

From: heavenzeyez1
You could add just a few more failsafes,
And 2nd thing.
I didn't notice where did you use this? :
procedure ScriptTerminate;
Yes, you have the skills and keep learning!
~Eerik~


what do u mean?


-Yes u seem to be good enough ;)

Claymore

2008-10-12 17:55:59

Your DDTM is setted up incorrectly. One, for Pete's sake use FindRockColor! Thats what DDTM is for in the first place!


Everything looks okay, make sure you know how to arrange your fail safes in order…

Like, Finding symbol should be last and DDTM is first. RRW is second.

I think thats it… Yes from me.

Runescapian321

2008-10-12 19:55:51

From: heavenzeyez1
You could add just a few more failsafes,
And 2nd thing.
I didn't notice where did you use this? :
procedure ScriptTerminate;
Yes, you have the skills and keep learning!
~Eerik~


ScriptTerminate is automatically executed when the Stop button is clicked or when TerminateScript is called.

I'll say yes for the reasons stated :) GL.

P1nky

2008-10-12 23:24:28

i like it, yes

keep it up has most reqs tooooo

mariofan12

2008-10-13 00:38:56

yes, u know SRL

Negaal

2008-10-13 12:39:56

Yes, enjoy your stay.

\Offtopic

Wtf, why 4 no'es, what matter with this script??!??

Nava2

2008-10-14 14:55:55

Yeah! :)

Nice script, make it prettier :D Try separating some of your longer procedures into smaller ones. Makes your life easier while scripting and easier to read ;).

That was completely a suggestion, nothing negative. Also, after an if statement, if you have another if statement and thats it, then you don't need to nest using begins and ends! :) Just another aesthetic thing.

nielsie95

2008-10-15 16:58:08

Welcome, sir.