Atma Hunter This is a simple plugin used in conjunction with Fate Bot which will collect all the Atmas for you. It will search your inventory for which Atmas you currently possess and automatically change zones when needed. How to use: Download and unzip AtmaHunter folder into your Plugins folder. Start Rebornbuddy use the Fate Bot and make sure AtmaHunter is enabled in the plugins tab. Atma Hunter will only work with Fate Bot. Please report any bugs. Understand that if your bot is getting stuck somewhere that the problem is with the Mesh and not with Atma Hunter, you need to prove Mastagh with a log of where you're stuck at. If you're enjoying my contributions to Rebornbuddy please consider donating.
I'm getting "Unable to teleport. Another teleport is already underway." when trying to teleport to Moraby Drydocks. Not sure if it's to do with your plugin or not.
Is it when you're running Fate Bot with Atma Hunter enabled? It has successfully teleported there for me a few times.
I'm not sure why but mine will not teleport to the hawthorne hut, it just stops the bot and does not continue, I teleport there manually and of course it works because it is identifying as NextLocation() but other then that its not working, I even tried in my RebornConsole to WorldManager.Teleport("The Hawthorne Hut"); and it does not do it!! so im not sure if its a problem with reborn buddy or just me??? Other than that tho it is working fabulously for me. Thanks so much ex
Ex, There has been a lot of discussions about the drop rate of the Atmas. One theory is that they have a higher chance of them dropping at certain times of the day(Japanese ATMA farming theory : ffxiv) Would it be possible to add a setting that tells you how many hours off the Japanese GMT you are, and then look at the local time and then go farm the specific atma that has the higher drop chance. This is the list of times that
Ex, Right now, I'm not sure if the best time zone to be used is JST, or the current Server Time. This is what I've come up with, and please note that this is using UTC time to get to the JST timezone. If you can come up with a way of getting the current Server Time, that would be awesome. Code: Dictionary<int, string> Atmas = new Dictionary<int, string>(); public void OnInitialize() { #region Atma List Atmas.Add(1, "Atma of the Maiden"); Atmas.Add(2, "Atma of the Scorpion"); Atmas.Add(3, "Atma of the Water-bearer"); Atmas.Add(4, "Atma of the Goat"); Atmas.Add(5, "Atma of the Bull"); Atmas.Add(6, "Atma of the Ram"); Atmas.Add(7, "Atma of the Twins"); Atmas.Add(8, "Atma of the Lion"); Atmas.Add(9, "Atma of the Fish"); Atmas.Add(10, "Atma of the Archer"); Atmas.Add(11, "Atma of the Scales"); Atmas.Add(12, "Atma of the Crab"); Atmas.Add(13, "Atma of the Maiden"); Atmas.Add(14, "Atma of the Scorpion"); Atmas.Add(15, "Atma of the Water-bearer"); Atmas.Add(16, "Atma of the Goat"); Atmas.Add(17, "Atma of the Bull"); Atmas.Add(18, "Atma of the Ram"); Atmas.Add(19, "Atma of the Twins"); Atmas.Add(20, "Atma of the Lion"); Atmas.Add(21, "Atma of the Fish"); Atmas.Add(22, "Atma of the Archer"); Atmas.Add(23, "Atma of the Scales"); Atmas.Add(24, "Atma of the Crab"); #endregion } public string NextLocation() { string atma = Atmas[DateTime.UtcNow.AddHours(9).Hour]; switch (atma) { case "Atma of the Maiden": return "Bentbranch Meadows";//148; case "Atma of the Archer": return "Fallgourd Float"; //154; case "Atma of the Goat": return "The Hawthorne Hut";//152; case "Atma of the Scorpion": return "Forgotten Springs";//146; case "Atma of the Bull": return "Camp Drybone";//145; case "Atma of the Twins": return "Horizon";//140; case "Atma of the Scales": return "Black Brush Station";//141; case "Atma of the Water-bearer": return "Camp Bronze Lake";//139; case "Atma of the Ram": return "Summerford Farms";//134; case "Atma of the Lion": return "Camp Overlook";//180; case "Atma of the Fish": return "Moraby Drydocks";//135; case "Atma of the Crab": return "Aleport";//138; default: return "None"; } } The rest of the code is the same except that it doesn't look through your inventory to check if you already have the correct atma or not. This might be helpful in trying to farm multiple copies of the Atma for multiple jobs. Let me know what you think.
That's awesome. I think ideally we would use JST time so it works on any game server and any timezone, maybe we can pull the JST time somewhere online or something.
The code I posted does use JST timezone already. The DateTime object I used was in UTC. JST is +9 hours which is why I did the addhours(9) to the time. What I'm not sure of is if that timing should be off JST or off the server time. I program in C# for a living so I am more than happy to help with any coding you need, I just need to get more familiar with the rebornbuddy code
Updated with the option to use the jst time theory to pick a next location, thanks for the suggestion and providing the code. Edit: Still won't port to The Hawthorne Hut though, waiting for a fix.
Also, need to update the dictionary to be 0 instead of 24 for the Atma of the Crab. once you hit 12:00AM, DateTime.Now.Hour returns 0 instead of 24.
So I've had a little more time to think about it and it might just be easier to implement this in your NextLocation Method.... Code: public string NextLocation() { string atma = null; string jstAtma = AtmaDictionary[DateTime.UtcNow.AddHours(9).Hour]; Inventory.Clear(); foreach (BagSlot a in InventoryManager.Slots) { Inventory.Add(a.Name); } if (!Inventory.Contains(jstAtma)) { return GetLocationName(jstAtma); } foreach (string a in Atmas) { if (!Inventory.Contains(a)) atma = a; } return GetLocationName(atma); } private static string GetLocationName(string atma) { switch (atma) { case "Atma of the Maiden": return "Bentbranch Meadows";//148; case "Atma of the Archer": return "Fallgourd Float"; //154; case "Atma of the Goat": return "The Hawthorne Hut";//152; case "Atma of the Scorpion": return "Forgotten Springs";//146; case "Atma of the Bull": return "Camp Drybone";//145; case "Atma of the Twins": return "Horizon";//140; case "Atma of the Scales": return "Black Brush Station";//141; case "Atma of the Water-bearer": return "Camp Bronze Lake";//139; case "Atma of the Ram": return "Summerford Farms";//134; case "Atma of the Lion": return "Camp Overlook";//180; case "Atma of the Fish": return "Moraby Drydocks";//135; case "Atma of the Crab": return "Aleport";//138; default: return "None"; } } You'll still need to implement the Dictionary, and it's not a bad idea to keep the other setting to just do it by the JST method, but if you update the NextLocation to that, then it will check if you have the atma that the JST method says you should be farming, and if you already have it, then it'll do the other method, but if you don't, then it will go farm that specific one. I also pulled the Switch statement out into it's own method so you can point both the NextLocation and NextTimeLocation methods at it.
Yeah, that's pretty much genius. Updated and fixed the Atma of the Time crab. I need to start thinking like a programmer.
Fantastic work so far, however i am in upper la noscea, i used atma hunter to get the atma at this place, but it doesn't seem to teleport to the next destination. It just keeps doing fates in this location. Not sure if this is a fault with the plugin code or not. EDIT: Stupid me didn't update the plugin since release, seems to work.