SRL Archive - Archive

bionicle1800 - SRL Member Application


Bionicle

2009-09-08 18:43:29

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


Are you affilated in anyway with Jagex LTD?
Nope

Were you Referred to SRL?
No


What is your general programming knowledge?
VB, Java, HTML


Are you a member of any other communities?
none


Tell us about yourself…
From: bionicle1800
I'm a teenager with a lot of time on my hands, currently in high school. I enjoy runescape, autoing, guitar, programing, and pretty much anything that has to do with computers.



Please show us one (or multiple) of your scripts.
program CatherbyYewCutterAndBanker;
{.include SRL/SRL.scar}
{.include srl/srl/reflection/reflection.scar}

{==============================================================================]
[Author: Bionicle1800 ]
[Released: 09/07/2009 ]
[Made for: SCAR 3.21 ]
[Version: 1.0 ]
[Made for: Cutting yews west of Catherby ]
[==============================================================================]
[ ________ ________ ]
[ / \___________________/ \ ]
[ /____ ____\ ]
[ \ INSTRUCTIONS / ]
[ _____/ \____ ]
[ \ ___________________ / ]
[ \________/ \________/ ]
[ ]
[ ]
[ First, set up the script with your characters information and how many loads ]
[ you want, as well as if your axe is equip. Then, place your character by the ]
[ yews, drag the crosshair to a runescape window and press play! ]
[ ]
[ (BTW: the MainLoop procedure is there just for convince, so i can get to it ]
[ easy.) ]
[==============================================================================}

var
x, y, xp, logs, DDTMTolerance: Integer;
const
weild = false; //Are you weilding a hatchet?
loads = 100; //How many loads do you want this script to do?
YourPin = ''; //Your Pin, all the pin's on your accounts have to be the same.

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

with players[0] do
begin
Name := ''; //Your Username
Pass := ''; //Your Password
Nick := ''; //A nickname to call you by
Active := true; //True if you are using this account, false if not
BoxRewards := ['mote', 'ostume', 'Xp']; //Random event rewards
end;
{
}
with players[1] do
begin
Name := '';
Pass := '';
Nick := '';
Active := false;
BoxRewards := ['mote', 'ostume', 'Xp'];
end;
{
}
with players[2] do
begin
Name := '';
Pass := '';
Nick := '';
Active := false;
BoxRewards := ['mote', 'ostume', 'Xp'];
end;
end;

procedure AntiBan;
begin
case Random(60) of
0: RandomMovement;
1: BoredHuman;
2: HoverSkill('Woodcutting', false);
3: ExamineInv;
4: PickUpMouse;
5: RandomRClick;
end;
end;

function SetDDTM1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 921;
dtmMainPoint.y := 270;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 2982761;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 921;
dtmSubPoints[0].y := 270;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 2982761;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 921;
dtmSubPoints[1].y := 269;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2982761;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 919;
dtmSubPoints[2].y := 271;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2982761;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 920;
dtmSubPoints[3].y := 271;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2982761;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 914;
dtmSubPoints[4].y := 267;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2982761;
dtmSubPoints[4].Tolerance := 0;

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

function SetDDTM2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 922;
dtmMainPoint.y := 215;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6907499;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 922;
dtmSubPoints[0].y := 215;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6907499;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 925;
dtmSubPoints[1].y := 220;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 6907499;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 917;
dtmSubPoints[2].y := 209;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 6907499;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 918;
dtmSubPoints[3].y := 211;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 6907499;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 917;
dtmSubPoints[4].y := 209;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 6907499;
dtmSubPoints[4].Tolerance := 0;

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

function SetDDTM3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 919;
dtmMainPoint.y := 299;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6644327;
dtmMainPoint.Tolerance := 15;

dtmSubPoints[0].x := 919;
dtmSubPoints[0].y := 299;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6644327;
dtmSubPoints[0].Tolerance := 15;

dtmSubPoints[1].x := 921;
dtmSubPoints[1].y := 301;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 6644327;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 917;
dtmSubPoints[2].y := 302;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 6644327;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 920;
dtmSubPoints[3].y := 303;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 6644327;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 916;
dtmSubPoints[4].y := 298;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 6644327;
dtmSubPoints[4].Tolerance := 0;

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

function SetDDTM4: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 265;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 7038829;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 265;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 7038829;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 934;
dtmSubPoints[1].y := 249;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7038829;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 930;
dtmSubPoints[2].y := 247;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7038829;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 930;
dtmSubPoints[3].y := 252;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7038829;
dtmSubPoints[3].Tolerance := 15;

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

function SetDDTM5: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;

begin
dtmMainPoint.x := 903;
dtmMainPoint.y := 285;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 7633013;
dtmMainPoint.Tolerance := 15;

dtmSubPoints[0].x := 903;
dtmSubPoints[0].y := 285;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 7633013;
dtmSubPoints[0].Tolerance := 15;

dtmSubPoints[1].x := 908;
dtmSubPoints[1].y := 288;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7633013;
dtmSubPoints[1].Tolerance := 15;

dtmSubPoints[2].x := 898;
dtmSubPoints[2].y := 287;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7633013;
dtmSubPoints[2].Tolerance := 15;

dtmSubPoints[3].x := 907;
dtmSubPoints[3].y := 284;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7633013;
dtmSubPoints[3].Tolerance := 15;

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

function WalkToCatherbyBankStep1: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM1;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM1;
end else
begin
Writeln('Walk To Catherby Bank step 1 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkToCatherbyBankStep2: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM2;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM2;
end else
begin
Writeln('Walk To Catherby Bank step 2 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkToCatherbyBankStep3: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM3;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM3;
end else
begin
Writeln('Walk To Catherby Bank step 3 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkToCatherbyBankStep4: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM4;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM4;
end else
begin
Writeln('Walk To Catherby Bank step 4 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkToCatherbyBankStep5: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM5;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM5;
end else
begin
Writeln('Walk To Catherby Bank step 5 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkBackToYewsStep1: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM4;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM4;
end else
begin
Writeln('Walk Back To Yews step 1 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkBackToYewsStep2: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM3;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM3;
end else
begin
Writeln('Walk Back To Yews step 2 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkBackToYewsStep3: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM2;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM2;
end else
begin
Writeln('Walk Back To Yews step 3 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkBackToYewsStep4: Boolean;

var
TheDDTM: Integer;

begin
if not loggedin then exit;
SetRun(True);
DDTMTolerance := 5;
TheDDTM := SetDDTM1;
repeat
if not DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
IncEx(DDTMTolerance, 5);
FreeDTM(TheDDTM);
TheDDTM := SetDDTM1;
end else
begin
Writeln('Walk Back To Yews step 4 successful.');
Mouse(x, y, 3, 3, true);
Result := True;
Break;
end;
until((DDTMTolerance >= 50) or not LoggedIn);
DDTMTolerance := 5;
FreeDTM(TheDDTM);
end;

function WalkToYew: Boolean;
begin
if not loggedin then exit;
SetRun(true);
R_FindRandoms;
SymbolAccuracy := 0.5;
Result := FindSymbol(x, y, 'rare trees');
if Result then;
begin
Mouse(x, y, 3, 3, true);
SymbolAccuracy := 0.5;
end;
end;

function FindYew: Boolean;

var
CTS, I, H, P, PA: Integer;
Points: TPointArray;
Pointers: T2DPointArray;

begin
if not loggedin then exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(3);
FindColorsSpiralTolerance(MSCX, MSCY, Points, 1593411, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
Pointers := TPAtoATPAex(Points, 11, 11);
SortATPASize(Pointers, True);
H := High(Pointers);
for I:=0 to H do
begin
R_FindRandoms;
MiddleTPAEx(Pointers[I], x, y);
MMouse(X, Y, 0, 0);
wait(50+(50));
if IsUpText('ew') then
begin
Result := True;
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
PA := I + 1;
P := H / 12 + 1;
Status('Clicked on tree '+IntToStr(PA)+', Found '+IntToStr(P)+' yews');
wait(500+random(250));
While CharacterMoving Do wait(50);
wait(800+random(200));
exit;
end;
end;
end;

procedure ChopYew;
begin
if not loggedin then exit;
repeat
FindYew;
While (CharacterAnimating or CharacterMoving) do
Begin
wait(400);
R_FindRandoms;
AntiBan;
end;
Antiban;
MMouse(704, 451, 3, 3);
if (IsUpText('ew logs')) then break;
Until(false);
end;

function BankYews: Boolean;

var
yewlogs: Integer;
exp: extended;

begin
if not loggedin then exit;
yewlogs := DTMFromString('78DA639CC0CCC030939101197898708169982' +
'8E34CA09AC9A86A60B27035F3806A161250D30354B382809A16A0' +
'9AD9F8D50000CE370690');
MakeCompass('N')
Wait (300 + random(160));
OpenBankFast('ctb');
if (PinScreen) then
InPin(YourPin);
if FindDTM(yewlogs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x, y, 3, 3);
if IsUpText('ew logs') then
begin
Wait(80 + random(100));
Mouse(x, y, 4, 3, false);
ChooseOption('All');
end;
CloseBank;
Wait(150 + random (278));
end;
If Weild Then
logs := logs + 28
else logs := logs + 27;
R_FindRandoms;
exp := logs * 175.0
xp := round(exp);
end;

procedure ProgressReport;
begin
cleardebug;
Writeln(' _______ _______')
Writeln(' / ______\ / ______\');
Writeln(' / / / /');
Writeln(' > > > >');
Writeln(' \ \_______ \ \_______');
Writeln(' \_______/atherby \_______/utter');
wait(3000);
cleardebug;
Writeln('===============================')
Writeln('Chopped for '+TimeRunning);
Writeln('Chopped '+IntToStr(logs)+' logs');
Writeln('Gained '+IntToStr(xp)+' exp');
Writeln('===============================')
Writeln('Catherby YewCutter by: bionicle1800');
end;

procedure MainLoop;
begin
ClearDebug;
SetupSRL;
DeclarePlayers;
GraphicsSet := true;
if not loggedin then loginPlayer;
makecompass('n');
SetAngle(True);
WalkToYew;
repeat
FindYew;
ChopYew;
WalkToCatherbyBankStep1;
WalkToCatherbyBankStep2;
WalkToCatherbyBankStep3;
WalkToCatherbyBankStep4;
WalkToCatherbyBankStep5;
BankYews;
WalkBackToYewsStep1;
WalkBackToYewsStep2;
WalkBackToYewsStep3;
WalkBackToYewsStep4;
FindYew;
ProgressReport;
Until(1 = loads);
end;

begin
Mainloop;
end.

Rich

2009-09-08 19:28:15

Your current application thread is still open. There is no need to create a new one. Also, you should wait one month between applications.

Richard.

Sir R. M8gic1an

2009-09-08 21:47:23

humm. you use functions for your walking, so why not


if WalkToCatherByStep1 then
if WalkToCatherbyStep2 then
//...
else writeln('failed at step');

also,
function SetDDTM(which: integer);
would be better than 5 different procs.

and all those walks would look better if you made a procedure/function that included all of them, rather than have such a big mainloop.

function ToBank: boolean;
begin
Result := false;
if WalkToBankStep1 then
if WalkToBankStep2 then
//...
Result := true;
end;

also, in your mainloop


repeat
FindYew;
//...
FindYew;
until(1 = loads)
so you actually call FindYew twice, one after the other. No need for that.

Also, 1 = Loads will always be false unless the person sets it to just one load, so you might as well just do until(false) or until(AllPlayersInactive) would be better to be honest.

You should have if not LoggedIn then break; in your mainloop as well.

I remember you saying that you only use one layer, and that is why you don't actually implement multiplayer. It would be good if you did just to show that you are able to do it.

Also, good scripting, that's your second script already if i am not mistaken?

I suggest you add your Iron Powerminer to this app as well.

Finally, R1ch is right, you should wait a month between apps. However i see that this is a completly new script and you use some nice methods.

Let me ask you, why CTS 3, why TPAToATPAEx ? Why not SplitTPA? Because i see that you used the same method for your powerminer.

Add your other script to this app.

~RM

Sir R. M8gic1an

2009-09-08 23:07:44

On second thought, this is just too early. Take the advice i gave you and please re-apply in two weeks. Closed.

~RM