Okay, here is a log where it for sure happened, just started spamming two abilities over and over even though every other ability was available.
Sure, the last thing that I did that seemed to fix it was to simply prevent Strike if you have more than 10 action points, this makes it dump your action points into Slash until another ability in the rotation comes up, and doesn't seem to get stuck using Strike-> Slash-> Strike -> Slash etc., like it was previously. I have done quite a bit of rearranging of abilities that worked better for me, and added Dispatch that wasn't in the rotation previously. Not sure how this affects actual DPS at end game, since I am still leveling and only recently started playing, so this is just what worked for me and I customized it how I liked it.
Is there a function for checking for slows or Immobilize? I see Me.IsStunned used, wondering if there is a similar functions for other types of cc? EDIT: Got my answer. Just run a check for "slow". Thankfully much easier than WoW as you don't have to check against an entire list of possible slows debuffs. example Code: Me.CurrentTarget.HasDebuff("Slow")
Thank you for this, I see a few things that can be tweaked. But take a look here for your spells and your prioritization (dispatch for example). Although it's not in his rotation, if you want to use it I advise adding <=30 health. Either way the routine clearly needs some edits. I'm working on it tonight. Thanks for sharing and bringing this to the forums.
Looks like there was an extra bit of code in there I had to remove to get it working, don't recognize the abilities so I am assuming it was a mis-paste. I do notice definite rotation improvements, and focus usage seems overall more consistent. Don't have the Persistent Chill utility yet so can't test how that plays in the rotation, but I get the concept, looks good.
Oh sorry that is from the beta build and it has the HK-55 routine added. Because your other files aren't updated it probably had a heart attack looking for the F4 mapping. In any case glad you saw an improvement. I will move it to the stable release but feel free to shoot some additional feedback when you get lvl 70. Additionally you can always use StarParse which is a DPS meter if you want to compare routines on a dummy.
Did some more testing with Vigilance, couple things. Need to add a minimum range check for both Vigilant Thrust and Freezing Force since they are both AOEs from your character. Freezing Force needs a debuff check as well so you don't refresh it before it expires, looks like its not worth refreshing the debuff before getting all the damage ticks from it.
Whats the buff for Freezing Force? I have an advance rotation that incorporates the mirror move of Freezing Force on the Juggernaut class which looks like this. Spell.Cast("Chilling Scream", ret => !Me.HasBuff("Chilling Speed") && Me.CurrentTarget.Distance <= 0.8f), You can replace "Chilling Scream" with "Freezing Force" and "Chilling Speed" with whatever the buff is on the Knight class. So now it only activates when you currently don't have the buff and your current target is within 8 meters or less.
I already fixed it on my end personally, just letting Logandros know so he can push it onto the stable release. Better to check for the dot debuff on the target instead of the buff on the player.
Oh... kekeke... Gotcha. I was just wanting to contribute in some way. Also, I was using a check for the DoT debuff that "Chilling Speed" applied but found that in PvP if there were multiple players running the same spec the skill would not activate due to other players applying the debuff.
Makes sense. Haven't PVP'd enough to know how important that speed buff is, though I intend to, the speed buff feels secondary to the extra damage. May be better to use HasMyDebuff instead for that to check for ownership.
Can you share your code or let me know the name of the debuff that Freezing Force applies? Because it would be as follows then (I think, so hard to test this not having the class): Spell.Cast("Freezing Force", ret => !Me.CurrentTarget.HasMyDebuff("NAMEOFDEBUFF") || Me.CurrentTarget.DebuffTimeLeft("NAMEOFDEBUFF") <= 2),
Debuff is called Freezing Force, I was using this: Code: Spell.Cast("Freezing Force", ret => Me.Level >= 62 && Me.CurrentTarget.Distance <= 0.5f && !Me.CurrentTarget.HasMyDebuff("Freezing Force")),
OK but with your logic it's just going to always re-apply. I assume you would want the Me.CurrentTarget.DebuffTimeLeft("Freezing Force") <= 2) We really don't need to have the level logic on spells anymore, that was older code where the bot didn't know how to handle unlearned spells. Give this a try ...