@Satan: The looting could be being broke cause of the post-5 second combat avoidance looking for the // Post-5 SEcond tag in CombatRepalcer and delete the If statement and coide block there
i think its the line below this line "// Force avoidance for 5 seconds if out of combat"
Yes, worked for me, but I had to remove some extra lines. Just for safety I'm using Giles previous to last plugin, because I know it's working / rarely crashing for me.Has anyone had success with the above suggestion?
{
if (bDebugLogging) Logging.WriteDiagnostic("Debug: Failed to emergency move? Cancelling for 15 checks...");
iCancelledEmergencyMoveFor = 15;
// Force avoidance for 5 seconds if out of combat
if (bOutOfCombatAvoidance && DateTime.Now.Subtract(lastTimeInCombat).TotalSeconds < 5)
{
FindSafeZone(true);
iEmergencyLoops = 0;
return RunStatus.Running;
}
bFullLoopBreakout = true;
return RunStatus.Success;
}
delete
Code:// Force avoidance for 5 seconds if out of combat if (bOutOfCombatAvoidance && DateTime.Now.Subtract(lastTimeInCombat).TotalSeconds < 5) { FindSafeZone(true); iEmergencyLoops = 0; return RunStatus.Running; }
Barbarian working like a charm.
Just pulled 2 elite packs in A2 and fought through them like a boss.
Testing monk in just a moment.
EDIT: Monk working flawlessly as well.
Thank you for providing a fix for this!
// Frenzy rapid-attacks
if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Frenzy))
{
iThisHeight += 2f;
if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
return new GilesPower(SNOPower.Barbarian_Frenzy, 10f, new Vector3(vCurrentTargetPosition.X, vCurrentTargetPosition.Y, vCurrentTargetPosition.Z + iThisHeight), iCurrentWorldID, -1, USE_COMBAT_ONLY, FOR_INSTANT_USE);
}
// Frenzy rapid-attacks
if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Frenzy))
{
iThisHeight += 2f;
if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
return new GilesPower(SNOPower.Barbarian_Frenzy, 10f, vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
}
// Special segment for sprint as an out-of-combat thing if being followed
//
if (bBuffsOnly && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Sprint) && !GilesHasBuff(SNOPower.Barbarian_Sprint) &&
DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Barbarian_Sprint]).TotalMilliseconds >= dictAbilityRepeatDelay[SNOPower.Barbarian_Sprint] &&
iMyCachedPrimaryResource >= 21 &&
PowerManager.CanCast(SNOPower.Barbarian_Sprint))
{
return new GilesPower(SNOPower.Barbarian_Sprint, 0f, vNullLocation, iCurrentWorldID, -1, USE_ANY_TIME, FOR_SLOW_USE);
}
// Special segment for sprint as an out-of-combat thing if being followed
//
if (bBuffsOnly && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Sprint) && !GilesHasBuff(SNOPower.Barbarian_Sprint) &&
DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Barbarian_Sprint]).TotalMilliseconds >= dictAbilityRepeatDelay[SNOPower.Barbarian_Sprint] &&
PowerManager.CanCast(SNOPower.Barbarian_Sprint))
{
return new GilesPower(SNOPower.Barbarian_Sprint, 0f, vNullLocation, iCurrentWorldID, -1, USE_ANY_TIME, FOR_SLOW_USE);
}
&& (iMyCachedHealth <= 0.50 || (bMeIncapacitated && iMyCachedHealth <= 0.60))