SRL Archive - Archive

bionicle1800 - SRL Member Application


Bionicle

2009-09-18 05:10:46

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
No


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


Are you a member of any other communities?
None


Tell us about yourself…
From: bionicle1800
My name is Mike, I like runescape, guitar, music and programing. I am currently in school, but I'm one of those kids who get 90's and fall asleep in every class :). I really enjoy making scar scripts, and enjoy the satisfaction of watching my account play itself after the hard work of wrighting a good script.



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

{==============================================================================]
[Author: Bionicle1800 ]
[Released: 09/17/2009 ]
[Made for: SCAR 3.21 ]
[Version: 1.3 ]
[Made for: Cutting yews west of Catherby ]
[Thanks to: JAD & Coh3n for helping me with my walking :) ]
[==============================================================================]
[ ________ ________ ]
[ / \___________________/ \ ]
[ /____ ____\ ]
[ \ INSTRUCTIONS / ]
[ _____/ \____ ]
[ \ ___________________ / ]
[ \________/ \________/ ]
[ ]
[ ]
[ First, set up the script with your characters information and how many loads ]
[ you want, as well as if your axe is equipt. 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 convinence, so i can get to it]
[ easy.) ]
[==============================================================================}

var
DDTM1, DDTM2, DDTM3, DDTM4, DDTM5, x, y, l, xp, logs, DDTMTolerance: Integer;
const
weild = false; //Are you weilding a hatchet?
loads = 100; //How many loads do you want this script to do?

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
Pin := ''; //The pin for this account
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 := '';
Pin := '';
Active := false;
BoxRewards := ['mote', 'ostume', 'Xp'];
end;
{
}
with players[2] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
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;

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;

function FindWalkingColor(FindTheColor: Integer): Integer;
var
TPA: TPointArray;
I: Integer;

begin
case FindTheColor of
1: FindColorsTolerance(TPA, 2654058, MMX1, MMY1, MMX2, MMY2, 10);
2: FindColorsTolerance(TPA, 7236721, MMX1, MMY1, MMX2, MMY2, 10);
3: FindColorsTolerance(TPA, 2917252, MMX1, MMY1, MMX2, MMY2, 10);
4: FindColorsTolerance(TPA, 2449517, MMX1, MMY1, MMX2, MMY2, 10);
5: FindColorsTolerance(TPA, 7764087, MMX1, MMY1, MMX2, MMY2, 10);
end;
if(GetArrayLength(TPA) > 0) then
Result := GetColor(TPA[i].X, TPA[i].Y) else
Result := 0;
end;

function DDTMWalk(BankWalkNumber: Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;

begin
case BankWalkNumber of
1: begin
dtmMainPoint.x := 938;
dtmMainPoint.y := 269;
dtmMainPoint.AreaSize := 5;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(1);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 938;
dtmSubPoints[0].y := 269;
dtmSubPoints[0].AreaSize := 5;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(1);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 939;
dtmSubPoints[1].y := 268;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(1);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 937;
dtmSubPoints[2].y := 269;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(1);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 938;
dtmSubPoints[3].y := 270;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(1);
dtmSubPoints[3].Tolerance := 0;

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

2: begin
dtmMainPoint.x := 924;
dtmMainPoint.y := 223;
dtmMainPoint.AreaSize := 8;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(2);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 924;
dtmSubPoints[0].y := 223;
dtmSubPoints[0].AreaSize := 8;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(2);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 924;
dtmSubPoints[1].y := 220;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(2);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 928;
dtmSubPoints[2].y := 225;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(2);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 922;
dtmSubPoints[3].y := 224;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(2);
dtmSubPoints[3].Tolerance := 0;

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

3: begin
dtmMainPoint.x := 904;
dtmMainPoint.y := 324;
dtmMainPoint.AreaSize := 11;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(3);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 904;
dtmSubPoints[0].y := 324;
dtmSubPoints[0].AreaSize := 11;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(3);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 910;
dtmSubPoints[1].y := 322;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(3);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 905;
dtmSubPoints[2].y := 326;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(3);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 903;
dtmSubPoints[3].y := 321;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(3);
dtmSubPoints[3].Tolerance := 0;

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

4: begin
dtmMainPoint.x := 916;
dtmMainPoint.y := 276;
dtmMainPoint.AreaSize := 6;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(4);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 916;
dtmSubPoints[0].y := 276;
dtmSubPoints[0].AreaSize := 6;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(4);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 912;
dtmSubPoints[1].y := 275;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(4);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 918;
dtmSubPoints[2].y := 276;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(4);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 915;
dtmSubPoints[3].y := 278;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(4);
dtmSubPoints[3].Tolerance := 0;

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

5: begin
dtmMainPoint.x := 924;
dtmMainPoint.y := 232;
dtmMainPoint.AreaSize := 10;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(5);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 924;
dtmSubPoints[0].y := 232;
dtmSubPoints[0].AreaSize := 10;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(5);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 927;
dtmSubPoints[1].y := 234;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(5);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 929;
dtmSubPoints[2].y := 231;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(5);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 928;
dtmSubPoints[3].y := 228;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(5);
dtmSubPoints[3].Tolerance := 0;

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

function DDTMWalk2(BankWalkNumber2: Integer): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;

begin
case BankWalkNumber2 of
1: begin
dtmMainPoint.x := 916;
dtmMainPoint.y := 276;
dtmMainPoint.AreaSize := 6;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(4);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 916;
dtmSubPoints[0].y := 276;
dtmSubPoints[0].AreaSize := 6;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(4);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 912;
dtmSubPoints[1].y := 275;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(4);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 918;
dtmSubPoints[2].y := 276;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(4);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 915;
dtmSubPoints[3].y := 278;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(4);
dtmSubPoints[3].Tolerance := 0;

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

2: begin
dtmMainPoint.x := 904;
dtmMainPoint.y := 324;
dtmMainPoint.AreaSize := 11;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(3);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 904;
dtmSubPoints[0].y := 324;
dtmSubPoints[0].AreaSize := 11;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(3);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 910;
dtmSubPoints[1].y := 322;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(3);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 905;
dtmSubPoints[2].y := 326;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(3);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 903;
dtmSubPoints[3].y := 321;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(3);
dtmSubPoints[3].Tolerance := 0;

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

3: begin
dtmMainPoint.x := 924;
dtmMainPoint.y := 223;
dtmMainPoint.AreaSize := 8;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(2);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 924;
dtmSubPoints[0].y := 223;
dtmSubPoints[0].AreaSize := 8;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(2);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 924;
dtmSubPoints[1].y := 220;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(2);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 928;
dtmSubPoints[2].y := 225;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(2);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 922;
dtmSubPoints[3].y := 224;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(2);
dtmSubPoints[3].Tolerance := 0;

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

4: begin
dtmMainPoint.x := 938;
dtmMainPoint.y := 269;
dtmMainPoint.AreaSize := 5;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindWalkingColor(1);
dtmMainPoint.Tolerance := 10;

dtmSubPoints[0].x := 938;
dtmSubPoints[0].y := 269;
dtmSubPoints[0].AreaSize := 5;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindWalkingColor(1);
dtmSubPoints[0].Tolerance := 10;

dtmSubPoints[1].x := 939;
dtmSubPoints[1].y := 268;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindWalkingColor(1);
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 937;
dtmSubPoints[2].y := 269;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindWalkingColor(1);
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 938;
dtmSubPoints[3].y := 270;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindWalkingColor(1);
dtmSubPoints[3].Tolerance := 0;

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

procedure RadialWalkn(RadialWalking: Integer);
begin
case RadialWalking of
1: RadialWalk(FindWalkingColor(1), 0, 100, 60, 5, 5);
2: RadialWalk(FindWalkingColor(2), 0, 90, 60, 5, 5);
3: RadialWalk(FindWalkingColor(3), 90, 180, 60, 5, 5);
4: RadialWalk(FindWalkingColor(4), 35, 140, 60, 5, 5);
5: RadialWalk(FindWalkingColor(1), 0, 119, 60, 5, 5);
end;
end;

procedure RadialWalkn2(RadialWalking2: Integer);
begin
case RadialWalking2 of
1: RadialWalk(FindWalkingColor(4), 35, 140, 60, 5, 5);
2: RadialWalk(FindWalkingColor(3), 90, 180, 60, 5, 5);
3: RadialWalk(FindWalkingColor(2), 0, 90, 60, 5, 5);
4: RadialWalk(FindWalkingColor(1), 0, 100, 60, 5, 5);
end;
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;
FFlag(0);
end;
end;

function FindYew: Boolean;

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

begin
if not loggedin or Invfull 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(10000 + random(5000));
R_FindRandoms;
AntiBan;
end;
Antiban;
Until(Invfull);
end;

procedure WalkToBank;
var
i, TheDDTM: Integer;

begin
if not loggedin then exit;
ClearDebug;
Setrun(true);
for i := 1 to 5 do
begin
TheDDTM := DDTMWalk(i);
If DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 0, 0, true);
WriteLn('Step' + IntToStr(i) + 'of WalkToBank successful');
FFlag(0);
end else
WriteLn('Couldnt find using DDTM, trying Radial.');
RadialWalkn(i);
end;
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(Players[CurrentPlayer].Pin);
if FindDTM(yewlogs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x, y, 3, 3);
if IsUpText('ew logs') then
begin
GetMousePos(x, y);
Wait(80 + random(100));
Mouse(x, y, 0, 0, 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);
l := 0;
Inc(l);
end;

procedure WalkFromBank;
var
i, TheDDTM: Integer;

begin
if not loggedin then exit;
ClearDebug;
Setrun(true);
for i := 1 to 4 do
begin
TheDDTM := DDTMWalk2(i);
If DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 0, 0, true);
WriteLn('Step' + IntToStr(i) + 'of WalkToBank successful');
FFlag(0);
end else
WriteLn('Couldnt find using DDTM, trying Radial.');
RadialWalkn2(i);
end;
end;

procedure MainLoop;
begin
ClearDebug;
SetupSRL;
DeclarePlayers;
GraphicsSet := true;
if not loggedin then loginPlayer;
makecompass('n');
SetAngle(True);
Disguise('Bionicle1800s Yew Cutter');
WalkToYew;
repeat
repeat
ChopYew;
WalkToBank;
BankYews;
WalkFromBank;
ProgressReport;
Until(l = loads);
NextPlayer(true);
until(false);
end;

begin
Mainloop;
end.

mormonman

2009-09-18 05:20:45

Haven't looked at it much, but these should be player variables

weild = false; //Are you weilding a hatchet?
loads = 100; //How many loads do you want this script to do?

with players[0] do
begin
Name := ''; //Your Username
Pass := ''; //Your Password
Nick := ''; //A nickname to call you by
Pin := ''; //The pin for this account
Active := true; //True if you are using this account, false if not
BoxRewards := ['mote', 'ostume', 'Xp']; //Random event rewards
Integers[] := 100; //Loads
Booleans[] := True; //Wield Hatchet?
end;

YoHoJo

2009-09-18 05:24:26

  if(GetArrayLength(TPA) > 0) then
Id say that the>0 should be a larger number, because road easily takes up like 40+ pixels? And you dont want toaccidentally get a wrong grey color thats something else/smaller.

Im normally harsh and vote no and id call my self pretty harsh, but this seems a bit better than other scripts ive seen around. You got cases, multiplayer, dtm,ddtm, two methods of walking (but they need failsafes and are pretty ghetto, but hey you got them).

The multilayer could be nicer, the repeat until l=loads could be a long time. What if someone wanted like 40 loads? You should make it switch player ever 3 loads or so instead.

Im going to be nice today though, and im leaning strongly towards yes, but id still like to see feedback from others <3. Good Luck!

JAD

2009-09-18 06:13:40

I mentioned this in my critique on your script outside of the applications before. In FindWalkingColor, you do Result := GetColor(TPA.X, TPA.Y), even though I is always going to = 0. This means, it always and only will use the first point in the TPA, which makes the whole TPA pretty much useless. The function could just use a FindColorTolerance instead of a FindColorsTolerance with the same result.

Also, wouldn't it be easier with this function to just send the color instead of the number? Like


FindColorsTolerance(TPA, FindTheColor, MMX1,MMY1,MMX2,MMY2,10);

instead of:

case FindTheColor of
1: FindColorsTolerance(TPA, 2654058, MMX1, MMY1, MMX2, MMY2, 10);
2: FindColorsTolerance(TPA, 7236721, MMX1, MMY1, MMX2, MMY2, 10);
3: FindColorsTolerance(TPA, 2917252, MMX1, MMY1, MMX2, MMY2, 10);
4: FindColorsTolerance(TPA, 2449517, MMX1, MMY1, MMX2, MMY2, 10);
5: FindColorsTolerance(TPA, 7764087, MMX1, MMY1, MMX2, MMY2, 10);
end;

Just send the color to the function instead.




procedure RadialWalkn(RadialWalking: Integer);
begin
case RadialWalking of
1: RadialWalk(FindWalkingColor(1), 0, 100, 60, 5, 5);
2: RadialWalk(FindWalkingColor(2), 0, 90, 60, 5, 5);
3: RadialWalk(FindWalkingColor(3), 90, 180, 60, 5, 5);
4: RadialWalk(FindWalkingColor(4), 35, 140, 60, 5, 5);
5: RadialWalk(FindWalkingColor(1), 0, 119, 60, 5, 5);
end;
end;

That last FindWalkingColor should probably be a 5, right?


procedure RadialWalkn(RadialWalking: Integer);
begin
case RadialWalking of
1: RadialWalk(FindWalkingColor(1), 0, 100, 60, 5, 5);
2: RadialWalk(FindWalkingColor(2), 0, 90, 60, 5, 5);
3: RadialWalk(FindWalkingColor(3), 90, 180, 60, 5, 5);
4: RadialWalk(FindWalkingColor(4), 35, 140, 60, 5, 5);
5: RadialWalk(FindWalkingColor(5), 0, 119, 60, 5, 5);
end;
end;

You probably just missed that when copying and pasting.

You are missing a begin/end in WalkToBank I believe:


If DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 3, 3, true); //HERE
WriteLn('Step' + IntToStr(i) + 'of WalkToBank successful');
FFlag(0);
end else
begin //HERE
WriteLn('Couldnt find using DDTM, trying Radial.');
RadialWalkn(i);
end; //HERE

I would also suggest adding randomness to that mouse if it found the DDTM like I put in the example above.


In BankYews, you never did a bank screen check before looking for the yews? I would highly suggest doing a if(not(BankScreen))then Exit; in there or something:


if(not(OpenBankFast('ctb')))then/////
OpenBankQuiet('ctb',false,false);/////
if(not(BankScreen))then/////
begin/////
Writeln('Not at bank screen... Switching players');/////
Logout;/////
Exit;/////
end; /////
if (PinScreen) then
InPin(Players[CurrentPlayer].Pin);
if FindDTM(yewlogs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x, y, 3, 3);
if IsUpText('ew logs') then
begin
GetMousePos(x, y);
Wait(80 + random(100));
Mouse(x, y, 0, 0, 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);
l := 0;
Inc(l);
I also added an extra bank open fail safe if OpenBankFast failed.

What if it didn't find the yew log though? You only close the bank IF it found the yew log. If it never found it, it still increments everything, and never closes the bank. You only want it to increment everything if it found yew logs though, or else it really didn't do a load. Change:

if FindDTM(yewlogs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x, y, 3, 3);
if IsUpText('ew logs') then
begin
GetMousePos(x, y);
Wait(80 + random(100));
Mouse(x, y, 0, 0, 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);
l := 0;
Inc(l);

To:


if FindDTM(yewlogs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x, y, 3, 3);
if IsUpText('ew logs') then
begin
GetMousePos(x, y);
Wait(80 + random(100));
Mouse(x, y, 0, 0, false);
ChooseOption('All');
end;
Wait(150 + random (278));
If Weild Then
logs := logs + 28
else logs := logs + 27;
R_FindRandoms;
exp := logs * 175.0
xp := round(exp);
end;
CloseBank; //Moved here
l := 0;
Inc(l);

Also, what is the point of having 2 separate variables: exp and xp? And why is exp a float? They could just be combined into 1 integer since exp doesn't need a decimal (since the amount of experience you get is a real number).


Also, missing a begin/end in WalkFromBank.

Where is your if(not(LoggedIn))then NextPlayer(False); in the main loop? Also, what if I never = loads? Lets try changing:


repeat
ChopYew;
WalkToBank;
BankYews;
WalkFromBank;
ProgressReport;
Until(l = loads);

To:

repeat
ChopYew;
WalkToBank;
BankYews;
WalkFromBank;
ProgressReport;
if(not(LoggedIn))then
begin
NextPlayer(False);
I := 0; //Reset I so the next player does a normal amount of loads
end;
Until(l = loads);


Also, change those things to player array variables like Mormonman suggested.



Quite a few things I told you in the other you didn't fix, which I am a little disappointed about. This script still needs a little bit of work, and could still use some more fail safes in places such as your walking. However, you show a great attitude, you have learned a lot in a short amount of time, you show advanced use of TPointArrays, and have a willingness to learn.

I say yes. Good job and good luck! :)
~JAD

Daniel

2009-09-18 10:45:05

I vote yes, mainly because of your attitude and willingness to learn and helping others wherever possible (whether it be in the form of tutorials or replies). JAD has picked out almost everything, except for two things i don't really like:

1:

NextPlayer(true);
until(false);
So every player is going to be active and you're just going to let the script keep going through them all, despite the fact that they all should be false?

2: This one not being much of an issue, but:

begin
Mainloop;
end.

Why have a separate procedure? Just merge MainLoop with the actual main loop :)

Good luck ;)

Main

2009-09-18 12:34:16


If Nuffsaid then
begin
Voteyes;
Writeln('Voted Yes');
end else
begin
Voteno;
Writeln('Voted No');
end;
Successfully compiled (6784 ms)
Voted Yes

YoHoJo

2009-09-18 12:43:39

gay script^

Naike

2009-09-18 15:18:47

From: YoHoJo
gay script^

+1 :p


Voted yes :)

Blumblebee

2009-09-18 19:29:32

looks good. Your active, smart and your script is written well. Your one of the few people that actually understand DDTM's when they use them in applications.

Bionicle

2009-09-18 22:55:09

[QUOTE=Dan's The Man;633560]
2: This one not being much of an issue, but:
[highlight=scar]
begin
Mainloop;
end.[/highlight]

Why have a separate procedure? Just merge MainLoop with the actual main loop :)[/QUOTE]

Thats there just for convinence sake so i can easly get down to it :)

Smarter Child

2009-09-19 03:41:29

Yes. Maybe add more failsafes to your radial walking..though.

rogeruk

2009-09-20 03:59:33

Looks good. Some improvement to be made.

Yes.

Smarter Child

2009-09-20 21:22:43

Welcome in advance to SRL members.
-
Here at SRL, we frown upon winBL0WS users. :p..jk GL

Bionicle

2009-09-20 21:43:03

From: Smarter Child
Welcome in advance to SRL members.
-
Here at SRL, we frown upon winBL0WS users. :p..jk GL


LOL thx alot, cant wait :p

Dynamite

2009-09-20 22:29:43

I like you period
probs better than me period
(man i should prob go to doctor about my periods :/ lol)
Yes.

T~M

marpis

2009-09-21 01:52:57

Yes.
Fix this in your FindYew function
wait(50+(50));

And btw, you never use the result in FindYew.
Also, if you have failed walking to Yews but the script think you're at Yews it will be an endless loop of Yew finding.


{ ORIGINAL }
procedure ChopYew;
begin
if not loggedin then exit;
repeat
FindYew;
While (CharacterAnimating or CharacterMoving) do
Begin
wait(10000 + random(5000)); // <- 10sec loops is too much
R_FindRandoms;
AntiBan;
end;
Antiban;
Until(Invfull);
end;


{ FIXED }
procedure ChopYew;
var
T: Integer;
begin
if not loggedin then exit;
MarkTime(T);
repeat
if FindYew then
begin
While (CharacterAnimating or CharacterMoving) do
Begin
wait(1000 + random(500)); // <- 10sec loops is too much
R_FindRandoms;
AntiBan;
end;
Antiban;
end;
Until(Invfull or (TimeFromMark(T) > 5*60*1000));
end;

And I suggest you to take away Reflection.
If you don't make it 100% Reflection, don't make it reflection at all.
Reflection walking is more accurate than colorwalking, so if you want to use something in reflection, use walking. You should think of another way to check if the character is chopping the tree.

Sir R. M8gic1an

2009-09-21 02:30:42

Yes.

~RM

Sir R. M8gic1an

2009-09-26 22:12:16

Welcome to Jah People!

~RM