Code:
program LemonGuildFisher;
{$DEFINE SMART}
//{$i SRL\SRL.scar}
//{$i SRL\SRL\Misc\Stats.simba}
{.include SRL\SRL.simba}
{.Include SRL\SRL\Misc\Debug.simba}
{$i sps/sps.simba}
var
sharkCount2, harpoon, shark, xshark, yshark, sharkCount, iSharkCount, bankedSharkCount, totalShark: Integer;
doneFirstLoop:boolean;
Const
SERVER = 61; // Enter "0" to pick a random server.
MEMBERS = True; // Set to True if using a RS-Members account. False if F2P.
SRLStats_Username = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
NumbOfPlayers= 1; //How many players are you using
Version= '1.0'; //NO TOUCHY!
DegToPx = 2.838;
X_Axis = 511;
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := 0;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
with Players[0] do
begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
harpoon := 2; //1=Barb tail harpoon 2=Normal harpoon.
end;
end;
Procedure StatsGuise(wat:String);
Begin
Status(wat);
Disguise(wat);
End;
Function CheckAndClick(X,Y:Integer):Boolean;
Begin
MMouse(x, y, 5, 5);
{Wait(100 + Random(50));
If CountUpColor('B', 41, 5, 86, 24, 70, 140) Then}
If WaitUpTextMulti(['Mine','ine'], 150) Then
Begin
Result:=True;
GetMousePos(x, y);
Mouse(x, y, 0, 0,True);
Wait(100+Random(50));
FFlag(0);
End;
End;
Procedure Antiban;
Begin
Case Random(5) Of
0: HoverSkill('Fishing', False);
1: Begin PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
2: ExamineInv;
3: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
4: HoverSkill('random', False);
End;
End;
function BankerColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
if not (FindColorsTolerance(arP, 6185059, MSX1, MSY1, MSX2, MSY2, 7)) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
Function getsharkCount:integer;
begin
//setupSrl;
sharkCount2 := DTMFromString('mggAAAHicY2NgYOACYgkoFmFAAHYglgRiISBmgYqB1NRVVABJJgzMxYAdMOLAEAAAtyICKw==');
Result := CountItems('dtm', sharkcount2, [0]);
//WriteLn('getsharkcount: found a total of '+inttostr(CountItems('dtm', sharkcount2, [0])));
FreeDTM(sharkcount2);
end;
Function WalkBank:Boolean;
Var
XMouse, YMouse:Integer;
Var
myPath:TPointArray;
Begin
if(invCount < 28) Then begin
SPS_Setup(RUNESCAPE_SURFACE,['5_7']);//SPS Areas
myPath := [Point(2185, 2963), Point(2195, 2963), Point(2226, 2970), Point(2234, 2956)];//Path
SPS_WalkPath(myPath);
WriteLn('going back to fishing');
Wait(2000+Random(500));
end else
if BankScreen() Then
begin
bankedsharkcount := bankedsharkcount + getSharkCount;
Deposit(harpoon, 28, True);
end
else
if FindObjCustom(XMouse, YMouse, ['Bank', 'Bank'], [BankerColor], 2) Then
begin
WriteLn('hooray we found banker');
GetMousePos(XMouse, YMouse);
Mouse(XMouse, YMouse, 6, 6, False);
Wait(300+Random(100));
ChooseOption('Bank ');
end else begin
SPS_Setup(RUNESCAPE_SURFACE,['5_7']);//SPS Areas
myPath := [Point(2234, 2956), Point(2226, 2970), Point(2195, 2963), Point(2185, 2963)];//Path
SPS_WalkPath(myPath);
End;
End;
Function isFishing: Boolean; // scan for inventory changes and wait until theres no changes for 30s...
var
Inv1: integer;
Inv2: integer;
Inv3: integer;
begin
writeLn('scanning inventory changes..');
WriteLn('Memory Tracker, Initial1: '+inttostr(Inv1)+' Initial2:'+inttostr(Inv2)+' Initial3:'+inttostr(Inv3));
repeat
writeln('executing isFishing... cause player is fishing');
Inv1 := InvCount;
wait(10000 + random(2000));
Writeln('1.5');
WriteLn('1.Memory Tracker, Initial1: '+inttostr(Inv1)+' Initial2:'+inttostr(Inv2)+' Initial3:'+inttostr(Inv3));
If ((InvFull) or (FindNPCChatText('carry',Nothing)) or (InvCount=Inv3)) then
Break;
Inv3 := InvCount;
wait(8000 + random(2000));
writeln('Check inv2, performing antiban');
antiBan;
Inv2 := InvCount;
WriteLn('2. Memory Tracker, Initial1: '+inttostr(Inv1)+' Initial2:'+inttostr(Inv2)+' Initial3:'+inttostr(Inv3));
Until ((Inv2 = Inv1) or (InvFull) or (FindNPCChatText('carry',Nothing)));
end;
function fishbubble: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
if not (FindColorsTolerance(arP, 10392460, MSX1, MSY1, MSX2, MSY2, 8)) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function firstloop:Boolean;
begin
SetScreenMouse('w',10);
wait(1000);
doneFirstloop:= false;
WriteLn('execute first loop successfully');
end;
Function FindFish:Boolean;
Var
X, Y: Integer;
Begin
//FindObjCustom(x, y, ['att', 'ack'], [123456, 345678], 5);
// if FindObjCustom(X, Y, ['N', 'Net'], [12104624, 11710122, 10721682, 11578536], 10) Then
if FindObjCustom(X, Y, ['N', 'Net'], [fishbubble], 10) Then
Begin
WriteLn('hooray we found some fish');
GetMousePos(X, Y);
Case Random(2) Of
0: Begin
Mouse(X, Y, 6, 6, False);
Wait(2000+Random(100));
ChooseOption('Harpoon');
Wait(1000+Random(100));
isFishing ;
End;
1: Begin
Mouse(X, Y, 3, 3, False);
Wait(2000+Random(100));
ChooseOption('Harpoon');
Wait(1000+Random(100));
isFishing;
End;
End;
End;
End;
var
Direc: String;
Angl: Integer;
//main loop
Begin
ClearDebug;
SetupSRL;
ActivateClient;
donefirstLoop:=(false);
DeclarePlayers;
LoginPlayer;
//SetAngle(0);
bankedSharkCount := 0;
iSharkCount := 0;
// SRLRandomsReport;
WriteLn('Using Harpoon: '+inttostr(harpoon));
// shark := DTMFromString('mggAAAHicY2NgYOACYgkoFmFAAHYglgRiISBmgYqB1NRVVABJJgzMxYAdMOLAEAAAtyICKw==');
MMouse(Xshark, Yshark, 5, 5);
//iSharkCount := CountItems('dtm', shark, [0]);
isharkcount := getSharkCount;
WriteLn('we found a total of' +inttostr(isharkCount));
// freeDtm(shark);
Repeat
//FindNormalRandoms;
//FindNonInventoryRandoms;
if not(Loggedin()) then loginplayer;
if not(doneFirstLoop) then begin firstloop end;
if Not isMoving() and not BankScreen() and (InvCount < 28) Then
begin
SharkCount := bankedSharkCount - iSharkCount + getSharkCount;
WriteLn('lets find fish, currently we have:' +inttostr(sharkcount)+ ' banksharkedcount:'+inttostr(bankedsharkcount)+ ' iSharkCount'+inttostr(iSharkCount)+ ' getSharkCount'+inttostr(getSharkCount));
FindFish
//Wait(20000+random(10000));
end Else if (InvCount > 27) or BankScreen() Then begin
walkBank;
WriteLn('bank process activated');
end;
Wait(2000+random(100));
Until(false);
WriteLn('end of script');
End.