[BETA] PQRotation - an automated ability priority queue. menu

Shout-Out

User Tag List

Page 216 of 731 FirstFirst ... 116166212213214215216217218219220266316716 ... LastLast
Results 3,226 to 3,240 of 10955
  1. #3226
    Eff's Avatar Active Member
    Reputation
    18
    Join Date
    Jul 2007
    Posts
    49
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    After getting some inspiration from the post made by fmagretto here: http://www.ownedcore.com/forums/worl...ml#post2159020 ([BETA] PQRotation - an automated ability priority queue.)

    I decided to start playing around with the concept of hooking into the combatlog to attach an event listener to grab key entries relevant to a rotation. Once I finally managed to create a custom frame element and get it implemented into the game I started to get the first feedback from wow that everything was working. After some filtering and testing the first thing I thought of doing was to create a smarter, faster and more efficient decurse script that would no longer rely on the current repeated looping of the raid group.

    And that is what I'm releasing here for the current profile authors to start playing with. In this first preview I've managed to hook an event listener into the combat log to grab debuffs being applied to the current raid or party members aswell as the player. With this method we can instantly decurse a spell in the allowed list without the need to repeatedly cycle through the raid group, checking their debuffs.

    Below are the two XML files, to get started you'll need to change a few things:
    • The class the rotation is designed for (currently Druid)
    • The list of spells you'd like to decurse
    • And the spell IDs of your decurse spell


    Abilities:
    Code:
    <?xml version="1.0" encoding="utf-8" ?><DRUID><Ability><Name>-- Loader --</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>-- Make sure we&amp;apos;re only loading once
    if not loaded then
    
      -- Global Variable
      Perform = { }
    
      -- Create our event handler function
      function EventHandler(self, event, ...)
    
        -- Check for a combat log event
        if event == &amp;quot;COMBAT_LOG_EVENT_UNFILTERED&amp;quot; then
    
          -- Check for a debuff addition on a member of the raid, party or player
          if select(2, ...) == &amp;quot;SPELL_AURA_APPLIED&amp;quot;  and
             select(15, ...) == &amp;quot;DEBUFF&amp;quot; and
             bit.band(select(10, ...), COMBATLOG_OBJECT_AFFILIATION_OUTSIDER) ~= 8
          then
    
            Perform[&amp;quot;action&amp;quot;] = &amp;quot;Decurse&amp;quot;
            Perform[&amp;quot;spell&amp;quot;]    = select(13, ...)
            Perform[&amp;quot;spellid&amp;quot;] = select(12, ...)
    
            PQR_CustomTarget = select(9, ...)
    
          end
    
        end
    
      end
    
      -- Create our frame and bind combat log events
      frame = CreateFrame(&amp;quot;FRAME&amp;quot;, &amp;quot;OurFrame&amp;quot;)
      frame:RegisterEvent(&amp;quot;COMBAT_LOG_EVENT_UNFILTERED&amp;quot;)
      frame:SetScript(&amp;quot;OnEvent&amp;quot;, EventHandler)
    
      -- Stop multiple loads
      loaded = true
    
    end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Decurse</Name><Default>false</Default><SpellID>2782</SpellID><Actions></Actions><Lua>-- Define what we&amp;apos;d like to decurse
    Decurse = { &amp;quot;Living Bomb&amp;quot; }
    
    -- Define the spell, just for range etc. checks
    DecurseSpell = 2782
    
    -- Check we&amp;apos;ve got something to decurse
    if Perform[&amp;quot;action&amp;quot;] == &amp;quot;Decurse&amp;quot; then
    
      -- Get debuff details
      local Name,_,_,_,Type,Duration,Expires = UnitDebuff(PQR_CustomTarget, Perform[&amp;quot;spell&amp;quot;])
    
      -- Check the debuff is something we can deal with
      if Name ~= nil and
         tableFind(Decurse, Perform[&amp;quot;spell&amp;quot;]) ~= false and
         Expires - GetTime() &amp;gt;= 2 and
         spellCheck(DecurseSpell, PQR_CustomTarget) ~= false
      then
    
        -- Debug messages
        local spell = &amp;quot;|cff71d5ff|Hspell:&amp;quot;..Perform[&amp;quot;spellid&amp;quot;]..&amp;quot;|h[&amp;quot;..Perform[&amp;quot;spell&amp;quot;]..&amp;quot;]|h|r&amp;quot;
        print(&amp;quot;Removing&amp;quot;, spell, &amp;quot;from&amp;quot;, classColor(UnitName(PQR_CustomTarget), true)..&amp;quot;.&amp;quot;)
    
        -- Reset perform
        Perform = { }
    
        -- Cast It!
        return true
    
      end
    
    end</Lua><RecastDelay>1000</RecastDelay><Target>Custom</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>-- Functions --</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>-- Make sure we&amp;apos;re only declaring once
    if not functions then
    
      -- FUNCTION: spellCheck
      -- ACCEPTS: SpellID or Name and Unit
      -- PERFORMS: Various range, afinity and other checks to ensure a spell should be cast
      -- RETURNS: 1 or 0 depending on the check results
      function spellCheck(spell, target)
    
        local Cast = true;
        local SpellName = GetSpellInfo(spell)
    
        if UnitExists(target) == nil or
          UnitIsDeadOrGhost(target) or
          UnitCanCooperate(&amp;quot;player&amp;quot;, target) == nil or
          IsSpellInRange(SpellName, target) == 0 or
          UnitChannelInfo(&amp;quot;player&amp;quot;) ~= nil or 
          PQR_IsOutOfSight(target)
        then Cast = false end
    
        return Cast
    
      end
    
      -- FUNCTION: classColor
      -- ACCEPTS: String Name, Boolean use [ ] around name?
      -- PERFORMS: Builds a class coloured hyperlink to be used in chat
      -- RETURNS: A hyperlink string
      function classColor(name, brackets)
     
        local str = name
    
        if UnitExists(name) then
          local playerClass, englishClass = UnitClass(name)
          local color = RAID_CLASS_COLORS[englishClass]
          str = Hex(color)..&amp;quot;|Hplayer:&amp;quot;..name..&amp;quot;|h&amp;quot;
          if brackets == true then str = str..&amp;quot;[&amp;quot;..name..&amp;quot;]|h|r&amp;quot; else str = str..name..&amp;quot;|h|r&amp;quot; end
        end
    
        return str
    
      end
    
      -- FUNCTION: Hex
      -- ACCEPTS: table r of r,g,b colors, or seperate r,g,b values
      -- PERFORMS: takes the input colours and turns them into a hex value for coloring chat
      -- RETURNS: Hex string
      function Hex(r, g, b)
    
        if(type(r) == &amp;quot;table&amp;quot;) then if(r.r) then r, g, b = r.r, r.g, r.b else r, g, b = unpack(r) end end
        if(not r or not g or not b) then r, g, b = 1, 1, 1 end
        return format(&amp;quot;|cff%02x%02x%02x&amp;quot;, tonumber(r*255), tonumber(g*255), tonumber(b*255))
    
      end
    
      -- FUNCTION: table.find
      -- ACCEPTS: table name, value to find
      -- PERFORMS: Searches the given table for the value
      -- RETURNS: position if found, false on not
      function tableFind(table, value)
      
        if type(table) == &amp;quot;table&amp;quot; and value then 
          for k, val in pairs(table) do 
            if val:lower() == value:lower() then return true end
          end
        end
    
        return false
      end
    
      -- Stop multiple loads
      functions = true
    
    end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability></DRUID>
    Rotation:
    Code:
    <?xml version="1.0" encoding="utf-8" ?><DRUID><Rotation><RotationName>Decurse</RotationName><RotationDefault>false</RotationDefault><RotationList>-- Loader --|-- Functions --|Decurse</RotationList><RequireCombat>false</RequireCombat><RotationNotes>This is a small Proof-of-Concept rotation and the beginnings of an event-driven profile framework. In this first preview I&amp;apos;ve managed to hook an event listener into the combat log to grab debuffs being applied to the current raid or party members aswell as the player. With this method we can instantly decurse a spell in the allowed list without the need to repeatedly cycle through the raid group, checking their debuffs.
    
    With this preview you&amp;apos;ll get a small idea of what is now possible and how easy it is to upgrade and merge into a smarter, faster and more efficient rotation.</RotationNotes></Rotation></DRUID>
    The eventlisener function can easily be scaled to add more events and I can't wait to see some of the ideas and possibilites that you guys come up with for this.

    Now it's most definately not perfect, given that multiple debuffs can be applied at once, the GCD means we can't remove them as and when they happen and this is the first thing I intent to overcome by queing events and putting them into a stack system. When a new event is fired it will be put into the end of the current stack, which is moved through one by one and items are removed as and when they are dispelled in this case, moving the next item to the top to be dealt with. A set of functions will be created to easily manage these and enable a very easy way to move throguh, reorder and remove items from the stack.

    I'd love to hear your thoughts on the concept as well as any proposed changes

    [BETA] PQRotation - an automated ability priority queue.
  2. #3227
    Krysis's Avatar Member
    Reputation
    8
    Join Date
    Dec 2007
    Posts
    21
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Could someone please help me a bit with this syntax?

    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")


    if ruptimer - GetTime() < 3
    and GetComboPoints("player", "target") > 3
    then return true end

    Basically, I want it to use rupture if there is less than 3 seconds on it, otherwise not, and only if I have 4 or more combo points on the target.
    This syntax just gives a spiel of LUA error, im only a novice so give me a break if its something obvious :P
    Last edited by Krysis; 12-15-2011 at 04:48 PM.

  3. #3228
    crystal_tech's Avatar Elite User
    Reputation
    468
    Join Date
    Feb 2008
    Posts
    1,036
    Thanks G/R
    1/6
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Krysis View Post
    Could someone please help me a bit with this syntax?

    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")


    if ruptimer - GetTime() < 3
    and GetComboPoints("player", "target") > 3
    then return true end

    Basically, I want it to use rupture if there is less than 3 seconds on it, otherwise not, and only if I have 4 or more combo points on the target.
    This syntax just gives a spiel of LUA error, im only a novice so give me a break if its something obvious :P
    .
    Code:
    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")
    
    
    if ruptimer - Get Time() < 3
    and GetComboPoints("player", "target") > 3 
    then return true end
    try that just add a space in gettime() to get time()

  4. #3229
    Krysis's Avatar Member
    Reputation
    8
    Join Date
    Dec 2007
    Posts
    21
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by crystal_tech View Post
    .
    Code:
    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")
    
    
    if ruptimer - Get Time() < 3
    and GetComboPoints("player", "target") > 3 
    then return true end
    try that just add a space in gettime() to get time()
    Afraid not, still lots of errors :P Iv'e seen the GetTime used in other working syntax, it doesnt have a space there. I just cant figure this out :/

  5. #3230
    ishtro's Avatar Master Sergeant
    Reputation
    36
    Join Date
    Jul 2010
    Posts
    74
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    didn't work
    Last edited by ishtro; 12-15-2011 at 06:44 PM. Reason: delete

  6. #3231
    Krysis's Avatar Member
    Reputation
    8
    Join Date
    Dec 2007
    Posts
    21
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ishtro View Post
    didn't work
    Hmmm no with this is never applies rupture. :/

  7. #3232
    Xelper's Avatar ★ Elder ★
    Reputation
    1024
    Join Date
    Mar 2007
    Posts
    860
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just an FYI that PQR_IsMoving() will always return false on Gunship and Spine. Blizzard didn't implement a map for these and as such we have no Lua access to player positioning.

  8. #3233
    Addramyr's Avatar Private
    Reputation
    1
    Join Date
    Dec 2011
    Posts
    7
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Shaman Profiles? pleease? Resto and Enhcancmet lol but you can do an elemental as well lol seriously, i cant make one, not smarty enough...

  9. #3234
    Ralphiuss's Avatar Active Member
    Reputation
    44
    Join Date
    Sep 2011
    Posts
    230
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    All current profiles are listed on my SVN

    http://pqr-svn-profiles.googlecode.com/svn/

  10. #3235
    crystal_tech's Avatar Elite User
    Reputation
    468
    Join Date
    Feb 2008
    Posts
    1,036
    Thanks G/R
    1/6
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by crystal_tech View Post
    .
    Code:
    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")
    
    
    if ruptimer - Get Time() < 3
    and GetComboPoints("player", "target") > 3 
    then return true end
    try that just add a space in gettime() to get time()
    this is my rup code for mut spec
    Code:
    local rupture, _, _, _, _, _, rupturetimer = UnitDebuffID("target", 1943, "PLAYER")
    local ruptureCP = GetComboPoints("player", "target")
    
    if rupture ~= nil then 
    	if ruptureCP >= 4 then
    		if rupturetimer - GetTime() < 2 then
    			return true
    		end
    	end
    else
    	return true
    end

  11. #3236
    Gabbz's Avatar Contributor
    Reputation
    184
    Join Date
    Dec 2011
    Posts
    451
    Thanks G/R
    1/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Krysis View Post
    Could someone please help me a bit with this syntax?

    local rupture, _, _, _, _, _, ruptimer = UnitDebuffID("target", 1943, "PLAYER")


    if ruptimer - GetTime() < 3
    and GetComboPoints("player", "target") > 3
    then return true end
    You get an error since ruptimer is nil, ie dont exist. This happens since before you apply the first rupture there is no ruptimer.

    Above is done correctly since he checks if its exist first and then he looks at the time.

  12. #3237
    Budoy's Avatar Sergeant
    Reputation
    13
    Join Date
    Dec 2011
    Posts
    67
    Thanks G/R
    0/2
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hey Crystaltech i like ur SV profiles for hunter its really good BUT can u do something about the arcane shot?? when the LnL proc and ur focus is above 70 it will eat LnL proc.

  13. #3238
    Ralphiuss's Avatar Active Member
    Reputation
    44
    Join Date
    Sep 2011
    Posts
    230
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @Askali

    I have to say I am really impressed with your resto druid profile. Freaking topped the charts with some really bad gear and no enchants. This was in LFR, though I'll admit I went OOM about a 4th of the way into the fight. I can't really say if it was the profile or my really really bad gear.

  14. #3239
    Muhammad.R1's Avatar Member
    Reputation
    13
    Join Date
    Mar 2009
    Posts
    60
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey there guys

    I was just looking through the list of what profiles were included and it said there Arms- Pvp , but when i tried the application , it only has Fury PvP and Prot PvE , I even clicked the links located on the first page to download the profiles again to make sure I had not missed them but its still not there.

    Could someone please show me the link / file ?

    Thanks alot ^^

    Btw this is an OUTSTANDING project i must say its very very impressive , the Shadowpriest one and the feral is top notch really goodjob to those of you who created the profile and also to the thread maker This is simply superb thank you!

    My bro even asked me can i get it for star wars LOL xD

    Thanks again ^^

  15. #3240
    Ralphiuss's Avatar Active Member
    Reputation
    44
    Join Date
    Sep 2011
    Posts
    230
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    My SVN has the PVP arms profile made by Bu_Bu I believe. CHeck it out should be a couple post up with the address to my SVN.

Similar Threads

  1. [Buying] Planetside 2 Priority Beta Key
    By isit123 in forum General MMO Buy Sell Trade
    Replies: 0
    Last Post: 07-21-2012, 06:34 AM
  2. [Selling] PLANETSIDE 2 Priority/Early Access Beta Account
    By Kabraxiss in forum General MMO Buy Sell Trade
    Replies: 0
    Last Post: 07-18-2012, 10:20 AM
  3. [Selling] Planetside 2 Priority/Early access Beta Keys
    By mrsluf in forum General MMO Buy Sell Trade
    Replies: 3
    Last Post: 07-17-2012, 04:45 AM
  4. [Selling] Planetside 2 Priority Access beta key codes
    By fatalefout in forum General MMO Buy Sell Trade
    Replies: 1
    Last Post: 06-26-2012, 04:08 PM
  5. [Bot] Automated dungeon queue / Justice Point leecher(Auto-it source)
    By s_e_a_n_66 in forum World of Warcraft Bots and Programs
    Replies: 36
    Last Post: 01-17-2011, 11:50 AM
All times are GMT -5. The time now is 11:23 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search