vanilla-wow-addons – Rev 1
?pathlinks?
--[[
SpellAlert (modified again)
Author:______Sent
Thanks:______Awen_(Original_Author)
_____________Mithryn_(versions_up_to_1.65)
]]
local fullString;
local currentTarget;
local partyNum = 0;
local raidNum = 0;
local membersList = {};
local cType = 0; -- 0=damage, 1=heal, 2=buff-gain, 3=buff-gone, 4=totem, 5=emote, 6=periodic, 7=istant, 8=CC, 9=Misc
-- --------------- --
-- Event functions --
-- --------------- --
function SA_BeginsToCast(mob, spell)
if (SA_TBL_HEALS[spell]) then cType = 1; end
if (SA_TBL_CC[spell]) then cType = 8; end
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell);
end
function SA_BeginsToPerform(mob, spell)
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell);
end
function SA_CastsOn(mob, spell, mob2)
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell);
end
function SA_GainsFrom(mob, num, power, mob2, spell)
if ((not SAVars[cType].on) or membersList[mob2] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, num.." "..power);
end
function SA_GainsX(mob, spell, num)
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell.." ("..num..")");
end
function SA_Gains(mob, spell)
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell);
end
function SA_FadesFrom(spell, mob)
if ((not SAVars[cType].on) or membersList[mob] or (SAVars[cType].to and (currentTarget ~= mob)) or SA_IGNORE[cType][spell]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, fullString, mob, spell);
end
function SA_OnEvent(event, arg1, arg2)
fullString = arg1;
if (event == "PLAYER_ENTERING_WORLD") then
SA_SMF_Adjust(1);
SA_SMF_Adjust(2);
SA_SMF_Adjust(3);
SA_SMF_UpdateLook(1);
SA_SMF_UpdateLook(2);
SA_SMF_UpdateLook(3);
elseif (event == "VARIABLES_LOADED") then
SA_SAVarsIntegrityCheck();
elseif (event == "PARTY_MEMBERS_CHANGED") then
local num = GetNumPartyMembers();
if ((num ~= partyNum) and (GetNumRaidMembers() == 0)) then
partyNum = num;
SA_BuildMembersList(false);
end
elseif (event == "RAID_ROSTER_UPDATE") then
local num = GetNumRaidMembers();
if (num ~= raidNum) then
raidNum = num;
SA_BuildMembersList(true);
end
elseif (event == "PLAYER_TARGET_CHANGED") then
currentTarget = UnitName("target");
elseif (not SAVars.on) then return;
elseif (SAVars.offonrest and IsResting()) then return;
elseif (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") then
cType = 0;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF") then
cType = 2;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS") then
cType = 6;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE") then
cType = 0;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF") then
cType = 2;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS") then
cType = 6;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_SPELL_AURA_GONE_OTHER") then
cType = 3;
MarsMessageParser_ParseMessage("SpellAlert", arg1);
elseif (event == "CHAT_MSG_MONSTER_EMOTE") then
cType = 5;
if ((not SAVars[cType].on) or (SAVars[cType].to and (currentTarget ~= arg2)) or SA_IGNORE[cType][arg1]) then
return;
end
AlertFrame_Show(SAVars[cType].alert, arg2.." "..arg1, arg2, arg1);
end
end
function SA_BuildMembersList(isRaid)
local max, g, name;
if (isRaid) then
max = 40;
g = "raid";
else
max = 4;
g = "party";
end
for i = 1, max do
name = UnitName(g..i);
if (name) then
membersList[name] = true;
end
name = UnitName(g.."pet"..i);
if (name) then
membersList[name] = true;
end
end
end
--==QUESTA NON DOVREBBE STARE QUI==--
function AlertFrame_Show(num, fullStr, mob, spell)
if (SAVars[cType].short) then
getglobal("SA_SMF"..num):AddMessage(string.gsub(string.gsub(SAVars[cType].shortstr, "$m", mob), "$s", spell), SAVars[cType].r, SAVars[cType].g, SAVars[cType].b);
else
getglobal("SA_SMF"..num):AddMessage(fullStr, SAVars[cType].r, SAVars[cType].g, SAVars[cType].b);
end
end
Generated by GNU Enscript 1.6.5.90.