Axes Break, they just don't fly off
Il try write one without logging in Lol.
Edit:
give this a try
program MultiChopper;
{.include SRl/SRl.scar}
{.include srl/srl/misc/users.scar}
var
y,loads,ent,meh,mehloads: integer;
const
coloerz = 123343;
UpText = 'illow';
loadsToDo = 10;
Function EntFinder: Boolean;
var
Counter,I: Integer;
Begin
Counter := 0;
FindNormalRandoms;
FindTalk;
While Counter < 15 do
Begin
FindNormalRandoms;
FindTalk;
i := GetColor(82 + Counter, 17);
Counter := Counter + 2;
if SimilarColors(i, 119764, 35) then
Begin
Result := True;
Mouse(MMCX, MMCY + 5, 2, 2, true);
end;
end;
end;
Function FindTree: Boolean;
Var
I,x: Integer;
TP: TPoint;
TPA: TPointArray;
TPAA2: Array Of TPointArray;
T2Darray: T2DPointArray;
Begin
FindColorsSpiralTolerance(MSCX, MSCY, TPAA2[I], coloerz, MSX1, MSY1, MSX2, MSY2, 4); FindColorsSpiralTolerance(MSCX, MSCY, TPAA2[I], 2651494, MSX1, MSY1, MSX2, MSY2, 4);
TPA := CombineTPA(TPAA2[0], TPAA2[1]);
T2Darray := SplitTPAEx(TPA, 10, 10);
FindNormalRandoms;
FindTalk;
if EntFinder then
begin
Inc(ent);
Exit;
end;
if Length(TPA) < 5 then
Exit;
For I:= 0 To High(T2Darray) Do
Begin
TP := MiddleTPA(T2Darray[I]);
Begin
FindTalk;
MMouse(TP.X, TP.Y, 0, 0);
Wait(100+Random(50));
FindNormalRandoms;
If IsUpText(UpText) then
Begin
Result := True;
TP.X:= X;
TP.Y:= Y;
FindTalk;
Exit;
End;
End;
End;
End;
procedure ChopTrees;
var
x,y,z,w,p,v: integer;
i : Integer;
Deg: Variant;
ChopsPl: Integer;
begin
Players[CurrentPlayer].Loc := 'Cutting';
If Not LoggedIn Then
Exit;
repeat
z:= InvCount;
if InvFull then Exit;
if FindTree then
begin
if EntFinder then
begin
Inc(ent);
FindNormalRandoms;
Writeln('ent found banking...');
end;
Case random(2) of
0:
begin
FindNormalRandoms;
GetMousePos(x,y)
FindTalk;
Mouse(x, y, 0, 0, True);
FindNormalRandoms;
Flag;
Wait(200+random(300));
SetAngle(True);
FindTalk;
end;
1:
begin
FindNormalRandoms;
GetMousePos(x,y)
FindTalk;
Mouse(x, y, 0, 0, False);
FindTalk;
Wait(100+ random(300));
ChooseOption('hop');
FindNormalRandoms;
Flag;
Wait(100+random(500));
SetAngle(True);
end;
end;
MarkTime(p);
repeat
FindNormalRandoms;
Wait(100+random(200));
if inChat('do not have') then
begin
FindTalk;
Writeln('We have No PickAxe');
Players[CurrentPlayer].Loc := 'No PickAxe - In Mine';
NextPlayer(False);
Exit;
end;
if InChat('logs') then
begin
FindTalk;
Inc(chopsPL);
if ChopsPl > 5 then
ChopTrees;
end;
if EntFinder then
begin
Inc(ent);
FindNormalRandoms;
FindTalk;
end;
if FindFight then
begin
Mouse(MMCX, MMCY + 20, 2, 2, true);
Logout;
wait(1*60000+random(1*30000));
LoginPlayer;
Mouse(MMCX, MMCY - 20, 2, 2, true);
end;
w:= InvCount;
FindNormalRandoms;
FindTalk;
if InvFull then
Break;
if Not LoggedIn then
Exit;
FindTalk;
FindNormalRandoms;
x:= Random(5);
if x = 3 then
begin
FindNormalRandoms;
Deg := rs_GetCompassAngleDegrees;
for i := 1 to (3 + Random(11)) do
begin
FindTalk;
MMouse(Random(MSX2), Random(MSY2), 0, 0);
if IsUpText('opti') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
ChooseOption('Examine');
FindTalk;
end;
FindNormalRandoms;
case Random(6) of
0: SendArrowSilentWait(((Random(2) * 2) + 1), 1000 + Random(200));
1: SendArrowSilentWait(((Random(2) * 2)), 1000 + Random(200));
2: SendArrowSilentWait(((Random(2) * 2) + 1), 200 + Random(200));
3: SendArrowSilentWait(((Random(2) * 2)), 200 + Random(200));
4: SendArrowSilentWait(((Random(2) * 2) + 1), 20 + Random(20));
5: SendArrowSilentWait(((Random(2) * 2)), 20 + Random(20));
end;
FindNormalRandoms;
FindTalk;
end;
if (Deg <> 0) then
MakeCompass(IntToStr(Round(Deg)))
else
MakeCompass('N');
SendArrowSilentWait(0, 750 + Random(500));
end else
begin
Wait(1000+random(3000));
case random(4) of
0: begin idleTime(500+random(500),800+random(200),0.01); FindNormalRandoms; end;
1: begin gametab(random(14)); FindNormalRandoms; end;
2:
begin
FindNormalRandoms;
mouse(random(msx2),random(msy2),0,0,false);
chooseOption('xamin');
end;
3: wait(1000+random(2000));
end;
FindNormalRandoms;
end;
if TimeFromMark(p) > 7000+random(5000) then
Break;
until(w > z)or(InvFull) or Not LoggedIn;
end;
v:= InvCount;
FindNormalRandoms;
if not z > v then
Break;
FindNormalRandoms;
until(InvFull)or(not(LoggedIn));
end;
begin
SetupSRL;
SrlPlayerForm(true,[],[],[],[]);
begin
LoginPlayer;
Writeln(' Logging In Player');
end;
markTime(meh);
mehloads:= LoadsToDo;
repeat
ChopTrees;
DropAll;
Loads:= Loads + 1
Writeln(InTToStr(loads) + ' : Loads done');
Writeln(InTToStr(ent) + ' : Ents found');
Until not loggedin or (mehloads >= loads);
end.