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 » Fri Jun 18, 2004 1:28 pm

If you want a hacked up copy of the MQ2Utilities.cpp file you can download it through my sharemation URL ==>here <==.

Just copy this file over top of the MQ2Utilities.cpp file in the MQ2Main directory of your compilable source and recompile. It should get you working until the new Calculate code is completely debugged.
--Jerle

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

Post by TrippyTom » Sat Jun 19, 2004 8:50 am

me want 5.3 =)
May the eclipse of your soul never fade to light!

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

Post by Jerle69 » Sat Jun 19, 2004 3:56 pm

I'll put it up tonight :)
--Jerle

Flebbit
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Jun 20, 2004 7:48 am

Post by Flebbit » Sun Jun 20, 2004 8:04 am

Hi - this is a nice macro, great work 8)

I have a couple of issues using it though, so I offer some suggestions for future enhancements !

1) I see you have addressed the problems with using NE5 to hide while moving in the next version, did not see mention of change to hide check condition though - I found that

/if (${doHideSneak} && ${Me.AbilityReady["Hide"]} && !${Me.Casting.ID} && ${Me.Sneaking} && ${Me.State.NotEqual[BIND]} && !${Window[TradeWnd].Open} && !${Window[MerchantWnd].Open} && !${Window[BigBankWnd].Open}) /doability "Hide"

worked well for me to solve the problem of hide triggering too fast and being broken because sneak had not registered yet ( this left you stuck waiting for the entire cycle time of hide before you can actually hide ).

2) If you are leashed to a stake, it will return to the stake before it checks for assists, which looks extremely odd as you ignore the obvious mobs right next to you, wander over to camp, then turn round and wander back again to assist. Further to this problem, if a mob enrages while you are staked you will return to the stake despite it not being dead yet. My recommendation would be to check that the mob is not dead and that there are no available assist targets before returning to stake.

3) The facestabbing timeout code is actually pretty counterproductive in my experience, as it does not distinguish between taking aggro and just getting missed by a riposte. This ends up with you assisting, getting caught by ripsote when the mob moves slightly and then spending the fight standing in front of it like an idiot. I just disabled the code entirely, I would prefer to circle something that I have aggro on rather than try to tank it under any circumstances, obviously that's personal preference but just thought I would let you know.

Stewee
orc pawn
orc pawn
Posts: 26
Joined: Mon Jun 14, 2004 8:54 pm

Post by Stewee » Sun Jun 20, 2004 4:13 pm

I used facestabbing all day today in velks getting a sword of pain for my n00b sk. It enabled me to continue to use rh and not swap to a crappy generic tank macro. I have seized opportunity so some of my backstabs land anyway. I like the fact that it doesnt go into an endless getbehind loop.

escapegoat
orc pawn
orc pawn
Posts: 11
Joined: Sun Jun 20, 2004 5:24 pm

Post by escapegoat » Sun Jun 20, 2004 5:38 pm

Great macro! Working fine again with the newest version of MQ2.

Been using some of the base features just to help out when I'm playing my rogue, but I've recently tried using the remote control and autoassist features to replace the rogue macro I used to use when playing my rogue on auto-pilot dual boxing. I've run into one thing I'm having problems with. I can't seem to get /autofollow to stop remotely or half the time even by just targetting myself on the rogue's pc without the macro hanging and not responding to further commands. Perhaps I'm just missing something? It'd be great to have an /autofollowoff command that I could send via /tell from a defined master.

Also in the latest version, it seems to me that when in autoassist mode the rogue no longer waits till he's behind the mob to execute the stike disc and begin attacks... rather if he's in front of the mob he'll start attacking from the front and then circle strafe behind. Again, it COULD just be me, but is there any reason this might be happening?

Thanks...

EG

Ghedrain
decaying skeleton
decaying skeleton
Posts: 6
Joined: Wed Jun 09, 2004 11:35 am

Post by Ghedrain » Mon Jun 21, 2004 10:07 am

"| . Added a special "aggro timer" that will detect if you're getting hit and
| reset a timer to 5 seconds. For those 5 seconds, RH will assume the
| rogue is tanking (or has the potential to tank again) and will prevent it
| from circle strafing toward the target's rear as well as chaotic stab.
| This method of rogue-self-tanking detection has augmented the use of
| TargetOfTarget since not everyone has the AA skill. Keep in mind if you
| have filtered out combat messages involving the rogue (hits you), then
| this feature won't work."


I don't think that this is working as intended. I was testing out this macro while two boxing and noticed that when the rogue got aggro he continued to try and get behind the target instead of tanking for the 5 seconds. I did double check to make sure that the combat messages were on, so this was not the source of the problem.

omper
a ghoul
a ghoul
Posts: 110
Joined: Sat Dec 06, 2003 10:46 pm

Post by omper » Mon Jun 21, 2004 10:52 am

i have noticed this also.. is there maybe a setting we need to turn on or off..

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

Post by Jerle69 » Mon Jun 21, 2004 3:49 pm

Hello guys:

Trying to release 5.3 tonight. I may add a few of the suggested changes blow before I do, and test it.

Flebbit:

1) Thanks for the nice words! Yes, you'll see code to handle Nimble Evasion in the next version. I thought I'd get it out last night, but I got overwhelmed with father's day stuff.

2) Stake leashing is a little funky due to the way it's implemented. If you're returning to the stake, you do these for 1 second windows (unless you actually return to the stake). Because of this, sometimes you'll need at least one second to reaquire a new target, even if it's already available to fight. I can add some "short circuit" routines in here to check for a new target, or perhaps to not leash back to the stake if there's an NPC within, say 50 feet. I'll see what I can do to make this better.

3) It's a tradeoff. I often find myself tanking (even intentionally), when not grouped with a tank class. At those times, I need this code in there, or you cannot effectively tank (you'll strafe around forever). If you have target of target AA, you can just modify the two events controlling being hit or being missed and just change the /varsets to false in both, and voila, it won't affect you (very fast fix).

escapegoat:

Hrmm, you're right. When autofollow is active, only events queuing takes place. Since the remote control tell processor is an event, you cannot remotely stop autofollow. The only way to allow this to queue events is to process events from within the autofollow event. I guess I can try this--I'm not sure if event-handling from an event causes MQ2 to explode, but I guess we'll try and see if it does :P

As far as your attacking from the front thing, my friend and I had this problem once too. Make sure you have /assist off or it will screw up (it'll also autostick at 100% instead of your set percentage)! He and I both accidentally toggled (or tried to) /autoassist on, and this set the main tank's name to "on"... Well, the next time you get autoassist to fire, it'll execute /autoassist on (thereby turning your attack on assist back ON). This will, in turn, bust RH when you fix your main tank's name!

Ghedrain & omper:

A friend of mine at work who also uses rogue helper told me about this behavior and after some Q&A with him we figured out why his didn't work:

Check your filters. Go into your ALT-O (options) and investigate your combat filters. Make sure you have attacker hitting you and missing you ON (such that you can see the messages). If these are on, and you still have problems with the aggro timer not functioning, you could have server side filtering enabled. After killing his server-side filters (/serverfilter) and making sure he had misses and hits visible via Alt-O, it worked for him.
--Jerle

oorglebot6000
a lesser mummy
a lesser mummy
Posts: 34
Joined: Sun Jun 13, 2004 12:41 pm

Post by oorglebot6000 » Mon Jun 21, 2004 5:39 pm

I made a few changes to enrage the other day, but I havn't gotten to fully test them out... As we are rogues, we are attacking from behind most of the time. The changes I made to logic made it so that enrage will only stop attacking if you are tanking (HoTT or aggrotimer) or if ragevar is true and you get hit. As I said, this is untested, as every time I have seen rage go off, I havn't had a chance to let myself get hit or have aggro. It does attack when the mob is enraged and I am behind though :)

Anyway, here are the changes I made...

In Event_Enrage,

Code: Select all

     /if (${aggrotimer.Value} || ${Me.TargetOfTarget.Name.Equal[${Me}]}) /attack off
instead of just the /attack off line

and in GotHit and GotMissed events, I added this line at the bottom of the event

Code: Select all

     /if (${isEnraged}) /attack off
For the third time, these are UNTESTED. If they crash/kill the macro or just plain don't work, please tell me before jerle considers adding them to the base macro.

edit: removed extra ')' in first line of code... sorry, caused macro to end.

oorglebot6000
a lesser mummy
a lesser mummy
Posts: 34
Joined: Sun Jun 13, 2004 12:41 pm

Post by oorglebot6000 » Mon Jun 21, 2004 6:27 pm

Ah hah! just tested it - mob enraged, i continued attacking... i got aggro, mob spun to me, i got hit, i stopped attacking. i like it :)

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

Post by Jerle69 » Mon Jun 21, 2004 8:03 pm

oorglebot6000:

Your code is syntactically correct, but logically flawed bud. Enrage really doesn't have anything to do with aggro, just orientation. If a mob is enraged and you're facing it, you're in trouble. I didn't write RH to monitor your target's orientation while it's enraged, but that could be done to fine tune enrage fighting perfectly. I'll consider that 5.4 since with the check_behind subroutine, that's very doable now.

Everyone:

Version 5.3 of RH has been posted.
--Jerle

User avatar
CuddleBunny
orc pawn
orc pawn
Posts: 23
Joined: Sun Feb 22, 2004 10:23 pm

Post by CuddleBunny » Mon Jun 21, 2004 9:46 pm

A check if the mob is looking at a certain angle towards you while enraged would be a more safe method to evade the enrage, since the mob can whack you down with enrage if you dont turn attack off even if he doesnt have you in target at that time but the an_overuking_wizard07.
The code is nice tho to check in general if you have aggro or not. Nice idea! :D

oorglebot6000
a lesser mummy
a lesser mummy
Posts: 34
Joined: Sun Jun 13, 2004 12:41 pm

Post by oorglebot6000 » Mon Jun 21, 2004 9:47 pm

It may be true that enrage and aggro aren't connected, but if a rogue is using autostick and has no aggro then he should be behind the mob to continue attacking. It may not be the absolute best way to get a rogue to attack a mob on enrage with avoiding the ripostes, but it works for all of the situations that I can think of. If you don't have aggro and get hit by ripostes due to being in front or someone spinning the mob, you will turn off attack due to the gothit and gotmissed events. However, if you do have aggro, it won't wait to turn off attack, but rather it will immediately turn off attack on enrage.

Whatever the case, I agree that a check_behind subroutine would be nice, but I still suggest turning off attack whenever enrage is on and you get hit or missed - the mob may have flakey aggro and spin around with you spamming /attack on and /attack off while you eat more and more ripostes :)

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

Post by Jerle69 » Mon Jun 21, 2004 10:11 pm

That's a fair statement. The one case where you can get your ass beatdown by enrage, even without aggro, is if you're stuck on a wall. RH will report that you're stuck, but not try to strafe. If, during that time, you are facing the target, enrage will kill you. Another case is if you are behind the mob, you use the enrage event to see (at that time and only at that time) if you should shut off attack or not. If something bad happens (say the tank dies) and the mob spins and faces the rest of the raid, the enrage event has already fired; in this case, you'll whack away on the mob and also die.

I'll put in some spiffy enrage checkers that analyze your vector and the target's and (if the target is enraged) will conditionally deactivate or reactivate attack.
--Jerle