What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Help!

DarkShado

Member
Joined
Jan 15, 2010
Messages
105
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) &lt; &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.
 
Last edited:
while="condition1 and condition2"

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) &lt; &Count; ItemCount(6) &lt; &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)
 
Last edited:
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) &lt; &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>
 
Last edited:
while="(ItemCount(12) &lt; &Count; ItemCount(6) &lt; &ShardMax)"

Tell me where there is an 'and' in that condition

while="(ItemCount(12) &lt; &Count; and ItemCount(6) &lt; &ShardMax)"
 
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,
 
Last edited:
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.
 
Back
Top