MacroTalk - v1.4
By Cogwheel

******************** NOTICE: INCOMPATIBLE CHANGE FROM V1.3 *********************
The unit data substitutions are now suffixes instead of prefixes. %lf (level of
focus) should now be written as %fl, for example.
********************************************************************************

MacroTalk provides extended chat command support especially useful for macros.
For comments, bug reports, etc., please visit http://cogwheel.wowinterface.com.

Table of Contents

Slash commands
	/tellunit
	/group
	/opt
	/rnd
Conditional chat commands
Random chat commands
Text substitutions
	Straight substitutions
	Unit information


Slash commands:
	/tellunit (/tu, /whisperunit, /wu) <unit> <message>
		Sends a whisper to the specified unit. See
		http://www.wowwiki.com/API_TYPE_UnitId for a list of units
		
		Example:
			/cast Innervate
			/tellunit target Incoming innervate
	
	/group (/gr) <message>
		Picks battleground, raid, or party chat depending on which type of group
		you are in.
	
	/opt [options] <slash command>; [options] <slash command>; ...
		Picks from multiple slash commands given the options. You can only use
		slash commands that don't trigger secure functions. Chat commands,
		emotes, scripts, etc. are OK. /cast, /use, etc. are off limits.
		
		Note: the sub-commands cannot use macro options since the semicolons
		would cause ambiguity.
		
		Example:
			/opt [button:2] /bye; /wave
	
	/rnd [options] <command 1>\<command 2>; [options] <command 3>\<command 4>...
		Picks a random slash command out of the group chosen based on the
		given options. Each group is a list of slash commands separated by the
		backslash (\) character (this is in contrast to commas used for the
		built-in random commands--commas are just too common in chat messages).
		
		Note: like the /opt command, the sub-commands cannot use macro options
		and you can't use any secure commands.
		
		Example:
			/rnd [swimming] /y Help! I'm Drowning! \ /s The water's great!;
			/s Time for a swim... \ /dance
	
Conditional chat commands:
	All chat commands (/say, /tell, /guild, etc.) can now accept macro options.
	To use this functionality, simply start the command with /opt. Note:
	[target=] has no effect on the output of the chat commands; it only affects
	the other conditionals in the clause.
	
	Example:
		/optsay [swimming] gurgle; [mounted] The cavalry has arrived!
	
	Example:
		/cast [target=focus] Polymorph
		/optgroup [target=focus, exists] Sheeping %f

Random chat commands:
	Similar to the macro options, you can now add /rnd to the beginning of any
	chat command to pick a random saying. The /rnd___ commands also take options
	to pick a different list of sayings. The lists themselves are separated by
	the backslash symbol (\).
	
	Example:
		/rndyell ZOMG! \ WTF?! \ You there! Check out that noise!
	
	Example:
		/rndsay [outdoors] Ahhh, the Great Outdoors! \ What a lovely day!;
		I wish I could go outside right now \ Must... Leave... Building...

Text substitutions:
	MacroTalk offers a variety of substitutions in addition to %t of the default
	UI. Substitutions are prioritized by the length of the code; longer codes
	are processed first. This means that %tl will be processed before %t. The
	codes are case-insensitive so %Tl is equivalent to %tL.

	Straight substitutions:
		%n   - Your name
		%z   - Your current zone
		%sz  - Your current sub-zone
	
	Unit information:
		%t - Name of your target (built in, but listed for consistency)
		%f - Name of your focus
		%m - Name of mouseover unit
		%p - Name of your pet
		
		You can suffix those with one of the following to return other pieces of
		data about the unit:
		
		l - Level
		c - Class
		g - Gender
		r - Race
		
		Example:
			/p Sheeping %f (level %fl %fg %fr %fc)
			/cast [target=focus] Polymorph
			
			Sample result: Sheeping Cogwheel (level 64 male Gnome Warrior)
		
		You can also use the suffixes without a unit code to return information
		about yourself.
		
		Example:
			/s I'm a level %l, %g, %r %c.
			
			Sample result: I'm a level 68, male, gnome warrior.

Changes:

v1.4
- /opt & /rnd will now print an error message if you attempt to use a secure
command
- Added %n, %z, %sz
- Added ability to use suffixes alone to get info about the player
- Changed unit prefixes to suffixes - INCOMPATIBLE WITH PREVIOUS VERSION
- Substitutions are no longer case-sensitive
- Restructured substitutions and localizations to be more generic

v1.3
- Added /rnd and /rnd___ commands
- Fixed a bug where the /opt prefix was only being applied to the first command
of a given type (e.g. only /opts would work but not /optsay)

v1.2
- Added generic /opt command

v1.1
- Improved localizability of substitutions

v1.0
- Name substitutions have been simplified a bit to match the functionality of %t
- Added pet unit substitution
- Added info type prefixes: level, class, gender, race

v0.9
- Added /opt___ commands
- Fixed a bug where %m behaved like %f
- No longer uses Satellite
- Added localization lua for future localization

v0.5
- Initial release
