Some issues I've come across: CrafingManager.Step always returns 5068 CraftingManager.QualityCap throws Code: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array. at ff14bot.RemoteWindows.Synthesis.GetProperty(String key) at ff14bot.Managers.CraftingManager.get_QualityCap() Some nice-to-haves for 3 and 4 star crafting. # of stacks left on comfort zone, steady hand, steady hand II, waste not, etc. # of stacks of inner quiet Counter for tricks of the trades used
Ok, fixed the settings, the last 3 were shifted by one index so thats why they werent working. As for the aura counts thats not hard, but i dont understand what the tott counter would be useful for.
The tricks of trade counter helps for HQ'ing 3* and 4* items. It lets you know if you can substitute a hasty touch with a basic touch. You could possibly use total CP for the same effect. Re my question earlier about HQ mats Just to clarify, is it possible to use HQ and when you run out, to use NQ mats? Other than making multiple if statements to check if an ingredient is depleted or not. From my understanding the HQMats parameter stops the crafting if it cannot find any HQ available. eg. If I'm crafting Twinthread, have 30 NQ Crawler Cocoons, 14 HQ Crawler Cocoons and have HQMats set to "2,0", the bot will stop after the 14 HQ Crawler Cocoons have been depleted. Also, in some cases, we wouldn't want to use NQ Mats even if we have them: eg. Making HQ Silver Brocades. I'd like to use ONLY HQ Twinthread for silver brocades, but it'd be fine to use HQ and NQ Silver Ingots. This might be able to be completed with another parameter? eg. a boolean array called UseNQ where if the parameter was UseNQ="False, True" and HQMats was set to "2,1", then the recipe would continue if it ran out of Silver Ingots as long as NQ was available, but would stop if all HQ Twinthread was depleted. Not sure how easy that would be to implement or whether that's reasonable or not or if there's something already available that works like that. Thanks! Also, regarding the "EatFood" tag, it doesn't seem that the bot waits for you to finish eating before moving on in the profile. eg. If you have EatFood(Bouillabaise) followed by a Synthesize(MinimumCP="388"), it will eat the Bouillabaise then move on to the Synthesize line before you receive the CP bonus from Bouillabaise. As such, the profile will stop because you won't have the minimum CP. Not sure if this is intentional and I suppose I could throw in a wait there to give it some time. But just thought I'd bring it up. Either way, amazing job Mastahg! The addition of crafting has really opened tons of capabilities for the rebornbuddy! Keep up the good work and thanks!
Just to illustrate dcone's point If you've used 2 totts, you'll have +56 more CP at a hasty touch step than you would normally. The 16 is from 2 extra ticks of comfort zone. The CZ ticks are what makes using CurrentCP hard to determine whether you should use hasty or basic touch. It's much easier to just count # of totts, and swap that number of hasty touches into basic touches. Not impossible, but you'd have to write some long conditionals that checks stacks of CZ left vs. current CP. While we're at it, might be better to make counters for # of a any skill used in this synthesis. Sometimes you'll get enough tott procs for 3 master mend IIs, but don't want to do the third one since it'll leave you without enough CP for your finisher. Again, we can work around this by writing long conditionals that check multiple variables, but it would be a nice-to-have.
Something that would be very helpful in order to make intelligent crafters would be to know the player's Craftsmanship and Control. I read in older posts that player attributes are not yet implemented, but don't know if that's still the case. Couldn't find them on LocalPlayer at least. Any chance this might come in the future?
So I was reading what you were saying about counting stacks.. and I had a very simple idea of creating a condition to use with orderbot to see if it might be worth continuing with.. It basically adds two conditions to orderbot for crafting. 1) HasCraftAura(uint id) 2) CraftAuraCount(uint id) ..With the help of iyake pointing out to me what I was missing to actually get the condition to work in a profile, I was able to successfully test it.. Again, This is just a very simple "draft" of a condition addon that just loops through your current CharacterAuras to see if you have the buff, and how many stacks of that buff are there.. You can get the Aura ID by doing the following in console, as I have not gone through and found the AuraID for each crafting buff yet: Code: foreach (var x in ff14bot.Core.Me.CharacterAuras) { Log(x.Id); } I tested this in a quick toss together crafting profile, just to log to the bot log if the conditions were true: Code: <While condition = "True"> <Synthesize RecipeId="973" HQMats="1,0,0"/> <While Condition="CraftingManager.IsCrafting"> <CraftAction Name="Comfort Zone" ActionId="286" /> <If Condition="CraftingConditions.HasCraftAura(261)"> <If Condition="CraftingConditions.CraftAuraCount(261) == 10"> <LogMessage Message="10 Stacks of Comfort Zone" /> </If> </If> </While> </While> which in return spammed RB Log with Code: [08:10:05.724 N] 10 Stacks of Comfort Zone ..This might help make better 3star-4star crafting profiles.. feel free to edit the conditions to your needs. Granted it doesn't really help with ToTT as much.. View attachment CustomConditions.cs -- Make sure to place it in a folder/any folder in your Plugin directory.
I've already gone and added a GetAuraStacks func to the Aura subclass of Characters for the next version. Will return -1 if the buff is not present, otherwise itll return how many stacks. Also modifying HqMats param, -1 will mean use use all mats available preferring Hq first, and -2 will mean use all mats preferring Nq first.
I have noticed that when using HQMats="1,0,0,1" and pressing start to start the first craft, it will come up saying not all materials were found and stop the bot, but as soon as i press start again it will apply the HQ materials to the crafting bot and actually start crafting.. also randomly it will say that not all materials are found randomly through out crafting and stop the bot - even though there are HQ materials available to use. View attachment 1276 2015-01-19 10.53.txt ..Log doesnt really show anything other than the error Code: [17:48:31.314 D] Replaced hook [ProfileOrderBehavior_Hook] d89589b6-2481-4fd5-8a0e-3104f12a69c8 [17:48:32.013 N] [Synthesize] Cannot craft, perhaps we are out of materials? [17:48:32.013 N] Stopping the bot. Reason:[Synthesize] Cannot craft, perhaps we are out of materials? [17:48:32.013 D] CurrentBot.Stop() [17:48:32.013 N] Connection closed! 192.99.148.87:31214 [17:48:32.013 D] TreeHooks.Instance.ClearAll() [17:48:32.013 N] Clearing all hooks. [17:48:32.013 D] Navigator.Clear() [17:48:32.013 V] [Poi.Clear] Reason: Bot stopped
As the error says perhaps we are out of materials. We don't know the exact reason the game says we cannot craft. That said ill increase the delay before we do that check after adjusting the number of hq mats.
Yes, I'm Sorry. I should have added that FFXIV returns the error that the correct materials were not selected. I should have said that.. So it would make sense if it were the delay timer from when the crafting box opens and materials are selected is too short.. or my client could just be lagging from running multiple ffxiv's at once on my computer, which I normally do not notice from within private housing.. I apologize.
I also had that problem when eating food, but I hadn't put two and two together on the cause. I will add a delay after eating to help there There is also a bit of an enigma for multiple crafting processes: the EatFood can't get out of the crafting stance to refresh the food buff. I could get around that by using <StopCrafting /> after each crafting attempt, but that would cause unnecessary delay. In the mean time, I suppose I could put a condition on top of the crafting loop to exit and rebuff when the food has worn off, but it would be nice to have the bot intelligently exit to rebuff, then re-enter crafting and continue.
Loving the new crafting so far! Question though, I can't seem to get it to eat the food I'm trying to make it eat. Code: <EatFood ItemId="4721" Name="Bouillabaisse" HqOnly="True"/> It says in the log it goes to eat but doesn't. Am I doing it right?
Yeah, I can Eatfood, and it will craft away for 30 mins until the food wears off, but it will stop when the food wears off, because of low CP. But to use Eatfood I have to exit the crafting cycle, which is a waste of time, so was wondering if there was a "FoodAura" or something. Really loving the crafting, it just made your app, a whole lot better.