I was getting random crashes for the game (Not Responding), sometimes after 2 minutes, some times after half an hour, but haven't been able to play stock DB for longer than one hour. I tried DB Beta build, but that has a bunch of other issues. So I took a look at the logs myself, in my case it was crashing always with these entries in the log:
I am using stock DB and Agrael Trinity.
I went to the code to try to figure out where exactly those lines get in the log, I found in RoutineBase.cs in the HandleKiting() method is where the Avoidance is triggered, and after casting the defensive spells it goes to the moving step, which never ends. I realized that even if D3 is stuck, DB still works, and when opening the settings window and closing it, new 'Moving to Kiting' entries were added to the log.
I did a trial/error crappy test with, and went ahead and commented the return statement in that method, moved the return to the previous line, so from:
To:
And DB has been going for almost 30 hours straight now, not a single crash .. hopefully I didnt just jinxed it. Anyway, my demon hunter dies a little more since he doesn't move away to a safe spot, but who cares when I can leave it playing over night.
Hope this helps.
Code:
2018-12-04 04:53:44,260 [Main Bot Thread] DEBUG DefaultLogger (null) - [Trinity 2.6.448] [Avoidance] Kite Shutter Triggered
2018-12-04 04:53:44,261 [Main Bot Thread] INFO DefaultLogger (null) - [Trinity 2.6.448] [Avoidance] Kiting
2018-12-04 04:53:44,262 [Main Bot Thread] DEBUG DefaultLogger (null) - [Trinity 2.6.448] Moving to Kiting
2018-12-04 04:55:16,961 [Main Bot Thread] ERROR BotMain (null) - Exception during bot tick.
Buddy.Coroutines.CoroutineUnhandledException: Exception was thrown by coroutine ---> System.Exception: Only part of a ReadProcessMemory or WriteProcessMemory request was completed, at addr: 23F748D4, Size: 4
at GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
I am using stock DB and Agrael Trinity.
I went to the code to try to figure out where exactly those lines get in the log, I found in RoutineBase.cs in the HandleKiting() method is where the Avoidance is triggered, and after casting the defensive spells it goes to the moving step, which never ends. I realized that even if D3 is stuck, DB still works, and when opening the settings window and closing it, new 'Moving to Kiting' entries were added to the log.
I did a trial/error crappy test with, and went ahead and commented the return statement in that method, moved the return to the previous line, so from:
Code:
public virtual async Task<bool> HandleKiting()
{
if (!Core.Avoidance.Avoider.ShouldKite) return false;
if (!Core.Avoidance.Avoider.TryGetSafeSpot(out var safespot) || safespot.Distance(ZetaDia.Me.Position) < 5f) return false;
Core.Logger.Log(LogCategory.Avoidance, "Kiting");
await CastDefensiveSpells();
return await MoveTo.Execute(Core.Avoidance.Avoider.SafeSpot, "Kiting", 3f, () => Core.Avoidance.Avoider.SafeSpot.Distance(Player.Position) < 3f);
}
To:
Code:
public virtual async Task<bool> HandleKiting()
{
if (!Core.Avoidance.Avoider.ShouldKite) return false;
if (!Core.Avoidance.Avoider.TryGetSafeSpot(out var safespot) || safespot.Distance(ZetaDia.Me.Position) < 5f) return false;
Core.Logger.Log(LogCategory.Avoidance, "Kiting");
return await CastDefensiveSpells();
// return await MoveTo.Execute(Core.Avoidance.Avoider.SafeSpot, "Kiting", 3f, () => Core.Avoidance.Avoider.SafeSpot.Distance(Player.Position) < 3f);
}
And DB has been going for almost 30 hours straight now, not a single crash .. hopefully I didnt just jinxed it. Anyway, my demon hunter dies a little more since he doesn't move away to a safe spot, but who cares when I can leave it playing over night.
Hope this helps.