I also have been using HOTA on high difficulties as it does insane damage, it does use it sometimes but not quite enough, any updates on this?
Edit: The changes outlined by bazingaw in first page helped noticeably, i haven't changed the fury generators yet(i use frenzy) but it uses hota much more often now.
Did you guys use Rend?
I use rend, it casts it first and spams hota after, i noticed sometimes it uses hota but casts rend before the hota actually hits which is odd, but it happens rarely.
I find that Rend actually interferes with HOTA because Rend has a higher priority.
// Hammertime
if (!bOOCBuff && !bWaitingForSpecial && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_HammerOfTheAncients) && !playerStatus.bIsIncapacitated &&
playerStatus.dCurrentEnergy >= 21 && !PowerManager.CanCast(SNOPower.Barbarian_WrathOfTheBerserker))
{
return new GilesPower(SNOPower.Barbarian_HammerOfTheAncients, 14f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 1, USE_SLOWLY);
}
Code:// Hammertime if (!bOOCBuff && !bWaitingForSpecial && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_HammerOfTheAncients) && !playerStatus.bIsIncapacitated && playerStatus.dCurrentEnergy >= 21 && !PowerManager.CanCast(SNOPower.Barbarian_WrathOfTheBerserker)) { return new GilesPower(SNOPower.Barbarian_HammerOfTheAncients, 14f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 1, USE_SLOWLY); }
some changes thanks to hsuyt
Yeah do let us know how the spammage goes. Ran it for about 30mins on one of my barbs and seemed to be spamming as much as it could given the animation and fury generation
the only thing I wasn't able to test completely is if it starts combat without wrath but gains enough energy to cast wrath does it stop to gain fury for wrath. The trinity I use has a wrath only on certain affix's which meant during my time I think I missed some of the aforementioned situations.
Code:// Hammertime if (!bOOCBuff && !bWaitingForSpecial && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_HammerOfTheAncients) && !playerStatus.bIsIncapacitated && playerStatus.dCurrentEnergy >= 21 && !PowerManager.CanCast(SNOPower.Barbarian_WrathOfTheBerserker)) { return new GilesPower(SNOPower.Barbarian_HammerOfTheAncients, 14f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 1, USE_SLOWLY); }
some changes thanks to hsuyt
gonna try this now
lets see
edit : so far spamming very wellty
Yeah do let us know how the spammage goes. Ran it for about 30mins on one of my barbs and seemed to be spamming as much as it could given the animation and fury generation
the only thing I wasn't able to test completely is if it starts combat without wrath but gains enough energy to cast wrath does it stop to gain fury for wrath. The trinity I use has a wrath only on certain affix's which meant during my time I think I missed some of the aforementioned situations.
It's the reverse for me, my exp and IPH goes down after hsuyt's code change.
It's not spamming for me on normal mobs that come into melee-face range, I'm stuck with 100% fury and spamming my Cleave instead. It only spams HOTA on range mobs or when it goes into WOTB mode, it then spams HOTA on the melee mobs.
// Hammer of the ancients spam-attacks - never use if waiting for special
if (!bOOCBuff && !bWaitingForSpecial && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_HammerOfTheAncients) &&
playerStatus.dCurrentEnergy >= 20 )
{
return new GilesPower(SNOPower.Barbarian_HammerOfTheAncients, 12f, vNullLocation, -1, targetCurrent.iThisACDGUID, 1, 1, SIGNATURE_SPAM);
}
Using all the info I gained from reading this thread/the stickied guide, I've come up with these edits and my barb does everything it would do if I was playing it by hand, concerning HOTA. Uses it all the time unless below 15, then it does the AA swing. Only limiter I kept on it was wait for special, so it uses the AA if it's trying to use WOTB and it doesn't have fury, which isn't something you can do by hand, but it is something I want it to do.
Code:// Hammer of the ancients spam-attacks - never use if waiting for special if (!bOOCBuff && !bWaitingForSpecial && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_HammerOfTheAncients) && playerStatus.dCurrentEnergy >= 20 ) { return new GilesPower(SNOPower.Barbarian_HammerOfTheAncients, 12f, vNullLocation, -1, targetCurrent.iThisACDGUID, 1, 1, SIGNATURE_SPAM); }
I'm pretty sure this is all good code, I don't think there's anything I'm leaving out that will mess anything up at any point.
// Revenge used off-cooldown
if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Revenge) &&
GilesUseTimer(SNOPower.Barbarian_Revenge) && PowerManager.CanCast(SNOPower.Barbarian_Revenge))
{
// Note - we have LONGER animation times for whirlwind-users
// Since whirlwind seems to interrupt rend so easily
int iPreDelay = 3;
int iPostDelay = 3;
if (hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Whirlwind))
{
if (powerLastSnoPowerUsed == SNOPower.Barbarian_Whirlwind)
{
iPreDelay = 5;
iPostDelay = 5;
}
}
return new GilesPower(SNOPower.Barbarian_Revenge, 0f, playerStatus.vCurrentPosition, iCurrentWorldID, -1, iPreDelay, iPostDelay, USE_SLOWLY);
}
// Revenge used off-cooldown
if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Barbarian_Revenge) && PowerManager.CanCast(SNOPower.Barbarian_Revenge))
{
return new GilesPower(SNOPower.Barbarian_Revenge, 0f, playerStatus.vCurrentPosition, iCurrentWorldID, -1, USE_SLOWLY);
}






