PHP Code:
-- Symbiosis Returns by Googlebee for PQR -- All Specializations of Druid
-- Special thanks to my mentor, Firepong.
-- Support for ALL Classes and Specs available by Googlebee @ Ownedcore.com
--Check for Class and Talent Specialization
local playerClass = select(3,UnitClass("Player"))
local talentTree = GetSpecialization()
--Check for Symbiosis Buff on Player by Class
local drhasSymb = select(15,UnitBuffID("Player",110309)) -- Druid
--local dkhasSymb = select(15,UnitBuffID("Player",110478)) -- Death Knight
--local huhasSymb = select(15,UnitBuffID("Player",110479)) -- Hunter
--local mahasSymb = select(15,UnitBuffID("Player",110482)) -- Mage
--local mohasSymb = select(15,UnitBuffID("Player",110483)) -- Monk
--local pahasSymb = select(15,UnitBuffID("Player",110484)) -- Paladin
--local prhasSymb = select(15,UnitBuffID("Player",114485)) -- Priest
--local rohasSymb = select(15,UnitBuffID("Player",110486)) -- Rogue
--local shhasSymb = select(15,UnitBuffID("Player",110488)) -- Shaman
--local wkhasSymb = select(15,UnitBuffID("Player",110490)) -- Warlock
--local wrhasSymb = select(15,UnitBuffID("Player",110491)) -- Warrior
--Misc Checks
local inCombat = UnitAffectingCombat("player")
local umadBro = UnitThreatSituation("player", "target")
local pLevel = UnitLevel("player")
local eLevel = UnitLevel("target")
local eCasting = select(9,UnitCastingInfo("target"))
local pEnergy = UnitPower("player")
local myhealth = 100 * UnitHealth("player") / UnitHealthMax("player")
----------------------------------------Druid----------------------------------------
--If Druid and Guardian Spec
if playerClass == 11 and talentTree == 3 and drhasSymb then
--Guardian Druid Spell Ids and Spell Names gained from other classes
--(122285)-- From Death Knight (Bone Shield)
--(110600)-- From Hunter (Ice Trap)
--(110694)-- From Mage (Frost Armor)
--(110701)-- From Paladin (Consecration)
--(110717)-- From Priest (Fear Ward)
--(122289)-- From Rogue (Feint)
--(110803)-- From Shaman (Lightning Shield)
--(122290)-- From Warlock (Life Tap)
--(113002)-- From Warrior (Spell Reflect)
--(126449)-- From Monk (Elusive Brew)
if drhasSymb == 122285 and not UnitBuffID("Player",122285) and GetSpellCooldown(122285) and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122285)) -- Bone Shield
--PlaySoundFile("Sound\\Creature\\LordMarrowgar\\IC_Marrowgar_WW01.wav")
elseif drhasSymb == 110600 and GetSpellCooldown(110600) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110600)) -- Ice Trap
--PlaySoundFile("Sound\\Creature\\Paletress\\AC_Paletress_WoundHeavy02.wav")
elseif drhasSymb == 110694 and not UnitBuffID("Player",110694) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110694)) -- Frost Armor
--PlaySoundFile("Sound\\Creature\\LichKing\\IC_Lich King_FMAttack01.wav")
elseif drhasSymb == 110701 and GetSpellCooldown(110701) == 0 and UnitExists("target") and inCombat and IsSpellInRange(GetSpellInfo(33917),"target") == 1 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110701)) -- Consecration
--PlaySoundFile("Sound\\Creature\\Ashbringer\\ASH_SPEAK_12.Wav")
elseif drhasSymb == 110717 and GetSpellCooldown(110717) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110717)) -- Fear Ward
--PlaySoundFile("Sound\\Creature\\BabyMurloc\\BabyMurlocB.wav")
elseif drhasSymb == 122289 and GetSpellCooldown(122289) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122289)) -- Feint
elseif drhasSymb == 110803 and not UnitBuffID("Player",110803) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110803)) -- Lightning Shield
elseif drhasSymb == 122290 and GetSpellCooldown(122290) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122290)) -- Life Tap
--PlaySoundFile("Sound\\Creature\\Kologarn\\UR_Kologarn_Slay02.ogg")
elseif drhasSymb == 113002 and GetSpellCooldown(122290) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(113002)) -- Spell Reflect
elseif drhasSymb == 126453 and GetSpellCooldown(126453) == 0 and umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(126453)) -- Elusive Brew
end
--If Druid and Feral Spec
elseif playerClass == 11 and talentTree == 2 and drhasSymb then
--Feral Druid Spell Ids and Spell Names gained from other classes
--(122282)-- From Death Knight (Death Coil) -- Currently not returning correct spellid -- N/A
--(110597)-- From Hunter (Play Dead)
--(110693)-- From Mage (Frost Nova)
--(110700)-- From Paladin (Divine Shield)
--(110715)-- From Priest (Dispersion)
--(110730)-- From Rogue (Redirect)
--(110807)-- From Shaman (Feral Spirit)
--(110810)-- From Warlock (Soul Swap)
--(112997)-- From Warrior (Shattering Blow)
--(126449)-- From Monk (Clash)
--if drhasSymb == 110309 and not UnitBuffID("player",5215) and UnitExists("target") and inCombat then
--if IsSpellInRange(GetSpellInfo(106839),"target") == 1 and pEnergy > 39 then -- Must have Wild Charge
--ActionButtonDown(1) ActionButtonUp(1) -- Death Coil (Sym Spell must be in action bar 1 slot 1)
--end
if drhasSymb == 110597 and IsMouseButtonDown(4) and GetSpellCooldown(110597) == 0 and not GetCurrentKeyBoardFocus() then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110597)) -- Play Dead
elseif drhasSymb == 110693 and IsMouseButtonDown(4) and GetSpellCooldown(110693) == 0 and not GetCurrentKeyBoardFocus() then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110693)) -- Frost Nova
elseif drhasSymb == 110700 and IsMouseButtonDown(4) and GetSpellCooldown(110700) == 0 and not GetCurrentKeyBoardFocus() then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110700)) -- Divine Shield (Mouse Button 4)
elseif drhasSymb == 110700 and GetSpellCooldown(110700) == 0 then
if umadBro >= 2 or IsFalling() or myhealth < 20 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110700)) -- Divine Shield (Auto)
end
elseif drhasSymb == 110715 and IsMouseButtonDown(4) and GetSpellCooldown(110715) == 0 and not GetCurrentKeyBoardFocus() then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110715)) -- Dispersion (Mouse Button 4)
elseif drhasSymb == 110715 and GetSpellCooldown(110715) == 0 then
if umadBro >= 2 or IsFalling() or myhealth < 20 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110700)) -- Dispersion (Auto)
end
elseif drhasSymb == 110730 and IsMouseButtonDown(4) and GetSpellCooldown(110730) == 0 then
if UnitIsEnemy("player", "target") and IsSpellInRange(GetSpellInfo(110730),"target") == 1 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110730)) -- Redirect (Mouse Button 4 on Target)
end
elseif drhasSymb == 110807 and GetSpellCooldown(110807) == 0 and inCombat then
if UnitExists("target") and IsSpellInRange(GetSpellInfo(33876),"target") == 1 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110807)) -- Feral Spirit (Auto)
end
elseif drhasSymb == 110810 and IsMouseButtonDown(4) and GetSpellCooldown(110810) == 0 and UnitExists("target") then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110810)) -- Soul Swap (Mouse Button 4)
--elseif drhasSymb == 110810 and GetSpellCooldown(110810) == 0 and inCombat then
--local gotRip = UnitDebuffID("target",1079)
--local gotRake = UnitDebuffID("target",1822)
--if gotRip and gotRake then
--if IsSpellInRange(GetSpellInfo(110810),"mouseover") == 1 and UnitExists("mouseover") then
--SpellCancelQueuedSpell()
--RunMacroText("/cast [target=mouseover] Soul Swap") -- Soul Swap (Auto Not Working Yet...)
--end
--end
elseif drhasSymb == 112997 and IsMouseButtonDown(4) and GetSpellCooldown(112997) == 0 and
IsSpellInRange(GetSpellInfo(112997),"target")and UnitExists("target") then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(112997)) -- Shattering Blow (Mouse Button 4)
elseif drhasSymb == 126449 and IsMouseButtonDown(4) and GetSpellCooldown(126449) == 0 then
if UnitExists("target") and IsSpellInRange(GetSpellInfo(126449),"target") then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(126449)) -- Clash (Mouse Button 4)
end
--If Druid and Restoration Spec
elseif playerClass == 11 and talentTree == 4 and drhasSymb then
--Restoration Druid Spell Ids and Spell Names gained from other classes
--(110575)-- From Death Knight (Icebound Fortitude)
--(110617)-- From Hunter (Deterrence)
--(110696)-- From Mage (Ice Block)
--(122288)-- From Paladin (Cleanse)
--(110718)-- From Priest (Leap of Faith)
--(110791)-- From Rogue (Evasion)
--(110806)-- From Shaman (Spiritwalkers Grace)
--(112970)-- From Warlock (Demonic Circle: Teleport)
--(113004)-- From Warrior (Intimidating Roar)
--(126456)-- From Monk (Fortifying Brew)
if drhasSymb == 110575 and GetSpellCooldown(110575) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110575)) -- Icebound Fortitude (Mouse Button 4)
elseif drhasSymb == 110575 and GetSpellCooldown(110575) == 0 and myhealth < 50 or umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110575)) -- Icebound Fortitude (Auto)
elseif drhasSymb == 110617 and GetSpellCooldown(110617) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110617)) -- Deterrence (Mouse Button 4)
elseif drhasSymb == 110617 and GetSpellCooldown(110617) == 0 and myhealth < 20 or umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110617)) -- Deterrence (Auto)
elseif drhasSymb == 110696 and GetSpellCooldown(110696) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110696)) -- Ice Block (Mouse Button 4)
elseif drhasSymb == 110696 and GetSpellCooldown(110696) == 0 and myhealth < 20 or umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110696)) -- Ice Block (Auto)
elseif drhasSymb == 122288 and GetSpellCooldown(122288) == 0 and IsMouseButtonDown(4) and UnitExists("target") then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122288)) -- Cleanse (Mouse Button 4)
elseif drhasSymb == 110718 and GetSpellCooldown(110718) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110718)) -- Leap of Faith (Mouse Button 4)
elseif drhasSymb == 110791 and GetSpellCooldown(110791) == 0 and myhealth < 50 or umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110791)) -- Evasion (Auto)
elseif drhasSymb == 110791 and GetSpellCooldown(110791) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110791)) -- Evasion (Mouse Button 4)
elseif drhasSymb == 110806 and GetSpellCooldown(110806) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110806)) -- Spiritwalkers Grace (Mouse Button 4)
elseif drhasSymb == 112970 and GetSpellCooldown(112970) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(112970)) -- Demonic Circle: Teleport (Mouse Button 4)
elseif drhasSymb == 113004 and GetSpellCooldown(113004) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(113004)) -- Intimidating Roar (Mouse Button 4)
elseif drhasSymb == 126456 and GetSpellCooldown(126456) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(126456)) -- Fortifying Brew (Mouse Button 4)
elseif drhasSymb == 126456 and GetSpellCooldown(126456) == 0 and myhealth < 50 or umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(126456)) -- Fortifying Brew (Auto)
--If Druid and Balance Spec
elseif playerClass == 11 and talentTree == 1 and drhasSymb then
--Balance Druid Spell Ids and Spell Names gained from other classes
--(110570)-- From Death Knight (Anti-Magic Shell)
--(110588)-- From Hunter (Misdirection)
--(110621)-- From Mage (Mirror Image)
--(110698)-- From Paladin (Hammer of Justice)
--(110707)-- From Priest (Mass Dispel)
--(110788)-- From Rogue (Cloak of Shadows)
--(110802)-- From Shaman (Purge)
--(122291)-- From Warlock (Unending Resolve)
--(122292)-- From Warrior (Intervene)
--(126458)-- From Monk (Grapple Weapon)
if drhasSymb == 110570 and GetSpellCooldown(110570) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110570)) -- Anti-Magic Shell
elseif drhasSymb == 110588 and GetSpellCooldown(110588) == 0 and umadBro >= 1 then
if UnitExists("focus") and not UnitIsDeadOrGhost("focus") and IsSpellInRange(GetSpellInfo(110588),"focus") == 1 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110588), "focus") -- Misdirection - Tank must be set to Focus!
--PlaySound("RaidWarning", "Master")
end
elseif drhasSymb == 110621 and GetSpellCooldown(110621) == 0 and UnitBuffID("Player",102560) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110621)) -- Mirror Image
--PlaySoundFile("Sound\\Creature\\AlgalonTheObserver\\UR_Algalon_special01.wav")
elseif drhasSymb == 110698 and GetSpellCooldown(110698) == 0 and UnitExists("target") then
if IsSpellInRange(GetSpellInfo(110688),"target") == 1 and inCombat then
if not eLevel >= (pLevel + 2) or eLevel == -1 and umadBro >= 2 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110688), "target") -- Hammer of Justice (Auto if highest on threat)
elseif drhasSymb == 110698 and IsMouseButtonDown(4) and UnitExists("target") then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110688)) -- Hammer of Justice (Mouse Button 4 Manual)
end
end
elseif drhasSymb == 110707 and GetSpellCooldown(110707) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110707)) -- Mass Dispel
elseif drhasSymb == 110707 and SpellIsTargeting() then
CameraOrSelectOrMoveStart() CameraOrSelectOrMoveStop()
elseif drhasSymb == 110788 and GetSpellCooldown(110788) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110788)) -- Cloak of Shadows
--PlaySoundFile("Sound\\Creature\\ZerekethTheUnbound\\TEMPEST_Zerek_ShadowHell01.wav")
elseif drhasSymb == 110802 and UnitExists("target") and IsSpellInRange(GetSpellInfo(110802),"target") == 1 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(110802)) -- Purge
elseif drhasSymb == 122291 and GetSpellCooldown(122291) == 0 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122291)) -- Unending Resolve
elseif drhasSymb == 122292 and GetSpellCooldown(122292) == 0 then
if IsSpellInRange(GetSpellInfo(122292),"target") == 1 and IsMouseButtonDown(4) then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(122292)) -- Intervene
end
elseif drhasSymb == 126458 and GetSpellCooldown(126458) == 0 and UnitExists("target") then
if UnitIsEnemy("player", "target") and IsSpellInRange(GetSpellInfo(126458),"target") == 1 then
SpellCancelQueuedSpell()
CastSpellByName(GetSpellInfo(126458)) -- Grapple Weapon
--PlaySoundFile("Sound\\Creature\\VerasDarkshadow\\BLCKTMPLE_Veras_Enrage01.wav")
end
end
end
end
end
-GB