Rogue Helper v6.0 [Complete Rogue Macro] (Updated: 10-26-04)

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Thu Oct 07, 2004 11:17 pm

Flebbit:

Dude! Excellent logic additions. I will most certainly include all of them in the next little release. I'm sorta waiting on an MQ2 update to include a TLO for version support of MQ2 (to get rid of the bug I introduced and can't remove with optimized alias loading without disabling the feature). These are VERY helpful, man. Thanks!

Random():

Yeah 180 behind will hurt a rogue. I started out -3 to 3 on the behind loop and it'd screw up backstab often. -2 to 2 was perfect in testing. I'm sure -3 to 3 is great for other classes just trying to get the AC TOHIT bonus from the rear w/o looking TOO fishy, as you mention. As far as I know, there are people in my guild who've identified others using RH and using it w/o even knowing I wrote it. It was pretty funny to find out a warrior, beastlord and a monk all adopted this as their combat baseline. It can look pretty obvious when we all stack up with one another :)
--Jerle

TrippyTom
a lesser mummy
a lesser mummy
Posts: 75
Joined: Sun May 30, 2004 10:18 am

Post by TrippyTom » Fri Oct 08, 2004 12:46 am

but Jerle.. we want it NOW! :wink:
May the eclipse of your soul never fade to light!

Oskar
orc pawn
orc pawn
Posts: 12
Joined: Sun Nov 30, 2003 2:01 pm

Re: Some suggestions

Post by Oskar » Fri Oct 08, 2004 9:27 pm

Flebbit wrote:Some stuff I add manually that I find useful, that more people may be able to get use out of.

&& ${Target.Animation}!=32

I add this to the attack decision check - mezzed mobs are always in animation 32 whereas fighting mobs are constantly cycling different animations. This stops the problem where a mob that is below the assist threshold is mezzed, and once your current target is dead, the tank targets the mezzed mob to taunt and you immediately charge it and break mez.

${Math.Distance[${Target.Y},${Target.X}:${Spawn[pc ${mainassist}].Y},${Spawn[pc ${mainassist}].X}]}<35

I add this to the attack decision check as well - This says, if the mob is outside melee range of the main tank to hold off on attacking until the mob closes with the tank. This prevents the 'charge an incoming mob and end up tanking like a dork' problem. The 35 is a literal because I am too lazy to parameterize it.


The assist check also needs a !${strikeReady} on it, otherwise it reassists while you are moving into position, then checks strike timer and aborts strike because it's not ready. I think you already included that one though, I don't remember re-adding it to the latest version but figured I would include it just in case.
I was able to add the doHideSneak manually but I was a bit confused on where to add the other changes. I looked through the macro but I was unable to figure it out. Any help would be appreciated.

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Sat Oct 09, 2004 10:39 am

I will add these changes to the next version of the macro, FYI--they're excellent.
--Jerle

DrmChld
a ghoul
a ghoul
Posts: 89
Joined: Fri Jul 09, 2004 3:25 pm

Post by DrmChld » Sat Oct 09, 2004 11:26 am

<taps foot>

When can we download 6.0? :)

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Sun Oct 10, 2004 9:41 am

Heh, well I guess I'll work on it some tomorrow. I don't expect alot of things to be in there other than recently discussed enhancement or fixes... To be honest, the macro is nearing what I consider to be "finished" for the most part. I will certainly fix the macro loading issues when the new version TLO is added. I was going to wait for that :)
--Jerle

BrainDeath
a ghoul
a ghoul
Posts: 86
Joined: Sun Mar 07, 2004 5:00 pm

Post by BrainDeath » Sun Oct 10, 2004 2:58 pm

loadingpleasewait wrote: The events I'm currently using in arch.mac to detect agro for autojolt are:

Code: Select all

#Event GotMissed             "#*#YOU, but#*#" 
#Event GotHit              "#*#YOU for #*#" 
and so far it appears to work perfectly. Maybe you should reconsider the events you're using.
I made these changes and have been testing extensively with them.

One thing I noticed is that the GotHit event is triggered when you are healed. ("Cleric has healed you for 612 points of damage.")

It is also triggered if a mob you don't have targeted is beating on you while you are assisting the MT. Since the most important thing is to determine if you have aggro from the mob you are actually attacking, I'm making the following changes.

Code: Select all

#Event GotHit          "|${Target.CleanName}|#*#YOU for #*#" 
#Event GotMissed       "|${Target.CleanName}|#*#YOU, but#*#" 
I probably won't have time to test this for a couple of days. Feel free to try it out though and let me know what happens.

Oskar
orc pawn
orc pawn
Posts: 12
Joined: Sun Nov 30, 2003 2:01 pm

Post by Oskar » Sun Oct 10, 2004 6:15 pm

Something I noticed is if you have this macro running and mount a horse, it spams "You can not use this skill while on a mount." I'm guessing it's talking about sneak/hide. Any way to trap this condition and error?

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Mon Oct 11, 2004 12:45 am

Oskar:

Nice catch. Umm yes, there is a way to check for that... I'll have to take a look at state while mounted and inject that into the hide/sneak checks...

Braindeath:

Another good find. I think your refinement of these two event triggrers is a little better. I'll probably use them for the next version.
--Jerle

BrainDeath
a ghoul
a ghoul
Posts: 86
Joined: Sun Mar 07, 2004 5:00 pm

Post by BrainDeath » Mon Oct 11, 2004 4:33 am

Really strange.

When I modified the events as I suggested above, my strike disc quit working properly.

After testing and debugging, I found that when I would echo the line "Seeking a Victim", the StrikeVic event would fire TWICE.

Reversing the change corrects the problem. It appears to me this has to be a bug in MQ2.

However, changing the events to:

Code: Select all

#Event GotHit "#*#|${Target.CleanName}|#*#YOU for #*#" 
#Event GotMissed "#*#|${Target.CleanName}|#*#YOU, but#*#" 
corrects the problem.

Strange huh.

Now I just need to go back and test if aggro detection still works with these new definitions.

EDIT:

I just couldn't get it working with the above events. I guess I'm just dumber than a box of rocks. I ended up getting it working another way, but I have only done a little testing.

Here is what I ended up using.

Code: Select all

#Event GotHit "#1# YOU for #*#" 
#Event GotMissed "#1# YOU, but #*#" 

Sub Event_GotHit(string Line, string Mob)
  /if (!${Mob.Find[${Target.CleanName}]}) /return
  /varset lastevent Event_GotHit
  /if (!${aggrotimer}) {   
   /echo ** AGGRO Detected (struck) **
   /popup ** AGGRO Detected (struck) **
  }
  /varset gotHit TRUE
  /varset aggrotimer 5s
/return 

Sub Event_GotMissed(string Line, string Mob)
  /if (!${Mob.Find[${Target.CleanName}]}) /return
  /varset lastevent Event_GotMissed
  /if (!${aggrotimer}) {
   /echo ** AGGRO Detected (whiff) **
   /popup ** AGGRO Detected (whiff) **
  }
  /varset gotHit TRUE
  /varset aggrotimer 5s
/return 

One Last Edit:

While the above event definitions and code appear to do what I want, it again breaks the other events. Once I make the above changes, the other events start firing twice. I think I'm going to give up for now lol.


The "I just can't leave it alone edit"

And here is how Genbot handles enrages and attacks:

Code: Select all

#event Enraged "#*#|${Spawn[id ${CombatTargetID}].CleanName.Right[${Math.Calc[${Spawn[id ${CombatTargetID}].CleanName.Length}-1]}]}| has become ENRAGED#*#" 
#event Offrage "#*#|${Spawn[id ${CombatTargetID}].CleanName.Right[${Math.Calc[${Spawn[id ${CombatTargetID}].CleanName.Length}-1]}]}| is no longer enraged#*#" 
#event UnderAttack "#1#YOU for #*#" 
#event UnderAttack "#1#to#*#YOU, but #*#" 
I guess I'll screw around with it some more :(

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Mon Oct 11, 2004 9:58 am

I'll fix it; don't worry.

The problem is white space. Lax's event parser is super picky about spaces and will act very strangely if you don't account for them, or account for them when they're not there. I'm pretty confident if you just inject a space around the variable parameter and the YOU literal in your event string, it'll work:

Code: Select all

#Event GotHit          "|${Target.CleanName}| #*# YOU for #*#" 
#Event GotMissed       "|${Target.CleanName}| #*# YOU, but #*#" 
^-- Like so.

Test this if you like--I'm not going to patch until the next version of MQ2 with the version TLO.

Thanks,
--Jerle

BrainDeath
a ghoul
a ghoul
Posts: 86
Joined: Sun Mar 07, 2004 5:00 pm

Post by BrainDeath » Mon Oct 11, 2004 1:29 pm

Tested out your changes Jerle69 and they didn't work for me. Also caused the firing twice. Let me tell you what I did.

Targeted a mob outside of attack range. Hit autoattack. Got the "Autoattack activated" message twice. Turned off autoattack. Got the "Autoattack turned off" message twice. Aggrod the mob. Aggro events never fired.

I'm sure I'll continue to play with it. It's like a sore tooth lol.

And since I haven't said it before, great job on the macro btw. :)

Edit:

No matter what I try, if I get the aggro events working, all other events start triggering twice. Here is what I finally did to get mine working. I still think there is some kind of bug in the event routines. When you have working code, I will retest, but I'm done for the meantime. I even did a "delete all files" completely fresh recompile of the most current zip and it didn't help.

Code: Select all

#Event GotHit          "#*#YOU for #*#" 
#Event GotMissed       "#*#YOU, but#*#" 

Sub Event_GotHit(string Line)
  /if (!${Line.Find[${Target.CleanName}]}) /return
  /varset lastevent Event_GotHit
  /if (!${aggrotimer}) {   
   /echo ** AGGRO Detected (struck) **
   /popup ** AGGRO Detected (struck) **
  }
  /varset gotHit TRUE
  /varset aggrotimer 5s
/return 

Sub Event_GotMissed(string Line)
  /if (!${Line.Find[${Target.CleanName}]}) /return
  /varset lastevent Event_GotMissed
  /if (!${aggrotimer}) {
   /echo ** AGGRO Detected (whiff) **
   /popup ** AGGRO Detected (whiff) **
  }
  /varset gotHit TRUE
  /varset aggrotimer 5s
/return 

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Post by Cr4zyb4rd » Mon Oct 11, 2004 3:45 pm

it seems to be a problem with the blech parser...if you poke around there's a few other threads asking for help with events like this, but no real resolution. I think most of the devs tend to look at topics like this and say "bah, they need to RTFM" and walk away...you might need to beat somebody over the head if you have a real bug :)

BrainDeath
a ghoul
a ghoul
Posts: 86
Joined: Sun Mar 07, 2004 5:00 pm

Post by BrainDeath » Mon Oct 11, 2004 7:13 pm

Yeah, I found those threads searching. I've decided to treat it as a "feature" and work around it. :wink:

burdsjm
a lesser mummy
a lesser mummy
Posts: 47
Joined: Thu Jul 08, 2004 12:11 pm

Post by burdsjm » Thu Oct 14, 2004 5:32 pm

Jerle Great job man.

Some things that I have noticed about the macro have been said so far. Getting on a mount spams me and then the circling while tanking. But one thing I have noticed not mentioned yet is the AutoChicken feature. Alot of times If Escape is down it's doesn't nimble. Not sure if this is done on purpose but I have tested it many times.

Let me know what you think about it.

Thanks
Jay