I wrote this plugin to speed up gathering around aggressive mobs near my hotspots. 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
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.
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.
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.
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.
Thanks for your positive feedback aak. New release of v0.0.4 is out, check the changelog for new stuffs.
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....
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.
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
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
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
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.