WoW:Macro FAQ: Difference between revisions
Jump to navigation
Jump to search
(Initial first draft, needs lots more contributions! :)) |
|||
| Line 45: | Line 45: | ||
;Q) What is Lua? | ;Q) What is Lua? | ||
:A) See the [[Lua]] page for some basic details. | :A) See the [[Lua]] page for some basic details. | ||
;Q) Why doesn't [[API UnitDebuff|UnitDebuff]] accurately report the spell I just cast? | |||
:A) There is a ~0.5 second gap between the end of a spell being cast and its associated debuff texture showing up on the unit upon which it was cast. This gap causes problems for "Smart Cast" scripts which try to prevent a spell like Immolate from being run when the target already has the debuff on it. If there is a pause between casting, the script would work; however, if the script is triggered rapidly then it is likely to try to cast Immolate twice (since it does not yet see the debuff on the target unit). The workaround for this problem is to subscribe to the SPELLCAST_STOP event. Every time that event is triggered, store the [[API GetTime|current time]] in a variable. From then on, whenever you subtract the [[API GetTime|current time]] from the stored time of the last SPELLCAST_STOP event, you get the time (in seconds) since the last spell stopped. If that time is greater than 0.5, you can proceed to cast your spell. If not, do not cast your spell. Note: this is not an issue for instant cast spells (their debuffs seem to be immediately noticeable), therefore it would be inefficient to do this check on them. | |||
==XML Questions== | ==XML Questions== | ||
Revision as of 01:30, 16 December 2004
This is the place to ask any questions about UI Customization. For Cosmos-specific questions, please see the Cosmos Questions page.
Macros
- Q) How do I write a Macro?
- A) See the Macros page.
- Q) How do I write a Macro to do XXXX?
- A) Check the Most Used Macros to see if someone has already done something like this. Check the question below "What can't a macro do?" to see if its going to be impossible. If neither of these help, try asking on the CosmosUI forums.
- Q) What can't a macro do?
- A) A Macro cannot:
- Use more than 255 characters
- Call another macro
- Cast a spell/ability without you pressing a button
- Cast more than one spell/ability per button press
- Insert a pause before activating a spell/ability
- Target another player's pet automatically (you can only automatically target your own pet)
- Output anything to file other than saved variables
- Q) So what can a macro do?
- A) You can call any script command (/script ScriptFunction), any standard WoW /command such as /say or /attack, and any additional /commands made available by the AddOns you've installed, for example if you install Cosmos you can use the Cosmos Slash Commands. If you need to write a long macro, write it as an AddOn in a lua file and bind it to a slash command, just like the Cosmos ones. See the section on Lua and XML for more details.
- Q) What's the real deal with pauses?
- A) You can't use a pause before a spell or ability. However... you can kinda do pauses in certain ways. Firstly, the Cosmos slash commands includes a /in option. This will NOT work with spells or abilities, but works fine with chat commands. For example: "/in 5 /say Heal on the way!". You can also use certain script commands based on time, such as the movement commands. See the World of Warcraft API for more on those.
AddOns
This section needs a lot more help :)
Basic Questions
- Q) Where do I start if I want to write an AddOn?
- A) Try the WoW UI Customization Guide as a starting point.
- Q) How do I reload my UI?
- A) Type /console reloadui or /script ReloadUI();
Lua Questions
- Q) How do I know what verion number to use in the .toc files?
- A) Check the CosmosUI forums for the latest information. Alternatively, use WinMPQ to read the .mpq files, check the Patch.MPQ file and lookup the number in Interface\FrameXML\FrameXML.toc
- Q) What is Lua?
- A) See the Lua page for some basic details.
- Q) Why doesn't UnitDebuff accurately report the spell I just cast?
- A) There is a ~0.5 second gap between the end of a spell being cast and its associated debuff texture showing up on the unit upon which it was cast. This gap causes problems for "Smart Cast" scripts which try to prevent a spell like Immolate from being run when the target already has the debuff on it. If there is a pause between casting, the script would work; however, if the script is triggered rapidly then it is likely to try to cast Immolate twice (since it does not yet see the debuff on the target unit). The workaround for this problem is to subscribe to the SPELLCAST_STOP event. Every time that event is triggered, store the current time in a variable. From then on, whenever you subtract the current time from the stored time of the last SPELLCAST_STOP event, you get the time (in seconds) since the last spell stopped. If that time is greater than 0.5, you can proceed to cast your spell. If not, do not cast your spell. Note: this is not an issue for instant cast spells (their debuffs seem to be immediately noticeable), therefore it would be inefficient to do this check on them.
XML Questions
- Q) Where do I start with these XML files?
- A) Try the XML User Interface guide - its full of useful information!
Questions on Specific AddOns
Census
Thottbot
Go to Cosmos Questions
Go to Interface Customization
Go to Cosmos