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

OrderBot Profile Help

nesarthin

Member
Joined
Aug 5, 2014
Messages
74
Reaction score
2
So I'm no coder at all but i've been trying to put together a profile for grinding out levels. after looking at a few profiles i've got a small one that works. What i'd like to have it to though is once i reach a certain level have it port to the next location and continue on, and this is where I'm stuck.
I was looking through the Profile for the 1-50 Ultimate mining to get an idea for the porting but had no luck making it work for me.
Ideally i'd like to put together a 1-50 order bot profile that will grind out areas then port to the next and keep going. Any help is great. Thank you

Code:
<Profile>
   <Name>Central Shroud - Level 20 to 30</Name>
   <KillRadius>50</KillRadius>    
   <GrindAreas>
      <GrindArea name="UpperLaNoscea">
         <Hotspots>
	    <Hotspot Radius="80" XYZ="-418.8282, -3.417259, 161.0069" name="UpperLaNoscea" />
	    <Hotspot Radius="80" XYZ="-391.4815, -3.400003, 145.4202" name="UpperLaNoscea" />
	    <Hotspot Radius="80" XYZ="-402.7817, -6.622389, 194.8676" name="UpperLaNoscea" />
         </Hotspots>
         <TargetMobs>
            <TargetMob name="Stoneshell" />
            <TargetMob name="Bumble Beetle" />
	    <TargetMob name="Wild Wolf" />
         </TargetMobs>
         <MinLevel>20</MinLevel>
         <MaxLevel>23</MaxLevel>
      </GrindArea>
## Atheryte is quarrymill for south shroud after hitting lvl 23
      <GrindArea name="South Shroud">
         <Hotspots>
	    <Hotspot Radius="80" XYZ="-148.9308, 3.966546, 113.8215" name="South Shroud" />
	    <Hotspot Radius="80" XYZ="-172.634, 4.699975, 131.3199" name="South Shroud" />
	    <Hotspot Radius="80" XYZ="-193.3938, 9.586785, 92.91113" name="South Shroud" />
	    <Hotspot Radius="80" XYZ="-172.1514, 9.596832, 64.57328" name="Southern Thanalan" />
         </Hotspots>
         <TargetMobs>
            <TargetMob name="Antelope Does" />
            <TargetMob name="Wind Sprite" />
         </TargetMobs>
         <MinLevel>23</MinLevel>
         <MaxLevel>25</MaxLevel>
      </GrindArea>
   </GrindAreas>
   <Order>
      <Grind grindRef="UpperLaNoscea" while="Core.Player.ClassLevel &lt; 23" />
      <Grind grindRef="South Shroud" while="Core.Player.ClassLevel &lt; 25" />
   </Order>
</Profile>
 
The code within the order tags are executed in order. To teleport, put the teleportation code between the two grind tags in the order tag.
 
Code:
<Order>
      <Grind grindRef="UpperLaNoscea" while="Core.Player.ClassLevel &lt; 23" />
<If Condition="Core.Player.ClassLevel &lt; 23">
	   		 <If Condition="not IsOnMap(153)">
				<TeleportTo Name="Quarrymill" AetheryteId="5" />
   			</If>
      <Grind grindRef="South Shroud" while="Core.Player.ClassLevel &lt; 25" />
   </Order>

Something like this? So after i hit 23 it looks where i am at sees I'm not at quarry mill and then ports?
So the port command goes after each grindRef?
 
So here is what i have so far from 20-30. With out adding the Teleport Tags it seems to work perfectly Attached is the profile. I'm Stuck any help is welcome :) Thank you
Once i get this working i plan to make it a 1-50 grind profile and when it's done i'll post it for anyone who wants it.

but with the Teleport tags i get this error

Code:
[22:47:38.487 N] Failed to load profile: The 'If' start tag on line 52 position 3 does not match the end tag of 'Order'. Line 63, position 6.
[22:47:38.487 D] System.Xml.XmlException: The 'If' start tag on line 52 position 3 does not match the end tag of 'Order'. Line 63, position 6.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
   at System.Xml.XmlTextReaderImpl.ParseEndElement()
   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)
 

Attachments

Need some help please.

Help please. This profile is supposed to teleport to a location and then go to the gathering location and then gather a certain amount of materials. Later I will add to it, to go to other locations.

So far all it does is teleport. So far I can't figure out why. I'm learning and I'm stumped.

The code so far is as follows.
Code:
<Profile>
	    <Name>Button Mushroom</Name>
		<KillRadius>50</KillRadius>
	<Order>				
		<While Condition="True">
				
	<!-- Gather Button Mushroom -->
			
			<If Condition="not IsOnMap(145)">				
				<TeleportTo Name="Camp Drybone" AetheryteId="18" />				
				<Gather while="ItemCount('Button Mushroom') &lt; 297">				
				    <GatherObject>Lush Vegetation Patch</GatherObject>
					<HotSpots>
						<Hotspot Radius="80" X="-344.0994" Y="-28.06476" Z="-41.86419"  />
					</HotSpots>
					<ItemNames>
						<ItemName>Button Mushroom</ItemName>
					</ItemNames>
				    <GatheringSkillOrder>
						<GatheringSkill SpellName="Blessed Harvest II" TimesToCast="1" /> 
				    </GatheringSkillOrder>					
				</Gather>
			</If>
		</While>
	</Order>
</Profile>

This is what shows in the log.
Code:
[04:41:53.210 N] Loaded profile Button Mushroom
[04:41:55.765 D] Loading last profile
[04:41:55.919 N] Loaded profile Button Mushroom
[04:41:56.284 N] Connection established! [TCP-E-E] 192.168.1.5:52234 -> 192.99.148.87:31214 (JIYk8JtB_USYxloYnndq4A)
[04:41:56.310 D] Added new hook [HotspotPoi] 3bba46a9-1ad5-4e72-935d-66d4f9b70af2
[04:41:56.310 D] Added new hook [SetDeathPoi] 469f1b97-eb78-4928-b083-7c675bf48786
[04:41:56.310 D] Added new hook [SetCombatPoi] a014fb65-f772-4e65-ac82-dfc8aec74589
[04:41:56.310 D] Added new hook [SetHotspotPoi] c20884f9-60af-453e-8c80-8b552f876d94
[04:41:56.310 D] Added new hook [SelectPoiType] ba88fc93-f9f1-4d58-97c6-a784252a3054
[04:41:56.311 D] Replaced hook [SelectPoiType] 4bc7da45-6187-4eb4-ba5a-e3ea2c5a11cf
[04:41:56.455 V] [Poi.Clear] Reason: Current behavior changed to TeleportTo: ZoneId: 0, AetheryteId: 18, Name: Camp Drybone, IsDone: False, InCombat: False, QuestId: 0, StepId: 0, QuestName: null, IsDoneCache: False, Behavior: TreeSharp.PrioritySelector, .
[04:41:56.455 D] Replaced hook [ProfileOrderBehavior_Hook] 1bcaff6e-bc54-4f32-a0d7-c91b679c2e3a
[04:41:56.705 D] Teleporting to camp drybone
[04:42:06.755 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
   at IronPython.Compiler.PythonCallTargets.OriginalCallTarget0(PythonFunction function)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:06.762 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
   at Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:07.365 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at Execute$3(Closure , PythonFunction )
   at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:07.394 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
   at Execute$3(Closure , PythonFunction )
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:08.007 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at CallSite.Target(Closure , CallSite , CodeContext , Object , String )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at Microsoft.Scripting.Interpreter.FuncCallInstruction`6.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
   at Execute$3(Closure , PythonFunction )
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:08.036 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at CallSite.Target(Closure , CallSite , CodeContext , Object , String )
   at Execute$3(Closure , PythonFunction )
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:28.039 D] Exception during scheduling Pulse: Microsoft.Scripting.ArgumentTypeException: expected UInt32, got str
   at CallSite.Target(Closure , CallSite , CodeContext , Object , String )
   at Execute$3(Closure , PythonFunction )
   at _Scripting_(Object[] )
   at ff14bot.NeoProfiles.GatherTag.get_IsDone()
   at ff14bot.NeoProfiles.IfTag.(ProfileBehavior )
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at ff14bot.NeoProfiles.IfTag.get_IsDone()
   at ff14bot.NeoProfiles.ProfileBehavior.get_IsDoneCache()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ff14bot.NeoProfiles.TreeNode`1.Find()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
[04:42:33.954 N] Stopping the bot. Reason:Pushed the stop button.
[04:42:33.954 D] CurrentBot.Stop()
[04:42:33.959 D] TreeHooks.Instance.ClearAll()
[04:42:33.959 D] Navigator.Clear()
[04:42:33.959 V] [Poi.Clear] Reason: Bot stopped
[04:42:33.959 D] OnStop event
[04:42:33.959 D] OnStop Event Invoking
[04:42:33.959 D] ProfileOrderManager.OnBotStop. Resetting caches.
[04:42:33.972 N] Bot Thread Ended. Was this requested?
 
So i tested it out and i changed the order around a little

Code:
<Profile>
	  <Name>Button Mushroom</Name>
		<KillRadius>50</KillRadius>
    <Order>					
	<!-- Gather Button Mushroom -->
   <If Condition="not IsOnMap(145)">				
        <TeleportTo Name="Camp Drybone" AetheryteId="18" />
    [COLOR="#FF0000"]</If>[/COLOR]
      
      [COLOR="#FF0000"]<Gather while="True">[/COLOR]			
		<Gather while="ItemCount('Button Mushroom') &lt; 297">				
		  <GatherObject>Lush Vegetation Patch</GatherObject>
					
          <HotSpots>
            <Hotspot Radius="80" X="-337.4337" Y="-32.28574" Z="-12.81534"[COLOR="#FF0000"] name="Button Mushroom[/COLOR]" />
            <Hotspot Radius="80" X="-374.8362" Y="-21.59283" Z="-33.67632"[COLOR="#FF0000"] name="Button Mushroom2[/COLOR]" />
            <Hotspot Radius="80" X="-319.0639" Y="-25.98733" Z="-71.7363"   [COLOR="#FF0000"]name="Button Mushroom3[/COLOR]" />
	 </HotSpots> 
					
          <ItemNames>
		<ItemName>Button Mushroom</ItemName>
	  </ItemNames>
				    
          <GatheringSkillOrder>
		<GatheringSkill SpellName="Blessed Harvest II" TimesToCast="1" /> 
	  </GatheringSkillOrder>
            					
	    </Gather>
          </Gather>		
	</Order>
</Profile>

However Now i get a new error which is can't generate path, i'll keep trying but maybe someone with more knowledge here can help out.

Code:
18:04:32.449 D] No viable path from <-319.0639, -25.98733, -71.7363> to <-157.4762, 27.1093, -433.9086> in 00:00:00.1563685 ms
[18:04:32.455 D] Requesting path on 145 from <-319.0639, -25.98733, -71.7363> to <-157.4762, 27.1093, -433.9086>
[18:04:32.478 D] Exception during scheduling Pulse: System.NullReferenceException: Object reference not set to an instance of an object.
   at ff14bot.NeoProfiles.GatherTag.OnStart()
   at ..()
   at ff14bot.NeoProfiles.NeoProfileManager.UpdateCurrentProfileBehavior()
   at ff14bot.BotBases.OrderBot.(Object , EventArgs )
   at ff14bot.Behavior.BrainBehavior.()
 
The issue I've been having is with the <Gather while="True"> and the <Gather While "Itemcount... tags. I can't seem to get them both working together in the same code.
 
Back
Top