Petattack needs special case for pettarget

#0 - Jan. 11, 2007, 6:14 p.m.
Blizzard Post
The short and sweet request.

/petattack needs a special case for target=pettarget like focus has for target=focus


Long explaination.

When 2.0.1 was live I used a macro simular to the following.

/petattack [target=pettarget,noexists]
/castsquence reset=combat/target Curse of Agony, corruption, immolate

It was my grinding macro for when I was leveling up and soloing quests and such. Used it some in groups and pvp but mostly grinding. It was great and told my pet to attack if it wasn't already attacking something and cycled my normal dots.

Why does it matter if pets already attacking something or not?

There are several reasons.
1) repeatedly hitting the button for the cast sequence and spamming /petattack results in the pet spamming comments back at us.

2) /petattack resets attack timers. This is most obvious on the imp with a 2 second cast time. Clicking the macro to do the three dots repeatedly restarts the imps casting time and ends up not casting anything until we're done casting the dots from the castsequence.

3) In multimob situations I liked to send in the pet, dot up the pets mob, dot up a second mob and then fear it. With out the target check the pet would switch on to the second target and i'd end up with the first mob on me and having to switch targets more often.


I know why the macro fails now and read the change that cause the problem before the patch but didn't quite catch it.

http://forums.worldofwarcraft.com/thread.html?topicId=54916062&sid=1&pageNo=6#104

Q u o t e:

Fixed a bug where /petattack would target the nearest unit, not the nearest live enemy unit.

/startattack and /petattack will work like normal with no arguments (e.g. attack current enemy target, or pick a nearby enemy target if there is no current enemy target). If they are given arguments, then they will be interpreted as a unit token or name of an enemy unit to attack, and the auto-acquire behavior will not be used if the specified target isn't available.

If a specific unit is passed to /petattack, your target will not be changed to that target automatically.

The following commands now support the [target=unit] macro option syntax:
/startattack
/petattack
/target
/assist
/focus

This allows you to do things like:
/petattack [target=mouseover,harm]


Translation these commands now let you specific the target of the command in the macro like you could with /cast for spells.


He later replied with

http://forums.worldofwarcraft.com/thread.html?topicId=54916062&sid=1&pageNo=6#117
Q u o t e:

Q u o t e:

Hmmm... I suspect that this change is for the better, but it will break one of my macros.

/focus [target=focus,noexists];[target=focus,dead]

As a special case, if you /focus with the target=focus, or /target with the target=target, it will use the argument as the target instead. e.g. "/focus [target=focus,noexists] pet" will focus on the pet if the focus doesn't exist. In your example it would focus on "", which defaults to your current target.


This allows focus to to use a line exactly like I'm trying to use with /petattack

/focus [target=focus,noexists]

Works fine and sets my focus to my current target if my focus doesn't already exists.

/petattack [target=pettarget.noexists]

doesn't work and just spams an error from my pet that he doesn't have a target to attack.


So in the end please add target=pettarget as a special case for /petattack like you did for focus so we can continue to use simple macros to make my pet attack if it's not already attacking.
#8 - Jan. 17, 2007, 7:05 p.m.
Blizzard Post
You got it. In 2.0.6, /petattack will treat target=pettarget, and /startattack will treat target=target the same way /focus treats target=focus