Hey guys!
Thanks for all the nice compliments. I've got off a work for a few days (I had so much leave built up that I had to take time off :) Either way, I should be able to pump out another release here this Labor Day weekend some time.
I wanted to address a couple of topics that have come up recently. About the backstab "strictness" -- yes, it is quite strict, but it's also very very simple to modify if you want to make it "looser"... As GD posted the follow sub is responsible for determining if we're behind a target:
Code: Select all
Sub Check_Behind
/declare behindIt FALSE
|- Are we behind our target? * Added another tick in both directions here *
/for i -2 to 2
/varcalc dir (${Target.Heading.Clock}+${i})%12
/if (${dir}<1) /varcalc dir ${dir}+12
/if (${dir}>12) /varcalc dir ${dir}-12
/if (${dir} == ${Me.Heading.Clock}) /varset behindIt TRUE
/next i
/return ${behindIt}
If you look at it carefully and try to figure out what it does, it's pretty simple to understand. First of all, a /face command is issued prior to this check, which isn't in the code, but really is a prerequisite for the code to "work." If you're facing your target, it has a facing vector (and we know it) and so does the rogue (and we know it). What this code does is compare the "hours different" between it's facing vector and yours. The inner adjustments (<1, then add 12, and >1, subtract 12) just make sure that we keep our calculations "on the clock" so to speak (1 through 12). The loop only checks between -2 hrs and +2 hrs off. So, as an example, if the mob is facing 12 o'clock, and you're facing 12 o'clock, the delta is 0, and it's in range of the loop, so you're behind it. If it's facing 11 o'clock and you're facing 12, it's -1, so you're still good. 10 o'clock with mob facing 12, is also good.
Technically speaking, you can change the values of the loop to -3 to 3, and you'll still be in the "hind 180 degrees" of checking, but I found that sometimes you were, sometimes you weren't. Optimally it should be ok between -2.5 to 2.5, but that's just no divisible and the logic here is a bit too "coarse" for such fine-tuning--these have to be integers. I made the check sort of simple to understand and stayed away from trigonometry to keep it simple. Sorry :)
I've made some mods to RH on my end for the last couple weeks and haven't posted them. I think some folks will find it interesting that I found an ANCIENT bug that causes backstab or strike to fail to fire after a few seconds and it goes on to fight anyway. I discovered it when trying to modify the code to allow you to set the main assist to simply "main" so that it would assist whoever was/is the main on a raid. FYI, that code works pretty good, but the cascading assist change code had to be optionally ignored due to not being able to do somethings when the assist isn't really a character. Either way it works and showed an old bug that also got fixed. Now, RH will HOLD your strike after it executes until it WILL land, which is quite nice and was intended. Of course it'll give up when strike fades if you couldn't maneuver behind the target.
Anyway, I'll try to make a couple of little changes today and get them out soon. I should have some time to do that.