From: N1ke!
If you make one then release it here so it can be improved and turned into a flawless fisher :)
and feel free to add me on Msn aswell : [email]N_1_c_e@hotmail.com[/email]
here is nahum's if ya wanna mess with it to try find the fishing spot everything works fine apart from the finding the fishing spot i have messed and messed but to no avail :s
edit: i added ya too :)
/-------------\ /---------|
/ \ / \
/ \ / \
| | | | | |
| | | | | |
| | | | | |
|________| | |______ | |
/ / / /
/ / / /
/ / / / SCRIPT
/ / UPER / /_____
/ / |/ |/ |
/ / | | |
/ / | | |
/ / | | |
/ /________ \ /
| | | \ /
| | | \------------/_
| | | Super Scripts..| |..
| | |
\ /
\ /
\ /
\---------/
###########################################################################
_ _ #
__|\ | |\ | /\ | | /\ /\ /\ |\ | | /|__ #
__ |* < | \ | /__\ | | / \ / \ /__\ | \ | > *| __ #
|/ |_ | \| / \ |___| / \/ \ / \ | \| _| \| #
############################################################################
Used With SMART ;)
THX TO SQUIG FOR THE IDEA!
}
program M0nkFish0rNBank0r;
{.include srl/srl.scar}
{.include srl/srl/skill/fishing.scar}
Var
Loads, Fished, wx, wy : Integer;
x, y, i :Integer;
Const
World = 26; //World used for autoing?
{-------------------------------}
{ Declaring The Players!!! }
{-------------------------------}
{Setup Your Players BELOW ;) }
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Integers[1] := 5;
Players[0].Active := True;
Players[0].PIN := '0000';
{ Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Integers[1] := 5;
Players[1].Active := True;
Players[1].PIN := '0000';
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Integers[1] := 5;
Players[2].Active := True;
Players[2].PIN := '0000'; }
WriteLn('Using '+IntToStr(HowManyPlayers)+' Player[s]');
end;
{--------------END OF SETUP!---------------}
{----------------------------}
{ Random Movement }
{----------------------------}
Procedure RandomMovementX;
Begin
If (not (Loggedin)) then
Exit;
Case Random (5) of
1:Begin
MMouse(727 - Random(200), 90 + Random(200), 0, 0);
IdleTime(300 + Random(300), 500, 0.5);
end;
2:Begin
MMouse(227 - Random(200), 290 + Random(200), 0, 0);
IdleTime(300 + Random(300), 500, 0.5);
end;
3:Begin
GameTab(1+Random(14))
end;
4,0: Wait(2000+Random(200))
end;
end;
{----------------------------}
{ Walk Anti ban! }
{----------------------------}
Procedure WalkAntiBan;
Begin
If (not (Loggedin)) then
Exit;
Case Random(6) of
1:Begin
Case 11 of
0: TypeSend('stoopib walkin');
9: Typesend('.');
10: Typesend('Yawn');
end;
Exit;
end;
3: Begin
GameTab(1+Random(14))
wait(Random(2))
GameTab(4)
end;
5: MMouse(MSX1,MSY2,1,1);
0: RandomMovementX;
end;
end;
{-------------------------------}
{ My AntiRandom Procedure }
{-------------------------------}
Procedure NaumanAR;
Begin
If Not (Loggedin) then
Exit;
For i := 0 to 3 do
FindNormalRandoms;
Begin
FindNonInventoryRandoms;
// HandleWhirlPool;
If FindFight Then
Begin
RunAway('s', false, 1, 8500);
end;
end;
// HandleWhirlPool;
end;
{----------------------------}
{ Search Antiban! }
{----------------------------}
procedure Search;
var
f, e : integer;
begin
If (not (Loggedin)) then
Exit;
MMouse(645, -14, 1, 1)
MMouse(727, -10, 1, 1)
e := 5 + Random(6); //Of Almost Logout credits to Yakman :)
for f := 0 to e do
begin
case Random(3) of
0, 1: MMouse(727 - Random(200), 90 + Random(200), 0, 0);
2: IdleTime(300 + Random(300), 500, 0.5);
end;
FTwait(2 + Random(1));
end;
end;
{----------------------------}
{ Anti Ban }
{----------------------------}
procedure AntiBan;
begin
If (not (Loggedin)) then
Exit;
case Random(47) of
0,1,2: PickUpMouse;
23,5,9: GameTab(1 + Random(11));
46: Search;
45: MMouse(Random(MSX2), Random(MSY2), 0, 0);
19: begin
HoverSkill('Mining',false);
gametab(4);
ChooseOption('Cancel');
MMouse(Random(MSY1), Random(MSX1), 0, 0);
end;
10: begin
GameTab(1 + Random(13));
wait(1000+ random(600));
gametab(4);
ChooseOption('Cancel');
end;
34: begin
HoverSkill('random',false);
gametab(4);
end;
33: Begin
Case Random(67)+1 of
0,1,23,25,45,46: Typesend('...');
2,22,42,52,62: Typesend('Yawn');
3,5,9,19: Typesend('Hey');
66,65,64,63: Typesend('Fishing lvls?');
56,55,54,53,67: Typesend('l0l');
end;
end;
end;
end;
{----------------------------}
{ Find Obj X }
{----------------------------}
(* By: Stupid3ooo and Starblaster100 *)
Function FindObjX(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tolerance: Integer): Boolean;
var
a, b, c, i, x1, y1, x2, y2: Integer;
Start: Boolean;
begin
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorSpiralTolerance(cx, cy, color[b], MSX1, MSY1, MSX2, MSY2, Tolerance)) then
begin
Start := True;
Break;
end;
end;
if(Start)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
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
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;
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorTolerance(cx, cy, Color[b], x1, y1, x2, y2, tolerance)) then
begin
MMouse(cx, cy, 0, 0)
if (IsUpTextMultiCustom(Text)) then
begin
Result := True;
Exit;
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;
{-------------------------------}
{ Random Clicking Techniques }
{-------------------------------}
Procedure Click;
Var
Net : Integer;
Begin
Net := BitmapFromString(22, 12, 'beNpjYIgNcacQ/QcDXFziTYDrg' +
'rAZGBhItRQuSLwJcDXIJgAFyTYBrheP+QSdjWkCnA2XRbMUWQq/CX' +
'jYWKUwuciWkmECAxLAH5IEYwprYEK4yObj4qI5AyEOABaAmSo=');
Begin
If Not (Loggedin) then
Exit;
Case Random(2) of
0:Begin
MMouse(x,y,5,5)
wait(800+Random(200))
If IsUpText('arp') then
Mouse(x,y,1,1,False);
ChooseOption('et');
end;
1:Begin
MMouse(x,y,2,3);
wait(700+Random(300));
If IsUpText('arp') then
Mouse(x,y,2,3,False);
ChooseOption('et');
end;
end;
end;
end;
//Thanks KoK//
Function FindFishingSpot(UpText, Choose: String): Boolean;
Begin
Result := FindObjCustom(x, y, [UpText], [15584681], 6);
Mouse(x, y, 2, 2, False);
Wait(Random(800) + 500);
ChooseOption(Choose);
End;
Function FindWaterColorSquig : Integer;
Var
Water, TestColor : Integer;
Begin
Water := BitmapFromString(23, 10, 'beNrrXJ/fOYpG0dBBAB+cfBo' +
'=');
Begin
If FindBitmapToleranceIn(Water, wx, wy, 577, 8, 688, 40, 36) Then
Begin
WriteLn('WaterColor Found!');
TestColor := GetColor(wx, wy);
Result := TestColor;
end else
WriteLn('WaterColor Not Found!');
end;
end;
{--------------------------------------}
{-------------------------------}
{ Wait While Fishing }
{-------------------------------}
Procedure WaitWhileFish;
var
imark : Integer;
Begin
If Not (Loggedin) then
Exit;
wait(1);
Begin
FFlag(0);
if invfull then Exit;
MarkTime(imark)
Repeat
if invfull then break;
AntiBan;
NaumanAR;
FTWait(30 + Random(10))
if invfull then break;
AntiBan;
NaumanAR;
FTWait(30 + Random(10))
Case Random (2) Of
0:Begin
If FindFishingSpot('arp','et') then
Begin
// Click;
FFlag(0);
end;
wait(1);
end;
end;
if invfull then break;
if timefrommark(imark) > 500000 then break;
Until(ClickToContinue) Or InvFull
end;
Exit;
end;
{-------------------------------}
{ Walk To Fishing Spot !! }
{-------------------------------}
Procedure WalkToFishingSpot;
Begin
If Not LoggedIn Then
LoginPlayer;
MakeCompass('N');
SetAngle(True);
SetRun(True);
GameTab(4);
Begin
RadialWalk(FindWaterColorSquig , 20, 40, 74, 1, 1);
WalkAntiBan;
FFlag(0);
Begin
If Not FindFishingSpot('arp', 'et') Then
Begin
MFF(MMCX+20+Random(10), MMCY, 3, 10);
FFlag(0);
end else
WriteLn('We Have Reached The Fishing Spot');
end;
end;
Wait(1);
end;
{-------------------------------}
{ Fishing The Monk Fish!! }
{-------------------------------}
Procedure Fish;
Begin
If FindFishingSpot('arp', 'et') Then
Begin
Repeat
// Click;
FFlag(0);
Wait(900+Random(100));
If ClickToContinue Then
Exit;
If Not FindBlackChatMessage('ast out') Then
Begin
WriteLn('Lets Try Again To Fish ;)');
WaitWhileFish;
If FindFishingSpot('arp', 'et') then
Begin
// Click;
FFlag(0);
If ClickToContinue Then
Exit;
WaitWhileFish;
end;
end;
Until(InvFull) or ClickToContinue = True;
Fished := Fished + 27;
Wait(1);
end;
end;
{-------------------------------}
{ Banking The Monk Fish!! }
{-------------------------------}
Procedure Bank;
Begin
MFF(599, 112, 10, 10);
FFlag(0);
Begin
If FindSymbol(x, y, 'Bank') Then
Begin
Mouse(x, y, 2, 2, True);
FFlag(0);
end;
WriteLn('In Bank');
Begin
If FindObjX(x, y, ['rno'], [8168659, 2453134], 15) Then
Begin
Mouse(x, y, 0, 0, False);
Wait(800+Random(200));
ChooseOption('ank');
end;
Begin
FFlag(0);
Wait(1500+Random(1000));
If PinScreen Then
InPin(Players[CurrentPlayer].PIN);
Begin
If BankScreen Then
Begin
Deposit(2, 28, True);
Wait(1000+Random(200));
CloseBank;
Loads := Loads +1;
end;
end;
end;
end;
end;
end;
Procedure Proggie;
Begin
SRLRandomsReport;
WriteLn('---------------------------------------------
WriteLn(' | > ->{Nauman''s}<- Monk Fish0r + Bank0r ');
WriteLn(' | > ');
WriteLn(' | > Ran For '+(TimeRunning)+ '' );
WriteLn(' | > ');
WriteLn(' | > We Have Fished '+IntToStr(Fished)+' Monk Fishes');
WriteLn(' | > ');
WriteLn(' | > We Have Banked '+IntToStr(Loads)+' Fish Loads');
WriteLn(' | > ');
WriteLn(' | >POST THIS PROGRESS REPORT PLEASE ON THE THREAD!! ');
WriteLn('');
end;
begin
Proggie;
ActivateClient;
wait(999);
SetupSRL;
DeclarePlayers;
Begin
Repeat
Repeat
WalkToFishingSpot;
Fish;
Proggie;
Bank;
Proggie;
Until (Loads > Players[CurrentPlayer].Integers[1])
Or Not LoggedIn;
If Loads > Players[CurrentPlayer].Integers[1] Then
WriteLn('Next Player Loads Done!');
If Not LoggedIn Then
WriteLn('Next Player Logged Out');
Begin
LogOut;
Loads := 0;
If Not LoggedIn Then
NextPlayer(False);
If Loads > Players[CurrentPlayer].Integers[1] Then
NextPlayer(True);
end;
Until(False);
end;
Wait(1);
Proggie;
WriteLn('Final Proggie Printed ;)');
TERMINATESCRIPT;
end.
{ END! }
and here is 1my cuzin made a few additons added in by me realy bad standerds but works quite good but then it gets to a point were it thinks it finds a click to contine and just sits with the mouse in the chat box after 2 or 3 loads i cba i have very shortpatince and cant sort the standerds etc but if ya wanna have a messwith it n1ke feel free but be sure to post me you edited addition :)
Program monkfisher;
{.include SRL/SRL.scar}
Var
x, y, Cc, Fx, Fy,Ax,Ay, Loadsdone, Monksfished, sudbank, I, DTMTravel,
TotalTimeWanted, TimesFishingSpotNotFound, RandomMark, IdleMark1,
IdleMark2, Count, bankBMP, PlayerTime: integer;
ClickedSpot: Boolean;
MyTBoxArray : TBoxArray;
Const
UseFishSymbol = False; // Don't change or script will mess up as there no fishing symbols
YourSRLID = ''; // Srl id
YourSRLPass = ''; // Srl password
Version = '1.0'; //Don't change
Loads2DO = 20; //Number of loads to do before switching players
TimePerPlayer = 180; //Max amount of time to leave a particular player logged on in minutes
TotalRunningTime = 180; //Total Time to run the script in minutes
{******************************************************************************
Player setup
******************************************************************************}
Procedure DeclarePlayers;
Begin
NumberOfPlayers(1);
CurrentPlayer := 0;
Players[0].Name := ''; //Username
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].Active := True; //Will we use
Players[0].Booleans[0] := True; //Is Pick Equiped
Players[0].Strings[0] := '0000'; //Your Pin Number if u dont have one leave it alone
Players[0].Strings[1] := 'Fishing'; //Lamp Skill you want -- insert full skill name
{ Players[1].Name := ''; //Username
Players[1].Pass := ''; //Password
Players[1].Nick := ''; //3-4 letters from your username
Players[1].Active := True; //Will we use
Players[1].Booleans[0] := True; //Is Pick Equiped
Players[1].Strings[0] := '0000'; //Your Pin Number if u dont have one leave it alone
Players[1].Strings[1] := 'Fishing'; //Lamp Skill you want -- insert full skill name
Players[2].Name := ''; //Username
Players[2].Pass := ''; //Password
Players[2].Nick := ''; //3-4 letters from your username
Players[2].Active := True; //Will we use
Players[2].Booleans[0] := True; //Is Pick Equiped
Players[2].Strings[0] := '0000'; //Your Pin Number if u dont have one leave it alone
Players[2].Strings[1] := 'Fishing'; //Lamp Skill you want -- insert full skill name
}
end;
{******************************************************************************
Scan minimap
******************************************************************************}
Function ScanMiniMap(iFrom, iTo, Distance: Integer): Integer;
Var
I, iX,iY: Integer;
Begin
For I := iFrom To ITo Do
Begin
iX := Round(Distance * Sin(I * Pi / 180)) + 648;
iY := Round(-Distance * Cos(I * Pi / 180)) + 80;
If GetColor(iX, iY) = 65536 Then
Begin
Result := Result + 1;
End;
End;
End;
{******************************************************************************
Randoms
******************************************************************************}
procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
begin
RunTo('S', True);
Wait(15000 + random(5000));
RunTo('N', True);
Wait(1500 + random(500));
ActivateClient;
end;
end;
{******************************************************************************
level responder
******************************************************************************}
procedure LevelRespond;
var
Chats : TStringArray;
I, L: Integer;
begin
if not (Players[CurrentPlayer].Booleans[1]) then EXIT;
Chats := ['shing l', 'hing lv', 'hing le', 'ishin lvl', 'fish lv'];
for I := 0 to 4 do
begin
if InChat(Chats[i]) then
begin
//inc(Responded);
L := GetSkillInfo('fishing', False);
case Random(9) of
0: TypeSend(IntToStr(L));
1: TypeSend('Me '+IntToStr(L));
2: TypeSend(IntToStr(L) + ' here');
3: TypeSend('...'+IntToStr(L));
4: TypeSend('Im ' + IntToStr(L));
5: TypeSend('only ' + IntToStr(L));
6: TypeSend('Pfft, only ' + IntToStr(L));
7: begin
TypeSend('onky ' + IntToStr(L));
TypeSend('only*');
end;
8: TypeSend('only ' + IntToStr(L) + ' ...lol');
end;
wait(1000 + Random(500));
Exit;
end;
end;
end;
procedure Search;
var
f, e : integer;
begin
If (not (Loggedin)) then
Exit;
MMouse(645, -14, 1, 1)
MMouse(727, -10, 1, 1)
e := 5 + Random(6); //Of Almost Logout credits to Yakman :)
for f := 0 to e do
begin
case Random(3) of
0, 1: MMouse(727 - Random(200), 90 + Random(200), 0, 0);
2: IdleTime(300 + Random(300), 500, 0.5);
end;
FTwait(2 + Random(1));
end;
end;
{******************************************************************************
Anti ban
******************************************************************************}
procedure AntiBan;
begin
If (not (Loggedin)) then
Exit;
case Random(47) of
0,1,2: PickUpMouse;
23,5,9: GameTab(1 + Random(11));
46: Search;
45: MMouse(Random(MSX2), Random(MSY2), 0, 0);
19: begin
HoverSkill('Fishing',false);
gametab(4);
ChooseOption('Cancel');
MMouse(Random(MSY1), Random(MSX1), 0, 0);
end;
10: begin
GameTab(1 + Random(13));
wait(1000+ random(600));
gametab(4);
ChooseOption('Cancel');
end;
34: begin
HoverSkill('random',false);
gametab(4);
end;
33: Begin
Case Random(67)+1 of
0,1,23,25,45,46: Typesend('...');
2,22,42,52,62: Typesend('Yawn');
3,5,9,19: Typesend('Hey');
66,65,64,63: Typesend('Fishing lvls?');
56,55,54,53,67: Typesend('l0l');
end;
end;
end;
end;
{******************************************************************************
Progress Report
******************************************************************************}
Procedure ProgressReport;
Begin
ClearDeBug;
WriteLn('');
WriteLn('~~~~~~~~~~~~~~~~~~~Fishing Progress Report ~~~~~~~~~~~~~~~~~~~~');
WriteLn('');
WriteLn('~ Current Player : ' + Players[CurrentPlayer].Name);
WriteLn('~ Worked for : ' + Timerunning);
WriteLn('~ Loads done : ' + IntToStr(Loadsdone));
WriteLn('~ Monks Fished : ' + IntToStr(Monksfished));
WriteLn('');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
End;
{******************************************************************************
Load pictures
******************************************************************************}
procedure LoadPictures;
begin
bankBMP := BitmapFromString(53, 17, 'z78DAED97C10D002008035772' +
'0AF71FC90D0CA18005DBA70F4B2F18612D4962D43628CF9127699' +
'72C0CF4A2EA11BD1A7A51A9A7D2CBB8E75EADC5372AB5CF37BBF7' +
'F014BEFB115FFB79CDCBCDEBA51FE8D553123DBCB7BBD363F8055' +
'E4DCB33B624ED8CA2574349DCF0695C4CF875002E2F4F95');
end;
{******************************************************************************
Set up player
******************************************************************************}
Procedure SetUpPlayer;
Begin
If Not LoggedIn Then Exit;
SetAngle(True);
Wait(RandomRange(300, 450));
Wait(RandomRange(300, 450));
// SetBar('Brightness', 4);
Wait(RandomRange(300, 450));;
SetRun(True);
GameTab(4);
End;
Function FindObjX(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tolerance: Integer): Boolean;
var
a, b, c, i, x1, y1, x2, y2: Integer;
Start: Boolean;
begin
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorSpiralTolerance(cx, cy, color[b], MSX1, MSY1, MSX2, MSY2, Tolerance)) then
begin
Start := True;
Break;
end;
end;
if(Start)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
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
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;
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorTolerance(cx, cy, Color[b], x1, y1, x2, y2, tolerance)) then
begin
MMouse(cx, cy, 0, 0)
if (IsUpTextMultiCustom(Text)) then
begin
Result := True;
Exit;
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;
function FindObject(var x,y:integer; uptext, objectname, option:string; Mouseway,color,tolerance:integer):boolean;
var
ObjectTPA: T2DPointArray;
ObjectPoint: TPointArray;
Tries, I, cts, ObjectTime: integer;
begin
if not LoggedIn then exit;
Gametab(4);
wait(300+random(600));
marktime(ObjectTime);
repeat
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsTolerance(ObjectPoint, color, msx1, msy1, msx2, msy2, tolerance);
ObjectTPA := TPAtoATPAEx(ObjectPoint, 20, 20);
SortATPAFromFirstPoint(ObjectTPA, Point(MSCX, MSCY));
For I:= 0 to High(ObjectTPA) do
begin
MiddleTPAEx(ObjectTPA[i], x, y);
MMouse(x, y, 3, 3);
Wait(150 + Random(70));
Inc(Tries);
if isuptext(uptext)then
begin
Writeln('Finding '+(objectname)+' took:' +inttostr(timefrommark(ObjectTime))+ ' ms!');
Tries:=Tries-Tries;
GetMousePos(x,y);
if Mouseway = 1 then
begin
mouse(x,y,0,0,true);
fflag(RandomRange(5, 10));
end;
if Mouseway = 2 then
begin
mouse(x,y,0,0,false);
wait(300+random(500));
Chooseoption(option);
fflag(RandomRange(5, 10));
end;
wait(700+random(1000));
result := true;
exit;
end else
begin
mmouse(392, 268, 30, 30);
Status('Failed to find the object');
end;
end;
until((tries >5) or (timefrommark(ObjectTime) > (20000+random(10000))));
if not result then
begin
writeln('We couldn''t find the '+(objectname)+ '!');
exit;
end;
end;
{******************************************************************************
Continue Screen
******************************************************************************}
function ContinueScreen: Boolean;
begin
if not LoggedIn then Exit;
FindRandoms;
if not (GetColor(505, 453) = 1778730) and
not (GetColor(499, 346) = 6456731) and
not (GetColor(276, 459) = 6321792) then
begin
Writeln('Found a continue screen');
Result := True;
end;
end;
{******************************************************************************
Walk to the sea where the fishing spots am
******************************************************************************}
Procedure Walktospot;
Begin
DTMTravel := DTMFromString('78DA63CC626260A86040016D55510C22409A1' +
'188FF0301A317504D07448E15AA2625C282811FAA0604189B8850' +
'1301541340408D0D504D14AA1A907B50D4D401D544E25703003E4' +
'5104A');
If Not LoggedIn Then Exit;
If FindColorTolerance(x, y, 10728636, 715, 95, 720, 98, 20)Then SetRun(True);
Mouse(RandomRange(640,645), RandomRange(124,144), 0, 0, True);
FindRandoms;
Wait(10000);
End;
{******************************************************************************
Find WhirlPool
******************************************************************************}
function FindWhirlPool(var x, y: Integer): Boolean;
var
Points: TPointArray;
Rx, Ry: Integer;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(Ry, Rx, Points, 12103079, x - 30, y - 30, x + 30, y + 30, 20);
if GetArrayLength(Points) > 90 then
begin
if (Rx > 0) or (Ry > 0) then
begin
MMouse(Rx, Ry, 0, 0);
Wait(1000);
Result := True;
ColorToleranceSpeed(1);
Exit;
end;
end;
Result := False;
ColorToleranceSpeed(1);
end;
procedure MyHandleWhirlPool;
begin
TakeScreen('Whirlpool');
Mouse(MMCX - 10, MMCY - 10, 5, 5, True);
WhirlPools := WhirlPools + 1;
ReportVars[3] := 1;
SendSRLReport;
end;
{******************************************************************************
Click the Spot To Fish
******************************************************************************}
function ClickSpotToFish(var x, y: Integer): Boolean;
begin
if not LoggedIn then exit;
Gametab(4);
if (players[currentplayer].Strings[1]='fishing') then
begin
if FindObject(ax,ay,'ishing','arp' ,'pot', 3, 10787476, 3) then
begin
if not FindWhirlPool(ax,ay) then
begin
Mouse(ax,ay, 0, 0, True);
Chooseoption('et');
fflag(RandomRange(0, 3));
wait(3000+random(2000));
Result:=True;
exit;
end;
end;
end else
begin
if FindObject(ax,ay,'ishing','pot' ,'arp', 3, 10787476, 3)then
begin
if not FindWhirlPool(ax,ay) then
begin
Mouse(ax, ay, 0, 0, false);
wait(300+random(500));
Chooseoption('et');
fflag(RandomRange(0, 3));
wait(3000+random(2000));
Result:=True;
exit;
end;
end;
end;
end;
{******************************************************************************
find monk Fishing spot
******************************************************************************}
function FindFishingSpot(var x, y: Integer; Cx1, Cy1, Cx2, Cy2: Integer): Boolean;
var Rx, Ry: Integer;
begin
if not LoggedIn then Exit;
FindRandoms;
X := MSCX;
Y := MSCY;
ColorToleranceSpeed(2);
if FindColorSpiralTolerance(x, y, 12959676, Cx1, Cy1, Cx2, Cy2, 30) then
begin
Writeln('Fishing spot found');
Result := True;
Status('Location -- Fishing spots');
ColorToleranceSpeed(1)
Exit;
end else
begin
Writeln('Fishing spot not found.');
Result := False;
end;
if not Result then
begin
Cc := Cc + 1;
if Cc > 4 then
begin
if UseFishSymbol then
begin
if FindSymbol(Rx, Ry, 'Fishing spot') then
begin
if Distance(MMCX, MMCY, Rx, Ry) > 8 then
begin
Writeln('Walking to fishing symbol');
Mouse(Rx, Ry, 5, 5, True);
FFlag(0);
end;
end else
begin
Writeln('No symbol found');
Status('Error No symbol found');
Logout;
Exit;
end;
end;
Cc := 0;
end;
end;
Wait(500);
ColorToleranceSpeed(1);
end;
{******************************************************************************
FollowFishingSpot
******************************************************************************}
function FollowFishingSpot(var x, y: Integer): Boolean;
begin
if not LoggedIn then Exit;
ColorToleranceSpeed(2);
if (x - 20) < 0 then x := 20;
if (y - 20) < 0 then y := 20;
if FindColorSpiralTolerance(x, y, 12959676, x - 20, y - 20, x + 20, y + 20, 50) then
begin
Result := True;
end else
begin
Result := False;
x := MSCX;
y := MSCY;
end;
ColorToleranceSpeed(1);
end;
{******************************************************************************
FindAllFishSpots
******************************************************************************}
function FindAllFishSpots(var x, y: Integer): Boolean;
var
A: Integer;
begin
Writeln('Finding All Fishing Spots;');
FindRandoms;
ColorToleranceSpeed(2);
SetArrayLength(MyTBoxArray, 0);
if FindColorSpiralTolerance(x, y, 11511713, MSX1, MSY1, MSX2, MSY2, 30) then
begin
repeat
if not LoggedIn then Exit;
FindRandoms;
if FindColorSkipBoxArrayTolerance(x, y, 12959676, MSX1, MSY1, MSX2, MSY2, 30, MyTBoxArray) then
begin
if ClickSpotToFish(x, y) then
begin
FollowFishingSpot(x, y);
Break;
end;
SetArrayLength(MyTBoxArray, A + 1);
MyTBoxArray[A].x1 := x - 40;
MyTBoxArray[A].y1 := y - 40;
MyTBoxArray[A].x2 := x + 40;
MyTBoxArray[A].y2 := y + 40;
A := A + 1;
Wait(500);
end else
begin
x := MSCX;
y := MSCY;
end;
until ClickSpotToFish(x, y) or not FindColorSkipBoxArrayTolerance(x, y, 16248793, MSX1, MSY1, MSX2, MSY2, 30, MyTBoxArray);
if ClickedSpot then
begin
Result := True;
FollowFishingSpot(x, y);
end else
begin
Result := False;
end;
end;
for A := 0 to GetArrayLength(MyTBoxArray) - 1 do
begin
MyTBoxArray[A].x1 := 0;
MyTBoxArray[A].y1 := 0;
MyTBoxArray[A].x2 := 0;
MyTBoxArray[A].y2 := 0;
end;
ColorToleranceSpeed(1);
end;
{******************************************************************************
are We Fishing
******************************************************************************}
function AreWeFishing(var x, y: Integer): Boolean;
var
Equips: TPointArray;
Rx, Ry: Integer;
begin
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(Rx, Ry, Equips, 1780531 , x - 20, y - 20, x + 20, y + 20, 20);
if GetArrayLength(Equips) > 15 then
Result := True
else Result := False;
ColorToleranceSpeed(1);
end;
{******************************************************************************
WaitWhilstFishing
******************************************************************************}
procedure WaitWhilstFishing;
var
EquipCheck, FishingCheck, FollowingSpot: Integer;
begin
if not LoggedIn then Exit;
MarkTime(RandomMark);
MarkTime(IdleMark1);
MarkTime(IdleMark2);
MarkTime(EquipCheck);
MarkTime(FishingCheck);
MarkTime(FollowingSpot);
repeat
if not LoggedIn then Break;
if InvFull then Break;
Cc := 0;
AntiBan;
LevelRespond;
if TimeFromMark(RandomMark) > 750 then
begin
FindRandoms;
MarkTime(RandomMark);
end;
{~~~ Checking for ClickToContinue screen ~~~}
if ContinueScreen then
begin
repeat
if not LoggedIn then Break;
Wait(1000);
Mouse(319, 448, 3, 3, True);
until GetColor(253, 459) = 6321792;
end;
{~~~ Checks if we are actually fishing ~~~}
if not AreWeFishing(Fx, Fy) then
begin
Count := Count + 1;
end else
If FindBlackChatMessage('ast out') Then
begin
WriteLn('We are fishing');
Count := 0;
end;
if Count > 10 then
wait(5000 + randomRange(3000,8500));
begin
Writeln('Going to click again');
Count := 0;
if not ClickSpotToFish(Fx, Fy) then AntiBan;
end;
{~~~ WhirlPool ~~~}
if FindWhirlPool(Fx, Fy) then MyHandleWhirlpool;
Wait(100);
until (not FollowFishingSpot(Fx, Fy)) or (TimeFromMark(FollowingSpot) > (180000));
if not LoggedIn then
begin
Writeln('Not logged in after WaitWhilstFishing.');
Exit;
end;
{~~~ checks if invent is full ~~~}
if InvFull then
begin
Writeln('Inventory is full so going to bank.');
sudbank := 1
end;
end;
// if not FollowFishingSpot(Fx, Fy) then
//begin
//Writeln('No fishing spots found here.');
//end;
//end;
{******************************************************************************
Fish monks
******************************************************************************}
Procedure FishMonks;
var
FollowingSpot, RandomMark: Integer;
begin
if not LoggedIn then Exit;
if FindFishingSpot(Fx, Fy, MSX1, MSY1, MSX2, MSY2) then
begin
LevelRespond
TimesFishingSpotNotFound := 0;
if FindWhirlPool(Fx, Fy) then MyHandleWhirlpool;
ClickSpotToFish(Fx, Fy);
if not ClickedSpot then FindAllFishSpots(Fx, Fy);
if not ClickedSpot then
begin
Writeln('No fishing spot found');
//Writeln(IntToStr(I));
end;
MarkTime(FollowingSpot);
MarkTime(RandomMark);
while TimeFromMark(FollowingSpot) < 70000 do
begin
if not LoggedIn then Exit;
if TimeFromMark(RandomMark) > 250 then
begin
FindRandoms;
MarkTime(RandomMark);
end;
Wait(200);
FollowFishingSpot(Fx, Fy);
end;
WaitWhilstFishing;
end else
begin
TimesFishingSpotNotFound := TimesFishingSpotNotFound + 1;
Writeln('Times Fishing Spot NotFound := ' + IntToStr(TimesFishingSpotNotFound));
if ((TimesFishingSpotNotFound = 1) or (TimesFishingSpotNotFound = 2) or (TimesFishingSpotNotFound = 3)
or (TimesFishingSpotNotFound = 4)) then
begin
MakeCompass('w');
Wait(500);
Mouse(RandomRange(640,645), RandomRange(124,144), 0, 0, True);
Wait(1000);
end else
if ((TimesFishingSpotNotFound = 5) or (TimesFishingSpotNotFound = 6) or (TimesFishingSpotNotFound = 7)
or (TimesFishingSpotNotFound = 8) or (TimesFishingSpotNotFound = 9)) then
begin
MakeCompass('E');
Wait(500);
Mouse(RandomRange(640,645), RandomRange(124,144), 0, 0, True);
Wait(1000);
end else
if TimesFishingSpotNotFound = 10 then
begin
TimesFishingSpotNotFound := 0;
Writeln('No fishing spot found so logging out');
Status('Error No fishing spot');
LogOut;
Exit;
end;
end;
end;
{******************************************************************************
Bank monks
******************************************************************************}
procedure WalkToBank;
begin
Status('Location -- Bank');
if (FindSymbol(x, y, 'fish')) then
begin
MakeCompass('W');
Wait(200);
Mouse(RandomRange(640,645), RandomRange(124,144), 0, 0, True);
Wait(400 + Random(400));
end else
if (not(FindSymbol(x, y, 'bank'))) then
begin
MakeCompass('E');
Wait(200);
Mouse(RandomRange(640,645), RandomRange(124,144), 0, 0, True);
Wait(400 + Random(400));
end else
if (FindSymbol(x, y, 'bank')) then
begin
Mouse(x, y, 2, 2, true);
FFlag(2);
Wait(500);
Writeln('Walking to bank');
SetAngle(true);
sudbank :=2
end;
end;
function myBankScreen : Boolean;
var x, y : Integer;
begin
Result := FindBitmapMaskTolerance(bankBMP, x, y, MSX1, MSY1, MSX2, MSY2, 4, 4);
end;
procedure talk2Openbank;
begin
MFF(599, 112, 10, 10);
FFlag(0);
Begin
If FindSymbol(x, y, 'Bank') Then
Begin
Mouse(x, y, 2, 2, True);
FFlag(0);
end;
WriteLn('In Bank');
Begin
If FindObjX(x, y, ['rno'], [8168659, 2453134], 15) Then
Begin
Mouse(x, y, 0, 0, False);
Wait(800+Random(200));
ChooseOption('ank');
end;
Begin
FFlag(0);
Wait(1500+Random(1000));
If PinScreen Then
InPin(Players[CurrentPlayer].PIN);
Begin
If BankScreen Then
Begin
Deposit(2, 28, True);
Wait(1000+Random(200));
CloseBank;
LoadsDone := LoadsDone +1;
end;
end;
end;
end;
end;
end;
Procedure Bankmonks;
Begin
If Not LoggedIn Then Exit;
FindRandoms;
Begin
Wait(6000);
FindRandoms;
If PinScreen Then
Begin
InPin(Players[CurrentPlayer].Strings[0]);
Wait(2000);
End;
Begin
For I := 2 To 28 Do
Begin
If ExistsItem(I) Then
Begin
MouseItem(I, False);
Wait(RandomRange(400, 500));
ChooseOption('All');
Wait(1200 + Random(500));
End;
End;
End;
CloseBank;
Banks:=Banks+1
Monksfished:=Monksfished+27
ReportVars[0] := ReportVars[0] + 27;
Loadsdone:=Loadsdone+1
ReportVars[1] := ReportVars[1] + 1;
sudbank := 0
FindRandoms;
End;
End;
procedure freeDTMs;
Begin
FreeDTM(BankBMP);
FreeDTM(DTMTravel);
end;
Procedure MainLoop;
Begin
if (sudbank = 0) then
begin
SRLRandomsReport;
SendSRLReport;
MakeCompass('S');
Walktospot;
FishMonks;
end;
if (sudbank = 1) then
begin
WalkToBank;
end;
if (sudbank = 2) then
begin
talk2Openbank
end;
if (sudbank = 3) then
begin
Bankmonks;
SRLRandomsReport;
SendSRLReport;
ProgressReport;
end;
End;
Begin
If (YourSRLID = '') Or (YourSRLPass = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter your SRLID and SRLPass');
TerminateScript;
End;
SetUpSRL;
SRLRandomsReport;
ClearDeBug;
LoadPictures;
ScriptID := '';
SRLID := YourSRLID;
SRLPassword := YourSRLPass;
DeclarePlayers;
Loadsdone := 0
MarkTime(TotalTimeWanted);
Repeat
LoginPlayer;
SetUpPlayer;
MarkTime(PlayerTime);
Repeat
MainLoop;
FreeDTMs;
Until(Loadsdone>= Loads2DO) or (Not( LoggedIn)) Or (TimeFromMark(PlayerTime) >= 60000 * TimePerPlayer);
LogOut;
NextPlayer(Players[CurrentPlayer].Active);
Until(TimeFromMark(TotalTimeWanted) >= 60000 * TotalRunningTime) or (Not(LoggedIn))
End.