• Visit Rebornbuddy
  • Plugin concept GatherAssist - Gather multiple items with one command

    Discussion in 'Plugins' started by ZaneMcFate, Nov 18, 2014.

    1. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      [GatherAssist] GatherAssist ALPHA - Gather multiple items with one command

      I am working on a plugin at the moment that I am calling GatherAssist; I wanted your opinions on the idea or how it could be made more useful. I hope to have an alpha out in the next few days that will run a small subset of items (shards/crystals), and then I will work on the full routine. Here is the concept:

      - Select a request list of multiple items and counts. Example: 1000 Fire Crystals, 500 Water Crystals
      - Plugin determines which items need to be gathered to bring your inventory to the above count
      - Periodically, the item count is checked, and based on what remains to be gathered, profiles are dynamically generated and executed, and the bot will run to the next area and start gathering the next item, until the entire request list is satisfied.
      - Current only works with mining, but I will obviously extend it to work with all gathering professions.

      Possible improvements:

      - Generate required gather list based on a shopping list of craftable items. Example: Distilled Water requires 1 Muddy Water and 1 Water Shard, so the request list would turn Distilled Water x 10 into 10x Muddy Water and 10x Water Shard
      - Flexible "margin of error" buffer so X% more items are gathered, to account for crafting failure rates
      - Some items can be gathered by multiple professions (such as shards); allow the user to select a preferred gather method, and/or let the plugin only pick methods where the user has the required skill/level to gather. Requires multiple gather options and could get messy, but a very useful feature nonetheless.

      Any feedback would be appreciated. The plugin will be posted here and will be available on GitHub for collaboration. Let me know what you think!

      UPDATE: Alpha attached, still very much a work in progress.

      SVN Access to directly update your plugins folder:

      https://github.com/ZaneMcFate/rebornbuddy-gatherassist/trunk/GatherAssist/Plugins/GatherAssist

      GitHub access for source code collaboration:

      https://github.com/ZaneMcFate/rebornbuddy-gatherassist

      Browse current issues and project status:

      https://github.com/ZaneMcFate/rebornbuddy-gatherassist/issues
       

      Attached Files:

      Last edited: Nov 28, 2014
    2. Sodimm

      Sodimm Member

      Joined:
      Nov 8, 2014
      Messages:
      383
      Likes Received:
      7
      Trophy Points:
      18
      That sounds great, i'm tired of alt tabbing to 3rd party websites to generate crafting/gathering lists for items I intend to make. it'll help to cut work time. Although there are plenty of Gather Z x Y profiles out there, the ability to generate on the fly is even more of a boon.
       
    3. lordofthereef

      lordofthereef New Member

      Joined:
      Jul 16, 2014
      Messages:
      242
      Likes Received:
      1
      Trophy Points:
      0
      Sounds rather incredible. How are you deciding which items for it to gather? I don't imagine you are seriously going to attempt adding every craftable item in there so the bot would gather all of the raw materials for it?
       
    4. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      It would be lovely if the plugin could populate the list of craftable items from the Crafting Log, but I'm fairly sure RB doesn't have an interface for that. Barring that, yes, I would have to create a data set for all the recipes. In creating a list of mining items, I am already seeing how much of a chore compiling all that is; maybe I can sweet talk a dev at one of the FFXIV info sites :)
       
    5. Yasuko

      Yasuko Member

      Joined:
      Oct 28, 2010
      Messages:
      314
      Likes Received:
      6
      Trophy Points:
      18
      script up a quick parser and scrape xivdb. HTML Agility Pack would be perfect for this.. The only issue I can see with this (one that i've ran into while setting up my spiritbinding gear sets) is that you would need to have all possible materials in your inventory for the bot to see what you have/dont have, and what it should go gather.. AFAIK RB does not parse the inventory of retainers..

      The concept is good and i know which direction you are trying to take it in as I had the same idea.. but decided I would just keep the raw materials in my bag then start orderbot.. and then in each gather/grind tag compare what i need with how many are in the bag.

      For example:
      Code:
         <Order>
            <If Condition="ItemCount(5525)  &lt;  110">
      
               <If Condition="not IsOnMap(153)">
                  <TeleportTo Name="Quarrymill" AetheryteId="5" />
               </If>
      		    <If Condition="Core.Me.CurrentJob != ClassJobType.Miner">
                  <ChangeJob Type="Miner" />
               </If>
               <Gather While="ItemCount(5525) &lt; 110">
                  <GatherObject>Mineral Deposit</GatherObject>
                  <HotSpots>
                     <Hotspot Radius="150" X="368.8515" Y="-4.822998" Z="71.47878" />
                  </HotSpots>
                  <ItemNames>
                     <ItemName>Black Alumen</ItemName>
                  </ItemNames>
                  <GatheringSkillOrder>
                     <GatheringSkill SpellName="King's Yield II" TimesToCast="1" />
                  </GatheringSkillOrder>
               </Gather>
            </If>
         </Order> 
       
    6. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      That's a handy command; is that a cumulative count then? I was thinking I would have to parse my entire bag to periodically add up the inventory. If I can just run the profile indefinitely until the count is met, that saves a lot of inaccuracy waiting for a timer to go off and realize the current gather task is finished.
       
    7. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      I attached an alpha of the project. It currently only works with shards, since I haven't updated the item count logic, and there is something odd with the profile switching; the updated profile insists that the item it is looking for is not available at the node, and goes to the first item it can find. Stopping and starting the bot seems to fix this problem; any devs know why that might be? I may need to file a bug on it.
       
    8. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      I'm convinced now that this is a bug, as I can reproduce it without using my plugin at all, and just going through the "Load Profile" button in RB. Hopefully I get a reply back soon, or at least a workaround until that issue is fixed. Anyone know if a plugin can tell the bot to stop and restart? I haven't been able to find a good example of that yet.
       
    9. Yasuko

      Yasuko Member

      Joined:
      Oct 28, 2010
      Messages:
      314
      Likes Received:
      6
      Trophy Points:
      18
      Code:
       <If Condition="ItemCount(5525)  &lt;  110">
      is not, thats just logic to see if it needs to gather that material. Since it takes 110 of the item to do the specific set.. so if its below 110, go gather.. the part that works "till" count is met is:
      Code:
       <Gather While="ItemCount(5525) &lt; 110">
      .. pretty self explanatory, gather while item count is below desired amount. I have just downloaded your plugin to look through it.. any extra information, or a log would help.
       
    10. v1toor

      v1toor New Member

      Joined:
      Oct 22, 2014
      Messages:
      27
      Likes Received:
      0
      Trophy Points:
      0
      Its crashing my RB right after clicking ok
       
    11. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      I need to add exception handling so it will log the precise issue; it is hard to tell what is happening, but I had that happen for numerous reasons as I was testing the tool (really wish there was a dev license that didn't have the "Max Users" timeout to make me wait around). I know it will currently crash if any of the settings on top are left empty, so I need to create safe validation and default values. The project is being maintained at https://github.com/ZaneMcFate/rebornbuddy-gatherassist , and I will keep posting improvements there until it is a sufficient product for release. Thanks for the feedback!
       
    12. kaihaider

      kaihaider Community Developer

      Joined:
      May 18, 2010
      Messages:
      1,325
      Likes Received:
      5
      Trophy Points:
      38
      you just need to kill them with buddyauth website (where you get your keys)
       
    13. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      Awesome, I was not aware of that. That should save me a lot of idling time; thank you!
       
    14. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      Posted 0.3 Alpha in this thread; I will need to utilize Classy to support class changes, I think. Barring some field testing and any bug fixes I manage to turn up, I think I'll turn it loose soon.

      The larger problem is the daunting task of performing a full gathering inventory of the entire land mass, as it seems no database has precisely the information I need. I may try to crowd source the gathering effort, else it will take a very long time to get it all inventoried :) Either way, it makes sense to power level all my gathering skills up and catalog the entire thing at once, rather than focus on mining only. But, I think it's better to have something out than nothing!
       
    15. v1toor

      v1toor New Member

      Joined:
      Oct 22, 2014
      Messages:
      27
      Likes Received:
      0
      Trophy Points:
      0
      Just tryed new versin and got this error:

      This error becomes from folder location. My RB folder is not in the same location as yours. I changed to c:\program\... and got this error:
       

      Attached Files:

      Last edited: Nov 22, 2014
    16. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      Thanks for posting your results; it helps this project keep moving! Not sure how the ChangeJob tag made it in, I was experimenting and was was sure I took it back out, but it's gone now; the plugin assumes the user is already a miner before starting the plugin (until I get around to adding multiclass support). And the hard coded path has been fixed. Try the new 0.3.1 plugin, should work properly :)
       
    17. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      0.3.2 posted; fixed a bug where the bot would still hang while the gather window was open.
       
    18. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      0.3.3 posted:
      - blanked out a few items which weren't working properly (running into walls, gathering the wrong item); really need a test model to run tens or hundreds of gather profiles to see if they work, because hovering over the bot window for an hour and resetting every time it trips across a problem just isn't going to cut it!
       
    19. Yasuko

      Yasuko Member

      Joined:
      Oct 28, 2010
      Messages:
      314
      Likes Received:
      6
      Trophy Points:
      18
      lol its there because you didnt remove it from the copy/paste. If you want to keep the tag in there, you would have to have them download Classy plugin, which submits that OrderBot tag to allow it to work ;p
       
    20. ZaneMcFate

      ZaneMcFate Member

      Joined:
      Nov 17, 2014
      Messages:
      137
      Likes Received:
      2
      Trophy Points:
      18
      I'll have to do that eventually anyway to pick up fishing/botany support, unless I want to handle all the class switching logic myself. It's fortunate that Classy is available, even in alpha. Have you had success using it?
       

    Share This Page