Monday, 13 February 2012

PQRotation - an automated ability priority queue for WoW

PQRotation (PQR) is an all-in-one ability rotation application. It uses both simple memory reading as well as a memory detour to execute Lua code. It requires absolutely no setup* (read beta notes). 
  • No addons to configure.
  • No pixel scanning to hinder performance.
  • Easily customizable and shareable abilities and rotations.
This program was mainly designed for PVE purposes, however it can easily be configured for PVP purposes as well. It will perform your currently selected rotation as perfectly as is possible, leaving the user to monitor more important things such as fight mechanics and anything else that might be happening in the party/raid. Each rotation is 100% configurable, and each ability can be assigned Lua code (protected or otherwise) that it will execute to determine if a spell should be cast. It also has a basic interrupt bot built in that allows you to interrupt ability that is interruptable (it will not try to interrupt non-interruptable abilities).

Scroll down to the bottom of this for links to community submitted profiles. 



Download: PQR 1.1.1
Included Offsets: 12340 (3.3.5a) and 15211 (Live)
Download PQR111.zip | VirusTotal ScanNOTE: All included profiles are for LIVE only. They cannot be expected to work on pre-cata clients.

IMPORTANT: Older profiles will not work with this. It is recommended you do not upgrade until your favorite profiles have been updated. If you feel brave enough to do this yourself, see the change log below for 1.1.

If you are upgrading to a new version after using an older version during the same WoWsession you should exit the old version, type /console reloadui ingame, then load the new version to avoid conflicts!


How to Use Rotation Bot1) Launch PriorityQueueRotation.exe
2) Select the process you would like to attach to. You must be logged into your character to do this.
3) Select your Primary and Secondary rotations.
4) Press ALT+X to start your Primary rotation, and ALT+Z to start your Secondary rotation. Pressing the key(s) again will either stop the bot or switch the rotation, depending on what you have selected.

How to Use Interrupt Bot
1) Add/Remove any spell that you would like to interrupt on the main form or select "Interrupt All Spells".
2) Press ALT+C to start/stop Interrupt Mode.

Upcoming Features
-To Be Determined-

Known Issues
-
-None!

Configuring a Rotation
1) Select the "Rotation Editor"
2) Select the Class that you wish to edit.
3) Select the rotation you wish to edit, or add a new rotation.
4) The "Current Abilities" list is the rotation that will be used. 
5) Rotations are automatically saved as you make changes.




Configuring an Ability
1) Select "Ability Editor" from the main form.
2) Select the Class for which you would like to configure an ability for.
3) You can then either select an ability from the list to load its settings, or create a new one simply by filling in the form. Please note names must be unique or they will be over-written!
4) Configuring an ability. An ability requires 4 parts to work properly.

  1. Ability Name (Required) - this is how the rotation identifies what ability to use. This must be unique!
  2. Spell ID (Required) - The addon will perform a function to validate that this spell is available for use. If you do not want to cast a spell (IE, you want to just execute an action, set this to 0). The program will use CastSpellByID.
  3. Recast Delay - Default 0 (no delay). After casting this ability how long should we wait in milliseconds before resuming. This is to allow abilities like Immolate which take longer than GCD to cast and only cast if the DoT isn't on the target to apply the debuff so the bot doesn't instantly recast due to no Immolate being immediately on the target. This only works on casted abilities since non-cast are already lower than the GCD and should not be effected.
  4. Self Cast - Should the ability be cast on the player?
  5. Actions (Optional) - A list of macro actions that will be performed if the spell is valid (Example: /use 14 (trinket), /startattack, etc.)
  6. Lua (Required) - The code here is executed in the form of an Lua function. For an ability to be confirmed as the next ability in the rotation this must "return true", if you want the ability to simply be cast if you have the resources (mana, energy, etc.) and it is off cooldown, just leave this as return true. If you want to do something more complex, such as cast an ability if the target has <20% HP, look at the example below.
5) Press "Save"

EXAMPLE Lua: Cast Hammer of Wrath if the player has "Avenging Wrath" buff (allowing our Execute ability to be cast at any time), or if the target is less than 20% HP.

Code:
        local sAW = UnitBuffID("player", 31884) 
        local unithealth = 100 * UnitHealth("target") / UnitHealthMax("target")

        if sAW ~= nil then
            return true
        else
            if unithealth <= 20 then -- only usable if target health < 20%
                return true
            end
        end
OwnedCore Community Supported Classes and Specs:
Death Knight Rotations
Druid Rotations
Hunter Rotations
Mage Rotations
Paladin Rotations
Priest Rotations
Rogue Rotations
Shaman Rotations
Warlock Rotations
Warrior Rotations

No comments:

Post a Comment