Set raid icons with successful spell
Hello everybody, I've been using the addon "Arena Raid Icons" or scripts to put raid icons on party members in arena. I modified the script trying to make it set icons when I use an ability (for abilities that remove raid icons, I think vanish,shadowmeld,etc. still do this).
If I use a macro with "SetRaidTarget" it doesn't toggle the icon, "SetRaidTargetIcon" does. I'm using SetRaidTarget in the script but it keeps toggling on and off whenever I use an ability, I'd like any help in order to avoid this.
Here's the code:
Code:
local f = CreateFrame("Frame")
local MAGE = GetSpellInfo(61316) --Dalaran Brilliance
local ROGUE = GetSpellInfo(1784) --Stealth
local MONK = GetSpellInfo(115921) --Legacy of the White Tiger
local PRIEST = GetSpellInfo(21562) --Power Word: Fortitude
local SHAMAN = GetSpellInfo(52127) --Water Shield
local DRUID = GetSpellInfo(1126) --Mark of the Wild
local PALADIN = GetSpellInfo(20217) --Blessing of Kings
local DEATHKNIGHT = GetSpellInfo(57330) --Horn of Winter
local WARLOCK = GetSpellInfo(109773) --Dark Intent
local WARRIOR = GetSpellInfo(6673) --Battle Shout
local HUNTER = GetSpellInfo(13165) --Aspect of the Hawk
f:RegisterEvent("UNIT_SPELLCAST_SENT")
f:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
f:SetScript("OnEvent",
function(self, event, arg1, arg2)
if arg1 == "player" and (arg2 == MAGE) then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=6,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == ROGUE then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == MONK then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == PRIEST then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=6,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == SHAMAN then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == DRUID then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == PALADIN then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=2,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == DEATHKNIGHT then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == WARLOCK then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=6,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == WARRIOR then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=3,PALADIN=3,HUNTER=4,MONK=4,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
elseif arg1 == "player" and arg2 == HUNTER then
if event == "UNIT_SPELLCAST_SUCCEEDED" then
members = GetNumGroupMembers();
ci={ROGUE=1,DRUID=2,WARLOCK=2,PALADIN=3,HUNTER=4,MONK=2,PRIEST=5,MAGE=5,SHAMAN=6,WARRIOR=7,DEATHKNIGHT=8}
SetRaidTarget('player',ci[select(2,UnitClass('player'))])
for i=1,(members-1) do
SetRaidTarget('party'..i,ci[select(2,UnitClass('party'..i))])
end
end
end
end
)
|