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

[Request] Built in DB unstucker - can we replace, disable, or interface with it?

GilesSmith

New Member
Joined
Jun 2, 2012
Messages
1,564
Reaction score
34
Edit/Update: These requests were both implemented for Db .242+, thanks :)

-- original post below --

The built in DB unstucker is causing some issues (and freezes) - is it possible to make it something we can replace with our own functions, or at minimum be able to edit some values in it (like edit the "lastchecked" value to make it not check again after we do something).

DB unstucker atm kicks in at 2 seconds and clears the entire navigation path. It is hard-coded into the navigation function with no way to disable or remove it, and it can cause mini-freezes and actually cause stucks because of how quickly it activates and yet how primitive it is in function - and because there's no way to over-ride it, it can actually interfere with other unstucker plugins.

Please can we have a way to disable it, or even replace it entirely?

Thanks :)

(also - related to navigation and stucks - barricade kicking is currently also hard-coded into DB's navigation function - this should also be a function that is separate, with which we can replace - we should be able to replace it just like the "attack breakable" functions, or even disable it altogether)
 
Last edited:
bump

have experienced the same thing, the player has a high change get killed when StuckHandler kicks in and sleep a little bit.


it would really nice if we could just replace it.
 
im with you Gilles, i hope dev will listen you, also i think Bossland should hire you :) soon it will be like 50% of DemonBuddy will be yours :)
 
I'v seen a lot Exception when calling DefaultStuckHandler.GetUnstuckPos()

[12:34:46.349 D] System.NullReferenceException: Object reference not set to an instance of an object.
at Zeta.Internals.Actors.DiaUnit.get_HirelingType()
at Zeta.Navigation.DefaultStuckHandler.GetUnstuckPos()
at Zeta.Navigation.DefaultStuckHandler.Pulse(Vector3& unstuckPos)
at Zeta.Navigation.DefaultNavigationProvider.MoveTo(Vector3 destination, String destinationName, Boolean useRaycast)
at Zeta.Navigation.Navigator.MoveTo(Vector3 destination, String destinationName, Boolean useRaycast)
at Zeta.CommonBot.CommonBehaviors..(Object )
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.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.()
 
Player died may caused by stuckhandler


[01:26:17.641 D] Replaced hook [ProfileOrderBehavior_Hook] 2a672733-04a1-4cf6-9218-8b47ef091abb
[01:26:17.642 D] Generating path to UNKNOWN - <4159.41, 4505.563, 100.0547>
[01:26:17.936 D] Successfully generated path from {X=1659,Y=1686} to {X=1706,Y=1663} in 00:00:00.0008899 with 55(13) hops
[01:26:17.936 D] Client path generated.
[01:26:17.936 D] Generated path to <4159.41, 4505.563, 100.0547> () with 13 hops.
[01:26:22.573 D] [WorldObjectHandler] Blacklisting a world object [Lore_LordsofHell-23856] because it was an unknown object type.
[01:26:22.573 V] Blacklisting D337001A for 00:10:00
[01:26:23.922 D] [WorldObjectHandler] Blacklisting a world object [caOut_Oasis_Attack_Plant-23863] because it was an unknown object type.
[01:26:23.922 V] Blacklisting D33E0020 for 00:10:00
[01:26:24.590 D] Navigator.Clear
[01:26:24.693 D] Replaced hook [ProfileOrderBehavior_Hook] 4fab90e7-22ff-4c2f-b489-308fb8cf1578
[01:26:24.695 D] Generating path to UNKNOWN - <4108.927, 4594.497, 100.1>
[01:26:24.729 D] Raycast path generated.
[01:26:24.729 D] Generated path to <4108.927, 4594.497, 100.1> () with 1 hops.
[01:26:27.941 D] ChampionBase
[01:26:27.942 D] Fast
[01:26:27.942 D] Linked
[01:26:27.942 D] Extra Health
[01:26:27.943 D] Vortex
[01:26:29.434 D] ChampionBase
[01:26:29.434 D] Fast
[01:26:29.435 D] Linked
[01:26:29.435 D] Extra Health
[01:26:29.435 D] Vortex
[01:26:29.445 D] ChampionBase
[01:26:29.446 D] Fast
[01:26:29.446 D] Linked
[01:26:29.446 D] Extra Health
[01:26:29.447 D] Vortex
[01:26:35.446 D] [WorldObjectHandler] Blacklisting a world object [caOut_Oasis_Attack_Plant-24000] because it was an unknown object type.
[01:26:35.446 V] Blacklisting D3C70022 for 00:10:00
[01:26:42.307 D] [Stuck Handler] We're stuck at <4130.893, 4564.745, 100.1>
[01:26:42.338 D] Navigator.Clear
[01:26:43.874 D] Generating path to UNKNOWN - <4108.927, 4594.497, 100.1>
[01:26:43.916 D] Raycast path generated.
[01:26:43.916 D] Generated path to <4108.927, 4594.497, 100.1> () with 1 hops.
[01:26:43.964 D] [WorldObjectHandler] Blacklisting a world object [HirelingHeadstone-24128] because it was an unknown object type.
[01:26:43.964 V] Blacklisting D447002A for 00:10:00
[01:26:43.965 D] [WorldObjectHandler] Blacklisting a world object [PlayerHeadstone-24129] because it was an unknown object type.
[01:26:43.965 V] Blacklisting D448003D for 00:10:00
[01:26:47.259 N] Player died
[01:26:47.259 N] Player died, Resetting caches.
[01:26:47.259 D] Resetting current behavior.
[01:26:47.259 N] Player died, Resetting caches.
[01:26:47.259 D] Resetting current behavior.
 
Yet another one

[18:15:16.194 D] [WorldObjectHandler] Blacklisting a world object [PlayerHeadstone-4781] because it was an unknown object type.
[18:15:16.194 V] Blacklisting 89CF006D for 00:10:00
[18:15:16.196 D] [WorldObjectHandler] Blacklisting a world object [HirelingHeadstone-4780] because it was an unknown object type.
[18:15:16.196 V] Blacklisting 89CE0025 for 00:10:00
[18:15:17.998 D] [Stuck Handler] We're stuck at <1753.989, 1242.734, 169.7295>
[18:15:18.013 D] Navigator.Clear
[18:15:20.935 N] Player died
[18:15:20.935 N] Player died, Resetting caches.
[18:15:20.935 D] Resetting current behavior.
[18:15:20.935 N] Player died, Resetting caches.
[18:15:20.935 D] Resetting current behavior.
 
stuck handler also causing me problem

[03:17:13.688 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:13.698 D] Raycast path generated.
[03:17:13.698 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
[03:17:15.748 D] [Stuck Handler] We're stuck at <2971.25, 2861.25, 23.94533>
[03:17:15.778 D] Navigator.Clear
[03:17:17.328 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:17.338 D] Raycast path generated.
[03:17:17.338 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
[03:17:19.368 D] [Stuck Handler] We're stuck at <2971.25, 2861.25, 23.94533>
[03:17:19.398 D] Navigator.Clear
[03:17:20.938 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:20.958 D] Raycast path generated.
[03:17:20.958 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
[03:17:22.988 D] [Stuck Handler] We're stuck at <2971.25, 2861.25, 23.94533>
[03:17:23.018 D] Navigator.Clear
[03:17:24.558 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:24.578 D] Raycast path generated.
[03:17:24.578 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
[03:17:26.558 D] [Stuck Handler] We're stuck at <2971.25, 2861.25, 23.94533>
[03:17:26.578 D] Navigator.Clear
[03:17:28.118 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:28.138 D] Raycast path generated.
[03:17:28.138 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
[03:17:30.118 D] [Stuck Handler] We're stuck at <2971.25, 2861.25, 23.94533>
[03:17:30.168 D] Navigator.Clear
[03:17:31.718 D] Generating path to Moving to use waypoint - <2981.259, 2836.146, 24.89399>
[03:17:31.728 D] Raycast path generated.
[03:17:31.728 D] Generated path to <2981.259, 2836.146, 24.89399> (Moving to use waypoint) with 1 hops.
 
Yes, there is a reason that I made my code act like everything was okay, and the character isn't stuck, in my plugin, if the character is in combat or dead; preventing the plugin from thinking it should try to unstuck the character.
 
Bumping for great justice.

The built in unstucker is frustrating - it kicks in far too quickly, makes awful attempts at unstucking, causes horrible mini-freezes because of it trying to generate huge paths "Immediately", it's hard-coded into DB's navigation mover, and has no way for any user, or plugin, to either disable it altogether, or simply interface with it to "reset it's time" briefly while the plugin tries to do it's own stuff/own (proper) unstucking).

Something like this should not be "hard-coded", with no way to tweak or disable it.

Likewise for destroying barricades - need a way to over-ride that function too (or disable it and let my plugin handle barricades like I can handle destructibles).
 
Last edited:
The built in DB unstucker is causing some issues (and freezes) for me - is it possible to make it something we can replace with our own functions, or at minimum be able to edit some values in it (like edit the "lastchecked" value to make it not check again after we do something).

The problem I am having is with combat replacer - when a monster disappears from D3 memory (ie the object becomes null or the baseaddress becomes IntPtr.Zero or it just dies), my behavior tree returns a "Failure" (ends it's current attempts at combat). This allows DB to re-pulse everything before the combat decorator is pulsed again (to determine if there are still targets to fight etc.).

However the INSTANT that failure is returned - unstucker suddenly decides you are stuck and causes a freeze for anything from a second to a few seconds - and it can do this constantly every target change - if you were fighting a target for any length of time/stood in one spot.

Please can we have a way to disable it, replace it, or even just set the "lastchecked" value - so before I return failure, I can set lastchecked to DateTime.Now so it buys more time again (ie gives time for movement/new combat to kick in while Db pulses through all the behavior trees)?

Thanks :)

I second this, due to the unstucker profiles are not able to take portals while inside of a dungeon into another world destination, without the stucker causing the bot to pause as well as all plugins to stop working. This stucker issue should be an optional, enabled or disabled feature of demonbuddy.
 
Back
Top