SRL Archive - Help and Support

monk fisher?


Scaper

2008-10-21 19:29:31

any1 have aa monkfisher??

or an outdated 1 or anything i ask this is because i cantmake it find the fishingspot to start fishing it walks to easpotok but wont start fishing i would appreciate alil help please

thnx

P1nky

2008-10-21 20:22:52

Naum made 1 for the place North of Seers(rock crab loc)

NiCbaZ

2008-10-22 03:46:19

Il try and understamd your post, please use spaces !! please!!!

You mean you tried to make one? And cannot find the Fishing Spot? Then use SRl findObjTPA or make one yourslef using simple TPA's and TP's if you need help add me on msn.

Naum

2008-10-22 12:30:59

Common man, thats easy and your a SRL Member! If you really cba PM me an account and I'll make it, will take 30 mins max!

Scaper

2008-10-22 13:23:51

lol sorry nicbaz my spac bar sticks:S

and nahum i have asked *pmd yaloads times i havemessed with it for ages too and it just didnt work atall my account has anohter 4 days or so of bans but i can get my cuzin to get screenies??

Naike

2008-10-22 16:36:03

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]

Scaper

2008-10-22 21:01:55

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.

TravisV10

2008-10-22 21:08:27

[offtopic]Haha, the advertisement for this page was "Get Monk Ringtones!"[/offtopic]

Naum

2008-10-23 02:49:15

Would have been nice if you could have PM'ed me first :(