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

Shout-Out

User Tag List

Page 117 of 731 FirstFirst ... 1767113114115116117118119120121167217617 ... LastLast
Results 1,741 to 1,755 of 10955
  1. #1741
    Kinky's Avatar Banned CoreCoins Purchaser
    Reputation
    481
    Join Date
    Nov 2008
    Posts
    500
    Thanks G/R
    1/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yeah, I'm releasing my Discipline Priest profile together with an updated version of my Shadowpriest profile once the new version of PQR is coming up.

    [BETA] PQRotation - an automated ability priority queue.
  2. #1742
    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)
    Originally Posted by kclux View Post
    Did anyone manage to code a working line of sigh check yet ? That would be awesome.

    I'm still working on this, it is the final thing I want to do before the next release. It isn't as simple as one might think due to the "Out of line of sight" message not being directly related to a certain unit.

    I need to record the last unit you tried to cast a spell on, then if a Line of Sight message pops up we will have to assume that the last thing the bot tried to cast on was that target. It should work just fine.

  3. #1743
    Kinky's Avatar Banned CoreCoins Purchaser
    Reputation
    481
    Join Date
    Nov 2008
    Posts
    500
    Thanks G/R
    1/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome work, Xelper!
    Keep it up.

  4. #1744
    kclux's Avatar Active Member
    Reputation
    16
    Join Date
    Jun 2011
    Posts
    199
    Thanks G/R
    2/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Xelper View Post
    I'm still working on this, it is the final thing I want to do before the next release. It isn't as simple as one might think due to the "Out of line of sight" message not being directly related to a certain unit.

    I need to record the last unit you tried to cast a spell on, then if a Line of Sight message pops up we will have to assume that the last thing the bot tried to cast on was that target. It should work just fine.
    Great, looking forward to having that check.

  5. #1745
    onya's Avatar Member
    Reputation
    67
    Join Date
    May 2008
    Posts
    152
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've been looking into libquickhealth-2.0 and it seems that it's been abandoned for quite a while. What it did was hook the combat log to provide quicker updates to units health than blizzards unithealth function which only updates around every 300ms

    Anyway it seems addons like healbot do this internally now rather than using the libquickhealth library. Here's the code from healbot, it doesn't look too complicated to my untrained eye. Would it be possible for this to be implemented in PQRotation? It would be awesome for healing profiles.

    Code:
    function HealBot_OnEvent_Combat_Log(self, timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags, ...)
        if HealBot_unitHealth[destGUID] then
            xUnit=HealBot_UnitID[destGUID]
            if xUnit and bBand(destFlags, dFlags)>0 then
                x=0
                y=0
                if (event == "SWING_DAMAGE") then
                    x = -select(1,...)
                elseif (event == "SPELL_PERIODIC_DAMAGE" or event == "SPELL_DAMAGE" or event == "DAMAGE_SPLIT" or event == "DAMAGE_SHIELD") then
                    x = -select(4, ...)
                elseif (event == "SPELL_HEAL" or event == "SPELL_PERIODIC_HEAL") then
                    x = select(4, ...)
                elseif (event == "ENVIRONMENTAL_DAMAGE") then
                    x = -select(2, ...)
                elseif (event == "SPELL_AURA_APPLIED") then
                    if spellID==12975 then
                        x=floor(HealBot_unitHealthMax[destGUID]*0.3)
                        y=x
                    elseif spellID == 469 then
                        HealBot_CheckHealth(destGUID)
                    end
                elseif (event == "SPELL_AURA_REMOVED") then
                    if spellID==12975 then
                        x=floor-(HealBot_unitHealthMax[destGUID]*0.3)
                        y=x
                    elseif spellID == 469 then
                        HealBot_CheckHealth(destGUID)
                    end
                end
                if x~=0 or y~=0 then
                    HealBot_unitHealthMax[destGUID]=HealBot_unitHealthMax[destGUID]+y
                    if HealBot_unitHealth[destGUID]+x>HealBot_unitHealthMax[destGUID] then
                        HealBot_unitHealth[destGUID]=HealBot_unitHealthMax[destGUID]
                    else
                        HealBot_unitHealth[destGUID]=HealBot_unitHealth[destGUID]+x
                    end
                --    HealBot_AddDebug("Updated hlth x="..x.."  y="..y)
                    HealBot_RecalcHeals(destGUID)
                    if HealBot_BarCheck[destGUID] then
                        if HealBot_BarCheck[destGUID]=="H" then 
                            HealBot_BarCheck[destGUID]="D"
                        end
                    else
                        HealBot_BarCheck[destGUID]="D"
                    end
                end
            end
        end
    end

  6. #1746
    ticklets's Avatar Member
    Reputation
    51
    Join Date
    Jun 2009
    Posts
    88
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Great profile buba, very good.
    Last edited by ticklets; 09-27-2011 at 12:00 PM.

  7. #1747
    Progod's Avatar Member
    Reputation
    2
    Join Date
    Feb 2009
    Posts
    22
    Thanks G/R
    0/1
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Here is a Feral Druid profile, this is based on AdamZZ's and Googlebee's, it is a bit messy as I am new to LUA.

    Added Combat and Shape-shift checks so one profile can work for both cat and bear and allow quick switching. You can now disable "Require combat for Auto Mode".

    Right shift will change you to Bear
    Right ctrl will change you to Cat
    Right Alt will take you back to Caster

    While in Bear or Cat
    Left shift will Cast Berserk
    Left ctrl will Charge

    While in caster form it will cast heals on yourself if needed and Mark of the Wild. If you hold left shift it will off heal, though healing efficiency would be questionable.

    Additions to come is a spell book check to see if you have the abilitys to allow for leveling, focus target Cyclone and mouseover rebirth.

    DRUID_Abilities.xml
    Code:
    <?xml version="1.0" encoding="utf-8" ?><DRUID><Ability><Name>Cat - Tigers Fury</Name><Default>false</Default><SpellID>5217</SpellID><Actions>/use Ancient Petrified Seed</Actions><Lua>local _,_,_,TF = UnitBuffID(&amp;quot;player&amp;quot;, 5217)
    local TFstart, TFduration = GetSpellCooldown(5217)
    local TFcooldown = (TFstart + TFduration - GetTime())
    local tfEnergy = UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;) * 100
    
    
    if GetShapeshiftForm()==3 and TF ~= nil then
    	return false
    else
    	if TFcooldown &amp;gt; 0 then
    		return false
    	else
    		if tfEnergy &amp;lt; 40 then
    			return true
    		end
    	end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Ferocious Bite</Name><Default>false</Default><SpellID>22568</SpellID><Actions></Actions><Lua>local fbrip, _, _, _, _, _, fbtimer = UnitDebuffID(&amp;quot;target&amp;quot;, 1079, &amp;quot;PLAYER&amp;quot;)
    local fbCP = GetComboPoints(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;)
    local fbhealth = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local fbenergy = UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;) * 100
    
    
    if GetShapeshiftForm()==3 and fbhealth &amp;lt;= 25 then
    	if fbrip ~= nil then
    		if fbCP == 5 then
    			return true
    		end
    	end
    else
    	if GetShapeshiftForm()==3 and fbrip ~= nil then
    		if fbtimer - GetTime() &amp;gt; 5 and fbenergy &amp;gt;= 60 and fbCP == 5 then
    			return true
    		end
    	end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Savage Roar</Name><Default>false</Default><SpellID>52610</SpellID><Actions></Actions><Lua>local _,_,_,SavageRoar = UnitBuffID(&amp;quot;player&amp;quot;, 62071)
    local srCP = GetComboPoints(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;)
    local rip, _, _, _, _, _, riptimer = UnitDebuffID(&amp;quot;target&amp;quot;, 1079, &amp;quot;PLAYER&amp;quot;)
    
    
    if GetShapeshiftForm()==3 and SavageRoar ~= nil then
    	return false
    else
    if rip ~= nil then
    	if srCP &amp;gt;= 1 then
    		if riptimer - GetTime() &amp;gt;= 8 then
    			return true
    		end
    	end
    end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Faerie Fire</Name><Default>false</Default><SpellID>16857</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()==3 then
    	return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Faerie Fire</Name><Default>false</Default><SpellID>16857</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Rip</Name><Default>false</Default><SpellID>1079</SpellID><Actions>/use Ancient Petrified Seed</Actions><Lua>local rip, _, _, _, _, _, riptimer = UnitDebuffID(&amp;quot;target&amp;quot;, 1079, &amp;quot;PLAYER&amp;quot;)
    local ripCP = GetComboPoints(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;)
    local riphealth = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    
    
    
    
    if  GetShapeshiftForm()==3 and rip ~= nil then
        if riphealth &amp;gt; 25 then
            if ripCP == 5 then
                if riptimer - GetTime() &amp;lt; 2 then
                    return true
                end
            end
        end
    else
        if ripCP == 5 then
            return true
        end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Mangle</Name><Default>false</Default><SpellID>33878</SpellID><Actions>/startattack</Actions><Lua>if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Berserk</Name><Default>false</Default><SpellID>50334</SpellID><Actions>/use Berserking</Actions><Lua>if GetShapeshiftForm()~=0 and IsLeftShiftKeyDown() then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Swipe</Name><Default>false</Default><SpellID>62078</SpellID><Actions></Actions><Lua>local _,_,_,BS = UnitBuffID(&amp;quot;player&amp;quot;, 50334)
    local energy = UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;) * 100
    
    
    if GetShapeshiftForm()==3 and BS ~= nil and CheckInteractDistance(&amp;quot;target&amp;quot;, 3) ~= nil then
        if energy &amp;gt;= 22 and CheckInteractDistance(&amp;quot;target&amp;quot;, 3) ~= nil then
            return true
        end
    else
        if energy &amp;gt;= 45 and CheckInteractDistance(&amp;quot;target&amp;quot;, 3) ~= nil then
            return true
        end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Shred</Name><Default>false</Default><SpellID>5221</SpellID><Actions>/startattack</Actions><Lua>-- Check for the debuffs.
    local hasCatMangle = UnitDebuffID(&amp;quot;target&amp;quot;, 33876)
    local hasBearMangle = UnitDebuffID(&amp;quot;target&amp;quot;, 33878)
    local hasTrauma = UnitDebuffID(&amp;quot;target&amp;quot;, 46857)
    local hasHemorrhage = UnitDebuffID(&amp;quot;target&amp;quot;, 16511)
    local CP = GetComboPoints(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;)
    
    
    -- Just check for all buffs, we have no casting time on Shred so no need for a timer check
    if GetShapeshiftForm()==3 and hasCatMangle ~= nil or hasBearMangle ~= nil or hasTrauma ~= nil or hasHemorrhage ~= nil then
        if PQR_NotBehindTarget() then
            return false
        else
            if CP == 5 then
                return false
            else
                return true
            end
        end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Swipe</Name><Default>false</Default><SpellID>779</SpellID><Actions>/startattack</Actions><Lua>if GetShapeshiftForm()==1 and CheckInteractDistance(&amp;quot;target&amp;quot;, 3) == nil or UnitCanAttack(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;) == nil then
    	return false
    end
    
    if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Maul</Name><Default>false</Default><SpellID>6807</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Enrage</Name><Default>false</Default><SpellID>5229</SpellID><Actions>/use Ancient Petrified Seed</Actions><Lua>local _,_,_,ER = UnitBuffID(&amp;quot;player&amp;quot;, 5229)
    local ERstart, ERduration = GetSpellCooldown(5229)
    local ERcooldown = (ERstart + ERduration - GetTime())
    local erEnergy = UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;) * 100
    
    
    if GetShapeshiftForm()==1 and ER ~= nil then
        return false
    else
        if GetShapeshiftForm()==1 and ERcooldown &amp;gt; 0 then
            return false
        else
            if GetShapeshiftForm()==1 and erEnergy &amp;lt; 75 then
                return true
            end
        end
    end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>Bear - Lacerate</Name><Default>false</Default><SpellID>33745</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Pulverize</Name><Default>false</Default><SpellID>80313</SpellID><Actions>/use Enrage|/use Ancient Petrified Seed|/use Berserk|/use Berserking</Actions><Lua>local _, _, _, LacerateCount = UnitDebuff(&amp;quot;target&amp;quot;, &amp;quot;Lacerate&amp;quot;)
    if GetShapeshiftForm()==1 and LacerateCount ~= nil then
        if LacerateCount == 3 then
            return true
        end
    else
        return false;
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Thrash</Name><Default>false</Default><SpellID>77758</SpellID><Actions>/startattack|/use Enrage</Actions><Lua>if GetShapeshiftForm()==1 then
    	return true
    end</Lua><RecastDelay>1</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Demoraling Roar</Name><Default>false</Default><SpellID>99</SpellID><Actions></Actions><Lua>local vindication = UnitDebuffID(&amp;quot;target&amp;quot;, 26017)
    local demoshout = UnitDebuffID(&amp;quot;target&amp;quot;, 1160)
    local curseofweakness = UnitDebuffID(&amp;quot;target&amp;quot;, 702)
    local demoroar = UnitDebuffID(&amp;quot;target&amp;quot;, 99)
    
    
    if GetShapeshiftForm()==1 and CheckInteractDistance(&amp;quot;target&amp;quot;, 3) == nil or UnitCanAttack(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;) == nil then
    	return false
    end
    
    if GetShapeshiftForm()==1 and vindication == nil and demoshout == nil and curseofweakness == nil and demoroar == nil then
        local targetName = UnitName(&amp;quot;target&amp;quot;)
        if targetName ~= nil then
            return true
        end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Mangle</Name><Default>false</Default><SpellID>33876</SpellID><Actions>/startattack</Actions><Lua>-- Rogues and Warriors can handle it themselves.
    local hasCatMangle, _, _, _, _, _, CatMangleTimer = UnitDebuffID(&amp;quot;target&amp;quot;, 33876)
    local hasBearMangle, _, _, _, _, _, BearMangleTimer = UnitDebuffID(&amp;quot;target&amp;quot;, 33878, &amp;quot;PLAYER&amp;quot;)
    local hasTrauma = UnitDebuffID(&amp;quot;target&amp;quot;, 46857)
    local hasHemorrhage = UnitDebuffID(&amp;quot;target&amp;quot;, 16511)
    local CP = GetComboPoints(&amp;quot;player&amp;quot;, &amp;quot;target&amp;quot;)
    
    
    if GetShapeshiftForm()==3 and PQR_NotBehindTarget() then
        if CP == 5 then
            return false
        else
            return true
        end
    end
    
    
    -- First, let&amp;apos;s let other people handle their own debuffs
    if hasTrauma ~= nil then
        return false
    elseif hasHemorrhage ~= nil then
        return false
    elseif hasBearMangle ~= nil then
        return false
    
    
    -- Let us handle it!
    elseif hasCatMangle ~= nil or hasBearMangle ~= nil and GetShapeshiftForm()==3 then
        -- Check the timer
        if CatMangleTimer - GetTime() &amp;lt; 1 then
            return true
        end
    else
        return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear - Feral Charge</Name><Default>false</Default><SpellID>16979</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()==1 and IsLeftControlKeyDown() then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Feral Charge</Name><Default>false</Default><SpellID>49376</SpellID><Actions></Actions><Lua>if IsLeftControlKeyDown() then
    	if GetShapeshiftForm()==3 then
      		return true
    	end
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat - Rake</Name><Default>false</Default><SpellID>1822</SpellID><Actions>/startattack</Actions><Lua>local rake, _, _, _, _, _, raketimer = UnitDebuffID(&amp;quot;target&amp;quot;, 1822, &amp;quot;PLAYER&amp;quot;)
    
    
    if GetShapeshiftForm()==3 and rake ~= nil then
    	if raketimer - GetTime() &amp;lt; 3 then
    		return true
    	end
    else
    	return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Mark of the Wild</Name><Default>false</Default><SpellID>1126</SpellID><Actions></Actions><Lua>if UnitCanCooperate(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;) and UnitIsDead(&amp;quot;target&amp;quot;) == nil and UnitBuffID(&amp;quot;target&amp;quot;, 79061) == nil and UnitAffectingCombat(&amp;quot;target&amp;quot;) == nil then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Cat Form</Name><Default>false</Default><SpellID>768</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()~=3 and IsRightControlKeyDown() then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Bear Form</Name><Default>false</Default><SpellID>5487</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()~=1 and IsRightShiftKeyDown() then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>--- offensive spells ---</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>local buff = { 642, 45438, 31224, 23920, 33786, 19263, 97417, 97977 }
    local mob = { &amp;quot;Training Dummy&amp;quot;, &amp;quot;Raider&amp;apos;s Training Dummy&amp;quot;, &amp;quot;Twisted Spirit&amp;quot;, &amp;quot;Amani shi Hatcher&amp;quot;, &amp;quot;Hakkar&amp;apos;s Chains&amp;quot; }
    local noaggromobs = nil
    local immunity = nil
    
    for i,v in ipairs(buff) do
      if UnitBuffID(&amp;quot;target&amp;quot;,v) then immunity = 1 end
    end
    
    for i,v in ipairs(mob) do
      if UnitName(&amp;quot;target&amp;quot;) == v then noaggromobs = 1 end
    end
    
    if UnitIsDead(&amp;quot;target&amp;quot;)
    or SpellIsTargeting()
    or immunity
    or UnitCanAttack(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;) == nil
    or (UnitAffectingCombat(&amp;quot;target&amp;quot;) == nil and noaggromobs == nil)
    then return true end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster Form</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if GetShapeshiftForm()~=0 and IsRightAltKeyDown() then
    	CancelShapeshiftForm()
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Barkskin</Name><Default>false</Default><SpellID>22812</SpellID><Actions></Actions><Lua>local unithealth = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    		
    if GetShapeshiftForm()==0 and enraged == nil and unithealth &amp;lt;= 50 then
    	return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Innervate</Name><Default>false</Default><SpellID>29166</SpellID><Actions></Actions><Lua>local manapercent = 100 * UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;)
    
    if GetShapeshiftForm()==0 and manapercent &amp;lt; 50  then
     return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Auto Target</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>local mytarget = &amp;quot;player&amp;quot;
    local lowest = 100 * UnitHealth(mytarget) / UnitHealthMax(mytarget)
    local self = 100 * UnitHealth(mytarget) / UnitHealthMax(mytarget)
    local group = &amp;quot;party&amp;quot;
    local members = GetNumPartyMembers()
    lowhpmembers = 0
    
    if GetNumRaidMembers() &amp;gt; 0 then
      group = &amp;quot;raid&amp;quot;
      members = GetNumRaidMembers()
    end
    
    for i = 1, members, 1 do
      local member = group..tostring(i)
      local memberhp = 100 * UnitHealth(member) / UnitHealthMax(member)
      if UnitGroupRolesAssigned(member) == &amp;quot;TANK&amp;quot; then memberhp = memberhp - 5 end
      if UnitThreatSituation(member) == 3 then memberhp = memberhp - 5 end
      if memberhp &amp;lt; 95 and UnitInRange(member) then lowhpmembers = lowhpmembers +1 end
      if memberhp &amp;gt; 1  and memberhp &amp;lt; lowest and UnitInRange(member) then
        mytarget = member
        lowest = memberhp
      end
    end
    
    if GetShapeshiftForm()==0 and IsLeftShiftKeyDown() then
    	TargetUnit(mytarget)
    elseif GetShapeshiftForm()==0 and self &amp;lt; 75 then
    	TargetUnit(&amp;quot;player&amp;quot;)
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Healing Touch</Name><Default>false</Default><SpellID>5185</SpellID><Actions></Actions><Lua>local friend = UnitIsFriend(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;)
    local mytarget = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local manapercent = 100 * UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;)
    
    
    if GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 40 and manapercent &amp;gt; 10  then
      return true
    end
    
    if GetShapeshiftForm()==0 and friend ~= nil and PQR_IsMoving(1) == false and mytarget &amp;lt; 40 and manapercent &amp;gt; 10  then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Rejuvenation</Name><Default>false</Default><SpellID>774</SpellID><Actions></Actions><Lua>local friend = UnitIsFriend(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;)
    local mytarget = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local rejuvenation = UnitBuffID(&amp;quot;target&amp;quot;, 774)
    
    if GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 90 and rejuvenation == nil and IsMounted() == nil then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Regrowth</Name><Default>false</Default><SpellID>8936</SpellID><Actions></Actions><Lua>local friend = UnitIsFriend(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;)
    local mytarget = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local manapercent = 100 * UnitPower(&amp;quot;player&amp;quot;) / UnitPowerMax(&amp;quot;player&amp;quot;)
    local regrowth = UnitBuffID(&amp;quot;target&amp;quot;, 8936)
    
    if GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 50 and manapercent &amp;gt; 15 and IsMounted() == nil and regrowth == nil then
      return true
    end
    
    if GetShapeshiftForm()==0 and friend ~= nil and PQR_IsMoving(1) == false and mytarget &amp;lt; 35 and manapercent &amp;gt; 30 and IsMounted() == nil and regrowth == nil then
      return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Nourish</Name><Default>false</Default><SpellID>50464</SpellID><Actions></Actions><Lua>local friend = UnitIsFriend(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;)
    local mytarget = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local regrowth = UnitBuffID(&amp;quot;target&amp;quot;, 8936)
    
    if GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 50 and regrowth ~= nil then
     return true
    end
    
    if GetShapeshiftForm()==0 and friend ~= nil and PQR_IsMoving(1) == false and mytarget &amp;lt; 70 and regrowth ~= nil then
     return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Caster - Life Bloom</Name><Default>false</Default><SpellID>33763</SpellID><Actions></Actions><Lua>local friend = UnitIsFriend(&amp;quot;player&amp;quot;,&amp;quot;target&amp;quot;)
    local mytarget = 100 * UnitHealth(&amp;quot;target&amp;quot;) / UnitHealthMax(&amp;quot;target&amp;quot;)
    local _,_,_,LB,_,_,LBt = UnitBuffID(&amp;quot;target&amp;quot;, 33763)
    
    if GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 90 and LB == nil then
    	return true
    elseif GetShapeshiftForm()==0 and friend ~= nil and mytarget &amp;lt; 90 and LB &amp;lt; 3  then
    		return true
    elseif GetShapeshiftForm()==0 and friend ~= nil and LB ~= nil and LBt - GetTime() &amp;lt; 1 and mytarget &amp;lt; 96 then
     	return true
    end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability></DRUID>
    DRUID_Rotations.xml
    Code:
    <?xml version="1.0" encoding="utf-8" ?><DRUID><Rotation><RotationName>Feral</RotationName><RotationDefault>false</RotationDefault><RotationList>Mark of the Wild|Bear Form|Cat Form|Caster Form|Caster - Auto Target|Caster - Barkskin|Caster - Innervate|Caster - Life Bloom|Caster - Healing Touch|Caster - Regrowth|Caster - Rejuvenation|Caster - Nourish|--- offensive spells ---|Berserk|Bear - Feral Charge|Bear - Maul|Bear - Demoraling Roar|Bear - Mangle|Bear - Pulverize|Bear - Lacerate|Bear - Faerie Fire|Bear - Enrage|Cat - Feral Charge|Cat - Faerie Fire|Cat - Mangle|Cat - Savage Roar|Cat - Tigers Fury|Cat - Rake|Cat - Ferocious Bite|Cat - Rip|Cat - Shred</RotationList></Rotation><Rotation><RotationName>Feral AOE</RotationName><RotationDefault>false</RotationDefault><RotationList>Mark of the Wild|Bear Form|Cat Form|Caster Form|Caster - Auto Target|Caster - Barkskin|Caster - Innervate|Caster - Healing Touch|Caster - Life Bloom|Caster - Regrowth|Caster - Rejuvenation|Caster - Nourish|--- offensive spells ---|Berserk|Bear - Feral Charge|Bear - Maul|Bear - Demoraling Roar|Bear - Thrash|Bear - Swipe|Bear - Mangle|Bear - Enrage|Cat - Feral Charge|Cat - Swipe|Cat - Tigers Fury</RotationList></Rotation></DRUID>
    Last edited by Progod; 09-28-2011 at 05:59 AM. Reason: Updated Amani`shi to Amani shi

  8. #1748
    Sivers's Avatar Member
    Reputation
    2
    Join Date
    May 2008
    Posts
    62
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by onya View Post
    here's some cleansebot code. replace the castspellbyid code with your classes cleanse spell if you're not a shaman. the comma separated list of things at the top is debuffs which when present you won't cleanse.

    Code:
    buff = { 96328, 96325, 96326, 92876, 92877, 92878, 86788, 30108 }
    local group = "party"
    local members = GetNumPartyMembers()
    if GetNumRaidMembers() > 0 then
      group = "raid"
      members = GetNumRaidMembers()
    end
    
    for i = 0, members, 1 do
      if i==0 then member = "player" else local member = group..tostring(i) end
      if UnitInRange(member) and UnitIsDeadOrGhost(member) == nil then
       local candispel = 1
       for k,v in ipairs(buff) do
        if UnitDebuffID(member,v) then candispel = nil end
       end
       local j = 1
       local debuff,_,_,count,bufftype,dur = UnitDebuff(member, j)
       while debuff do
        if ((bufftype == "Magic") or (bufftype == "Curse")) and dur > 1 and candispel then
         CastSpellByID(51886 ,member)
         return true
        end
        j = j + 1;
        debuff,_,_,count,bufftype,duration = UnitDebuff(member, j)
        end
      end
    end
    this only seems to cleanse myself and not any party or raid members, any ideas?

    also, there was a resto druid profile posted back a few pages, and there are a few issues I had with it. the main problem is that it's terribly mana inefficient. I know he said it was his first shot at it so I don't want to seem ungrateful, it just needs polish by someone.

    -Nourish should never be cast on anyone without a HoT present. also, it is cast too often. for example, when a DPS gets hit by a random aoe and is down to 90% hp, it will cast Rejuv then immediately Nourish afterwards even though Rejuv would have done all the healing by itself. Nourish DOES need to be used on tanks though, as 90% is still a good amount of breathing room for Nourish to be cast since they will probably lose more hp in the meantime.

    -WG and Tranq are cast too soon. Tranq should probably be player-driven/removed, and WG needs to be cast only when it would get full use by multiple targets

    -Rejuv is inefficient, needs to be cast when HP is lower. it also needs to play nice with other HoTs (aka be smarter). for example, if the group goes to 70% from a boss AOE ability and I cast WG, the WG should do the trick by itself but the bot casts Rejuv on everything regardless just because it's below that HP threshold for 1 second. it doesn't take into account that there are other HoTs which will top the group off. for very heavy AOE damage, it might be necessary when Tranq and Tree of Life are on cooldown, however.

    -LBx3 on tank needs to be higher priority, it should never fall off the tank (easily fixed)

    -needs to make full use of Clearcasting procs. ie. if tank is missing a good chunk of health, cast Regrowth or HT instead of the usual Nourish. if a party member is missing a decent amount of HP, cast HT or Regrowth instead of Rejuv. should prioritize Clearcasting procs over all other heals, as you often get them back to back and they would be wasted otherwise.

    -when LB is fading and Nourish/Regrowth/HT is already being cast to refresh it, the bot casts LB again immediately after the heal is done casting, even though it was not needed (the heal already refreshed LB by itself). I noticed this wastes a lot of mana.

    -no profile would be complete without Tree of Life added in. this would prove to be a bit more difficult, I imagine. the main focus for Tree of Life is getting LB on multiple targets for mass Clearcasting procs, and then using those procs every time it's available (preferably with Regrowth since it becomes instant cast). I would say to only cast 1 stack of LB per player just for the proc (maybe a max of 4-5 players in a raid so you don't go OOM casting LB on everyone), unless they are taking heavy damage, then stack it to 3. knowing WHEN to cast Tree of Life should probably be player-driven, but the bot should take over afterwards.

    -Cleansing needs to be added in.

    -in general: the HP threshold for each ability almost needs to be different depending on the target's role. if it's a tank, Rejuv needs to be cast at 95% so you don't fall behind. if it's a DPS, we can get away with Rejuv at 85% if it's just a single DPS target. if it's AOE, WG needs to be cast instead of Rejuv on 10 different people. same goes for the Nourish threshold.. if we wait too long for a tank to fall behind, say, 90%, then a boss could use another ability and we'd be behind on GCDs and a tank could potentially die.

    on a side note for all healing profiles in general, is it possible to implement a stopcast command when target HP is past a certain threshold? this is needed in raids (and especially for classes like druids with a lot of HoTs), as a lot of the time a target will get fully healed by another healer (or your own hoTs) and this bot casts the heal anyway. I have a feeling this would solve a lot of problems with mana issues on healing profiles.

    with that said, if anyone is up for the challenge in perfecting a resto druid profile, I'd be more than willing to throw down some money via Paypal!
    Last edited by Sivers; 09-27-2011 at 03:39 PM.

  9. #1749
    bu_ba_911's Avatar Elite User
    Reputation
    552
    Join Date
    May 2006
    Posts
    1,638
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Xelper View Post
    I'm still working on this, it is the final thing I want to do before the next release. It isn't as simple as one might think due to the "Out of line of sight" message not being directly related to a certain unit.

    I need to record the last unit you tried to cast a spell on, then if a Line of Sight message pops up we will have to assume that the last thing the bot tried to cast on was that target. It should work just fine.
    this is going to be epic i've been looking into the api and couldn't find any that had to deal with LoS check. I had considered adding a check on if error was returned, but figured that would be way to complicated to try and figure out myself

    can't wait to see how that turns out!

    one thing i was curious about, is a Target: Target of Target possible?
    ^0^Team Nova's PQR NCC ^0^

    If you think someone did something good, take the time to show your appreciation!

  10. #1750
    demolos's Avatar Member
    Reputation
    1
    Join Date
    Jul 2007
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @Xelper. Would it be possible in the next version to separate the abilities and rotation files for each spec? No idea what it takes to do, or how much work it is... Any way, this little program kept me in WoW when I was on the verge of quitting. Love it! Thanks for making it.

  11. #1751
    sheuron's Avatar Knight-Champion
    Reputation
    319
    Join Date
    Aug 2011
    Posts
    504
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anyone experienced rotation disabled after interrupt mode is enabled? I think there is a bug but im unable to reproduce the way that happend.

  12. #1752
    Kaolla's Avatar Contributor
    Authenticator enabled
    Reputation
    126
    Join Date
    Apr 2007
    Posts
    341
    Thanks G/R
    2/2
    Trade Feedback
    9 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sheuron View Post
    Anyone experienced rotation disabled after interrupt mode is enabled? I think there is a bug but im unable to reproduce the way that happend.
    I don't know if this is what you mean, but I need to enable Interrupt Mode every time I zone into a battleground, regardless of whether or not I left Rotation Mode enabled. It sounds like the opposite of what you're describing, but the two could possibly be linked.

  13. #1753
    bu_ba_911's Avatar Elite User
    Reputation
    552
    Join Date
    May 2006
    Posts
    1,638
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sheuron View Post
    Anyone experienced rotation disabled after interrupt mode is enabled? I think there is a bug but im unable to reproduce the way that happend.
    yea i haven't experienced rotation being disabled when interrupt was enabled.... i've experienced interrupt being disabled when rotation was enabled however

    Originally Posted by Sivers View Post
    on a side note for all healing profiles in general, is it possible to implement a stopcast command when target HP is past a certain threshold? this is needed in raids (and especially for classes like druids with a lot of HoTs), as a lot of the time a target will get fully healed by another healer (or your own hoTs) and this bot casts the heal anyway. I have a feeling this would solve a lot of problems with mana issues on healing profiles.
    i've considered adding something like this myself, i'll see what i can do, shouldn't be to hard

    just an ability at the top that runs the health check of the target and if they are at 100% stop casting


    *EDIT*
    Name: Stop Casting
    Spell ID: 0
    Delay: 0
    Target: Player
    LUA Code:
    Code:
    local unithealth = 100 * UnitHealth(targettoheal) / UnitHealthMax(targettoheal)
    local Spell = UnitCastingInfo("player")
    
    if unithealth > 95 then
    	if Spell == "Holy Light" or Spell == "Divine Light" or Spell == "Flash of Light" then
          		RunMacroText("/stopcasting")
         		return true
    	end
    end
    this is working for paladin, i assume it would work for priest, druid, shaman if you just change spell names

    this will be implement by default in my next release which should be soon. I also added a quick check on what blessing are currently on you, if theres either kings or mark on you, you auto cast might, if you have might on you, then you auto cast kings if kings or mark isn't already on you
    Last edited by bu_ba_911; 09-27-2011 at 04:00 PM. Reason: Added Stop Casting Code
    ^0^Team Nova's PQR NCC ^0^

    If you think someone did something good, take the time to show your appreciation!

  14. #1754
    Kaolla's Avatar Contributor
    Authenticator enabled
    Reputation
    126
    Join Date
    Apr 2007
    Posts
    341
    Thanks G/R
    2/2
    Trade Feedback
    9 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bu_ba_911 View Post
    yea i haven't experienced rotation being disabled when interrupt was enabled.... i've experienced interrupt being disabled when rotation was enabled however
    This is essentially the behavior I've experienced. I assumed it was a design feature, given that you might not want interrupt accidentally enabled on zoning into an instance, but if the opposite is occurring, perhaps it's a bug.

  15. #1755
    sheuron's Avatar Knight-Champion
    Reputation
    319
    Join Date
    Aug 2011
    Posts
    504
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Petition to next PQR version, please add function keys (F1, F2, F3...) to hotkey list.

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 04:42 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