* * *REMEMBER, THIS IS NOT COMPLETE SO DON'T EXPECT ALL THE MODIFIERS FROM WOW TO WORK. THIS IS YOUR WARNING* * *
Caveat(s):
/castsequence will step through the sequence of spells if the target is too far away(possibly others?). In other words, if you hammer on the macro button it will step to the next spell and not remain on the "failed" spell, so on and so forth.
[Info]
- WoW "Like" Slash Commands is an attempt by myself Maroot (Ibuprofen on Grimdal PvP), to implement the /castrandom, /castsequence, /assist, /targetenemy, and /cast slash commands from WoW. As there are no options for these in RoM (other then basic /cast), I took it upon myself to make these available, though, with limited usability. By limited I mean full modifier options are not available at this time but are on my to-do list.
- NEW: [health] & [mana] condition modifiers added. (See below for usage details)
- NEW: Variable assignment options to help shorten macro's by assigning spell names to small integer variables. (See below for usage details)
- NEW: Reset integer values are now capable of 2 decimal place precision. example: reset=2.5\target; reset=5.25\target
Here is a list of available modifiers and conditions:
[castsequence]
- Modifier options.
- modifier:alt\ctrl\shift
- target=player...target...self
where the '...' means you can concatenate the words to string a condition together
- health<>=#%
- mana<>=#%
where the '#%' is a number value representing the percentage of health or mana to compare to
'<>=' are conditional operators, '<' less then; '>' greater then; '=' equal too. You may group them for conditions such as '>=' greater then or equal too.
- Condition options.
- reset=target\combat\shift\alt\ctrl\n
where n is a number from 1.00 to 999.00
- Examples 1:
- /castsequence Spell1, Spell2, Spell3, Big Spell
- /castsequence reset=target Spell1, Spell2, Spell3, Big Spell
- /castsequence reset=target\ctrl Spell1, Spell2, Spell3, Big Spell
- /castsequence reset=target\ctrl\combat\alt\shift\12 Spell1, Spell2, Spell3, Big Spell
- Examples 2:
- /castsequence [modifier:ctrl] Spell1; Spell2, Spell3, Spell4
- /castsequence [modifier:ctrl] Spell1; reset=12 Spell2, Spell3, Spell4
- /castsequence [modifier:ctrl, target=player] Spell1; reset=combat Spell2, Spell3, Spell4
- reads as: if ctrl down and target is a player then cast Spell1; otherwise cast Spell2, then Spell3, then Spell4 reset if player enters combat or we've reached the end of spells
- /castsequence [modifier:ctrl, target=targetself] Spell1; reset=alt\combat\target\shift\ctrl\6 Spell2, Spell3, Spell4
- reads as: if ctrl down and target is an enemy, or myself, then cast Spell1; otherwise cast Spell2, then Spell3, then Spell4 reset if player enters combat, switches targets, presses the alt\shift\ctrl key, we've reached the end of spells, or 6 seconds has passed since the macro was fired.
- Examples 3:
- /castsequence [modifier:ctrl] Spell11; [modifier:alt] Spell12; [modifier:shift] Spell13; reset=6.5 Spell2, Spell3, Spell4
- /castsequence [modifier:ctrl\alt\shift] Spell11; reset=12 Spell2, Spell3, Spell4
- Examples 4:
- /castsequence [health<30] Health Potion; [modifier:ctrl] Spell11; [modifier:alt] Spell12; [modifier:shift] Spell13; reset=7.5 Spell2, Spell3, Spell4
- /castsequence [health<30] Health Potion; [mana<=20] Mana Potion; Spell11; reset=12.2 Spell2, Spell3, Spell4
- In the above examples, each press would evaluate your health and mana levels and cast the according spell depending on current health and mana levels.
[cast]
*cast uses the same syntax for modifiers as castsequence, the only differences are that cast does not recognize the reset condition, and does not except more then one spell per option.
- Example
- /cast [mana<=20] Super Mana Potion; [modifier:shift, target=playerself] Uber Heal; [modifier:alt] Flame; Fireball
- reads as: if mana less then or equal to 20% then use Super Mana Potion, else if shift key down and target is a player or myself then cast Uber Heal; else if alt key down then cast Flame, otherwise cast Fireball.
[castrandom]
no modifiers currently
- Randomly cast a spells/items from a list
- /castrandom Spell1, Spell2, Spell3, Spell4, Spell5
[assist]
no modifiers currently
- Assist your target
- /assist
- /assist target
[targetenemy]
no modifiers currently
- Targets the nearest enemy that can be attacked
- /targetenemy
[notarget]
no modifiers currently
- Removes self target. For example, when using a potion via a macro command, use this after the potion command to remove the self target.
- /notarget
[Options]
There are three options available in game that turns off a message of the current spell being cast, enables a basic auto pull feature that moves your char forward if you attempt to cast a spell out of range of your target(Listed below in their respective order), and a pull wait option that adjust the "lag" between client and server user interaction so the pull feature can be adjusted for each individual users needs. To allow some visual to the user of what spell is being cast I "spam" a message to the chat frame. This feature will definitely be worked on in future updates, if you have an idea for a nice way to notify of current spell to be cast, please feel free to let me know! This can be turned off with the slash command:
- announce
- /wlsc announce off
- /wlsc announce on
Turns off and on the "spam". However, there will always be notification of when the macro has reset, this is sent to the warning text frame. This also will be worked on. I am finding that it gets annoying having the message sent to the warning frame as it makes that error sound, which always makes me think a spell or some other retarded thing that I have done, didn't work.
- pull
- /wlsc pull on
- /wlsc pull off
Turns on and off the pull feature respectively.
- pulltime
- /wlsc pulltime #
Where # is a positive decimal value. eg. 1, 0.4, 1.3, 9, 4.5 etc etc
Adjusts the pull features length of time the character uses to walk forward, default is 2 seconds.
- walkltime
- /wlsc walktime #
Where # is a positive integer value.
Adjusts the amount of time to wait to clear the current target when using "/notarget"; lag adjust.
- ctime
- /wlsc ctime #
Where # is a positive decimal or integer value.
[Variable assignment usage information]
NOTE: These are only available with /cast and /castsequence at this time.
Everyone hates the 255 character limit cap in macro's, and everyone wishes they could somehow shorten the length of spell names by abbreviation or via some other means, because by doing so would allow for larger more complex "simple" macro's that still follow the ToS.
Well I've designed into this addon the ability to do just that. The system uses an integer based variable preceded by the pound sign(#). For example '#1" and '#100' are both acceptable variables. To assign a spell to a integer variable you would use a new slash command called "/setvars". You would pass the slash command first your integer variable "#1", then the equals sign "=", and finally the spell name (must be spelled exactly as it is in your spell book). Some examples below:
/setvars #1=Health Potion
/setvars #2 = Mana Potion
/setvars #23=Fireball
/setvars #11 = Health Potion
To use the variables in your macro's just replace the corresponding spell name with its assigned variable. So for example to cast "Fireball" in your macro you'd change it from this:
/cast [health<30] Health Potion; Fireball
to
/cast [health<30] Health Potion; #23
or, both spell names changed
/cast [health<30] #1; #23
The list is saved so there isn't any worry about losing the variables when you shut the game down or what ever. You can not "remove" a variable once it is created, however you can over write it with a different spell name. At this time I find there really no need to remove an entry once it is created as you can over write them at any time.
To view all the variables and their current assignments you would use a new slash command "/listvars". This will print the entire list to the chat window.
That's it for now...
Please, report problems you find on here.
* * *REMEMBER, IF IT DOESN'T WORK BECAUSE YOU ENTERED IN A MODIFIER THAT DOESN'T HAVE THE LISTED OPTIONS AS ABOVE, AND YOU WHINE ABOUT IT, I TOLD YOU SO DON'T EXPECT ANY SYMPATHY* * *
------------------------------------------------------------------------
r26 | maroot | 2009-11-25 06:57:38 +0000 (Wed, 25 Nov 2009) | 1 line
Changed paths:
M /trunk/WoW_Like_Slash_Commands.lua
*) Bug fix...silly silly bug too. :(
------------------------------------------------------------------------
r25 | maroot | 2009-11-25 00:12:48 +0000 (Wed, 25 Nov 2009) | 1 line
Changed paths:
M /trunk/WoW_Like_Slash_Commands.lua
M /trunk/WoW_Like_Slash_Commands.toc
@) Modified macro instance naming to also include the button ID. This helps stop contamination of other macro's that might have the same name.
------------------------------------------------------------------------
r24 | maroot | 2009-11-23 08:03:59 +0000 (Mon, 23 Nov 2009) | 35 lines
Changed paths:
M /trunk/WoW_Like_Slash_Commands.lua
M /trunk/WoW_Like_Slash_Commands.toc
M /trunk/WoW_Like_Slash_Commands.xml
@) Rewrote a lot of this addon.
+) *Added health and mana modifier evaluation check statements* (examples):
'[health < 50] Health Potion'
'[mana < 20] Mana Potion'
- Available operators are:
> - greater then
< - less then
= - equal to
>= - greater then or equal to
<= - less then or equal to
+) *Added support for 2 decimal place precision macro resets*. reset=2.35, as an example. Precision is totally dependent on the users machine. If your computer is older and slow your precision will most likely not function well. In other words your seconds will function properly but your precision will not. The reason for this is because it takes a computer so many milliseconds to fire the OnUpdate event. For my machine this time is ~23ms, if I'm under heavy load (big fight) this average increases to over 100ms at times. So, the faster your computer the more precise your reset precision will be.
+) *Added support for small variables in macro's*, in this case the variable system works on integer values preceded by the pound sign(#). You add spells to the variable system via the slash command /setvars. The syntax is simple and as follows:
/setvars #1 = Health Potion
/setvars #45 = Fireball
In the above examples we have set the variables '#1' to equal 'Health Potion', and '#45' to equal 'Fireball'. To use the newly created variables in your macros you just substitute the spell name with the according variable. An example:
"[health<20] #1; #45"
In this example each time you press the macro button the system evaluates your health according to what you have provided, so for instance if your actual health is less then 20% you'll drink a "Health Potion" as designated by the variable '#1' (which we set to be an Health Potion). If your health is fine according to your specifications you'll just keep casting "Fireball" as normal.
To see a list of all your available variables you have entered into the system use the slash command '/listvars' .
+) Added a lag adjustment system to handle specific delays in the addon. (off by default, see the addons option for information on how to turn it on)
*) and a bunch of improvements through out the entire addon.
NOTE:
Addon no longer changes the button icons to the NEXT spell in the sequence, only the modifiers shift, alt, and ctrl will force an icon change if used in your macro's.
------------------------------------------------------------------------
r23 | maroot | 2009-09-06 00:05:13 +0000 (Sun, 06 Sep 2009) | 1 line
Changed paths:
M /trunk/WoW_Like_Slash_Commands.toc
done.
------------------------------------------------------------------------