Here is my hunter one. I really hate all the out of combat stuff that Sheuron uses in his. Mostly because hunter's don't need it, and breaks when fighting mobs that are not agressive like Rhyloth's feet, Amani hatchers stuff like that.
Anyway included are my MM pvp profile and BM pvp profile. Some of the coding for the abilities and stuff has been taken from Sheuron, Xelper and others who have contributed to answering some of the questions I have had on this thread.
The main difference between the pvp BM and pve BM is BW is used on cooldown rather than waiting for 5 stacks of frenzy, generally in pvp you just do not have the time to wait for that.
Code:
<?xml version="1.0" encoding="utf-8" ?><HUNTER><Ability><Name>SV: Explosive Shot</Name><Default>false</Default><SpellID>53301</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Multi-Shot</Name><Default>false</Default><SpellID>2643</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Kill Shot</Name><Default>false</Default><SpellID>53351</SpellID><Actions>/cast Rabid</Actions><Lua>local unithealth = 100 * UnitHealth("target") / UnitHealthMax("target")
if unithealth <= 20 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Kill Command</Name><Default>false</Default><SpellID>34026</SpellID><Actions></Actions><Lua>if IsSpellInRange("Growl","pet","target") == 1 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Serpent Sting</Name><Default>false</Default><SpellID>1978</SpellID><Actions></Actions><Lua>local ssDebuff = UnitAura("target", "Serpent Sting", nil, "PLAYER|HARMFUL")
if ssDebuff == nil and UnitHealth("target") > 100000 then
return true
end</Lua><RecastDelay>15000</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Arcane Shot</Name><Default>false</Default><SpellID>3044</SpellID><Actions></Actions><Lua>local _, _, _, KCcost = GetSpellInfo(34026)
local _, _, _, ArScost = GetSpellInfo(3044)
local totalCost = (KCcost + ArScost)
if UnitPower("player") >= totalCost then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Cobra Shot</Name><Default>false</Default><SpellID>77767</SpellID><Actions>/cast Rabid</Actions><Lua>return true</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Bestial Wrath</Name><Default>false</Default><SpellID>19574</SpellID><Actions>/cast Rabid|/cast Call of the Wild|/cast Blood Fury</Actions><Lua>local _, _, _, FrenzyCount = UnitBuff("pet", "Frenzy Effect")
if FrenzyCount == 5 then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>BM: Focus Fire</Name><Default>false</Default><SpellID>82692</SpellID><Actions></Actions><Lua>local _, _, _, FrenzyCount = UnitBuff("pet", "Frenzy Effect")
local hasTbw = UnitAura("player", "The Beast Within")
if FrenzyCount ~= nil then
if FrenzyCount == 5 and hasTbw == nil then
return true
end
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Rapid Fire</Name><Default>false</Default><SpellID>3045</SpellID><Actions>/cast Rabid|/cast Call of the Wild|/cast Blood Fury</Actions><Lua>local hasTbw = UnitAura("player", "The Beast Within")
if hasTbw == nil then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>BM: Fervor</Name><Default>false</Default><SpellID>82726</SpellID><Actions>/cast arcane torrent</Actions><Lua>local myFocus = UnitPower("player") / UnitPowerMax("player") * 100
if myFocus <= 45 then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>SV: Arcane Shot</Name><Default>false</Default><SpellID>3044</SpellID><Actions></Actions><Lua>local sLnL, _, _, countLnL = UnitBuff("player", "Lock and Load")
local _, _, _, esCost = GetSpellInfo(53301)
local esStart, esDuration, esEnabled = GetSpellCooldown(53301)
local esCooldown = (esStart + esDuration - GetTime())
local baStart, baDuration, baEnabled = GetSpellCooldown(3674)
local baCooldown = (baStart + baDuration - GetTime())
local _, _, _, asCost = GetSpellInfo(3044)
if sLnL ~= nil then
if countLnL == 1 then
return true
end
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>SV: Black Arrow</Name><Default>false</Default><SpellID>3674</SpellID><Actions></Actions><Lua>local _, _, _, esCost = GetSpellInfo(53301)
local esStart, esDuration, esEnabled = GetSpellCooldown(53301)
local esCooldown = (esStart + esDuration - GetTime())
local _, _, _, baCost = GetSpellInfo(3674)
if UnitPower("player") > (baCost + esCost) - (esCooldown * 6) then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>SV: Cobra Shot</Name><Default>false</Default><SpellID>77767</SpellID><Actions>/cast Lifeblood|/cast Blood Fury|/cast Rabid</Actions><Lua>local _, _, _, EScost = GetSpellInfo(53301)
if UnitPower("player") < EScost then
return true
else
local ESstart, ESduration, ESenabled = GetSpellCooldown(53301);
local EScooldown = (ESstart + ESduration - GetTime())
if EScooldown < 0.7 then
return false
else
return true
end
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>SV: Steady Shot</Name><Default>false</Default><SpellID>56641</SpellID><Actions></Actions><Lua>local _, _, _, EScost = GetSpellInfo(53301)
if UnitPower("player") < EScost then
return true
else
local ESstart, ESduration, ESenabled = GetSpellCooldown(53301);
local EScooldown = (ESstart + ESduration - GetTime())
if EScooldown < 0.7 then
return false
else
return true
end
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Hunter's Mark</Name><Default>false</Default><SpellID>1130</SpellID><Actions></Actions><Lua>--code by kickmydog
local hmDebuff = UnitAura("target", "Hunter's Mark", nil, "PLAYER|HARMFUL")
if hmDebuff == nil then
return true
end</Lua><RecastDelay>15000</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Aspect of the Fox</Name><Default>false</Default><SpellID>82661</SpellID><Actions></Actions><Lua>local FoxBuff = UnitBuffID("player", 82661)
if PQR_IsMoving(1) == true and FoxBuff == nil and UnitExists("target") then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Aspect of the Hawk</Name><Default>false</Default><SpellID>13165</SpellID><Actions></Actions><Lua>local HawkBuff = UnitBuffID("player", 13165)
if PQR_IsMoving(1) == false and HawkBuff == nil and UnitExists("target") then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Steady Shot</Name><Default>false</Default><SpellID>56641</SpellID><Actions>/cast !auto shot|/use 10|/cast Rabid|/cast Lifeblood|/cast Blood Fury</Actions><Lua>if UnitPower("player") < 40 then reloadphase = 1 end
if UnitPower("player") > 60 then reloadphase = nil end
if reloadphase then return true end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Arcane Shot</Name><Default>false</Default><SpellID>3044</SpellID><Actions></Actions><Lua>local myFocus = UnitPower("player")
if myFocus > 58 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Chimera Shot</Name><Default>false</Default><SpellID>53209</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Aimed shot!</Name><Default>false</Default><SpellID>0</SpellID><Actions>/cast Aimed Shot!</Actions><Lua>local fire = UnitBuffID("player", "82926")
if fire ~= nil then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Rapid Fire</Name><Default>false</Default><SpellID>3045</SpellID><Actions>/cast Call of the Wild</Actions><Lua>_,_,_,_,_,_,casttime = GetSpellInfo(19434)
if UnitBuffID("player", "3045") == nil and casttime > 1800 then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>Ma: Aimed Shot</Name><Default>false</Default><SpellID>19434</SpellID><Actions></Actions><Lua>local myFocus = UnitPower("player")
local unitHp = 100 * UnitHealth("target") / UnitHealthMax("target")
_,_,_,_,_,_,casttime = GetSpellInfo(19434)
if myFocus >= 60 and PQR_IsMoving(1) == false then
if casttime < 1800 or unitHp >= 90 then
return true
end
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma; Readiness</Name><Default>false</Default><SpellID>23989</SpellID><Actions></Actions><Lua>local RFstart, RFduration, RFenabled = GetSpellCooldown(3045)
local CSstart, CSduration, CSenabled = GetSpellCooldown(53209)
if RFstart + RFduration - GetTime() > 30 and CSstart + CSduration - GetTime() > 7 then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Misdirection</Name><Default>false</Default><SpellID>34477</SpellID><Actions></Actions><Lua>local InParty = GetNumPartyMembers()
if InParty > 0 and UnitInRaid("player") == nil then
for i = 1, InParty, 1 do
local member = "party"..tostring(i)
if UnitGroupRolesAssigned(member) == "TANK" and UnitThreatSituation(member,"target") ~= 3 then
CastSpellByName("Misdirection")
SpellTargetUnit(member)
end
end
end</Lua><RecastDelay>500</RecastDelay><Target>Focus</Target></Ability><Ability><Name>Ma: Multi-Shot</Name><Default>false</Default><SpellID>2643</SpellID><Actions></Actions><Lua>local myFocus = UnitPower("player")
if myFocus > 58 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Raptor Strike</Name><Default>false</Default><SpellID>2973</SpellID><Actions></Actions><Lua>if IsSpellInRange("Raptor Strike","target") == 1 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Tranquilizing Shot</Name><Default>false</Default><SpellID>19801</SpellID><Actions></Actions><Lua>local i = 1
local buff,_,_,_,bufftype = UnitBuff("target", i)
while buff do
if bufftype == "Magic" or buff == "Enrage" then
return true
end
i = i + 1;
buff,_,_,_,bufftype = UnitBuff("target", i)
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Concussive Shot</Name><Default>false</Default><SpellID>5116</SpellID><Actions></Actions><Lua>return true</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>BM: Bestial Wrath (PVP</Name><Default>false</Default><SpellID>19574</SpellID><Actions>/cast Rabid|/cast Call of the Wild|/cast Blood Fury</Actions><Lua>return true</Lua><RecastDelay>0</RecastDelay><Target>Player</Target></Ability><Ability><Name>Ma: Steady Shot (old)</Name><Default>false</Default><SpellID>56641</SpellID><Actions>/cast !auto shot|/use 10|/cast Rabid|/cast Lifeblood|/cast Blood Fury|/petcast Fire Breath</Actions><Lua>local myFocus = UnitPower("player")
if myFocus < 70 then
return true
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>TANK AUTOTARGET</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if GetNumPartyMembers() > 0 and UnitInRaid("player") == nil then
local heisthetank = nil
for i = 1, GetNumPartyMembers(), 1 do
if UnitGroupRolesAssigned("party"..tostring(i)) == "TANK" then heisthetank = "party"..tostring(i) end
end
if heisthetank and UnitExists("target") == nil
and UnitAffectingCombat(heisthetank)
and UnitAffectingCombat(heisthetank.."target")
and UnitIsDead(heisthetank.."target") == nil
and UnitCanAttack("player",heisthetank.."target")
then TargetUnit(heisthetank.."target") end
end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>PET AUTOTARGET</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if UnitExists("target") == nil
and UnitAffectingCombat("player")
then TargetUnit("pettarget") end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Kill Command (Burning Adrenaline)</Name><Default>false</Default><SpellID>34026</SpellID><Actions></Actions><Lua>local badrenaline = UnitBuffID("player", "99060")
if badrenaline ~= nil and IsSpellInRange("Growl","pet","target") == 1 then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Aimed Shot (Burning Adrenaline)</Name><Default>false</Default><SpellID>19434</SpellID><Actions></Actions><Lua>local badrenaline = UnitBuffID("player", "99060")
if badrenaline ~= nil then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>Ma: Chimera Shot (Burning Adrenaline)</Name><Default>false</Default><SpellID>53209</SpellID><Actions></Actions><Lua>local badrenaline = UnitBuffID("player", "99060")
if badrenaline ~= nil then
return true
end</Lua><RecastDelay>500</RecastDelay><Target>Target</Target></Ability><Ability><Name>All: Wing Clip</Name><Default>false</Default><SpellID>2974</SpellID><Actions></Actions><Lua>if IsSpellInRange("Wing Clip","target") == 1 then
return true
end</Lua><RecastDelay>9000</RecastDelay><Target>Target</Target></Ability></HUNTER>