Ok what I am trying to do is have the Rebornbuddy mine so long as 2 conditions are true... Lightning Crystals ID 12 is less than the item count I have that part implemented with no problems. <Gather while="(ItemCount(12) < &Count"> My problem comes when it now also has to check that the Lightning shards have not exceeded 9999 as well. How can I compare two items at the same time and keep it gathering The lightning shards is ID # 6 can I nest the crystal code on the inside of another Gather while? how do you compare two variables and keep it harvesting so long as both are true. Any help would be appreciated.
Can you do that with this? I know in C we used to do While Condition 1 && Condition 2 something like that. Not working using the and in between can you give me an example please? <Gather while="(ItemCount(12) < &Count; ItemCount(6) < &ShardMax)"> Saying that this is not properly formatted. [01:18:17.604 N] Failed to load profile: ')' is an unexpected token. The expected token is ';'. Line 54, position 84. [01:18:17.604 D] System.Xml.XmlException: ')' is an unexpected token. The expected token is ';'. Line 54, position 84. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(String expectedToken1, String expectedToken2) at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(Int32 pos, String expectedToken1, String expectedToken2) at System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean isInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos) at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr) at System.Xml.XmlTextReaderImpl.ParseAttributes() at System.Xml.XmlTextReaderImpl.ParseElement() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o) at System.Xml.Linq.XElement.ReadElementFrom(XmlReader r, LoadOptions o) at System.Xml.Linq.XElement.Load(XmlReader reader, LoadOptions options) at System.Xml.Linq.XElement.Load(TextReader textReader, LoadOptions options) at ff14bot.NeoProfiles.NeoProfile.Load(String path) at ff14bot.NeoProfiles.NeoProfileManager.Load(String profilePath, Boolean rememberPath)
Ok I think I got it.... I saw a post from Mast who gave me a hint on how to do it. https://www.thebuddyforum.com/rebornbuddy-forum/146116-release-rebornbuddy-version-1-0-294-a-50.html I had to embed it around a IF statement first and the put the while gather on the inside. 6 is the item ID in this case Lightning Shards and 9999 is the amount I want to make sure they do not have which is the max amount you can carry. <If Condition="not HasAtLeast(6,9999)"> Code: <Profile> <Name>Botanist - Lightning Shard Farming at Black Brush Station Central Thanalan</Name> <KillRadius>50</KillRadius> <!--User Configuration--> <CodeChunks> <CodeChunk Name="Botany"> <![CDATA[ff14bot.Managers.ChatManager.SendChat("/gs change 03");]]> </CodeChunk> </CodeChunks> <!--End User Configuration--> <Order> <RunCode Name="Botany"/> <WaitTimer WaitTime="3"/> <If Condition="not IsOnMap(141)"> <TeleportTo Name="Black Brush Station" AetheryteId="53" /> </If> <If Condition="not HasAtLeast(6,9999)"> <Gather while="(ItemCount(12) < &Count;)"> <GatherObject>Mature Tree</GatherObject> <HotSpots> <Hotspot Radius="90" XYZ="155.4079, 11.58007, 470.3077"/> </HotSpots> <ItemNames> <ItemName>Lightning Crystal</ItemName> <ItemName>Lightning Shard</ItemName> </ItemNames> <GatheringSkillOrder> <GatheringSkill SpellName="Byregot's Ward" TimesToCast="1"/> </GatheringSkillOrder> </Gather> <LogMessage Message= "Done Farming Lightning Crystals, Teleporting to &TeleportLoc;"/> <TeleportTo Name="&TeleportLoc;" AetheryteId="&TeleportID;" /> </If> <LogMessage Message= "Reached 9999 Lightning Shards, Teleporting to &TeleportLoc;"/> <TeleportTo Name="&TeleportLoc;" AetheryteId="&TeleportID;" /> </Order> </Profile>
while="(ItemCount(12) < &Count; ItemCount(6) < &ShardMax)" Tell me where there is an 'and' in that condition
I got it working already anyways And I kind of like doing it this way.. the way I did it I can log out a message as to what condition was met weather it reached the goal of the amount of crystals or if it maxed out on shards. I have two separate messages which get logged the way I did it.. If you do it the other way it can't really tell what one of the two conditions were met. So I think I will do it this way I kind of like it this way. Thanks,
Your code never leaves the Gather loop after it enters when shards exceed &Shard since the If check does not happen during the loop; it only prevents it from re-entering the loop after it leaves for a different reason.