• Visit Rebornbuddy
  • [Sneaky] Stealth when you need it

    Discussion in 'Plugins' started by Cannibal, Sep 22, 2015.

    1. Cannibal

      Cannibal New Member

      Joined:
      Aug 8, 2015
      Messages:
      21
      Likes Received:
      3
      Trophy Points:
      0
      I wrote this plugin to speed up gathering around aggressive mobs near my hotspots.

      [​IMG]

      How to use Sneaky:

      Adding Nearby units to the Avoid list:
      Either scout your area before you start your profile, or run it and add mobs on the fly.
      On the left are nearby units, but they might not actually be aggressive towards you, so you will have to manually pick them and add them to the avoid list.
      You do so by selecting one or more mobs from the left and adding them by clicking the ">>" Button.

      If there are no near units, hit the "Refresh Units" Button to look for new units.


      Removing a Unit from the Avoid list:
      Select one or more units from the avoid list (right side) and click the "<<" Button.


      Stealth trigger range
      The value of "Stealth trigger range" controls when the bot should cast stealth if there's an enemy nearby. I didn't experiment to much with this value,
      change it if you feel the plugin casts Stealth to late (or not at all).


      Default avoid list from file
      With the version 0.0.4 I've added support for loading avoid lists. The default avoid list (located at \Plugins\Sneaky\avoidList.txt) is loaded automatically when restarting the bot.
      An avoidlist is a simple textfile with an NPC mobname on one line each.

      Bugs
      • ...?

      Todo List
      • ... request something?

      Changelog
      Code:
      v0.0.4 - Improved overall plugin functionality
      [LIST]
      [*]Detect new enemies while gathering
      [*]Force stealth before harvesting
      [*]Loading avoid lists from text files
      [/LIST]
                 
      
      
      v0.0.3 - First public release
      

      Contribute
      Fork me on Github
       

      Attached Files:

      Last edited: Oct 1, 2015
    2. y2krazy

      y2krazy Community Developer

      Joined:
      Jun 21, 2011
      Messages:
      2,805
      Likes Received:
      66
      Trophy Points:
      48
      Nice plugin. I can definitely see a use for this.

      Is there a way to import a list of mob IDs or something from an .xml (or other) file, or are you generating BlackSpots based on nearby units after they've been found through the plugin itself?

      This should still be helpful if you'll be running, for example, a 50-60 Botany profile and have to manually add mobs to the Avoid List before you start the profile for a level range.

      If I get a chance to test this, I'll let you know what I find. ;)
       
    3. Cannibal

      Cannibal New Member

      Joined:
      Aug 8, 2015
      Messages:
      21
      Likes Received:
      3
      Trophy Points:
      0
      No, currently it's only handled by manually adding the mobs.
      I was thinking about creating a database of aggressive mobs and loading them by zone,
      but I couldn't find an easy way for me to build said database.

      The plugin basically checks every second for nearby enemies, if an enemy inside the avoid list is found,
      we activate stealth when the distance to the nearby enemy is less or equal to the stealth trigger.
      Currently the stealth detection is kept very simple, which is why I'm unsure if the usage of this plugin even provides you with the safety of farming without deaths.

      I'm thinking of something for the next release to load avoid lists in some way to reduce the user input need.
       
    4. tishat

      tishat Member

      Joined:
      May 29, 2015
      Messages:
      735
      Likes Received:
      7
      Trophy Points:
      18
      This is an awesome idea, as soon as this thing can save the lists XD
       
    5. Cloud30000

      Cloud30000 New Member

      Joined:
      May 9, 2015
      Messages:
      298
      Likes Received:
      7
      Trophy Points:
      0
      I like the idea of this addon, and some simple fixes could help it go much farther. For retaining the list of mobs to avoid, you can use Settings.Instance and save them to a json, which can be saved every time one is added and loaded into the addon and gui when RB is launched.

      If you add a line to the ReloadAvoidList() function to clear the displayed avoidlist window first, it will prevent duplicates from appearing.

      A level difference check could be used to dictate the range in which stealth is engaged to prevent it from continuing to stealth for mobs that are far below the level of the current gathering class.

      I was actually thinking about making something similar, but I never found an IsAgressive property for GameObjects that would permit it to work without manually adding each mob.

      I also notice that you tie everything to OnPulse; this is generally a 'Bad Idea', as you should really be hooking the treeroot or setting composites to run. I've never done much with OnPulse, but I'm told it could lead to some significant problems down the line.
       
    6. Cannibal

      Cannibal New Member

      Joined:
      Aug 8, 2015
      Messages:
      21
      Likes Received:
      3
      Trophy Points:
      0
      Thank you very much for your input Cloud30000!
      I'm still new to writing plugins, and don't know how to work with treeroot at all. I have a lot of learning todo before my plugins reach a "working" state.

      I'll look into the json data storage of the list.
       
    7. aakk

      aakk Member

      Joined:
      Sep 2, 2014
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      6
      wow.
      really awesome plugin!!
       
    8. Cannibal

      Cannibal New Member

      Joined:
      Aug 8, 2015
      Messages:
      21
      Likes Received:
      3
      Trophy Points:
      0
      Thanks for your positive feedback aak.

      New release of v0.0.4 is out, check the changelog for new stuffs.
       
    9. aakk

      aakk Member

      Joined:
      Sep 2, 2014
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      6
      i have error


      Code:
      [11:02:11.777 D] Reloading AssemblyLoader<ff14bot.Interfaces.IBotPlugin> - Initializing
      [11:02:19.948 N] Compiler Error: e:\FF XIV\RebornBuddy\Plugins\Sneaky\Sneaky.cs(281,16) : error CS0103: The name 'GatheringManager' does not exist in the current context
      [11:02:21.602 D] [PluginManager] Plugins have been reloaded.
      [11:02:21.602 D] DFAlert v1.1.1
      [11:02:21.602 D] FateStayTeleport v0.1
      [11:02:21.602 D] GatherAssist v1.0.1
      [11:02:21.602 D] Quack! v0.0.1
      [11:02:21.603 D] QuestDevTools v0.0.1
      [11:02:21.603 D] RebornConsole v0.0.1
      [11:02:21.603 D] RePear kr v3.0.2
      [11:02:21.603 D]  RetBot v2.1.5
      [11:02:21.603 D] Skywatcher v1.0
      [11:02:21.603 D]  Wimpy v0.0.2
      [11:02:21.603 D]  Zekken v1.4.2
      
      not works....
       
    10. Cloud30000

      Cloud30000 New Member

      Joined:
      May 9, 2015
      Messages:
      298
      Likes Received:
      7
      Trophy Points:
      0
      Unfortunately, this plugin only supports the English version of the client; Korean and Chinese clients may need to wait until Mastahg updates your clients to support it.
       
    11. Cloud30000

      Cloud30000 New Member

      Joined:
      May 9, 2015
      Messages:
      298
      Likes Received:
      7
      Trophy Points:
      0
      By the way, fantastic job on the updates. I've been running it for about 3 hours supervised, and it is doing an excellent job stealthing as needed and unstealthing when not. Glad you switched from OnPulse to a coroutine, that should make it far more reliable and compatible :)
       
    12. badd8777

      badd8777 New Member

      Joined:
      Oct 4, 2015
      Messages:
      2
      Likes Received:
      0
      Trophy Points:
      0
      Thank you for this, this is so awsome! I love it.
       
    13. Cloud30000

      Cloud30000 New Member

      Joined:
      May 9, 2015
      Messages:
      298
      Likes Received:
      7
      Trophy Points:
      0
      I made some minor updates to save the settings to the standard RB settings folder in a json so that they persist and reload automatically upon relaunching RB:

      View attachment Sneaky_v0.0.4.zip
       
    14. metrosound

      metrosound New Member

      Joined:
      Nov 23, 2015
      Messages:
      26
      Likes Received:
      0
      Trophy Points:
      1
      Force stealth before gather is not working if we use ExMatt <ExGather> tag
      But it work just fine with <Gather> tag
      Hope you can add support so it will work with <ExGather> tag
       
    15. ComfyEcho

      ComfyEcho New Member

      Joined:
      Mar 25, 2016
      Messages:
      10
      Likes Received:
      0
      Trophy Points:
      1
      Thanks for this.

      Yeah I'm not exactly sure how to tackle this one, and it's kind of important now that most profiles are using ExGather. It looks like Chanko can deal with this, but only when the bot is not actively gathering (and therefore, not using ExGather), which defeats the purpose for Sneaky.

      I realize I'm basically necroing this thread but this plugin is still mostly functional and I'm curious to see if I can get it working again.
       

    Share This Page