This is a quick profile that I used to farm Blue Scripts of Crafting - I was doing Cockatrice Meatballs however you can adjust the recipe ID to whatever you want to use for hand-ins just keep in mind this is a level 58 recipe, if you opt for lvl 59 or 60 you need to make sure the Careful Synthesis II's are enough to finish it off. Gear Used: MH: i150 HQ OH: i149 HQ Left side minus belt: i150 HQ with 0 melds Right side + Belt: Pre-expansion BiS Food: HQ Bouillabaisse Stats unbuffed: Craft: 665 Control: 604 How to use: 1. Turn on Collectable Synthesis 2. Start bot 3. *Once the craft is done you have to manually click yes, then it will go back into auto-mode until the collectable window pops up again *I've searched all over the forums, haven't found how I could implement an auto-yes click on the crafting collectability window so this could run 100% automatically - Any input/help here would be highly appreciated!! On average I get about 90% full value on collectability unless super bad RNG on the hasty touches Note: For easier code writing I use a Custom Tags (CraftActionByName) to avoid having to keep looking up action ID #s. I will attach the CS file for the custom tags (Note: I only added Muscle Memory (CUL new skill) to the list because its used in this profile. You can add all the new skills into the custom tags just need to look up the skill IDs from xivdb.com) How to install custom tags: 1. Where ever you save the BlueScript XML file, make sure you have a folder called "CustomTags" 2. Inside that folder save the CraftActionByNameTag View attachment CraftActionByNameTag.cs View attachment BlueScript.xml
Is the following thread of any use to you? https://www.thebuddyforum.com/rebornbuddy-forum/community-developer-forum/220280-collectability.html On the 2nd page there seems to be some code from ExMatt that could be of use to you.
that's for the gathering collect window, the official api has support for the fishing and crafting collect windows try this code chunk (I haven't run it myself yet) Code: <CodeChunk Name="AcceptCollectable"> <![CDATA[ if (Core.Me.HasAura(903) && await Buddy.Coroutines.Coroutine.Wait(5000, () => ff14bot.RemoteWindows.SelectYesNoItem.IsOpen)) { ff14bot.RemoteWindows.SelectYesNoItem.Yes(); } ]]> </CodeChunk>
I tried this along with some code that ExMatt kindly provided me and when the YesNo Window opens it just stays open only showing the last craft action. I've tried everything to my knowledge but have been unable to get it to accept. Even running the ff14bot.RemoteWindows.SelectYesNoItem.Yes(); code in the console when its open doesn't let it accept, so I assume this is something to do with it being in the middle of the craft still?
Oh, I noticed that CraftingManager.AnimationLocked wasn't returning false when selectyesnoitem is open causing craftaction to wait forever for animationlocked to be false. Either animationlocked needs to return false when selectyesnoitem is open or craftaction will have to properly finish when selectyesnoitem is open. That's something you'll have to bring up with mastahg. In the meantime, try this in place of the last careful synthesis II: Code: <CodeChunk Name="CSIIAndAcceptCollectable"> <![CDATA[ if (await Buddy.Coroutines.Coroutine.Wait(5000, () => ff14bot.Managers.Actionmanager.CanCast(100069, null))) { ff14bot.Managers.Actionmanager.DoAction(100069, null); await Buddy.Coroutines.Coroutine.Wait(10000, () => CraftingManager.AnimationLocked); await Buddy.Coroutines.Coroutine.Wait(Timeout.Infinite, () => !CraftingManager.AnimationLocked || ff14bot.RemoteWindows.SelectYesNoItem.IsOpen); if (ff14bot.RemoteWindows.SelectYesNoItem.IsOpen) { ff14bot.RemoteWindows.SelectYesNoItem.Yes(); await Buddy.Coroutines.Coroutine.Wait(10000, () => !ff14bot.RemoteWindows.SelectYesNoItem.IsOpen); await Buddy.Coroutines.Coroutine.Wait(Timeout.Infinite, () => !CraftingManager.AnimationLocked); } } ]]> </CodeChunk>
What am I missing to get this to compile? I copy pasted the above codechuck instead of my last CSII but I get this error when loading the profile; Failed to load profile: The value "ff14bot.NeoProfiles.CodeChunk" is not of type "ff14bot.NeoProfiles.ProfileBehavior" and cannot be used in this generic collection. Parameter name: value CodeChunk is not part of ProfileBehavarior, its part of NeoProfiles, figured that much out but not sure how to fix it
Dont know enough to answer your question about that error, what I did notice which looks like its happened to you also is all the = in the CDATA at the beginning of the profile. On iyake's code <CodeChunk Name="CSIIAndAcceptCollectable"> <![CDATA[ Your Code <CodeChunk Name="CSIIAndAcceptCollectable"> <=!=[=C=D=A=T=A=[ It happened to me also I just took them out. If that doesnt work might be worth posting up your profile and the full log.
Yeah on my end there are no extra equal signs I noticed that. I'll post full error log once I get home. Meanwhile do you mind posting your crafting xml profile that you managed to make that codechunk work on?
Here is full log; [13:30:13.475 N] BehaviorDirectory element found, compiling custom behaviors... [13:30:14.071 N] Failed to load profile: The value "ff14bot.NeoProfiles.CodeChunk" is not of type "ff14bot.NeoProfiles.ProfileBehavior" and cannot be used in this generic collection. Parameter name: value [13:30:14.078 D] System.ArgumentException: The value "ff14bot.NeoProfiles.CodeChunk" is not of type "ff14bot.NeoProfiles.ProfileBehavior" and cannot be used in this generic collection. Parameter name: value at System.ThrowHelper.ThrowWrongValueTypeArgumentException(Object value, Type targetType) at System.Collections.Generic.List`1.System.Collections.IList.Add(Object item) at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object ) at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element) at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object ) at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element) at Clio.XmlEngine.PropertyProcessor.(XElement , Type ) at Clio.XmlEngine.PropertyProcessor..(XElement ) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Clio.XmlEngine.PropertyProcessor.(XElement , PropertyInfo ) at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object ) at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element) at ff14bot.NeoProfiles.NeoProfile.Load(XElement element, String path) at ff14bot.NeoProfiles.NeoProfile.Load(String path) at ff14bot.NeoProfiles.NeoProfileManager.Load(String profilePath, Boolean rememberPath)
I am also at work but a quick example profile would be - (The item ID's and RecipeID's are fake all I have done is bash 1.) So the below would just do CS2 3 times and apcept the yes/no box. Code: <Profile> <Name>Crafting Profile</Name> <Codechunks> <CodeChunk Name="CSIIAndAcceptCollectable"> <![CDATA[ if (await Buddy.Coroutines.Coroutine.Wait(5000, () => ff14bot.Managers.Actionmanager.CanCast(100069, null))) { ff14bot.Managers.Actionmanager.DoAction(100069, null); await Buddy.Coroutines.Coroutine.Wait(10000, () => CraftingManager.AnimationLocked); await Buddy.Coroutines.Coroutine.Wait(Timeout.Infinite, () => !CraftingManager.AnimationLocked || ff14bot.RemoteWindows.SelectYesNoItem.IsOpen); if (ff14bot.RemoteWindows.SelectYesNoItem.IsOpen) { ff14bot.RemoteWindows.SelectYesNoItem.Yes(); await Buddy.Coroutines.Coroutine.Wait(10000, () => !ff14bot.RemoteWindows.SelectYesNoItem.IsOpen); await Buddy.Coroutines.Coroutine.Wait(Timeout.Infinite, () => !CraftingManager.AnimationLocked); } } ]]> </CodeChunk> </CodeChunks> <Order> <While Condition="(HasAtLeast(1111,1)"> <Synthesize RecipeId="1111" MinimumCp="388" HQMats="-1,-1,-1,-1,-1,-1" /> <While Condition="CraftingManager.IsCrafting"> <CraftAction Name="Careful Synthesis II" ActionId="100069" /> <CraftAction Name="Careful Synthesis II" ActionId="100069" /> <RunCode Name= "CSIIAndAcceptCollectable" /> </While> </While> </Order> </Profile>
No worries its all iyake's hard work! Just one thing, I noticed doing this we dont even see the YesNo box, is this not something SE will catch on to? or is it just doing it that quick we dont see it?
I've been wondering the same thing. I think its just quick that we don't see it I doubt SE would be able to pick up on. However, any pro input here especially someone with a dev background could be useful ^^
I've made a profile that will make redscrip and bluescrip turn ins. Just plug in the recipe ID and you can use it for any of them. Higher melds is recomended for red scrips So far im 100% on these. Feel free to modify the rotation as needed. It does require (at least for me 700 craft, 680 control) I put food already in the profile and the select yes/no chunk so you can afk this. Just turn on collector buff and hit start. It works without food but obviously having booya base increases your chances (and is easy as hell to make) Thanks iyake for your awesome code chunk.