0

I could really use a few extra characters in some macros I've been wanting to make. I remember in Vanilla there was a way to do this. There appears to be an addon for Retail as well, called LongMacros, but it seems to have some problems with running in Classic.

Before I go down the rabbit hole of trying to write my own solution or fix LongMacros for Classic, i just wanted to check to see what other solutions might be available.

2

You don't in particular need any addons to effectively create effectively longer macros, although many exist that make your life easier. What they all in the end amount to doing though (as the command window/chat box data 'packet' has a maximum size of 255 bytes) is one (or both!) of these two solutions below.

The advantage of doing it manually is that you can more easily test such a macro (there's no addon in between that garbles/processes the macro).

A1: Nested macros

You can work around a few extra characters via nesting macros. There's no reason why you can't do so directly. E.g. assuming that you have two macros:

/say "Hello"

and

/say "World"

bound to buttons called button1 and button2. Then you could hide these buttons and call

/click button1
/click button2

which works by sending multiple chat packets. Depending on the content of the macro, more than one physical click may be required to fully complete it.

If you have no buttons available to use, you can use xml/lua scripting to create (hide-able) buttons to bind macros to. Note that this uses multiple macro slots (3+ per macro).

A2: Addon scripts

Macros can be used to call any addon function.

/script output=myLuaFn(input)

If you have an addon with a loaded myAddon.lua file and this file contains the function myLuaFn(x), this would call that function.

This can be used to get around the length limitation by replacing a long macro with lua code, then calling this code.

This method works by doing some of the work locally, and sending a processed chat command.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.