• Log in or sign up for an account here: https://www.sythe.org/login

power fisher/cooker

  • Thread starter Thread starter cubfan
  • Start date Start date
C

cubfan

Guest
hey can someone make me a power firsherand cooker like at barbaian village?
if not just a power fisher?
 
There's one on SRL-forums, someone even made a 70+ hour proggy.
It's made by Wizzup? the master of object finding!
It's a Barbarian Fly Fisher and banker.

-Tsn.
 
niceee
 
This script is made by The Claw from SRL-Forums.com,this can fish ANY fish ANYWHERE in Free To Play (F2P), if you need to see the original thread, it is located here; (http://www.srl-forums.com/forum/any-fish-power-t21162.html), otherwise use it wisely...

Code:
{===================================================================]
[                The Claws Any-Fish Power Fisher                    ]
[                                                                   ]
[           NAME        : Any-Fish Power Fisher                     ]
[           WRITER      : The Claw                                  ]
[           CATEGORY    : Fishing                                   ]
[           DESCRIPTION : Power fishes any F2P fish, anywhere       ]
[           USAGE       : Start near a fishing spot                 ]
[           AUTOCOLOR   : Yes                                       ]
[           SRL Used    : 4                                         ]
[           Released    : 25/8/2007                                 ]
[                                                                   ]
[===================================================================]
[                           Instructions.                           ]
[===================================================================]
[ 1. USE Runescape with Low Detail, Very Bright.                    ]
[ 2. Set your Screen to 32 bit TRUE color.                          ]
[ 3. Use SRL 4 BETA and SCAR 3.11.                                  ]
[ 4. Setup the constants to your liking.                            ]
[ 5. Setup your player array.                                       ]
[ 6. Position your players near fishing spots.                      ]
[ 7. If Strings[0] is set to Auto, have higher level equipment as   ]
[    well. See thread for more details about Auto.                  ]
[ 8. Hit run!                                                       ]
[ 9. Post proggies and feedback please! ;)                          ]
[===================================================================}

program PowerFisher;
{.include SRL/SRL.scar}

const
  PlayerLoads      = 2;             //Loads to do per player before switching
  MaxLoadTime      = 15;            //Maximum time for 1 load, in minutes
  RunDirec         = 'S';           //Direction to run if attacked
  CompassDirection = 'N';           //Direction for compass. Try to find one where the player will be side on when it fishes, at all locations you are using.
  CheckForSymbol   = True;          //Calibrate around fishing symbol? not reccommended on crowded places, like karamja
  DropRandomItems  = False;         //Would you like to drop the items you get from random events, such as gems and coins?
  MSpeed           = 35;            //Mouse speed?

  Version          = '0.02';        //Script Version
  YourSRLID        = '';            //Your SRL User ID
  YourSRLPass      = '';            //Your SRL User Pass
  
{-----------------------------------------------

 Declare Players

------------------------------------------------}

procedure DeclarePlayers;
begin
  HowManyPlayers := 6;
  CurrentPlayer := 0;
 // HowManyBooleans := 1;
  NumberOfPlayers(HowManyPlayers);
  
  Players[0].Name       := '';
  Players[0].Pass       := '';
  Players[0].Nick       := '';
  Players[0].Rand       := 'Fishing spot';
  Players[0].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[0].Booleans[0]:=  False;    //Check for auto retaliate off once?
  Players[0].Active     :=  True;
  
  Players[1].Name       := '';
  Players[1].Pass       := '';
  Players[1].Nick       := '';
  Players[1].Rand       := 'Fishing spot';
  Players[1].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[1].Booleans[0]:=  False;    //Check for auto retaliate off once?
  Players[1].Active     :=  True;
  
  Players[2].Name       := '';
  Players[2].Pass       := '';
  Players[2].Nick       := '';
  Players[2].Rand       := 'Fishing spot';
  Players[2].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[2].Booleans[0]:=  False;    //Check for auto retaliate off once?
  Players[2].Active     :=  True;
  
  Players[3].Name       := '';
  Players[3].Pass       := '';
  Players[3].Nick       := '';
  Players[3].Rand       := 'Fishing spot';
  Players[3].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[3].Booleans[0]:= False;    //Check for auto retaliate off once?
  Players[3].Active     := True;
  
  Players[4].Name       := '';
  Players[4].Pass       := '';
  Players[4].Nick       := '';
  Players[4].Rand       := 'Fishing spot';
  Players[4].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[4].Booleans[0]:= False;   //Check for auto retaliate off once?
  Players[4].Active     := True;
  
  Players[5].Name       := '';
  Players[5].Pass       := '';
  Players[5].Nick       := '';
  Players[5].Rand       := 'Fishing spot';
  Players[5].Strings[0] := 'Auto';   //Auto, Net, Bait, Lure, Harpoon or Cage
  Players[5].Booleans[0]:=  False;    //Check for auto retaliate off once?
  Players[5].Active     :=  True;
  
  Writeln('Using '+IntToStr(HowManyPlayers)+' Player[s].');
end;

{///////////////////////////////////////////////////////////////////////
|| No need to change anything below this line.                        ||
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}

var
  HarpoonBmp, SmallNetBmp, CageBmp, FlyFishingRodBmp, FishingRodBmp, TunaBmp,
  LobsterBmp, SwordfishBmp, FishNotFound, ShrimpBmp, AnchoviesBmp, SardineBmp,
  HerringBmp, TroutBmp, PikeBmp, SalmonBmp, BmpType, RandomMark, IdleMark1,
  IdleMark2, Count, Ix, Iy, Fx, Fy, SearchForFish, CurrentFishingLevel, EquipInWater,
  BaitBMP, FeatherBMP, I, Shrimp, Sardine, Herring, Anchovies, Tuna, Trout,
  Pike, Salmon, Lobster, SwordFish, TotalFish, Exp, PickedEquip,
  PlayerLoadsC, TotalLoadsC, Cc: Integer;
  SearchOnGround, ClickedSpot: Boolean;
  SpotType, EquipmentType, EquipColourName: String;
  EquipmentColour: Array of Integer;
  DoWeLookFor: Array[0..4] of Boolean;
  MyTBoxArray : TBoxArray;
  CAr: TPointArray;

{-----------------------------------------------

 AutoColouring

------------------------------------------------}

{--------------------------------
 AutoColourEquip - Stores colours of the fishing equipment that we are using
 into an Array, EquipmentColours. Autocolouring 1.
---------------------------------}

function AutoColourEquip(var EquipToColour: Integer): Array of Integer;
var
  TempEquipmentColour, C, x, y: Integer;
  EquipmentColours: Array of Integer;
begin
  if not LoggedIn then Exit;
  GameTab(4)
  if FindBitmapToleranceIn(EquipToColour, x, y, MIX1, MIY1, MIX2, MIY2, 50) then
  begin
    TempEquipmentColour := GetColor(x, y);
    FindColorsSpiralTolerance(x, y, CAr, TempEquipmentColour, x - 15, y - 15, x + 15, y + 15, 25);
    SetArrayLength(EquipmentColours, GetArrayLength(CAr));
    for C := 0 to GetArrayLength(CAr) - 1 do
      EquipmentColours[C] := GetColor(CAr[C].x, CAr[C].y);
    Result := EquipmentColours;
  end;
end;

{-----------------------------------------------

 AntiRandoms, AntiBan + Supporting Functions -
 From here down until LoadBitmaps, apart from CheckEquipment.

------------------------------------------------}

{--------------------------------
 FindRandoms - Our main Anti-random procedure which is called.
---------------------------------}

procedure FindRandoms;
begin
  FindNormalRandoms;
  if FindFight then
  begin
    RunTo(RunDirec, True);
    Wait(15000 + random(5000));
    RunBack;
    ActivateClient;
  end;
end;

{--------------------------------
 AntiBan - This is called during WaitWhilstFishing. The MarkTimes for IdleMarks
 etc are made at the beginning of WaitWhilstFishing.
---------------------------------}

procedure AntiBan;
var
  Z: Integer;
begin
  if not LoggedIn then Exit;
  if TimeFromMark(IdleMark1) > (40000+Random(5000)) then
  begin
    Writeln('Performing antiban 1 to avoid logging out.');
    Z := Random(13) + 1;
    if Z = 4 then
    begin
      GameTab(2);
      HoverSkill('Fishing', False);
    end else
      GameTab(Z);
    GameTab(4);
    MarkTime(IdleMark1);
  end;
  if TimeFromMark(IdleMark2) > (85000 + Random(5000)) then
  begin
    Writeln('Performing antiban 2 to avoid logging out.');
    case Random(2) of
      0: HoverSkill('Fishing', False);
      1: PickUpMouse;
    end;
    HighestAngle;
    MarkTime(IdleMark2);
  end;
end;

{--------------------------------
 ClickToContinueScreen - Simple check to see if we have gotten a click to continue
 screen, indicating a level up which would stop us from fishing. Called in
 WaitWhilstFishing.
---------------------------------}

function ClickToContinueScreen: 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 click to continue screen');
    Result := True;
  end;
end;

{--------------------------------
 CheckEquipment - Checks fishing level and determines what it can fish. It
 then checks if the fishing equipment which it has the level to use is in
 the inventory. Returns True if some equipment it can use is found, False if not.
--------------------------------}

function CheckEquipment: Boolean;
var
  EquipmentInfo: Array of Array [0..1] of Integer;
  Rx, Ry: Integer;
begin
  if Players[CurrentPlayer].Strings[0] = 'Auto' then
  begin
    SetArrayLength(EquipmentInfo, 5);

    EquipmentInfo[0][0] := 1;
    EquipmentInfo[0][1] := SmallNetBmp;

    EquipmentInfo[1][0] := 5;
    EquipmentInfo[1][1] := FishingRodBmp;

    EquipmentInfo[2][0] := 20;
    EquipmentInfo[2][1] := FlyFishingRodBmp;

    EquipmentInfo[3][0] := 35;
    EquipmentInfo[3][1] := HarpoonBmp;

    EquipmentInfo[4][0] := 40;
    EquipmentInfo[4][1] := CageBmp;

    GameTab(4);
    Writeln('Current fishing level is ' + IntToStr(CurrentFishingLevel) + '.');
    for I := 4 downto 0 do
    begin
      if not LoggedIn then Exit;
      if DoWeLookFor[I] then
      begin
        GameTab(4);
        Wait(500);
        if CurrentFishingLevel >= EquipmentInfo[I][0] then
        begin
          if FindBitmapToleranceIn(EquipmentInfo[I][1], Rx, Ry, MIX1, MIY1, MIX2, MIY2, 20) then
          begin
            Writeln('Found equipment - ' + IntToStr(I));
            case I of
              0: begin
                   SpotType        := 'Net'           //Used in UpText
                   EquipmentType   := 'mall'          //Used in finding equip on the ground
                   EquipColourName := 'smallnet'      //Used in finding equip on the ground
                   BmpType         := SmallNetBmp     //Used in making sure we have equip
                   EquipInWater    := 1780531         //Used for checking that we are fishing
                 end;
              1: begin
                   SpotType        := 'Bait'
                   EquipmentType   := 'od'
                   EquipColourName := 'fishingrod'
                   BmpType         := FishingRodBmp
                   EquipInWater    := 7208
                 end;
              2: begin
                   SpotType        := 'Lure'
                   EquipmentType   := 'od'
                   EquipColourName := 'flyfishingrod'
                   BmpType         := FlyFishingRodBmp
                   EquipInWater    := 7208
                 end;
              3: begin
                   SpotType        := 'Harpoon'
                   EquipmentType   := 'arpoon'
                   EquipColourName := 'harpoon'
                   BmpType         := HarpoonBmp
                   EquipInWater    := 872813
                 end;
              4: begin
                   SpotType        := 'Cage'
                   EquipmentType   := 'obster'
                   EquipColourName := 'cage'
                   BmpType         := CageBmp
                   EquipInWater    := 7365986
                 end;
            end;
            Result := True;
            Writeln(SpotType);
            EquipmentColour := AutoColourEquip(BmpType);
            Break;
          end;
        end;
      end;
    end;
  end else
  begin
    case Players[CurrentPlayer].Strings[0] of
      'Net' :     begin
                    SpotType        := 'Net'           //Used in checking for UpText
                    EquipmentType   := 'Small'         //Used in finding equip on the ground
                    EquipColourName := 'smallnet'      //Used in finding equip on the ground
                    BmpType         := SmallNetBmp     //Used in making sure we have equip
                    EquipInWater    := 1780531         //Colour of the equipment in water
                  end;
      'Bait'    : begin
                    SpotType        := 'Bait'
                    EquipmentType   := 'Fishing'
                    EquipColourName := 'fishingrod'
                    BmpType         := FishingRodBmp
                    EquipInWater    := 7208
                  end;
      'Lure'    : begin
                    SpotType        := 'Lure'
                    EquipmentType   := 'Fishing'
                    EquipColourName := 'flyfishingrod'
                    BmpType         := FlyFishingRodBmp
                    EquipInWater    := 7208
                  end;
      'Harpoon' : begin
                    SpotType        := 'Harpoon'
                    EquipmentType   := 'Harpoon'
                    EquipColourName := 'harpoon'
                    BmpType         := HarpoonBmp
                    EquipInWater    := 1383198
                  end;
      'Cage'    : begin
                    SpotType        := 'Cage'
                    EquipmentType   := 'Lobster'
                    EquipColourName := 'cage'
                    BmpType         := CageBmp
                    EquipInWater    := 1383198
                  end;
    end;
    Result := True;
    EquipmentColour := AutoColourEquip(BmpType);
  end;
end;

{--------------------------------
 FindWhirlPool - Checks for a whirlpool at x, y. The co-ords of the whirlpool, if
 found, are also stored into x, y. Called in WaitWhilstFishing.
---------------------------------}

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;

{--------------------------------
 MyHandleWhirlPool - called if a whirlpool is found.
---------------------------------}

procedure MyHandleWhirlPool;
begin
  TakeScreen('Whirlpool');
  Mouse(MMCX - 10, MMCY - 10, 5, 5, True);
  WhirlPools := WhirlPools + 1;
  ReportVars[3] := 1;
  SendSRLReport;
end;

{--------------------------------
 FindEquipment - Uses the EquipmentColour array from AutoColourEquip to search
 the ground for the equipment we are using, if it's not found in inventory.
 As usual, called in WaitWhilstFishing. Classified as an AntiRandom.
---------------------------------}

function FindEquipment(var UpText: String): Boolean;
var C, SearchForEquip, Xx, Yy: Integer;
begin
  if not LoggedIn then Exit;
  FindRandoms;
  UpText := EquipmentType;
  Writeln('Equipment type is ' + UpText);
  MarkTime(SearchForEquip);
  repeat
    for C := 0 to GetArrayLength(EquipmentColour) - 1 do
    begin
      if not LoggedIn then Break;
      FindRandoms;
      if TimeFromMark(SearchForEquip) > (2 * 60000) then Break;
      if FindColorSpiralTolerance(Xx, Yy, EquipmentColour[C], MSX1, MSY1, MSX2, MSY2, 6) then
      begin
        MMouse(Xx, Yy, 5, 5);
        Wait(300);
        if IsUpText(UpText) then
        begin
          Mouse(Xx, Yy, 0, 0, True);
          TakeScreen('Found equipment');
          Flag;
          Writeln('Found equipment');
          Result := True;
          PickedEquip := PickedEquip + 1;
          ReportVars[4] := 1;
          SendSRLReport;
          Break;
        end;
        Xx := MSCX;
        Yy := MSCY;
        if Result = True then Break;
      end;
      Wait(500);
      if Result = True then Break;
    end;
    if Result = True then Break;
  until TimeFromMark(SearchForEquip) > (2 * 60000);
  if Result = True then Exit;
  Writeln('Equipment not found');
  Result := False;
end;

{--------------------------------
 SearchForEquipment - Searches for the fishing equipment on the ground.
---------------------------------}

procedure SearchForEquipment;
begin
  if not LoggedIn then Exit;
  SearchOnGround := False;
  Writeln('Searching on ground for equipment');
  if not FindEquipment(EquipmentType) then
  begin
    if not CheckEquipment then
    begin
      Writeln('No equipment left! :(');
      Players[CurrentPlayer].Rand := 'Lost Equipment';
      TakeScreen('No equipment');
      Logout;
      Exit;
    end;
    Writeln('Lost equipment but found some in invent');
    Exit;
  end;
  Writeln('Found our equipment on the ground');
end;

{--------------------------------
 AreWeFishing - Checks to see if we have stopped fishing - by talking to a
 mysterious old man, for example.
---------------------------------}

function AreWeFishing(var x, y: Integer): Boolean;
var
  Equips: TPointArray;
  Rx, Ry: Integer;
begin
  ColorToleranceSpeed(2);
  FindColorsSpiralTolerance(Rx, Ry, Equips, EquipInWater, x - 20, y - 20, x + 20, y + 20, 20);
  if GetArrayLength(Equips) > 15 then
    Result := True
  else Result := False;
  ColorToleranceSpeed(1);
end;

{-----------------------------------------------

 LoadBitmaps / LoadDTMs / LoadDDTMs

------------------------------------------------}

procedure LoadBitmaps;
begin
    
  HarpoonBmp := BitmapFromString2(False, 'a23A7378DA4D8F590EC430' +
       '0843AF4401B37CA66972FF23155A693A587A41C8188588687981C' +
       '65190DD2D74154D66937B62077F242D723481F660DBCFA933BAF7' +
       '4EF3EC913FF18EFDF1C93F289BD2BBF54606F9F6CBD5D59655612' +
       '391718586C40E049CED2C010B57C95117A22A112386B10E4A13CC' +
       'D28042DF643B4194B2B8AE4274EAAC28063BC36841EAD3F93AFF7' +
       '903FC8');

  SmallNetBmp := BitmapFromString2(False, 'a535CE78DA558D4112C3200C03' +
       'BF642C99DA4708C9FF9F541B72682F3B46B34822228184D00A64D' +
       '2BC27BB79527D2776159F9D6BE9A677DDB37E7D66390DF76627D0' +
       '35BAF0A1302899FC72E002D890B316F90A538A2EDC50ED58305D3' +
       '520EDD024FB5E3FEDA1C1953D0D13A23467C039D2197FBF1A099E' +
       'FB34E78AC14E527636B8CEF6EE7E01BB4');

  CageBmp := BitmapFromString2(False, 'a2380678DA658E490EC430080' +
       '4BF44581A7CC413E7FF4F0A387398C548A556B9654C449451207B' +
       '1524B3A3AE66723350E4D0CEBB63571BF425A94B673F9AA737A71' +
       '58FEDE90A4C0D1A5F84DA8FD954E5DA8A853A219E355CFF58FFD4' +
       '14A6E184403C4D3BCDCD7549BF3CC0E0C73FC61913F3DD0CE31A9' +
       '151CD8F5D37847');

  FlyFishingRodBmp := BitmapFromString2(False, 'a958CC78DA65914B12C' +
       '4200844AF84F2D3A589F1FE471A1AA73293CA06F1358DA84454DA' +
       'A288DA23F294887AB588D62FF093407AF203C464644E3F42A98E7' +
       'AD71B63B102A28E6EB5658D82EB32A810490672AFE08D30434D6E' +
       '67D62C101F8C7C4FB589E4B9D3EF7AEF585C71171B38AB64B7725' +
       '4555E046FEC982A653D6E7C8951FB5777B4A595A61CDC9EDC8F98' +
       '7EEA90FAE45F97CB8C6E2FD5592D5CAF191AC7034C63E9D4B6D7E' +
       '299F317EE19DEDDB6F70355D');

  FishingRodBmp := BitmapFromString2(False, 'aB3D4678DA65904B0E03210C43' +
       'AF14629BCF92A1CCFD8FD464E8A255B1F48412470E98990D048C4' +
       'A9041F51AACEA41EF4F452B793F754FBB7CE7FDCAA976A5A7202B' +
       'A551E00A353A1D130A6D9F764E392CB578F18F676360F8F6E5EBD' +
       'BA32E977352A1828575A64EB7550DDB9AD9E466670761F84979D6' +
       '1B7AA9858C17E777B7CD78D5AE91101E60C447FCED596F215280D' +
       'BC61BC91');
    
  AnchoviesBmp := BitmapFromString2(False, 'aE453578DA7D90490E43' +
       '310843AF049F21B0CC78FF2315A75D74D362E949711C40212266A' +
       '6AA790A12BBE8A445F30E0E5C3A3F60BBFE40C6C2E128324F5CDF' +
       '2678AE8F38A9A173D3DB3305DC01C730ABAD9B3C090E83D391618' +
       '2C377164E3F18B5418FF4AC57DFF4E9AB993FA5742D4D476D3D7A' +
       'CC0515366CB87C9896CEDA4A5B5A69BE93BA749968D76EACF5216' +
       'AD24BE7FF562F3A3');
       
  HerringBmp := BitmapFromString2(False, 'a33BE478DA658D4B0E0421' +
       '0805AF84C87789DADCFF480D2E3A938C2F292B429E00008F16204' +
       '661662B9B1465EE8FBC9E76A0F6C022DA75BED3BCFBFD0CB4AD7D' +
       '71511D3F4A7A3BDD9E737F3CDD3094689390F0A0A06063AC1C565' +
       '651CEAADED2E347EA28888919EBD6656EA069CBD0869D22FA72A8' +
       '1CC74A3A39C570768E0CAC64CCCA0F57D49DFF7C0120A');
       
  LobsterBmp := BitmapFromString2(False, 'a240B978DA6590490EC430' +
       '0804BFC46AF09138C9FF9F34EEA0C9253E945A05086422A22B36A' +
       '878C3243707CBA6FB42B6021DDE73202BBCA4BD3D7E3F1E43E404' +
       '137EC32454948207FAC7E1C8139E698261997689B0F37EBE54D94' +
       '34DF88C30E5731E9E32C6D2936BA42EAEF64DAC246E9F62C5F7B7' +
       'DAB9B74C7115DBC78C7FB5A7DAF7AE32BF9E7F7867BFFE0724B');
       
  PikeBmp := BitmapFromString2(False, 'a067C678DA6D90496E4031084' +
       '3AF4406B05992E9FE476A86BFA8D42EF284D093B1222212DC10ED' +
       '1BD5EED8E6E188439E55663DF375749D8DE56BEAA12DDF446A676' +
       'E6795C6386C579254BBCEDAEBB05CA78A5515CD06CD1A481A96D1' +
       '2C1B598C3619363FF339C55CCB5F13C20141F1FD50BD40D5ACAB6' +
       '947D1AE0BDC458D3BE3653E07E61580BB23D03C4EDECD7C66276D' +
       '7C9974033F73F8C0A0845058A2EEFBCF4C9CC89F79D3307D61FD3' +
       '659C3581931D922F7122576CDC0CBFC87BF123C35780E740B3E7E' +
       'B76E43671BBB5EB4E9E1BD2D1F3EBBF87A7FFE030CD');
       
  SalmonBmp := BitmapFromString2(False, 'a6463078DA4D8F5B8E05210' +
       '844B7446315E0A7F1B1FF250DB43799FE39D1E250461191A50989' +
       '91C04B621777148F25ED29C704498D2239FFA76F01A3D5D99FA46' +
       'B4DBDAD224FF1ED7C562572AA396F36193473926AA0526EFEA501' +
       'D2C21F783BBFE4E37363637262A25FD336AC2DB74C5A2835F38F6' +
       'F0E6DE3B679C702AF13CEDC88C941E9E066FBF5001D7A4D3FCCBD' +
       '00891183F9A36BF69DDD6368BE33FF0060A');
       
  SardineBmp := BitmapFromString2(False, 'aF3D6378DA258EC7110031' +
       '08035BC281F424D8FD9774E0FB2C1A01020080C305B051D86245D' +
       'CA7482B5AB334FD39B05B0B15A73C8D6FE6B643135E77B5E64E63' +
       '6D8BAC27E96A3B7FB26371403B63F56E57C45CB899EF5664F53A8' +
       '33E89F695C041E49BD820868151A0B1798885865F4DB71CEE7EB3' +
       'DE618CCB95924B8665989DBFCB918B8F70A208CF50DEEEB93C423' +
       '3C2E4A468BD17C9F4DFFD00ABE');

  ShrimpBmp := BitmapFromString2(False, 'a43E7278DA758E4B8E03310' +
       '844AF841B8ACFD2E0EEFB1F29C6C92619CDE6A9EAA98420225AD7' +
       '06F9DC9043640BE53AF96E3EDAE60C2F9736A81F0FE7CEB76F5AB' +
       '4D2273AF36A5A6F06B519D617BAFD61E6BC028B8AD2D6A891B1B8' +
       '242B6B4A58988B455284AF4857ABDD5943130551C031BEBC23C0C' +
       'A50B9B130647EFC59E201CB42CA2D069110FEEFAB375F861');
       
  TroutBmp := BitmapFromString2(False, 'a0630678DA2D90590E452108' +
       '43B7E400163E19AEFB5FD2C3A72139066853B5B5D63C0B0DB3402' +
       'AC535E3B08FC3B50EF9CC875091F96C79FFE747D258CF1C7A1AF0' +
       '3E0C3EF4331F84629F475F2778E50A283A1A1204920E81C82724A' +
       '4265B3E23551573DDBA6DDBB0E1DDD8188E51B5B1B064C2609232' +
       '65AAD499CF75F5A39670363773B1CFD2B72F676104FC652D09391' +
       '9A474B39CAC2EF0F4EEBDEA73728A599D650B0B7B595D59D9A0A1' +
       'FEB2AE2BBCB2A3B938AEABE2B6EFEC51AB32CE1CA6FA69DE173DD' +
       '74DB92E2E618444ABF2A8EC9C9191694949F70F7FEE4');
       
  SwordfishBmp := BitmapFromString2(False, 'aA41CB78DA2D8DCB15C0' +
       '2008045BC2F8018EECAAFD971431F130F2960144A49422E7711F3' +
       '48BC3614FB25C561E76B5A4B72456E62D6E9DA38FDDBC5F738FEC' +
       'E6A874AB87BA34D973BFFADD19E90F5E737BE691E658794566768' +
       'B361F237CFD6CC31D1FA36A0F86AAA2C454E2FCBA8008753CA826' +
       '20A61995DD9D2BB64E1868E722C53683D51B09B3CAE737C5269D8' +
       '6CAF9E79F0F0CEE8F2F175');
       
  TunaBmp := BitmapFromString2(False, 'a132D178DA85CC4B0E8030080' +
       '4D02B4D7F7458B6D5DEFF4802AE5CA8217999F0038041036D1955' +
       '3D8B888BEAED7A9A999163A7ED98E63852EFF7D5DCD8949ECC543' +
       'C63C76724152ECE87E4C1E39E5A2A566F4E66260585F263E5A07E' +
       '7B01756');
    
    BaitBmp := BitmapFromString2(False, 'a2384E78DA658E510EC420080' +
       '5AF843CB0F2D95A7AFF231564B371B32119CC632012119D23403A' +
       '03B0A48A27AF64D79CF2904C96A34FCF9C734956EB474B3E163CA' +
       'E341B7CB1CB804353A5568CE46617C5048A954F98342B7ECDD815' +
       '130A0227FB6ED61BC4511FF3CFF9B9B6A6127FE27B37F73BC5178' +
       '16');

    FeatherBmp := BitmapFromString2(False, 'aF358478DA658D4B0EC530' +
       '0803AF443E04BAC434BDFF911E247A6DA56631B2AC8921229A122' +
       '02B8176F620EB48F6191CAC9941773F9A07AB2E9333F3B5FA9A4E' +
       'B795C149C94D419A63EADDCBB1D475ABB4E10C07BC01B0CD9CA7F' +
       'DCABB81DAB4F36B42CC0D5E7140FF7F9F8577B34DB0C1EC07E93');
end;

{-----------------------------------------------

 Fishing Procedures/Functions

------------------------------------------------}

{--------------------------------
 FindFish - Finds the fishing spot and stores the location to (Fx, Fy).
---------------------------------}

function FindFish(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, 16248793, Cx1, Cy1, Cx2, Cy2, 30) then
  begin
    Writeln('Fishing spot found at ' + IntToStr(X) + ', ' + IntToStr(Y));
    Result := True;
    Players[CurrentPlayer].Rand := 'Fishing Spot';
    Writeln(IntToStr(X));
    Writeln(IntToStr(Y));
    ColorToleranceSpeed(1);
    Wait(1000);
    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 CheckForSymbol 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');
          Players[CurrentPlayer].Rand := 'No symbol';
          Logout;
          Exit;
        end;
      end;
      Cc := 0;
    end;
  end;
  Wait(500);
  ColorToleranceSpeed(1);
end;
      
{--------------------------------
 FollowFishingSpot - Tracks the fishing spot across the screen as we move.
 Refreshes the location into (Fx, Fy). Custom Procedure/Function 1.
---------------------------------}

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, 14398100, 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;

{--------------------------------
 ClickTheSpotText - Checks if we have found the fishing spot that we want to fish.
 Custom Procedure/Function 2.
---------------------------------}

function ClickTheSpotText(var x, y: Integer): Boolean;
begin
  if not LoggedIn then Exit;
  MMouse(x, y, 5, 5);
  Wait(500);
  if IsUpText(SpotType) then
  begin
    Mouse(x, y, 0, 0, True);
    ClickedSpot := True;
    Result := True;
    Exit;
  end else
  begin
    Mouse(x, y, 0, 0, False);
    Wait(500);
    if ChooseOption(SpotType) then
    begin
      ClickedSpot := True;
      Result := True;
      Exit;
    end else
      if not ChooseOption('ancel') then MMouse(MSCX - Random(200), MSCY + Random(200), 200, 200);
      ClickedSpot := False;
      Result := False;
  end;
end;

{--------------------------------
 WaitWhilstFishing - This is called while we are fishing.
 It makes sure the fishing spot is still there, and performs AntiBan to
 make sure the script doesnt log out, while constantly checking for randoms.
---------------------------------}

procedure WaitWhilstFishing;
var
  GetOutOfHere: Boolean;
  EquipCheck, FishingCheck, FollowingSpot, Rx, Ry: 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;
    
    { AntiRandoms + AntiBan }
    AntiBan;
    if TimeFromMark(RandomMark) > 750 then
    begin
      FindRandoms;
      MarkTime(RandomMark);
    end;

    { Looking for our equipment in inventory }
    if TimeFromMark(EquipCheck) > 2000 then
    begin
      GameTab(4);
      if not FindBitmapToleranceIn(BmpType, Rx, Ry, MIX1, MIY1, MIX2, MIY2, 15) then
      begin
        Writeln('Didnt find the equipment that we are using');
        SearchOnGround := True;
        Break;
      end;
      MarkTime(EquipCheck);
    end;

    { Checking for ClickToContinue screen }
    if ClickToContinueScreen 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
    begin
      Count := 0;
    end;
    if Count > 20 then
    begin
      Writeln('Currently not fishing. Going to click again');
      Count := 0;
      if not ClickTheSpotText(Fx, Fy) then Break;
    end;

    { Makes sure we still have some bait }
    if (I = 1) or (Players[CurrentPlayer].Strings[0] = 'Bait') then
    begin
      GameTab(4);
      if not FindBitmapToleranceIn(BaitBmp, Rx, Ry, MIX1, MIY1, MIX2, MIY2, 20) then
      begin
        Writeln('No bait found, so we cannot use rod');
        GetOutOfHere := True;
        if I = 1 then
        begin
          DoWeLookFor[I] := False;
          CheckEquipment;
          Break;
        end else
        begin
          Players[CurrentPlayer].Rand := 'No bait';
          Logout;
          Break;
        end;
        Exit;
      end;
    end;

    { Makes sure we still have feathers }
    if (I = 2) or (Players[CurrentPlayer].Strings[0] = 'Lure') then
    begin
      GameTab(4);
      if not FindBitmapToleranceIn(FeatherBmp, Rx, Ry, MIX1, MIY1, MIX2, MIY2, 20) then
      begin
        Writeln('No feathers found, so we cannot use fly fishing rod');
        GetOutOfHere := True;
        if I = 2 then
        begin
          DoWeLookFor[I] := False;
          CheckEquipment;
          Break;
        end else
        begin
          Players[CurrentPlayer].Rand := 'No feathers';
          Logout;
          Break;
        end;
        Exit;
      end;
    end;
    
    if GetOutOfHere then Break;

    { 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;
  if InvFull then Writeln('Inventory is full.');
  if not FollowFishingSpot(Fx, Fy) then Writeln('Fish is not there.');
end;

{--------------------------------
 FindAllFishSpots - Finds the fishing spots and checks the uptext to see if it's
 the one that we want. If it's not, it skips that one using FindColorSkipBoxArray
 the next time it searches.
 Custom Procedure/Function 3.
---------------------------------}

function FindAllFishSpots(var x, y: Integer): Boolean;
var
  A: Integer;
begin
  Writeln('FindAllFishSpots;');
  FindRandoms;
  ColorToleranceSpeed(2);
  SetArrayLength(MyTBoxArray, 0);
  if FindColorSpiralTolerance(x, y, 16248793, MSX1, MSY1, MSX2, MSY2, 30) then
  begin
    repeat
      if not LoggedIn then Exit;
      FindRandoms;
      if FindColorSkipBoxArrayTolerance(x, y, 16248793, MSX1, MSY1, MSX2, MSY2, 30, MyTBoxArray) then
      begin
        if ClickTheSpotText(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 ClickTheSpotText(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;

{--------------------------------
 Fish - Collaborates all of the fishing Procedures/Functions to fish.
---------------------------------}

procedure Fish;
var
  FollowingSpot, RandomMark: Integer;
begin
  if not LoggedIn then Exit;
  FindRandoms;
  if FindFish(Fx, Fy, MSX1, MSY1, MSX2, MSY2) then
  begin
    FishNotFound := 0;
    if FindWhirlPool(Fx, Fy) then MyHandleWhirlpool;
    ClickTheSpotText(Fx, Fy);
    if not ClickedSpot then FindAllFishSpots(Fx, Fy);
    if not ClickedSpot then
    begin
      Writeln('No fishing spot found - in fish');
      Writeln(IntToStr(I));
      DoWeLookFor[I] := False;
      if not DoWeLookFor[I] then Writeln('We have set DoWeLookFor[I] to false');
      if not CheckEquipment then
      begin
        Writeln('No fishing equipment found.');
        Players[CurrentPlayer].Rand := 'No Equipment';
        LogOut;
        Exit;
      end;
    end;
    MarkTime(FollowingSpot);
    MarkTime(RandomMark);
    while TimeFromMark(FollowingSpot) < 7000 do
    begin
      if not LoggedIn then Exit;
      if TimeFromMark(RandomMark) > 250 then
      begin
        FindRandoms;
        MarkTime(RandomMark);
      end;
      Wait(50);
      FollowFishingSpot(Fx, Fy);
    end;
    WaitWhilstFishing;
  end else
  begin
    FishNotFound := FishNotFound + 1;
    Writeln('FishNotFound := ' + IntToStr(FishNotFound));
    if FishNotFound > 10 then
    begin
      FishNotFound := 0;
      Writeln('No fish spot');
      Players[CurrentPlayer].Rand := 'No Fish Spot';
      LogOut;
      Exit;
    end;
  end;
end;

{--------------------------------
 DropAllFish - Drops all the fish it finds in inventory.
---------------------------------}

procedure DropAllFish;
var
  FishToDrop, PlzDontDropMe: Array of Integer;
  F, ShrimpCount, SardineCount, HerringCount, AnchoviesCount, TroutCount,
  PikeCount, SalmonCount, TunaCount, LobsterCount, SwordFishCount, Rx, Ry,
  DroppingSingleFish, I, C: Integer;
  P: TBox;
  DropIt: Boolean;
begin
  Writeln('Counting all fish, and then dropping.');
  GetAllLevels;
  GameTab(4);

  ShrimpCount    := CountItemBmpTol(ShrimpBmp, 20);
  SardineCount   := CountItemBmpTol(SardineBmp, 20);
  HerringCount   := CountItemBmpTol(HerringBmp, 20);
  AnchoviesCount := CountItemBmpTol(AnchoviesBmp, 20);
  TroutCount     := CountItemBmpTol(TroutBmp, 20);
  PikeCount      := CountItemBmpTol(PikeBmp, 20);
  SalmonCount    := CountItemBmpTol(SalmonBmp, 20);
  TunaCount      := CountItemBmpTol(TunaBmp, 20);
  LobsterCount   := CountItemBmpTol(LobsterBmp, 20);
  SwordFishCount := CountItemBmpTol(SwordFishBmp, 20);

  Shrimp    := Shrimp + ShrimpCount;
  Sardine   := Sardine + SardineCount;
  Herring   := Herring + HerringCount;
  Anchovies := Anchovies + AnchoviesCount;
  Trout     := Trout + TroutCount;
  Pike      := Pike + PikeCount;
  Salmon    := Salmon + SalmonCount;
  Tuna      := Tuna + TunaCount;
  Lobster   := Lobster + LobsterCount;
  SwordFish := SwordFish + SwordFishCount;

  Exp       := (Shrimp * 10) + (Sardine * 20) + (Herring * 30) + (Anchovies * 40) + (Trout * 50) +
               (Pike * 60) + (Salmon * 70) + (Tuna * 80) + (Lobster * 90) + (SwordFish * 100);
  TotalFish := Shrimp + Herring + Anchovies + Trout + Pike + Salmon + Lobster + SwordFish + Tuna + Sardine;

  Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] + (ShrimpCount * 10) + (SardineCount * 20) + (HerringCount * 30) + (AnchoviesCount * 40) + (TroutCount * 50) +
                                       (PikeCount * 60) + (SalmonCount * 70) + (TunaCount * 80) + (LobsterCount * 90) + (SwordFishCount * 100);
  Players[CurrentPlayer].Integers[1] := Players[CurrentPlayer].Integers[1] + ShrimpCount + SardineCount + HerringCount + AnchoviesCount + TroutCount + PikeCount + SalmonCount + TunaCount + LobsterCount + SwordFishCount;
  Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + 1;

  ReportVars[0] := ShrimpCount + SardineCount + HerringCount + AnchoviesCount + TroutCount + PikeCount + SalmonCount + TunaCount + LobsterCount + SwordFishCount;
  ReportVars[1] := 1;
  ReportVars[2] := (ShrimpCount * 10) + (SardineCount * 20) + (HerringCount * 30) + (AnchoviesCount * 40) + (TroutCount * 50) +
                   (PikeCount * 60) + (SalmonCount * 70) + (TunaCount * 80) + (LobsterCount * 90) + (SwordFishCount * 100);

  ReportVars[10] := SardineCount;
  ReportVars[11] := HerringCount;
  ReportVars[12] := AnchoviesCount;
  ReportVars[13] := TroutCount;
  ReportVars[14] := PikeCount;
  ReportVars[15] := SalmonCount;
  ReportVars[16] := TunaCount;
  ReportVars[17] := LobsterCount;
  ReportVars[18] := SwordFishCount;
  ReportVars[19] := ShrimpCount;
  SRLRandomsReport;
  
  PlayerLoadsC := PlayerLoadsC + 1;
  TotalLoadsc := TotalLoadsC + 1;

  if not LoggedIn then Exit;
  
  if not DropRandomItems then
  begin
    SetArrayLength(FishToDrop, 10);

    FishToDrop[0] := ShrimpBmp;           //shripm
    FishToDrop[1] := SardineBmp;          //sardine
    FishToDrop[2] := HerringBmp;          //herring
    FishToDrop[3] := AnchoviesBmp;        //anchovy
    FishToDrop[4] := TroutBmp;            //trout
    FishToDrop[5] := PikeBmp;             //pike
    FishToDrop[6] := SalmonBmp;           //salmon
    FishToDrop[7] := TunaBmp;             //tuna
    FishToDrop[8] := LobsterBmp;          //lobster
    FishToDrop[9] := SwordfishBmp;        //swordfish

    for F:= 0 to 9 do
    begin
      MarkTime(DroppingSingleFish);
      Writeln('Dropping: ' + IntToStr(F));
      repeat
        if not LoggedIn then Break;
        FindRandoms;
        ClickAllItemsBmpTolWait(FishToDrop[F], 'rop', 30, (300 + Random(300)));
      until (TimeFromMark(DroppingSingleFish) > 60000) or (not FindBitmapToleranceIn(FishToDrop[F], Rx, Ry, MIX1, MIY1, MIX2, MIY2, 40));
    end;
  end;
  
  if DropRandomItems then
  begin
    SetArrayLength(PlzDontDropMe, 7);

    PlzDontDropMe[0] := SmallNetBmp;      //small net
    PlzDontDropMe[1] := FishingRodBmp;    //fishing rod
    PlzDontDropMe[2] := FlyFishingRodBmp; //fly fishing rod
    PlzDontDropMe[3] := HarpoonBmp;       //harpoon
    PlzDontDropMe[4] := CageBmp;          //cage
    PlzDontDropMe[5] := BaitBmp;          //bait
    PlzDontDropMe[6] := FeatherBmp;       //feathers

    for I := 1 to 28 do
      if ExistsItem(I) then
      begin
        P := InvBox(I);
        DropIt := True;
        for C := 0 to 6 do
        begin
          if FindBitmapToleranceIn(PlzDontDropMe[C], Rx, Ry, P.X1, P.Y1, P.X2, P.Y2, 40) then
          begin
            DropIt := False;
            Break;
          end;
        end;
        if DropIt then
        begin
          Mouse((P.X1 + P.X2) div 2, (P.Y1 + P.Y2) div 2, 5, 5, False);
          Wait(100 +Random(100));
          ChooseOption('rop');
        end;
      end;
      Wait(50 +Random(75));
  end;
end;

{-----------------------------------------------

 Progress Reports

------------------------------------------------}

procedure PlayerStats;
var
  P : Integer;
  Active : String;
begin
  Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
  Writeln(' ');
  for P := 0 to HowManyPlayers - 1 do
  begin
    if Players[P].Active=True then Active := 'T' else Active := 'F';
    Writeln ( IntToStr(P) + ' : '
    +Players[P].Nick+' = '
    +Active+' - '
    +IntToStr(Players[P].Worked)+' mins. '
    +'Lvl: '+IntToStr(Players[P].Level[17])+'. '
    +'Xp: '+IntToStr(Players[P].Integers[0])+'. '
    +'Fished: '+IntToStr(Players[P].Integers[1])+'. '
    +'Loads: '+IntToStr(Players[P].Integers[2])+'. '
    +'Location: '+Players[P].Rand +'. ');
  end;
  Writeln(' ');
  Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
end;

procedure ProgressReport;
begin
  Writeln(' ');
  Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
  Writeln('The Claws Power Fisher. v'+Version);

  Writeln('Worked for ' + TimeRunning);
  Writeln('Completed ' + IntToStr(TotalLoadsC) + ' loads.');
  Writeln(' ');
                        Writeln('Fished ' + IntToStr(TotalFish) + ' fish in total, including:');
  if Shrimp > 0 then    Writeln('       ' + IntToStr(Shrimp) + ' shrimp');
  if Sardine > 0 then   Writeln('       ' + IntToStr(Sardine) + ' sardine');
  if Herring > 0 then   Writeln('       ' + IntToStr(Herring) + ' herring');
  if Anchovies > 0 then Writeln('       ' + IntToStr(Anchovies) + ' anchovies');
  if Trout > 0 then     Writeln('       ' + IntToStr(Trout) + ' trout');
  if Pike > 0 then      Writeln('       ' + IntToStr(Pike) + ' pike');
  if Salmon > 0 then    Writeln('       ' + IntToStr(Salmon) + ' salmon');
  if Lobster > 0 then   Writeln('       ' + IntToStr(Lobster) + ' lobster');
  if Tuna > 0 then      Writeln('       ' + IntToStr(Tuna) + ' tuna');
  if SwordFish > 0 then Writeln('       ' + IntToStr(SwordFish) + ' swordfish');

  Writeln(' ');
  Writeln('Gained ' + IntToStr(Exp) + ' experience.');
  if WhirlPools  > 0 then Writeln('Avoided ' + IntToStr(WhirlPools) + ' whirlpools.');
  if PickedEquip > 0 then Writeln('Picked up equipment ' + IntToStr(PickedEquip) + ' times.');
  PlayerStats;
  SendSRLReport;
end;

{-----------------------------------------------

 SetupScript

------------------------------------------------}

procedure SetupScript;
begin
  ClearDebug;
  SetupSRL;
  LoadBitmaps;
  DeclarePlayers;
  SRLID := YourSRLId;
  SRLPassword := YourSRLPass;
  ScriptID := '250';
  MouseSpeed := MSpeed;
  SearchOnGround := False;
end;

{-----------------------------------------------

 Main Loop

------------------------------------------------}

begin
  SetupScript;
  ActivateClient;
  LoginPlayer;
  Wait(5000);
  repeat

    MakeCompass(CompassDirection);
    HighestAngle;

    if Players[CurrentPlayer].Booleans[0] then
    begin
      repeat
        if not LoggedIn then Exit;
        GameTab(1);
        Wait(500 + random(500));
      until GetColor(540, 174) = 1910385;
      if FindColorTolerance(Ix, Iy, 1777020, 606, 365, 706, 393, 10) then
      begin
        Mouse(Ix, Iy, 5, 5, True);
        Writeln('Set auto retaliate off.');
      end else
      Writeln('Auto retaliate was already off.');
      Players[CurrentPlayer].Booleans[0] := False;
    end;

    SetChat('On', 1);
    SetChat('Friends', 2);
    SetChat('On', 3);
    SetRun(True);

    for I := 0 to 4 do
    begin
      DoWeLookFor[I] := True;
    end;

    repeat
      if not LoggedIn then Break;
      CurrentFishingLevel := GetSkillLevel('Fishing');
      if not CheckEquipment then
        begin
          Writeln('No fishing equipment found.');
          Players[CurrentPlayer].Rand := 'No Equipment';
          LogOut;
          Break;
        end;
      MarkTime(SearchForFish);

      repeat
        if not LoggedIn then Break;
        if InvFull then Break;
        Fish;
        if SearchOnGround then SearchForEquipment;
        Wait(1000 + random(1000));
      until InvFull or (TimeFromMark(SearchForFish) > (MaxLoadTime * 60 * 1000));
      DropAllFish;
      ProgressReport;
    until (PlayerLoadsC = PlayerLoads) or not LoggedIn;

    PlayerLoadsC := 0;

    if not LoggedIn then
    begin
      Writeln(Players[CurrentPlayer].Name + ' is going to false');
      NextPlayer(False);
    end else
    begin
      Writeln(Players[CurrentPlayer].Name + ' is going to true');
      LogOut;
      Wait(2000 + Random(2000));
      NextPlayer(True);
    end;
  until False;   //omg infinite loop! d[~_0]b
end.
 
Runescape Gamblingrunescape gambling
Back
Top