A few people have been asking for details of what is new in the next PQR. It is mainly an internal rewrite for efficiency... everything was done from the ground up to get to where things are today in terms of functionality and use. With that said, all globals/functions you have today will exist in the new version. I hope to release it within a week or so, it is pretty much done I just need to do a good bit of testing on it.
Code:
IMPORTANT: Removed Perform Before and Perform After Lua code. These were just extra clutter and could have been implemented in your rotation with minimal effort. As far as I know, these were never being widely used anyway. If your rotation did use them, they will need to be updated.
[NEW] Improved directory layout. Profiles folder now has a folder for every class and there is now an Offsets folder.
[NEW] Monk class support
[NEW] Interrupt profile support. Runs indepedantly of a rotation.
[NEW] Anti-AFK. While the PQR program is running you will not AFK out of WoW. This can be enabled/disabled from the Settings form.
[NEW] Updated syntax highlighter. It is much better than the old one.
[NEW] Multiple debug levels to make using Debug Mode much easier.
Rotation Profiles:
PQR_RotationStarted - Set to true when a new rotation is started. Profiles can use this as a flag to execute code that they only want executed once per rotation.
PQR_DelayRotation(seconds) - Delays the currently running profile for X seconds (default 1).
Example: This can be called from an interrupt profile to allow for the use of abilities that are on GCD such as a Stun.
PQR_AddToSpellDelayList(spell, item, seconds) - Delays the currently running profile for X seconds (default 1) when a player attempts and fails to use a spell or item.
Example: A player is spamming Divine Shield but it is on GCD, so the bot is preventing the player from doing it. Using an ability that uses PQR_RotationStarted flag, the profile writer can add:
"PQR_AddToSpellDelayList(642, 0, 1) --Divine Shield"
The profile will pause for 1 second after a failed attempt to use Divine Shield, so the player can slightly spam the key, and automatically resume the profile once the cast has been done sucessfully or X seconds have passed.
It also works for potions:
PQR_AddToSpellDelayList(79634, 58146, 1) --Golem's Strength (spellID, itemID, delay)
Interrupt Profiles:
PQR_InterruptStarted - Set to true when a new interrupt profile is started. Profiles can use this as a flag to execute code that they only want executed once per rotation.
PQR_IsOnInterruptList(spellName) - Is an ability on either the PQR interrupt list or profile created list (PQR_AddInterrupt). Returns true/false.
PQR_AddInterrupt(spellName) - Adds a spell to the interrupt list, you should use PQR_InterruptStarted flag to only add once.
PQR_IsInterruptAll() - Is "Interrupt All Spells" checked? Returns true/false.