I have found a workaround for the leap issue, if you remove this bit of code from the cs file he will not leap outside of combat.
find and delete:
// Leap movement for a barb
if (GilesTrinity.hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Leap) &&
DateTime.Now.Subtract(GilesTrinity.dictAbilityLastUse[SNOPower.Barbarian_Leap]).TotalMilliseconds >= GilesTrinity.dictAbilityRepeatDelay[SNOPower.Barbarian_Leap] &&
fDistanceNeeded >= 25f && fDistanceNeeded <= 35f &&
PowerManager.CanCast(SNOPower.Barbarian_Leap) && !ShrinesInArea(vMoveToTarget))
{
Vector3 vTargetAimPoint = MathEx.CalculatePointFrom(vMoveToTarget, vMyCurrentPosition, fDistanceNeeded - 2f);
ZetaDia.Me.UsePower(SNOPower.Barbarian_Leap, vTargetAimPoint, GilesTrinity.iCurrentWorldID, -1);
GilesTrinity.dictAbilityLastUse[SNOPower.Barbarian_Leap] = DateTime.Now;
return;
}
And this will cause him to leap even when at full health.
Find and change:
// Leaps used on when off-cooldown, or when out-of-range
if (!bBuffsOnly && targetCheckTarget != null && !bFindPureRanged && !bAvoidanceEmergency && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Leap) &&
(playerStatus.dCurrentHealthPct <= 0.75 || fDistanceFromTarget >= 18f) &&
GilesUseTimer(SNOPower.Barbarian_Leap, true) && PowerManager.CanCast(SNOPower.Barbarian_Leap))
to:
// Leaps used on when off-cooldown, or when out-of-range
if (!bBuffsOnly && targetCheckTarget != null && !bFindPureRanged && !bAvoidanceEmergency && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Leap) &&
(playerStatus.dCurrentHealthPct <= 1 || fDistanceFromTarget >= 18f) &&
GilesUseTimer(SNOPower.Barbarian_Leap, true) && PowerManager.CanCast(SNOPower.Barbarian_Leap))
Thank you Giles for making such clear and to the point notes in your code
