Page 1 of 2 12 LastLast
Results 1 to 25 of 43

Thread: [SRL][OSRS] Slacky's FlyFisher™

  1. #1
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default [SRL][OSRS] Slacky's FlyFisher™

    We don't have enough flyfishing bots that work at barbarian village! This release is partially for educational purposes to showcase SRL in action, in a simple bot.

    This one does no debugging, and doesn't currently keep track over caught fish etc, it doesn't use SMART either. So in all it's very minimalistic. Feel free to try to expand on it and if you add cool features, you are free to publish your variant of it.
    However, it's fairly accurate, somewhat efficient, and features decent antiban as well as breaking.

    Features:
    • The bot has three options: Fish->Drop | Fish->Cook->Drop | Fish->Cook->Bank
    • You can start the bot just about anywhere "normal" (not a dungeon), it will find, or try to find it's path to barbarian village.
    • Can bank, but it may cause limited run-time, since the bank in edgeville is pretty bad.
    • Antiban, break-handling and fatigue to go with it.


    Step by step setup:
    1. Follow SRL setup procedures if you haven't yet.
    2. Requires SRL from Github version 1.0 or later compatible version.
    3. Requires RSWalker from Github, version 1.1 or later compatible version.

    Extract the last two in the correct folders: That is inside Simba/Include/ folder.

    The script:
    Simba Code:
    program BarbFlyFisher_V004;
    {$I SRL/OSR.simba}
    {$I RSWalker/Walker.simba}
    {.$I SRL/utils/rsclient.simba}
    {.$I SRL/utils/rsclient_overrides.simba}
    {.$I WindowOverlay/WindowOverlay.simba}
    {$H-}
    {==============================================================================]
    | Barbarian FlyFisher ™
    |
    | Steps to use:
    |   1. For longer runs you need to declare user details bellow
    |   2. Start the script wherever, just have fishing rod and feathers in your inv
    |
    | Any issues starting it: Re-target RS, and try again, may help if you log
    | in manually before doing that.
    |
    | Banking might not work very well.
    [==============================================================================}

    type
      TFisherStyle = (FishCookBank, FishCookDrop, FishDrop);

    const
      LOGIN_NAME = 'yourname';
      LOGIN_PASS = 'yourpass';
      RS_WORLD   = -1;           // preferred world, -1 = random world
      IS_MEMBER  = FALSE;        // TRUE or FALSE
      STYLE      = FishCookBank; // FishCookBank or FishCookDrop, FishDrop

    type
      TFisher = record
        StatsDebugTick: Int64;
        Antiban: TAntiban;
      end;

    var
      Bot: TFisher;
      RSW: TRSWalker;

      {$ifdecl TWindowOverlay}
      Overlay: TWindowOverlay;
      Debug: TMufasaBitmap;
      {$endif}

    var
      SalmonDTM := DTMFromString('mrAAAAHic42BgYJjKxMDQD8RdQLwQiBcA8Swg7gDi6UD8DKjmAxC/BOLbQPwIiF8A8XsgvgvEp10lgCQjTizHgB/g1gnBMAAAzZcNRg==');
      TroutDTM  := DTMFromString('mrAAAAHic42BgYJjGxMDQAcQTmCDshUC8BIinA3E/EHMxMjAIAzEHEDMA8R8gxQykBYBYBIibstMgEjiwHAN+gFsnBMMAABHQB5c=');
      BurntDTM  := DTMFromString('mlwAAAHicY2dgYJjKxMAwDYg7ofRcIF4CxAuBOICRgcEDiGOAOAqIA4HYG4hdgNjSxASomxEHxg1w6UDSBQBl4wcl');
      RawTrout  := DTMFromString('mggAAAHicY2NgYJjKxMAwDYgXAvESKLsDiMsZGRhygDgDiPOBuA6I64F457q1QF2MWDB2gE0lQjUAQtcIfQ==');
      RawSalmon := DTMFromString('mlwAAAHicY2dgYJjGBMELgXgJlN0BxL1ArMfIwKACxApArA7EZkBszggRX5efBNTNiAPjBrh0IOkCAEQMBvk=');
      Feathers  := DTMFromString('mlwAAAHicY2dgYHBmYmBwAGJvIHYBYlsgtgNiKyB+ApS/B8QPgfgNEH8G4hdA/BGIt69ZAyQZsWI5BtwAuw4IhgIAZtgKcg==');
      FishingRod:= DTMFromString('m1gAAAHic42JgYMhiYmCIB+JsIC4E4gogLgPiAiDOAeJ0IE4F4qdAtW+A+A4Q3wDiq0B8H4ifAfE7IP4MxE+AONqZE0gyEsRyDMQBwiZBMAIAAO7FDhY=');


    // -----------------------------------------------------------------------------
    // -----------------------------------------------------------------------------
    // OVERRIDES AND METHODS FOR FATIGUE

    procedure WaitFatigue(t: Double; Exp: Double=0.2);
    begin
      System.Wait(Trunc(2*t * (1-Power(System.Max(0.0001, Bot.Antiban.EnergyLevel()/100),Exp))));
    end;

    procedure Wait(min, max:Double; weight:EWaitDir=wdMean); override;
    var t: Double;
    begin
      t := PerformanceTimer();
      inherited(min, max, weight);
      WaitFatigue(PerformanceTimer()-t);
    end;

    procedure WaitEx(mean, dev:Double); override;
    var t: Double;
    begin
      t := PerformanceTimer();
      inherited(mean, dev);
      WaitFatigue(PerformanceTimer()-t);
    end;


    // -----------------------------------------------------------------------------
    // -----------------------------------------------------------------------------
    // FISHER

    procedure TFisher.DeclarePlayers();
    begin
      with Players.New()^ do
      begin
        LoginName  := LOGIN_NAME;
        Password   := LOGIN_PASS;
        IsActive   := True;
        IsMember   := IS_MEMBER;
        World      := RS_WORLD;
      end;
      Players.SetCurrent(0);
    end;

    procedure TFisher.DoAntiban();
    begin
      srl.DismissRandom();
      if Self.Antiban.DoAntiban() then
        Players.GetCurrent()^.Login(); // if we got logged out, and not logged back in
    end;

    procedure TFisher.PostAction(AntiBan:Boolean=True);
    begin
      WaitEx(450,70);
      if AntiBan then Self.DoAntiban;
    end;


    procedure TFisher.ProcessWhileWaiting();
    begin
      if GetTickCount() - StatsDebugTick > 2000 then
      begin
        ClearDebug();
        ClearDebug();
        WriteLn('+---| STATS |----------------------------------------');
        WriteLn('|- Script Runtime    : ', SRL.MsToTime(GetTimeRunning, Time_Short));
        WriteLn('|- Time Since Break  : ', SRL.MsToTime(Antiban.TimeSinceBreak(), Time_Short));
        //WriteLn('|- Recent Break Len  : ', SRL.MsToTime(Antiban.ResidualBreakValue(), Time_Short));
        WriteLn('|- Energy Level      : ', Round(Antiban.EnergyLevel,2));
        WriteLn('+----------------------------------------------------');
        Self.StatsDebugTick := GetTickCount();
      end;
      Self.DoAntiban;
    end;


    // Find fishingspots by finding the edges of the water, over and over again
    // Then do some fancy stuff to remove land->water borders.
    // what's left is an accurate TPA of the fishingspot
    function TFisher.FindFishingSpot(scanTime: Int32=450): T2DPointArray;
    var
      i: Int32;
      SUM,TPA: TPointArray;
      R: TRectangle;
      t: TCountDown;
    begin
      t.Init(scanTime);
      while not t.IsFinished do
      begin
        srl.FindColors(TPA, CTS2(8875103,16,0.2,0.7), Mainscreen.GetBounds);
        SUM += TPA.Edges();
      end;

      SUM.ClearDuplicates();
      SUM := ClearTPAFromTPA(Sum, Sum.Edges());
      Result := SUM.Cluster(5);
      Result.FilterSize(12, __GT__);

      {$ifdecl TWindowOverlay}
      Debug.Clear();
      for i:=0 to High(Result) do
        Debug.DrawTPA(Result[i], Random($FFFFFF));
      {$endif}
    end;

    // Basically we find the fishingrod by checking the two tiles infront of
    // our character. It can fail if your character covers most of the rod
    function TFisher.IsFishing(): Boolean;
    var
      rect1,rect2: TRectangle;
      TPA1,TPA2: TPointArray;
    begin
      Rect1 := Minimap.StaticToMsRect([646,84],1);
      Rect2 := Minimap.StaticToMsRect([649,84],1);
      {$ifdecl TWindowOverlay}
      Debug.DrawRect(Rect1, $FFFFFF);
      Debug.DrawRect(Rect2, $FFFFFF);
      {$endif}
      if srl.FindColors(TPA1, CTS2(6694,10), Rect1.Bounds) > 12 then
        Result := srl.FindColors(TPA2, CTS2(6694,10), Rect2.Bounds) > 5;
    end;

    // Finds fishing spots, click one, and waits while we are fishing
    //
    function TFisher.Fish(): Boolean;
    var
      ATPA: T2DPointArray;
      TPA: TPointArray;
    begin
      if (not Inventory.Contains(FishingRod)) or
         (not Inventory.Contains(Feathers)) then
        TerminateScript('No feathers or fly fishing rod');

      ATPA := Self.FindFishingSpot();
      ATPA.SortByMiddle(mainscreen.GetMiddle);
      for TPA in ATPA do
      begin
        mouse.Move(TPA.Bounds);
        if not MainScreen.IsUpText(['Fishing spot']) then
          Continue;

        if mouse.Click(ctRed) then
        begin
          Wait(700,1000);
          Minimap.WaitPlayerMoving();
          Wait(1400,1700);

          Self.FindFishingSpot(); //update drawing.
          while Self.IsFishing() do
          begin
            Self.ProcessWhileWaiting();
            Chatbox.HandleLevelUp();
            WaitEx(70,10);
          end;
          Exit(True);
        end else
        begin
          Wait(700,1200);
          Minimap.WaitPlayerMoving();
          Wait(700,1200);
          Exit(False);
        end;
      end;
    end;

    // Waits while we are cooking.
    // Cooking is determined by checking if the number of raw fish in our inventory
    // is reducing. It must reduce by at least 1 within 5.5 seconds.
    function TFisher.WaitCooking(): Boolean;
    var
      c, currCount: Int32;
      t: TCountDown;
    begin
      c := Inventory.Count(RawTrout) + Inventory.Count(RawSalmon);

      t.Init(5500);
      repeat
        if Chatbox.GotLevelUp then
          Break;

        currCount := Inventory.Count(RawTrout) + Inventory.Count(RawSalmon);
        if currCount <> c then
        begin
          c := currCount;
          t.Restart(50);
        end;
        Self.ProcessWhileWaiting();
        Wait(70);
      until t.IsFinished() or (c = 0);
      Result := True;
    end;

    // Do the cooking!
    // 1. Walks to a point near the eternal fire.
    // 2. Searches for the fire and uses a fish on the fire
    //    If it fails to find the fire it rotates the screen and tries again.
    // 3. Cooks it, and waits til we dont cook any more, or till we level up.
    // Repeats #2->#3 until there are no more fish in our inventory.
    function TFisher.Cook(): Boolean;
    var
      idx: Int32;
      arr: TIntArray;
      rect: TRectangle;
      Objs: T2DPointArray;
      Fire: TPointArray;
      FoundFire: Boolean;
    begin
      Inventory.Open();
      if (not Inventory.Contains(RawTrout)) and (not Inventory.Contains(RawSalmon)) then
        Exit;

      if Distance(Point(4230,2718), RSW.GetMyPos) > 8 then
        RSW.WebWalk(Point(4230,2718), 2);

      repeat
        arr := Inventory.FindItem(RawTrout) + Inventory.FindItem(RawSalmon);
        if(arr = []) then Break;

        FoundFire := False;

        srl.FindColors(Fire, CTS2(12348,15), MainScreen.GetBounds);
        Objs := Fire.Cluster(5);
        Objs.FilterSize(16, __GT__);
        Objs.SortByMiddle(Mainscreen.GetMiddle);

        Inventory.Use(arr[0]);
        for Fire in Objs do
        begin
          rect := Fire.MinAreaRect();
          mouse.Move(rect);

          Wait(60,100); //wait for game to refresh
          if MainScreen.IsUpText('Fire') then
            mouse.Click(mouse_Left)
          else if MainScreen.IsUpText('options') then
          begin
            if not ChooseOption.Select('Fire') then
            begin
              Wait(60,200);
              Continue;
            end
          end else
            continue;

          FoundFire := True;
          Chatbox.ClickButtonId('How many', 1, 'Cook', 3000);
          if Self.WaitCooking() then
            Break;
        end;

        if(not FoundFire) then
          Minimap.SetCompassAngle([0,90,180,270][Random(4)]+Random(-15,15));
      until False;
    end;


    // Clear the inventory by dropping, or banking fish.
    //
    procedure TFisher.DoInventory();
    var
      dtms, slots: TIntArray;
      dtm: Int32;
      t: TCountDown;

      // Deposits all the fish in our inventory, cooked, raw and burnt.
      procedure Deposit();
      begin
        RSW.WebWalk(locEdgevilleBank, 3);
        for 0 to 2 do
          if BankScreen.Open(blEdgeville) then
            Break
          else
            Wait(800,100);

        if not BankScreen.IsOpen() then
          TerminateScript('No bank');

        dtms := [SalmonDTM, TroutDTM, BurntDTM, RawTrout, RawSalmon];
        for dtm in dtms do
        begin
          slots := Inventory.FindItem(dtm);
          if Length(slots) > 0 then
          begin
            BankScreen.DepositItem(slots[0], True);
            t.Init(2000);
            while (not t.IsFinished) and Inventory.IsSlotUsed(slots[0],False) do
              Wait(70,160);
          end;
        end;
      end;

      // drop all the fish in our inventory, cooked, raw and burnt.
      procedure Drop();
      var
        Ptrn: TIntArray;
        i: Int32;
      begin
        dtms := [SalmonDTM, TroutDTM, BurntDTM, RawTrout, RawSalmon];
        for dtm in dtms do
          slots += Inventory.FindItem(dtm);

        for i:=0 to 27 do
          if slots.Find(i) <> -1 then
            Ptrn += i;

        // same as Inventory.DropItems(ptrn) except we add some errors to the order
        Inventory.DropItems(Inventory.ErrorPattern(ptrn));
      end;
    begin
      if STYLE in [FishCookDrop, FishDrop] then
        Drop()
      else
        Deposit();
    end;

    // Runs the bot
    //
    procedure TFisher.Run();
    begin
      MainScreen.SetAngle(True);

      while srl.IsLoggedIn() do
      begin
        if Inventory.IsFull() then
        begin
          if STYLE <> FishDrop then
          begin
            self.Cook();
            self.PostAction();
          end;
          self.DoInventory();
          self.PostAction();
        end;

        if not self.Fish() then
        begin
          if RSW.GetMyPos.DistanceTo([4245, 2716]) > 20 then
            RSW.WebWalk(Point(4245, 2716),3)
          else
            RSW.WebWalk(Point(4223, 2748),3);
          Wait(700,1200);
        end;

        {$ifdecl TWindowOverlay}
        Debug.Clear();
        {$endif}
        Self.ProcessWhileWaiting();
      end;
    end;

    procedure TFisher.SetupAntiban();
    begin
      Antiban.Init(SKILL_FISHING, 4);

      Antiban.AddTask([@Antiban.LoseFocus,     ONE_MINUTE*5]);
      Antiban.AddTask([@Antiban.HoverPlayers,  ONE_MINUTE*8]);
      Antiban.AddTask([@Antiban.CheckSkill,    ONE_MINUTE*9]);
      Antiban.AddTask([@Antiban.CheckStats,    ONE_MINUTE*10]);
      Antiban.AddTask([@Antiban.OpenRandomTab, ONE_MINUTE*10]);
      Antiban.AddTask([@Antiban.VeryShortBreak,ONE_MINUTE*25]);
      Antiban.AddTask([@Antiban.DoMiscStuff,   ONE_MINUTE*25]);
      Antiban.AddTask([@Antiban.RandomCompass, ONE_MINUTE*45]);

      Antiban.AddBreak([45 * ONE_MINUTE, 05 * ONE_MINUTE, 0.05]);
      Antiban.AddBreak([02 * ONE_HOUR,   10 * ONE_MINUTE, 0.15]);
      Antiban.AddBreak([04 * ONE_HOUR,   45 * ONE_MINUTE, 0.85]);
      Antiban.AddBreak([17 * ONE_HOUR,   07 * ONE_HOUR,   0.99]);
    end;

    procedure TFisher.Init();
    begin
      RSW.Init('world.png');
      {$ifdecl TWindowOverlay}
      Overlay := TWindowOverlay.Create();
      Overlay.PaintInterval(100);
      Debug := Overlay.ToMufasaBitmap();
      {$endif}

      self.DeclarePlayers();
      self.SetupAntiban();

      Inventory.ShiftDrop := True;

      Players.LoginCurrent();
    end;

    procedure TFisher.Free();
    begin
      RSW.Free();
      {$ifdecl TWindowOverlay}
      Overlay.Free();
      Debug.Free();
      {$endif}
      FreeDTMs([SalmonDTM, TroutDTM, BurntDTM, RawTrout, RawSalmon, Feathers, FishingRod]);
    end;


    begin
      {$ifdecl RSClient}
      srl.SetupForClient([soDebugAntiban]);
      RSClient.SetFocus();
      {$else}
      srl.Setup([]);
      {$endif}

      bot.Init();
      AddOnTerminate(@bot.Free);
      bot.Run();
    end.

    Before you ask:
    No, it doesn't 3 tick fish or whatever you call it. It's a bot, it's pointless to have the bot be maximum efficient (it's free XP).. And higher XP/H can have side-effects resulting in higher ban-rate, that is since it very easily will be too perfect in comparison to a human that feels fatigue, can be sloppy at times, etc. So it's a lot of extra work, for very little gain.

    WARNING: Use at your own risk.
    Last edited by slacky; 06-22-2018 at 11:46 PM. Reason: Updated to make rsclient alternative
    !No priv. messages please

  2. #2
    Join Date
    Jan 2018
    Posts
    24
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Nice thanks for the release

  3. #3
    Join Date
    Aug 2007
    Location
    Colorado
    Posts
    7,421
    Mentioned
    268 Post(s)
    Quoted
    1442 Post(s)

    Default

    Really clean, wide display of usage of the include, and simplicity mixed with efficiency; I like it. Again, happy to see more light shed on such a useful tool. Keep up the good work, Slacky!

    Current projects:
    [ AeroGuardians (GotR minigame), Motherlode Miner, Blast furnace ]

    "I won't fall in your gravity. Open your eyes,
    you're the Earth and I'm the sky..."


  4. #4
    Join Date
    Dec 2006
    Location
    Program TEXAS home of AUTOERS
    Posts
    7,934
    Mentioned
    26 Post(s)
    Quoted
    237 Post(s)

    Default

    Slacky, awesome release. I'll be taking a look at this in-depth once I am off work ... Thanks!

  5. #5
    Join Date
    May 2012
    Posts
    36
    Mentioned
    0 Post(s)
    Quoted
    20 Post(s)

    Default

    Any plans to make this an AIO fishing script?

  6. #6
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Smalfinn View Post
    Any plans to make this an AIO fishing script?
    nope.
    !No priv. messages please

  7. #7
    Join Date
    May 2012
    Posts
    36
    Mentioned
    0 Post(s)
    Quoted
    20 Post(s)

    Default

    Quote Originally Posted by slacky View Post
    nope.
    Any reason or just dont want to?

  8. #8
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Smalfinn View Post
    Any reason or just dont want to?
    It's not "free" to just expand it, it requires numerous changes, solving numerous new complications, requires a ton of boring work and testing, and increases the complexity and the time it takes to keep it alive by an order of magnitude.
    !No priv. messages please

  9. #9
    Join Date
    May 2012
    Posts
    36
    Mentioned
    0 Post(s)
    Quoted
    20 Post(s)

    Default

    Quote Originally Posted by slacky View Post
    It's not "free" to just expand it, it requires numerous changes, solving numerous new complications, requires a ton of boring work and testing, and increases the complexity and the time it takes to keep it alive by an order of magnitude.
    Ah I see. If you're ever that bored I'd be happy to pay you for your time :-)

  10. #10
    Join Date
    Feb 2018
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    3 Post(s)

    Default

    I'm trying to learn more about this Simba language.

    aa8f39d2eb23e48935cb93c5649a5500.png

    I keep getting this error, after following your instructions. I have the latest SRL (updated on Github 2/24 or 2/23), I have your fixed version of Simba, and I have the latest 1.04 RSWalker version. Any help would really be appreciated.

    e46e88f75792a54584e822a56a1320ef.png
    Last edited by Walking W; 02-27-2018 at 07:53 PM.

  11. #11
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Walking W View Post
    I'm trying to learn more about this Simba language.

    aa8f39d2eb23e48935cb93c5649a5500.png

    I keep getting this error, after following your instructions. I have the latest SRL (updated on Github 2/24 or 2/23), I have your fixed version of Simba, and I have the latest 1.04 RSWalker version. Any help would really be appreciated.

    e46e88f75792a54584e822a56a1320ef.png
    If you did follow my instructions, and is still lost:
    Some basic knowledge that I would expect people here to have is: Opening the script by double clicking that script-file will not load Simba 1.2 (Simba1200.6-fixes.x86.exe), that will as per usual just open it with the `Simba.exe` that was installed, Simba 1.2 was not installed, was it? It was just an executable that you dropped into the Simba-folder.

    If you want scripts to open by double clicking into Simba 1.2, you'd have to rename the executable to Simba.exe, and rename your old Simba.exe to something like Simba1100.exe
    Last edited by slacky; 02-28-2018 at 03:38 PM.
    !No priv. messages please

  12. #12
    Join Date
    Feb 2018
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    3 Post(s)

    Default

    My guy, I have placed your fixed version onto the Simba folder. I have the script saved onto the scripts folder(if this even matters). I have closed the program completely and before opening the script, I right-click and select the fixed version to open up the script. I have the latest SRL from Github and latest RSWalker. I’m not sure what you mean about the install of the regular simba version.

  13. #13
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Walking W View Post
    My guy, I have placed your fixed version onto the Simba folder. I have the script saved onto the scripts folder(if this even matters). I have closed the program completely and before opening the script, I right-click and select the fixed version to open up the script. I have the latest SRL from Github and latest RSWalker. I’m not sure what you mean about the install of the regular simba version.
    You say you did that, but as I made clear, what you have there in those images is Simba 1.1 (the regular Simba version). Start Simba 1.2, and open the script from within it

    If you wonder what Simba version you are within: Menu -> Help -> About
    Last edited by slacky; 02-28-2018 at 09:56 AM.
    !No priv. messages please

  14. #14
    Join Date
    Feb 2018
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    3 Post(s)

    Default

    Quote Originally Posted by slacky View Post
    You say you did that, but as I made clear, what you have there in those images is Simba 1.1 (the regular Simba version). Start Simba 1.2, and open the script from within it

    If you wonder what Simba version you are within: Menu -> Help -> About
    I've got it working. I decided to uninstall everything and install it again. Followed the instructions once more and followed another pair of instructions (How to use Simba with RuneScape). It seems to be working. I get an error with the pathfinder, which I got yesterday , but decided to look into it more. As you stated, it will try to find its way to the area. So I moved closer to a fishing area in the new continent, and it was randomly clicking on fishing spots without the fly fishing option. Again, as you stated, this is just a rough draft.

  15. #15
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Walking W View Post
    So I moved closer to a fishing area in the new continent, and it was randomly clicking on fishing spots without the fly fishing option. Again, as you stated, this is just a rough draft.
    I do feel I made it clear that it's a barbarian fly-fisher script.
    Last edited by slacky; 03-01-2018 at 02:09 PM.
    !No priv. messages please

  16. #16
    Join Date
    Aug 2007
    Posts
    539
    Mentioned
    20 Post(s)
    Quoted
    266 Post(s)

    Default

    Great work! The script works really good! I love the style and consistency with SRL/SRL. I've been using it for a long while now with only one hiccup, it couldn't detect the feather DTM one time when the feather count being at a certain amount (I forget, 4xxx i think).
    Discord: Guy#1693

  17. #17
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by ineedbot View Post
    Great work! The script works really good! I love the style and consistency with SRL/SRL. I've been using it for a long while now with only one hiccup, it couldn't detect the feather DTM one time when the feather count being at a certain amount (I forget, 4xxx i think).
    I see, probably a point in the Feathers DTM that got covered. I'll see if I can update it, unless someone else find the time to post one here that doesn't contain feature points that would / could be covered up by text.
    !No priv. messages please

  18. #18
    Join Date
    Sep 2012
    Location
    Netherlands
    Posts
    2,752
    Mentioned
    193 Post(s)
    Quoted
    1468 Post(s)

    Default

    Quote Originally Posted by slacky View Post
    I see, probably a point in the Feathers DTM that got covered. I'll see if I can update it, unless someone else find the time to post one here that doesn't contain feature points that would / could be covered up by text.
    its better to use points below the middle of the item

  19. #19
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Hoodz View Post
    its better to use points below the middle of the item
    And why is that?
    !No priv. messages please

  20. #20
    Join Date
    Mar 2016
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    I'm guessing this works with barbarian fishing too right?

  21. #21
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by ghost619 View Post
    I'm guessing this works with barbarian fishing too right?
    nyet, ney, it does not.
    Last edited by slacky; 04-20-2018 at 03:15 AM.
    !No priv. messages please

  22. #22
    Join Date
    Sep 2012
    Location
    Netherlands
    Posts
    2,752
    Mentioned
    193 Post(s)
    Quoted
    1468 Post(s)

    Default

    Quote Originally Posted by slacky View Post
    And why is that?
    because the number of the (stackable) items are on top and they may cover a dtm point.

  23. #23
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    Quote Originally Posted by Hoodz View Post
    because the number of the (stackable) items are on top and they may cover a dtm point.
    Lol, I follow now, what caught me off was "bellow middle" that seems like a strong exaggeration. The text only covers the uppermost portion of the upper half.
    But I get it, your message meant to say that points bellow where the text is are smartest to use.
    !No priv. messages please

  24. #24
    Join Date
    Dec 2010
    Posts
    11
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    Thanks for the script Slacky.

    Very nice work, using this as a refence for the future.


  25. #25
    Join Date
    Oct 2013
    Posts
    30
    Mentioned
    0 Post(s)
    Quoted
    13 Post(s)

    Default

    [00:00:00]:[FATAL]: Failed to setup RSClient
    Successfully executed.
    The following DTMs were not freed: [0, 1, 2, 3, 4, 5, 6]

    Why is it failing to setup the client?

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •