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

Is this a bug or the actor problem of Demonbuddy 1.0.1008.259

supermofo

New Member
Joined
Sep 14, 2012
Messages
178
Reaction score
0
Hello,

This profile snippet causing my character to try and run towards the next waypoint (while being in some map):

PHP:
.....

<TrinityIfRandom questId="1" id="22" result="2">
			<TrinityLog questId="1" output="Path 2" />			
			<TrinityUseOnce questId="1" id="22" max="2" disableprevious="true">
				<!-- Pre-Move Routine -->
				<If condition="(not Me.IsInTown)">
					<TrinityLog questId="1" />
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>
				<UseWaypoint questId="1" actorId="6442" x="324.2319" y="291.6554" z="1.64563" waypointNumber="3" />
				<While condition="Me.IsInTown">
					<WaitTimer WaitTime="50" />
				</While>
				<!-- Pre-Move Routine -->
				<!-- Moves -->
				<MoveTo questId="1" x="1449.319" y="321.7168" z="171.9918" pathPrecision="1" />
				....


				<If condition="(not Me.IsInTown)">
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>
				
				<!-- End Moves -->


			</TrinityUseOnce>

		</TrinityIfRandom>

....

<LeaveGame reason="Run is done" />

Generates following log:

PHP:
[01:21:01.747 D] Generated path to <1864.09, 729.5026, 158.8065> () with 4 hops.
[01:21:14.347 D] Navigator.Clear
[01:21:14.446 D] Replaced hook [ProfileOrderBehavior_Hook] b156ffb1-609e-47f6-9913-a1cd46d6fe3c
[01:21:14.465 D] Replaced hook [ProfileOrderBehavior_Hook] 3733e950-037d-4f2b-a31f-5ea0f5a12bc6
[01:21:26.672 N] ========== Grid segmentation resetting!!! ============
[01:21:27.882 D] Replaced hook [ProfileOrderBehavior_Hook] 40875131-ebbe-4cb7-8a26-4662b539fc15
[01:21:27.883 D] Generating path to Moving to use waypoint - <324.2319, 291.6554, 1.64563>
[01:21:27.997 D] Successfully generated path from {X=111,Y=125} to {X=116,Y=129} in 00:00:00.0000530 with 6(3) hops
[01:21:27.997 D] Client path generated.
[01:21:27.997 D] Generated path to <324.2319, 291.6554, 1.64563> (Moving to use waypoint) with 3 hops.
[01:21:28.531 N] Using Waypoint Waypoint-1499 Number:3
[01:21:29.613 D] Navigator.Clear
[01:21:29.745 N] Using Waypoint Waypoint-1499 Number:3
[01:21:32.879 N] ========== Grid segmentation resetting!!! ============
[01:21:32.881 D] System.AccessViolationException: Could not read bytes from 00000000 [299]!
   at Zeta.MemoryManagement.ExternalProcessReader.ReadBytes(IntPtr address, Int32 count, Boolean isRelative)
   at Zeta.MemoryManagement.ExternalProcessReader.Read[T](IntPtr address, Boolean isRelative)
   at Zeta.Internals.Actors.DiaObject.()
   at Zeta.Internals.Actors.DiaObject.get_ACDGuid()
   at Zeta.Internals.Actors.DiaObject.get_IsACDBased()
   at Zeta.Internals.Actors.DiaObject.GetCommonData[T]()
   at Zeta.Internals.Actors.Gizmos.GizmoWaypoint.UseWaypoint(Int32 toWaypointNumber)
   at Zeta.CommonBot.Profile.Common.UseWaypointTag.(Object )
   at Zeta.TreeSharp.Action.RunAction(Object context)
   at Zeta.TreeSharp.Action..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.Sequence..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.Decorator..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.Decorator..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.Decorator..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.Common.HookExecutor.Run(Object context)
   at Zeta.TreeSharp.Action.RunAction(Object context)
   at Zeta.TreeSharp.Action..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.Common.HookExecutor.Run(Object context)
   at Zeta.TreeSharp.Action.RunAction(Object context)
   at Zeta.TreeSharp.Action..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.TreeSharp.PrioritySelector..()
   at Zeta.TreeSharp.Composite.Tick(Object context)
   at Zeta.CommonBot.BotMain.()
[01:21:32.995 D] Generating path to Moving to use waypoint - <324.2319, 291.6554, 1.64563>
[01:21:33.040 D] Waiting for path request to finish...
[01:21:33.053 D] Generating path to Moving to use waypoint - <324.2319, 291.6554, 1.64563>
[01:21:33.053 D] Waiting for path request to finish...
[01:21:33.157 D] Generating path to Moving to use waypoint - <324.2319, 291.6554, 1.64563>
[01:21:33.157 D] Waiting for path request to finish...


It does look like the Actor bug mentionned previously right?
 
Last edited:
Could you break it down step by step the profile (exactly which part of the profile is reached, what it does wrong at that point, and what it should do)?

I really struggle to turn people's profiles into a sort of "visible order of events" in my head otherwise (unless they've heavily commented each profile part! :D).

Also by habit - replace all <If> and </If> commands with <TrinityIf> and </TrinityIf> (orders/parameters can be identical), as my If should be more reliable. Also add "questId=" to EVERY opening command (even opening IF commands and opening While commands) - helps cut down random burps.
 
After generating the random number it goes in the appropriate sub-routines, perform moves OK, port to town and instead of leaving game it re-use the same waypoint and start to run completely randomly.

Will do the modifications asap and let u know

PHP:
<Order>
	<ToggleTargeting questId="1" combat="True" looting="True" lootRadius="80" killRadius="45" />
	
		<!-- @START id = 22 -->
		<TrinityRandomRoll questId="1" id="22" min="1" max="2" />
		<TrinityIfRandom questId="1" id="22" result="1">
			<TrinityLog questId="1" output="Path 1" />
			<TrinityUseOnce questId="1" id="22" max="2" disableprevious="true">

				<!-- Pre-Move Routine: Port to town and use the WP -->
				<If condition="(not Me.IsInTown)">
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>
				<UseWaypoint questId="1" actorId="6442" x="324.2319" y="291.6554" z="1.64563" waypointNumber="3" />
				<While condition="Me.IsInTown">
					<WaitTimer WaitTime="50" />
				</While>
				<!-- Pre-Move Routine -->
				
				<!-- Moves -->
				<MoveTo questId="1" x="1449.319" y="321.7168" z="171.9918" pathPrecision="1" />
				<MoveTo questId="1" x="1520.724" y="443.9262" z="158.8059" pathPrecision="5" />

				<If condition="(not Me.IsInTown)">
					<TrinityLog questId="1" />
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>

				<!-- End Moves -->
			</TrinityUseOnce>
		</TrinityIfRandom>

		<TrinityIfRandom questId="1" id="22" result="2">
			<TrinityLog questId="1" output="Path 2" />			
			<TrinityUseOnce questId="1" id="22" max="2" disableprevious="true">
				<!-- Pre-Move Routine -->
				<If condition="(not Me.IsInTown)">
					<TrinityLog questId="1" />
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>
				<UseWaypoint questId="1" actorId="6442" x="324.2319" y="291.6554" z="1.64563" waypointNumber="3" />
				<While condition="Me.IsInTown">
					<WaitTimer WaitTime="50" />
				</While>
				<!-- Pre-Move Routine -->
				<!-- Moves -->
				<MoveTo questId="1" x="1449.319" y="321.7168" z="171.9918" pathPrecision="1" />
				<MoveTo questId="1" x="1520.724" y="443.9262" z="158.8059" pathPrecision="5" />
				<MoveTo questId="1" x="1599.198" y="497.1862" z="158.8059" pathPrecision="10" />
				

				<If condition="(not Me.IsInTown)">
					<TrinityLog questId="1" />
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
				</If>
				
				<!-- End Moves -->


			</TrinityUseOnce>

		</TrinityIfRandom>
		<!-- @END Lost Caravan -->



		<!-- Actually leave the game!  -->
		
		<LeaveGame reason="Run is done" />

	</Order>

PS: Rewriting with your advices atm
 
Last edited:
After generating the random number it goes in the appropriate sub-routines, perform moves OK, port to town and instead of leaving game it re-use the same waypoint and start to run completely randomly.

Will do the modifications asap and let u know

PS: Rewriting with your advices atm

Post back when you've replaced the If's with TrinityIf's, and stuck questId in every single tag (from the waittimers to the if's to the whiles - only closing tags don't need them like </While>). If you still have issues, PM me the profiel in full and tell me which quest I need, and what I should be watching for, probably easier if I watch it myself and know what it's meant to do, but is doing wrong.
 
Ok, so for everyone to see

Reminder here are the steps to make a profile work better (thanx to Giles the boss):

1) Use questId="1" in every opening tag
2) Use TrinityIf
3) Use the following to portal to town instead of the classic teleport:

Bad version
Code:
<If condition="(not Me.IsInTown)">
					<TrinityLog questId="1" />
					<UseTownPortal questId="1" />
					<While condition="not Me.IsInTown">
						<WaitTimer WaitTime="50" />
					</While>
</If>


Good version
Code:
<!-- Giles Fix: while our world ID is *NOT* the current act's town ID, keep trying to portal and wait -->
				<While questId="1" condition="Zeta.ZetaDia.CurrentWorldId != 161472">
					<UseTownPortal questId="1" />
					<WaitTimer questId="1" WaitTime="1000" />
				</While>

This is indeed a solid fix.

Thanx
 
Last edited:
Back
Top