SCAR Code:
{ _
_|_ | __ \_' __ __ __ __| ___ __ ___ __
| |_, (__( / \ (__| (__( | ' (__| (__/_ | ) (__/_ | '
__/
}
program Flax_Gardener_Eternity_Universal_026;//THIS VERSION WAS FIXED BY U L T R A. :).
{ _
_|_ ___ __ _|_ __ ___ __
| (__/_ (__( |_, (__(_ | ' (__/_ __)
~Very Good Walking
~Overnight Running With Single Player
~Fail Safes
~Lot Of Random Checking
~Working Beekeeper
~Fast Banking
~AntiBan
~AutoColor
{
o __ _|_ __ __ _|_ o __ __ __
| | ) |_, | ' (__(_ (___ |_, | (__) | ) __)
}
// ~SRL Rev #10
// ~Scar 3.12
// ~Fill Setup
// ~Rs Low Detail, Normal Client
// ~Low Populated World
// ~V-Bright
// ~Start At Anywhere In Seers Bank
// NOTE: Always Check For Couple Trips, If Something Messes Change World And Re-Run !
{.include SRL/SRL.scar}
// Variables
var
P,Bankers,X,y, wet,Boo, cst,Nf,AmtBee, Flax,A,ColorMark, Colorshitty, FlaxPicked, Direction, FlaxMS, tis, wst,
tim, awt, tih, srt, sst, TreeSymb: integer;
{ _____ _____ _____ _ _ _____
/ ___/ | ____| |_ _| | | | | | _ \
| |___ | |__ | | | | | | | |_| |
\___ \ | __| | | | | | | | ___/
___| | | |___ | | | |_| | | |
/_____/ |_____| |_| \_____/ |_| }
const
StartPlayer = 0; // Determines Who Will Play First
Loads = 80; // Number Of Trips Before Switching Player ( Bank To Flax Field And Back )
YourSRLID=''; // Your SRL ID For The Stats (Leave Blank To Set It To Default, From SetupSRL.scar)
YourSRLPASS=''; // Your SRL ID For The Stats (Leave Blank To Set It To Default, From SetupSRL.scar)
procedure DeclarePlayers;
begin
HowManyPlayers:=1; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer:=StartPlayer; // CurrentPlayer = Array Index
Players[0].Name:='';
Players[0].Pass:='';
Players[0].Nick:=''; // Few letters From Your Name
Players[0].Booleans[0]:=True; // Set True If You Wan't Your Account To Run Always ( Use If High Agility )
Players[0].Skill:='agility'; // LampSkill
Players[0].Active:=True; // If You use This Player Set True
Writeln(IntToStr(HowManyPlayers) +' Players');
end;
//************************************************************************//
const
VersionNumber='Eternity Universal Edition 0,25'; // Version ( Don't Touch )
//************************************************************************//
//************************************************************************//
procedure PlayerStats;
var
i: Integer;
begin
cst:=getsystemTime;
srt:=(cst-sst)/1000;
tih:=srt/3600;
tim:=(srt/60)-tih*60;
tis:=srt-tim*60-tih*3600;
awt:=wet-wst
Writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++ ');
Writeln('Home Flax'#39's Gardener '+(VersionNumber)+'.');
Writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++ ');
writeln('Name : '+Players[CurrentPlayer].Name);
writeln('Number : '+inttostr(CurrentPlayer));
Writeln('Travelled : '+IntToStr(Players[CurrentPlayer].banked)+'/'+IntToStr(Loads)+' Trips To Field. ');
Writeln('Worked : '+inttostr(tih)+' Hours, '+inttostr(tim)+' Mins, '+inttostr(tis)+' Secs.');
If (AmtBee>0) Then
Writeln('BeeKeepers : '+IntToStr(AmtBee));
writeln('Active : '+BoolToStr(Players[CurrentPlayer].Active));
Writeln('Time : '+TheTime)
writeln('**********************************************');
for i:=0 to HowManyPlayers-1 do
begin
writeln((inttostr(i))+': '+Players[i].name+' = '+BoolToStr(Players[i].Active)+'. - B :'+inttostr(Players[i].Banked)+' Times.'+' - : '+' - Loc: '+Players[i].loc);
end;
writeln('**********************************************');
end;
//************************************************************************//
procedure ProgressReport;
begin
begin
SRLRandomsReport;
SendSRLReport;
Writeln(' ');
end;
PlayerStats;
end;
procedure TalkSomeCome;
var
P: Integer;
begin
if (not(LoggedIn)) then
Exit;
p:=1+Random(35);
if (p=4) then
begin
case Random(21) of
0: TypeSend('hi all');
1: TypeSend('sigh');
2: TypeSend('hellooo');
3: TypeSend('hay');
4: TypeSend(''+IntToStr(800+Random(1200))+' more');
5: TypeSend('i hate those dam botters');
6: TypeSend('boring');
7: TypeSend('blaaaaahhh');
8: TypeSend('soo boring');
9: TypeSend('booooooooring');
10: TypeSend('yay');
11: TypeSend('ouch');
12: TypeSend('i like flax lol');
13: TypeSend('blah.');
14: TypeSend('quiet');
15: TypeSend('bam');
16: TypeSend('flax, flax, flax...');
17: TypeSend('omg this takes so long');
18: TypeSend('bleh');
19: TypeSend('this is the most boring thing ever');
20: TypeSend('argh !');
end;
end;
end;
//-----------------------------------------------//
Var
Bee: Array[0..3] Of Integer;
BoxArray: TBoxArray;
Done: Array[0..3] Of Boolean;
Procedure DeclareDTMs;
Begin
Bee[3]:=DTMFromString('78DA63DCC6C0C0709D0105AC5DB890811F483'+
'302F17F20603C0F64BC4555B36CF62CB81A10609C0324DEA1AA59'+
'3C633AAA9A2940E226AA9A6DAB57A1AAB90C246EA1AA99DCD989A'+
'20600DCDF158B');
Bee[2]:=DTMFromString('78DA6364666460F8C08002440405192481345'+
'086E13F10303E07321EA2AAD9B369135C0D0830CA02590F50D5AC'+
'9C3B17558D2290F50555CDCCFE3E54354F1830D4EC58BB16450D0'+
'045CA132D');
Bee[1]:=DTMFromString('78DA6364656460B8C48002766FDCC8C00FA48'+
'1320CFF8180F12590710C55CDA15D3BE16A4080F10990B883AAE6'+
'E89E3DA86A9480ACE3A86A56CD9B8BAA460DC8BA8BAA66D6847E5'+
'435FF31EDDAB96E2DAA1A5E4CBBB6AC5A89A2060093191BA1');
Bee[0]:=DTMFromString('78DA639CCDC0C0708701055CBF7491811F483'+
'302F17F2060AC05329EA3AA7970FB365C0D0830760289CBA86A9E'+
'3F7982AA662690388DAAE6C2C993A86AD600896BA86AF66DD982A'+
'A662BA67B56CF9F8FAA660E90788DAA66D7860D286A0066D81EFE'+
'');
SetArrayLength(BoxArray, 11);
BoxArray[0].x1:=0;
BoxArray[0].y1:=0;
BoxArray[0].x2:=26;
BoxArray[0].y2:=338;
BoxArray[1].x1:=0;
BoxArray[1].y1:=0;
BoxArray[1].x2:=515;
BoxArray[1].y2:=50;
BoxArray[2].x1:=495;
BoxArray[2].y1:=31;
BoxArray[2].x2:=516;
BoxArray[2].y2:=338;
BoxArray[3].x1:=19;
BoxArray[3].y1:=304;
BoxArray[3].x2:=515;
BoxArray[3].y2:=337;
BoxArray[4].x1:=86;
BoxArray[4].y1:=226;
BoxArray[4].x2:=516;
BoxArray[4].y2:=304;
BoxArray[5].x1:=179;
BoxArray[5].y1:=28;
BoxArray[5].x2:=193;
BoxArray[5].y2:=226;
BoxArray[6].x1:=325;
BoxArray[6].y1:=27;
BoxArray[6].x2:=340;
BoxArray[6].y2:=226;
BoxArray[7].x1:=191;
BoxArray[7].y1:=71;
BoxArray[7].x2:=326;
BoxArray[7].y2:=77;
BoxArray[8].x1:=191;
BoxArray[8].y1:=123;
BoxArray[8].x2:=325;
BoxArray[8].y2:=131;
BoxArray[9].x1:=191;
BoxArray[9].y1:=174;
BoxArray[9].x2:=325;
BoxArray[9].y2:=185;
BoxArray[10].x1:=426;
BoxArray[10].y1:=192;
BoxArray[10].x2:=516;
BoxArray[10].y2:=338;
End;
Function ConvertTPAToBox(TPA: TPointArray): TBoxArray;
Var
i: Integer;
Begin
SetArrayLength(Result, GetArrayLength(TPA));
For i:=0 To GetArrayLength(TPA)-1 Do
Begin
Result[i].X1:=TPA[i].x-1;
Result[i].X2:=TPA[i].x+1;
Result[i].Y1:=TPA[i].y-1;
Result[i].Y1:=TPA[i].y+1;
End;
End;
Function AddBoxArray(Box1, Box2: TBoxArray): TBoxArray;
Var
i: Integer;
Begin
SetArrayLength(Result, GetArrayLength(Box1));
For i:=0 To GetArrayLength(Box2)-1 Do
Begin
SetArrayLength(Result, GetArrayLength(Result)+1);
Result[GetArrayLength(Result)-1].X1:=Box2[i].X1;
Result[GetArrayLength(Result)-1].X2:=Box2[i].X2;
Result[GetArrayLength(Result)-1].Y1:=Box2[i].Y1;
Result[GetArrayLength(Result)-1].Y2:=Box2[i].Y2;
End;
End;
Procedure TalkTo; // Talks to Bee Keeper
Var
Points: TPointArray;
i: Integer;
PointBox: TBoxArray;
Begin
If (Not(LoggedIn))Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22)) Then
Exit;
FindColorsTolerance(Points, 10329514, MSX1, MSY1, MSX2, MSY2, 30);
PointBox:=ConvertTPAToBox(Points);
BoxArray:=AddBoxArray(PointBox, BoxArray);
FindColorsTolerance(Points, 5000274, MSCX+20, MSCY-35, MSCX+65, MSCY+35, 25);
If (GetArrayLength(Points)=0) Then
Logout;
If (Not(LoggedIn)) Then
Exit;
For i:=0 To GetArrayLength(Points)-1 Do
Begin
MMouse(Points[i].x, Points[i].y, 2, 2);
Wait(250+Random(450));
ColorToleranceSpeed(1)
If (IsUpText('alk')) Then
Break;
ColorToleranceSpeed(0)
If (i=GetArrayLength(Points)-1) Then
Begin
Logout;
Exit;
End;
End;
GetMousePos(x, y);
Mouse(x, y, 2, 2, true);
MarkTime(i);
Repeat
If (ClickToContinue) Then
MarkTime(i);
Wait(1000+Random(1000));
Until (TimeFromMark(i)>8000);
End;
Procedure MovePiece(Num: Integer);
Begin
If (Not(loggedIn)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
exit;
Case Num Of
1: MouseBox(138, 279, 159, 292, 1);
2: MouseBox(191, 268, 209, 284, 1);
3: MouseBox(303, 281, 328, 288, 1);
4: MouseBox(357, 283, 380, 289, 1);
End;
End;
Procedure MoveToCorner(Num: Integer); // Moves each piece to the corner so they aren't overlapping
Var
p, i: Integer;
Begin
If (Not(loggedIn)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
exit;
Case Num Of
1:
Begin
Repeat
MovePiece(1);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, MSX2, 80)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, MSX2, 80));
Repeat
MovePiece(3);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, 100, 80)) Then
Begin
Done[0]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, 100, 80));
End;
2:
Begin
Repeat
MovePiece(3);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, 105, MSY2)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, 105, MSY2));
Repeat
MovePiece(2);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, MSX1, 190, 105, 230)) Then
Begin
Done[1]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, MSX1, 190, 105, 230));
End;
3:
Begin
Repeat
MovePiece(1);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, MSX2, 85)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, MSX1, MSY1, MSX2, 85));
Repeat
MovePiece(4);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 400, MSY1, MSX2, 85)) Then
Begin
Done[2]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 400, MSY1, MSX2, 85));
End;
4:
Begin
Repeat
MovePiece(4);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 350, MSY1, MSX2, MSY2)) Then
Break;
End;
p:=p+1;
Until (p>16+Random(3)+Random(4)); // I call it "quality over perfection" as opposed to "quality of quantity"
Repeat
MovePiece(2);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 400, MSY1, MSX2, MSY2))
Or(Not(FindDTM(Bee[Num-1], x, y, MSX1, MSY1, MSX2, MSY2))) Then
Begin
Done[3]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 400, 200, MSX2, 250));
End;
End;
End;
Procedure MoveToSpot(Num: Integer); // Moves pieces from the corners to their spots
Var
i: Integer;
Begin
If (Not(loggedIn)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
exit;
Case Num Of
1: Mouse(56, 52, 8, 8, true);
2: Mouse(66, 216, 8, 8, true);
3: Mouse(436, 67, 8, 8, true);
4: Mouse(425, 216, 8, 8, true);
End;
Case Num Of
1: Repeat
MovePiece(4);
For i:=0 To 5 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 25, 310, 75)) Then
Begin
Done[0]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 25, 310, 75));
2:
Begin
Repeat
MovePiece(4);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 195, 310, 240)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 195, 310, 240));
Repeat
MovePiece(1);
For i:=0 To 5 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 80, 310, 125)) Then
Begin
Done[1]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 80, 310, 125));
End;
3:
Begin
Repeat
MovePiece(2);
For i:=0 To 4 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 400, 140, MSX2, 175)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, 400, 140, MSX2, 175));
Repeat
MovePiece(3);
For i:=0 To 5 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 140, 310, 175)) Then
Begin
Done[2]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 140, 310, 175));
End;
4:
Begin
Repeat
MovePiece(3);
For i:=0 To 5 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 185, 310, 245)) Then
Break;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 185, 310, 245));
Repeat
MovePiece(1);
For i:=0 To 5 Do
Begin
Wait(100+Random(400));
If (FindDTM(Bee[Num-1], x, y, 210, 185, 310, 230)) Then
Begin
Done[3]:=True;
Exit;
End;
End;
Until (FindDTM(Bee[Num-1], x, y, 210, 185, 310, 245));
End;
End;
End;
Function FindFirstPiece: TPoint; // Finds a piece that has not been moved yet
Var
Cur: Integer;
Begin
Repeat
If (Not(loggedIn)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
exit;
If (FindColorSkipBoxArrayTolerance(x, y, 10329514, MSX1, MSY1, MSX2, MSY2, 30, BoxArray)) Then
Begin
// WriteLN('x: ' + IntToStr(x) + ' y: ' + IntToStr(y));
Cur:=GetColor(x, y);
Wait(10);
If (GetColor(x, y)=Cur) Then
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=x-1;
BoxArray[GetArrayLength(BoxArray)-1].x2:=x+1;
BoxArray[GetArrayLength(BoxArray)-1].y1:=y-1;
BoxArray[GetArrayLength(BoxArray)-1].y2:=y+1;
End
Else
Break;
End
Else
Begin
Result.y:=-1;
Exit;
End;
Until (false);
Mouse(x, y, 2, 2, false);
Wait(250+Random(450));
If (ChooseOption('Ok')) Then
Begin
Result.x:=x;
Result.y:=y;
Exit;
End
Else
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=x-1;
BoxArray[GetArrayLength(BoxArray)-1].x2:=x+1;
BoxArray[GetArrayLength(BoxArray)-1].y1:=y-1;
BoxArray[GetArrayLength(BoxArray)-1].y2:=y+1;
Result.x:=-1;
End;
End;
Function MoveFirstPiece: Integer; // Moves piece to the bottem so it can be identified
Var
Coord: TPoint;
i: Integer;
Begin
If (Not(loggedIn)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
exit;
Repeat
Coord:=FindFirstPiece;
If (Coord.x>0)And(Coord.y>0) Then
Break;
If (Coord.y=0) Then
MMouse(641, 298, 40, 40);
Wait(100+Random(1900));
If (Not(LoggedIn)) Then
Exit;
Until (false);
If (Coord.x<200) Then
Begin
MovePiece(4);
Wait(100+Random(400));
If (Coord.x<175) Then
Begin
MovePiece(4);
Wait(100+Random(400));
If (Coord.x<150) Then
Begin
MovePiece(4);
Wait(100+Random(400));
If (Coord.x<125) Then
Begin
MovePiece(4);
Wait(100+Random(400));
If (Coord.x<100) Then
Begin
MovePiece(4);
Wait(100+Random(400));
If (Coord.x<80) Then
Begin
MovePiece(4);
Wait(100+Random(400));
End;
End;
End;
End;
End;
End;
Repeat
MovePiece(2);
For i:=0 To 3 Do
If (FindDTM(Bee[i], x, y, 60, MSCY+27, MSX2-150, MSY2)) Then
Begin
Case i Of
0:
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=25;
BoxArray[GetArrayLength(BoxArray)-1].x2:=110;
BoxArray[GetArrayLength(BoxArray)-1].y1:=30;
BoxArray[GetArrayLength(BoxArray)-1].y2:=100;
End;
1:
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=25;
BoxArray[GetArrayLength(BoxArray)-1].x2:=105;
BoxArray[GetArrayLength(BoxArray)-1].y1:=170;
BoxArray[GetArrayLength(BoxArray)-1].y2:=225;
End;
2:
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=385;
BoxArray[GetArrayLength(BoxArray)-1].x2:=MMX2;
BoxArray[GetArrayLength(BoxArray)-1].y1:=30;
BoxArray[GetArrayLength(BoxArray)-1].y2:=115;
End;
3:
Begin
SetArrayLength(BoxArray, GetArrayLength(BoxArray)+1);
BoxArray[GetArrayLength(BoxArray)-1].x1:=395;
BoxArray[GetArrayLength(BoxArray)-1].x2:=MMX2;
BoxArray[GetArrayLength(BoxArray)-1].y1:=200;
BoxArray[GetArrayLength(BoxArray)-1].y2:=MMY2;
End;
End;
Result:=i+1;
WriteLN(IntToStr(i));
Exit;
End;
Wait(100+Random(400));
Until (Not(LoggedIn));
End;
Function SolveBeeKeeper: Boolean; // Main loop
Var
i: Integer;
Sec: Boolean;
Begin
Sec:=False;
DeclareDTMs;
TalkTo;
Repeat
i:=MoveFirstPiece;
MoveToCorner(i);
If (Done[0]=True)And(Done[1]=True)And(Done[2]=True)And(Done[3]=True) Then
Break;
Until (Not(LoggedIn));
For i:=0 To 3 Do
Done[i]:=False;
i:=1;
Repeat
MoveToSpot(i);
i:=i+1;
If (Done[0]=True)And(Done[1]=True)And(Done[2]=True)And(Done[3]=True) Then
Break;
Until (Not(LoggedIn));
Mouse(257, 279, 4, 4, true); // Clicks build
For i:=0 To 200 Do
Begin
If(Not(LoggedIn))Then Exit;
Wait(1000+random(100))
ClickToContinue;
Wait(1000+random(100))
ClickToContinue;
Wait(1000+random(100))
if (not(GetColor(649, 78)=0)Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 22))) Then
Begin
Result:=True;
Break;
End;
Wait(100+random(100));
If (i=200) Then
Begin
Mouse(498, 20, 4, 4, true);
Wait(1000+Random(1000));
If (Sec) Then
Begin
Result:=False;
Logout;
Exit;
End;
Sec:=True;
SolveBeeKeeper;
End;
End;
End;
Function FindHomeRandoms: Boolean;
Var
i: Integer;
Begin
For i:=1 To 11 Do
Begin
Case I Of
1: If SolveChatRandom Then
Result:=True;
2: If FindTalk Then
Result:=True;
3: If FindTalk Then
Result:=True;
4: If FindDead Then
Result:=True;
5: If FindQuiz Then
Result:=True;
6: If FindTalk Then // Call it twice
Result:=True;
7: If FindLamp('agility') Then // Maybe we missed it?
Result:=True;
8: If (FindBox) Then
Begin
Result:=True;
If (UseBoxSolver) Then
SolveBox
Else
GambleBox;
End;
9: If NoGameTab Then
Begin
Result:=True;
if (GetColor(649, 78)=0) then
Begin
Writeln('Found BeeKeeper, Trying To Solve')
Wait(3000+Random(200));
If (SolveBeeKeeper) Then
Begin
AmtBee:=AmtBee+1
For p:=0 To 50 Do
Begin
Wait(100);
if (not(GetColor(649, 78)=0))Or(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 30)) Then
Begin
Wait(3000+Random(3000));
Writeln('BeeKeeper Solved, At Flax Field')
ReportVars[2]:=ReportVars[2]+1;
SendSRLReport;
Exit;
End;
End;
End;
End
Else
Logout;
Writeln('BeeKeeper Solver Failed')
Exit;
End;
End;
If Result Then
Break;
Wait(1);
End;
End;
Procedure FindRandoms;
Begin
ColorToleranceSpeed(0);
if (not(LoggedIn)) then
Exit;
if FindFight then RunTo('S',True);
FindHomeRandoms;
FindNormalRandoms;
End;
function FindColorRightTol(var cx, cy: Integer; Color, x1, y1, x2, y2, // Took From SRL Rev #9
Tolerance: Integer): Boolean;
var
BmpCol: T2DIntArray;
xx, yy: Integer;
begin
BmpCol := GetBitmapAreaColors(x1, y1, x2, y2);
for yy := y1 to y2 do
for xx := x2 downto x1 do
begin
Result := SimilarColors(Color, BmpCol[xx - x1][yy - y1], Tolerance);
if Result then
begin
cx := xx;
cy := yy;
Exit;
end;
end;
end;
procedure FClag(Distance: Integer); // Checks Color While Flag Is On MiniMap.
var
XK, YK, XL, YL: Integer;
var
T1, T2: Extended;
begin
if (not(LoggedIn)) then
Exit;
T1:=GetTickCount;
repeat
T2:=GetTickCount;
Wait(100);
if(FindcolorRighttol(x, y, TreeSymb, 558, 5, 671, 122, 20)) then
Break;
Wait(100);
if T2-T1>30000 then
begin
if FindColor(XL, YL, 255, MMX1, MMY1, MMX2, MMY2) then
MouseFlag(XL, YL, 1, 1)
else
Mouse(MMCX, MMCY, 0, 0, True);
Break;
end;
if Random(20)=1 then
IdleTime(500, 1000, 0.01);
until (not FindColor(XK, YK, 255, MMX1, MMY1, MMX2, MMY2));
end;
procedure AutoColorTree;
begin
if ( TreeSymb = 0 ) then
begin
MarkTime(Colorshitty);
repeat
If(not(FindSymbol(x,y,'tree')))then writeln('Could Not Get Tree Color, Restart Script');
TreeSymb:=GetSymbolColor(x, y, 'tree');
Wait(50+random(50))
if TimeFromMark(Colorshitty)>12000 then
begin
writeln('Could Not Get Tree Color, Restart Script');
TerminateScript;
end;
if (not(Loggedin)) then
break;
until (not(TreeSymb=0));
writeln('Tree Color: '+IntToStr(TreeSymb)+' ;');
end;
end;
procedure Comeon(Col: string);
begin
if (not(LoggedIn)) then
Exit;
repeat
LogOut;
until (not(loggedin))
Writeln('Cant Find Correct '+col);
Writeln('Player Change')
NextPlayer(True);
if (not(Loggedin)) then
NextPlayer(False);
end;
procedure BagOn;
begin
if (not(LoggedIn)) then
Exit;
case Random(2) of
0: GameTab(4);
1: ;
end;
end;
procedure MMMouse(xs, ys, xe, ye: Integer );
var
a, b: Integer;
begin
if (not(LoggedIn)) then
Exit;
a := Max(xs, xe) - Min(xs, xe);
b := Max(ys, ye) - Min(ys, ye);
a := Random(a);
b := Random(b);
MMouse(xs + a, ys + b, 0, 0);
end;
Procedure RandomR;
Var
m: Integer;
Begin
If (Not(LoggedIn)) Then
Exit;
m:=MouseSpeed;
MouseSpeed:=7+Random(2);
Case Random(7) Of
0: MMMouse(MIX1, MIY1, MIX2, MIY2);
1: MMMouse(MSX1, MSY1, MSX2, MSY2);
2: MMMouse(MMX1, MMY1, MMX2, MMY2);
3: MMMouse(MIX1, MIY1, MIX2, MIY2);
4: MMMouse(MSX1, MSY1, MSX2, MSY2);
5: MMMouse(MIX1, MIY1, MIX2, MIY2);
6: MMMouse(MSX1, MSY1, MSX2, MSY2);
End;
MouseSpeed:=m;
End;
procedure CoordFlax;
var
B: integer;
begin
if (not(LoggedIn)) then
Exit;
MarkTime(ColorMark)
B:=8;
repeat
B:=B+1;
if(TimeFromMark(ColorMark)>10000)Then Exit;
until (FindColortolerance(x, y, Flax, MMX1, B, MMX2, B, 40));
Mouse(x-25, y-10, 2, 2, true);
If (Players[CurrentPlayer].Booleans[0]=False) Then
SetRun(false);
GameTab(4);
MMMouse(MMX1,MMY1,MMX2,MMY2)
Wait(2000)
FFlag(1);
end;
procedure CoordTree;
var
B: integer;
begin
if (not(LoggedIn)) then
Exit;
MarkTime(ColorMark)
B:=8;
repeat
B:=B+1;
if(TimeFromMark(ColorMark)>10000)then Exit;
until (FindColor(x, y, TreeSymb, MMX1, B, MMX2, B));
Mouse(x, y+80, 1, 1, true);
FFlag(1);
end;
procedure CoordBank;
var
B: integer;
begin
if (not(LoggedIn)) then
Exit;
MarkTime(ColorMark)
B:=8;
repeat
B:=B+1;
if(TimeFromMark(ColorMark)>10000) then Exit;
until (FindColor(x, y, TreeSymb, MMX1, B, MMX2, B));
Mouse(x-10+Random(20), y+35, 1, 1, true);
FFlag(1);
end;
procedure GoToTree;
var
B: integer;
begin
if (not(LoggedIn)) then
Exit;
MarkTime(ColorMark)
B:=43;
repeat
B:=B+1;
if(TimeFromMark(ColorMark)>10000) then Exit;
until (FindColor(x, y, TreeSymb, MMX1, B, MMX2, B));
Mouse(x+25+random(1), y-35, 1, 1, true);
FFlag(2);
end;
procedure CoordFlaxWest;
var
B: integer;
begin
if (not(LoggedIn)) then
Exit;
MarkTime(ColorMark)
B:=500;
repeat
B:=B+1;
if(TimeFromMark(ColorMark)>10000) then Exit;
until (FindColortolerance(x, y, Flax, B, MMY1, B, MMY2, 40));
Mouse(x+4, y-7, 2, 2, true);
FFlag(2);
end;
procedure WalkFlax;
var
x, y: Integer;
begin
if (not(LoggedIn)) then
Exit;
CoordTree;
x:=650;
y:=121;
if (FindColorSpiraltolerance(x, y, Treesymb, 607, 52, 676, 112
, 25)) then
Mouse(x-6, y+40, 2, 2, True)
else
ComeOn('Tree Symbol');
SetRun(True);
Wait(10+Random(78));
setrun(true);
BagOn;
MMMouse(MMX1,MMY1,MMX2,MMY2)
Wait(100+random(100))
FFlag(5);
if (findcolorspiraltolerance(x, y, treesymb, 597, 84, 629, 121, 20)) then
begin
Mouse(x+18+Random(3), y+20+Random(3), 0+
Random(3), 0+Random(3), True);
end
else
begin
if (FindColorRightTol(x, y, Treesymb, 578, 112, 740, 164, 20
)) then
begin
Mouse(x+18+Random(3), y+20+Random(3), 0+
Random(3), 0+Random(3), True);
end
else
begin
LogOut;
end;
end;
FFlag(10+Random(10));
MarkTime(ColorMark)
repeat
Mouse(680, 128, 2, 2, true)
Wait(100+random(100))
if (not(Loggedin))or(TimeFromMark(ColorMark)>9000) then
break;
until (FlagPresent)
GameTab(4)
repeat
Wait(1000+random(2000))
if (not(Loggedin)) then
break;
until ((FindColorSpiraltolerance(x, y, Flax, 582, 35, 738,
152, 40)))
repeat
Mouse(x, y, 3, 3, true)
Wait(100+random(100))
if (not(Loggedin)) then
break;
until (FlagPresent)
FFlag(1);
end;
procedure OutWalk;
begin
if (not(LoggedIn)) then
Exit;
case Random(1) of
0: CoordFlaxWest;
end;
end;
procedure GoBank;
var
x, y: integer;
begin
MouseSpeed:=11+random(2);
if (not(LoggedIn)) then
Exit;
OutWalk;
CoordFlax;
if (not(findcolorRighttol(x, y, Treesymb, 558, 5, 671, 122, 20))) then
begin
MarkTime(ColorMark)
repeat
Mouse(616, 70, 2, 2, True);
FClag(10);
if(TimeFromMark(ColorMark)>10000)Then Exit;
until (findcolorRighttol(x, y, Treesymb, 558, 5, 671, 122, 20))
Mouse(x+27, y+5+random(3),
0+random(3), 0+random(3), true);
FFlag(0);
end
else
begin
Mouse(x+30, y+5+random(3),
0+random(3), 0+random(3), true);
FFlag(0);
end;
GoToTree;
x:=647;
y:=43;
if (FindColorSpiraltolerance
(x, y, Treesymb, 607, 26, 715, 103, 10)) then
begin
Mouse(x-15, y-22, 1, 1, True);
Wait(2000+random(400))
FFlag(5);
CoordBank;
end
else
begin
ComeOn('Tree Symbol');
end;
end;
Procedure RandomChat;
Var
Text: String;
Begin
if (not(LoggedIn)) then
Exit;
A:=1+Random(32)
If (A=9)Or(A=20) Then
Begin
Begin
Case random(58) Of
00: Text:='gah this is so boring';
01: Text:='i bet ive got more flax then u';
03: Text:='farming lvls?';
04: Text:='im going for a million flax!';
05: Text:='im goin for a billion flax ';
06: Text:='gah i hate all the dumb noob lvl 3s';
07: Text:='this is my flax field everyone leave';
08: Text:='so much flax';
09: Text:='selling flax in bank only 500 each!';
10: Text:='free flax!!! haha jk';
11: Text:='ill kill any1 who steals my flax';
12: Text:='maybe i should sell this flax now';
13: Text:='maybe il sell flax on forums';
14: Text:='ur all noobs';
15: Text:='boring.....';
16: Text:='what times it there?';
17: Text:='asdfghjk;';
18: Text:='qwertyuiop[]';
19: Text:='zxcvbnm,./';
20: Text:='look @ my cards: []]]]]]]]]]]]]]]]]]';
21: Text:='pick a card []]]]]]]]]]]]]]]]]]]]]]';
22: Text:='im so sad my cat died today';
23: Text:='my dog died today ';
24: Text:='i got a pet dog today =)';
25: Text:='i have a dog, how bout you?';
26: Text:='i have a cat, how about you?';
27: Text:='i got a pet cat today but it bit me lol';
28: Text:='lol noob';
29: Text:='i own all you';
30: Text:='blahh so bored lol';
31: Text:='press 111 if youo like pures';
32: Text:='who likes dueling?';
33: Text:='who likes pkin?';
34: Text:='why does this take so long';
35: Text:='why doesnt jagex put a bank in the middle of here?';
36: Text:='i want to do a minigame soon';
37: Text:='-.- so bored';
38: Text:='picking flax is boring =(';
39: Text:='Firefox is so awsome';
40: Text:='i hate internet explorer';
41: Text:='i hate windows';
42: Text:='yall should use firefox';
43: Text:='i hate internet explorer';
44: Text:='linux is awsome';
45: Text:='whos your fav band?';
46: Text:='ipods are so cool';
47: Text:='i wanna get an iphone there ownage';
48: Text:='gahh i think my computer got viruses';
49: Text:='im infected';
50: Text:='some fansite gave me viri';
51: Text:='lollolllll so bored';
52: Text:='white:loading... please wait';
53: Text:='white:connection lost... attempting to reestablish';
54: Text:='laggggg';
55: Text:='the new loading update is so cool';
56: Text:='green:||||||||||||||';
57: Text:='red:||||||||||||||';
End;
End;
TypeSend(Text);
Wait(50+Random(100));
End;
End;
Procedure TalkingTo;
Begin
if (not(LoggedIn)) then
Exit;
A:=1+Random(7)
If (A=3) Then
Begin
Case Random(11) Of
0: TalkSomeCome;
1: RandomR;
5: RandomChat;
7: RandomR;
8: RandomR;
End;
End;
End;
function ScanMMAreaColorExactTolerance(var x, y: Integer; x1, y1, x2, y2, color,
tolerance: Integer): Boolean;
begin
Result := ScanExactMMAreaD(x, y, x1, y1, x2, y2, color, tolerance);
end;
function NearestObjMT(var cx, cy: Integer; Text:Array of string; color, color2, color3, tolerance: Integer): Boolean;
var
x, y, a, c, i, x1, y1, x2, y2 : Integer;
begin
if (not(LoggedIn)) then
Exit;
if FindColorTolerance(x, y, color, MSX1, MSY1, MSX2, MSY2, tolerance) or ScanMMAreaColorExactTolerance(x, y, MSX1, MSY1, MSX2, MSY2, color2, tolerance) or ScanMMAreaColorExactTolerance(x, y, MSX1, MSY1, MSX2, MSY2, color3,tolerance) then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
if (not (Loggedin)) then
break;
a := a + 1;
if (a = 1) then
c := c + 1;
if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 21;
x2 := x2 + 21;
end;
if (a = 2) then
begin
y1 := y1 - 14;
y2 := y2 - 14;
end;
if (a = 3) then
begin
x1 := x1 - 21;
x2 := x2 - 21;
end;
if (a = 4) then
begin
y1 := y1 + 14;
y2 := y2 + 14;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 515) then
Break;
if (FindColorTolerance(x, y, color, x1, y1, x2, y2, tolerance)) or (FindColorTolerance(x, y, color2, x1, y1, x2, y2, tolerance)) or (FindColorTolerance(x, y, color3, x1, y1, x2, y2, tolerance)) then
begin
MMouse(x, y, 0, 0)
cx:=x;cy:=y;
if IsUptextMultiCustom(Text) then
begin
Result := True;
Break;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;
Procedure PickingFlax;
Var
x, y: Integer;
Begin
if (not(LoggedIn)) then
Exit;
NF:=0;
Repeat
MouseSpeed:=10+random(2);
If (Not(FindColorTolerance(x, y, FlaxMS, MSX1, MSY1, MSX2, MSY2, 40))) Then
Begin
FindRandoms;
Exit;
End
Else
TalkingTo;
ColorToleranceSpeed(1);
if NearestObjMT(x, y, ['lax'],
FlaxMs, FlaxMs, FlaxMs, 20) then
Begin
Mouse(x, y, 1, 1, True);
ColorToleranceSpeed(0);
End
Else
Begin
Writeln('Was Not Able To Pick Flax');
FindRandoms;
NF:=1;
End;
FindRandoms;
FFlag(0);
Wait(270+Random(220));
FindTalk;
Until (InvFull)Or(Not(LoggedIn)Or(FindDead))Or(NF=1);
If (FindDead) Then
LogOut;
Exit;
End;
procedure OpenBank4;
var
x, y, fs, fs2: Integer;
begin
begin
if (not(LoggedIn)) then
Exit;
ColorToleranceSpeed(1)
if not BankScreen then
repeat
if NearestObjMT(x, y, ['se', 'oth', 'us','ank', 'Use ', 'nk'],
10463921, 10463921, 10463921, 20) then
Mouse(x, y, 4, 4, False)
else
case Boo of
0: if (FindObj(x, y, 'oth', 10266798, 15)) then Mouse(x, y, 4, 4, False);
1: if (FindObj(x, y, 'oth', 5269623, 15)) then Mouse(x, y, 4, 4, False);
2: if (FindObj(x, y, 'oth', 3626083, 15)) then Mouse(x, y, 4, 4, False);
3: if (FindObj(x, y, 'oth', 4746624, 15)) then Mouse(x, y, 4, 4, False);
4: if (FindObj(x, y, 'oth', 2838626, 15)) then Mouse(x, y, 4, 4, False);
5: if (FindObj(x, y, 'oth', 3626083, 35)) then Mouse(x, y, 4, 4, False);
end;
wait(50)
if (ChooseOption('quickly')) then
begin
FFlag(0);
repeat
Wait(100+random(10));
fs:=fs+1;
until (BankScreen)or(fs>=50)or(not(Loggedin))
if (not(loggedin)) then
break;
end;
Wait(700+random(10));
fs2:=fs2+1;
until (BankScreen)or(fs2>5);
ColorToleranceSpeed(0)
end;
end;
procedure WholeBank;
begin
if (not(LoggedIn)) then
Exit;
Wait(100+Random(100))
if (not(BankScreen)) then
begin
CoordBank;
FFlag(0);
OpenBank4;
end
else
exit;
end;
function FindBankers(var x, y: integer): boolean;
begin
Result:=FindDtm(Bankers, x, y, MMX1, MMY1, MMX2, MMY2);
end;
procedure AlignCompass;
var
P: Integer;
begin
If(Not(LoggedIn)) Then Exit;
Bankers:=DTMFromString('78DA63CC62626070654001FFFE09337001694'+
'6289FB11AA18609979A7A22D4B413A1260728E383AA06260B5753'+
'42849A4622D47412560300D3490EB0');
while (not(FindBankers(x, y))) do
begin
if (Direction=0) then
KeyDown(vk_left)
else
KeyDown(vk_right);
repeat
P:=P+1;
wait(20+random(10));
until (FindBankers(x, y))or(P=3);
if (Direction=0) then
KeyUp(vk_left)
else
KeyUp(vk_right);
if (Direction=0) then
Direction:=1
else
Direction:=0;
wait(300+random(100));
end;
FreeDtm(Bankers)
end;
Procedure ClearVars;
Var
I: Integer;
Begin
For I:=0 To 2 Do
ReportVars[I]:=0;
End;
Procedure AlignMM(Direction : char);
var DTM,x,y,i:integer;
acc:extended;
begin
if (not (Loggedin)) then
Exit;
DTM := DTMFromString('78DA634C676260086240016F9F7C641001D28' +
'C40FC1F0818416AFC71AB0101B09A7022D44413A1C60BBF1A009F' +
'1015DF');
wait(50)
if FindDtmRotated(DTM,x,y,MMX1,MMY1,MMX2,MMY2,radians(-40),radians(40),0.01,acc) then
begin
if (acc < 0.1) and (acc > -0.1) then
exit
else
begin
repeat
If FindDtmRotated(DTM,x,y,MMX1,MMY1,MMX2,MMY2,radians(-40),radians(40),0.01,acc) then
begin
if acc < 0 then
begin
KeyDown(VK_RIGHT)
Wait(20+random(10))
KeyUp(VK_RIGHT)
end;
if acc > 0 then
Begin
KeyDown(VK_LEFT)
Wait(20+random(10))
KeyUp(VK_LEFT)
end;
if acc = 0 then break;
end else
exit;
wait(20)
Inc(i)
until (((acc < 0.1) and (acc > -0.1)) or (i > 25))
end;
end else MakeCompass(Direction);
FreeDtm(DTM);
end;
Procedure SetUp;
Begin
ColorToleranceSpeed(0)
rs_DeleteUID;
ActivateClient;
ClearReport;
ClearDebug;
SetUpSRL;
ClearVars;
ScriptID:='499';
SRLID:=YourSRLID;
SRLPassword:=YourSRLPASS;
CheckHpFirst:= True;
DeclarePlayers;
End;
Procedure AlignAll; // Let's Do Some MiniMap Rotations :)
Begin
If(Not(LoggedIn)) Then Exit;
AlignCompass;
Wait(1) // Free's Up Memory..
AlignMM('N');
end;
begin
SetUp;
Disguise('Home Flax'#39's Gardener '+(VersionNumber)+'');
//Tih := 0;
sst:=GetSystemTime;
SymbolAccuracy:=0.5;
Flax:=11884646;
FlaxMS:=940041;
Wait(1000);
LoginPlayer;
Wait(1000);
MouseSpeed:=11+random(1);
AutoColorTree;
writeln('Flax Color: '+IntToStr(FlaxMS+Random(1000))+' ;');
Direction:=0;
repeat
MouseSpeed:=11+random(2);
SetAngle(True);
P:=0;
AlignAll;
WalkFlax;
PickingFlax;
GoBank;
Openbank4;
WholeBank;
DepositAll;
Players[CurrentPlayer].Banked:=Players[CurrentPlayer].Banked+1;
FlaxPicked:=FlaxPicked+28;
ReportVars[1]:=ReportVars[1]+1;
ReportVars[0]:=ReportVars[0]+28;
ProgressReport;
Disguise(IntToStr(Players[CurrentPlayer].banked)+'/'+IntToStr(Loads)+' [ '+IntToStr(Players[CurrentPlayer].banked*28)+' ]');
if (Players[CurrentPlayer].Banked mod Loads=0)or(not(LoggedIn)) then
begin
CloseBank;
Wait(100+random(100))
CloseBank;
Wait(100+random(100))
repeat
Disguise(' Logging Out ');
Wait(1000+random(500))
LogOut;
Wait(1000+random(500))
LogOut;
until (not(LoggedIn));
Wait(1000+random(5000))
NextPlayer(True);
Disguise(' Next Player ');
end;
if (not(Loggedin)) then
NextPlayer(false);
until (False);
end.