vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --[[
2 SpellAlert (modified again)
3 Author:______Sent
4 Thanks:______Awen_(Original_Author)
5 _____________Mithryn_(versions_up_to_1.65)
6 ]]
7  
8 SA_STR_PROVERB = "In girum imus nocte et consumimur igni"
9  
10 SALimits = {
11 ["size"] = {min = 1, max = 50},
12 ["lines"] = {min = 1, max = 20},
13 ["space"] = {min = 0, max = 100},
14 ["holdTime"] = {min = 0, max = 5},
15 ["fadeTime"] = {min = 0, max = 5},
16 };
17  
18 local tmpVars = {};
19  
20 local SADefaults = {};
21 SADefaults[0] = {}; -- Damage
22 SADefaults[0].r = 1;
23 SADefaults[0].g = 0;
24 SADefaults[0].b = 0;
25 SADefaults[0].to = false;
26 SADefaults[0].on = true;
27 SADefaults[0].short = false;
28 SADefaults[0].alert = 1;
29 SADefaults[0].shortstr = ">>$s ($m)";
30  
31 SADefaults[1] = {}; -- Healing
32 SADefaults[1].r = 1;
33 SADefaults[1].g = 1;
34 SADefaults[1].b = 0;
35 SADefaults[1].to = false;
36 SADefaults[1].on = true;
37 SADefaults[1].short = false;
38 SADefaults[1].alert = 1;
39 SADefaults[1].shortstr = "**$s ($m)";
40  
41 SADefaults[2] = {}; -- Buff-gain
42 SADefaults[2].r = 0;
43 SADefaults[2].g = 0;
44 SADefaults[2].b = 1;
45 SADefaults[2].to = false;
46 SADefaults[2].on = true;
47 SADefaults[2].short = false;
48 SADefaults[2].alert = 1;
49 SADefaults[2].shortstr = "++$s ($m)";
50  
51 SADefaults[3] = {}; -- Buff-gone
52 SADefaults[3].r = 0.1;
53 SADefaults[3].g = 0.3;
54 SADefaults[3].b = 1;
55 SADefaults[3].to = false;
56 SADefaults[3].on = true;
57 SADefaults[3].short = false;
58 SADefaults[3].alert = 1;
59 SADefaults[3].shortstr = "--$s ($m)";
60  
61 SADefaults[4] = {}; -- Totem
62 SADefaults[4].r = 0.5;
63 SADefaults[4].g = 0.5;
64 SADefaults[4].b = 0.5;
65 SADefaults[4].to = false;
66 SADefaults[4].on = true;
67 SADefaults[4].short = false;
68 SADefaults[4].alert = 1;
69 SADefaults[4].shortstr = "$s Totem ($m)";
70  
71 SADefaults[5] = {}; -- Mob Emote
72 SADefaults[5].r = 1;
73 SADefaults[5].g = 0.6;
74 SADefaults[5].b = 0;
75 SADefaults[5].to = false;
76 SADefaults[5].on = true;
77 SADefaults[5].short = false;
78 SADefaults[5].alert = 1;
79 SADefaults[5].shortstr = "$s";
80  
81 SADefaults[6] = {}; -- Periodic
82 SADefaults[6].r = 1;
83 SADefaults[6].g = 1;
84 SADefaults[6].b = 1;
85 SADefaults[6].to = false;
86 SADefaults[6].on = true;
87 SADefaults[6].short = false;
88 SADefaults[6].alert = 1;
89 SADefaults[6].shortstr = "$s ($m)";
90  
91 SADefaults[7] = {}; -- Istant
92 SADefaults[7].r = 1;
93 SADefaults[7].g = 1;
94 SADefaults[7].b = 1;
95 SADefaults[7].to = false;
96 SADefaults[7].on = true;
97 SADefaults[7].short = false;
98 SADefaults[7].alert = 1;
99 SADefaults[7].shortstr = "^^$s ($m)";
100  
101 SADefaults[8] = {}; -- Crowd Control
102 SADefaults[8].r = 0;
103 SADefaults[8].g = 1;
104 SADefaults[8].b = 0;
105 SADefaults[8].to = false;
106 SADefaults[8].on = true;
107 SADefaults[8].short = false;
108 SADefaults[8].alert = 1;
109 SADefaults[8].shortstr = "<<$s ($m)";
110  
111 SADefaults[9] = {}; -- Misc
112 SADefaults[9].r = 1;
113 SADefaults[9].g = 1;
114 SADefaults[9].b = 1;
115 SADefaults[9].to = false;
116 SADefaults[9].on = true;
117 SADefaults[9].short = false;
118 SADefaults[9].alert = 1;
119 SADefaults[9].shortstr = ">>$s ($m)";
120  
121 SADefaults.on = true;
122 SADefaults.offonrest = false;
123  
124 SADefaults.alert1 = {};
125 SADefaults.alert1.outline = "";
126 SADefaults.alert1.size = 30;
127 SADefaults.alert1.holdTime = 3;
128 SADefaults.alert1.fadeTime = 3;
129 SADefaults.alert1.top = 0;
130 SADefaults.alert1.left = 0;
131 SADefaults.alert1.lines = 1;
132 SADefaults.alert1.alpha = 1;
133 SADefaults.alert1.font = "Fonts\\FRIZQT__.TTF";
134 SADefaults.alert1.space = 0;
135  
136 SADefaults.alert2 = {};
137 SADefaults.alert2.outline = "";
138 SADefaults.alert2.size = 30;
139 SADefaults.alert2.holdTime = 3;
140 SADefaults.alert2.fadeTime = 3;
141 SADefaults.alert2.top = 0;
142 SADefaults.alert2.left = 0;
143 SADefaults.alert2.lines = 1;
144 SADefaults.alert2.alpha = 1;
145 SADefaults.alert2.font = "Fonts\\FRIZQT__.TTF";
146 SADefaults.alert2.space = 0;
147  
148 SADefaults.alert3 = {};
149 SADefaults.alert3.outline = "";
150 SADefaults.alert3.size = 30;
151 SADefaults.alert3.holdTime = 3;
152 SADefaults.alert3.fadeTime = 3;
153 SADefaults.alert3.top = 0;
154 SADefaults.alert3.left = 0;
155 SADefaults.alert3.lines = 1;
156 SADefaults.alert3.alpha = 1;
157 SADefaults.alert3.font = "Fonts\\FRIZQT__.TTF";
158 SADefaults.alert3.space = 0;
159  
160 -- -------------- --
161 -- Init Functions --
162 -- -------------- --
163  
164 function SA_OnLoad()
165  
166 -- SPELLCASTGOOTHER = "%s casts %s.";
167  
168 MarsMessageParser_RegisterFunction("SpellAlert", SPELLCASTOTHERSTART, SA_BeginsToCast); -- "%s begins to cast %s."
169 MarsMessageParser_RegisterFunction("SpellAlert", SPELLPERFORMOTHERSTART, SA_BeginsToPerform); -- "%s begins to perform %s."
170 MarsMessageParser_RegisterFunction("SpellAlert", SPELLCASTGOOTHERTARGETTED, SA_CastsOn); -- "%s casts %s on %s."
171 MarsMessageParser_RegisterFunction("SpellAlert", POWERGAINOTHEROTHER, SA_GainsFrom); -- "%s gains %d %s from %s's %s."
172 MarsMessageParser_RegisterFunction("SpellAlert", AURAAPPLICATIONADDEDOTHERHELPFUL, SA_GainsX); -- "%s gains %s (%d)."
173 MarsMessageParser_RegisterFunction("SpellAlert", AURAADDEDOTHERHELPFUL, SA_Gains); -- "%s gains %s."
174 MarsMessageParser_RegisterFunction("SpellAlert", AURAREMOVEDOTHER, SA_FadesFrom); -- "%s fades from %s."
175  
176 this:RegisterEvent("PLAYER_ENTERING_WORLD");
177 this:RegisterEvent("PARTY_MEMBERS_CHANGED");
178 this:RegisterEvent("PLAYER_TARGET_CHANGED");
179 this:RegisterEvent("RAID_ROSTER_UPDATE");
180 this:RegisterEvent("VARIABLES_LOADED");
181  
182 this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE");
183 this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF");
184 this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS");
185 this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS");
186 this:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE");
187 this:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF");
188 this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
189 this:RegisterEvent("CHAT_MSG_MONSTER_EMOTE");
190  
191 SA_Reset();
192  
193 SlashCmdList["SpellAlertCOMMAND"] = SA_Handler;
194 SLASH_SpellAlertCOMMAND1 = "/spellalert";
195 DEFAULT_CHAT_FRAME:AddMessage("|c0000FF00SpellAlert|r 1.11.8. Type /spellalert for options.");
196 end
197  
198 function SA_Reset()
199 SAVars = SADefaults;
200 end
201  
202 function SA_SAVarsIntegrityCheck()
203  
204 tmpVars = {};
205  
206 if (type(SAVars) ~= "table") then
207 SA_Reset();
208 else
209 for currentNode in SADefaults do
210 SA_CheckNode(SADefaults, SAVars, currentNode, tmpVars);
211 end
212 SAVars = tmpVars;
213 end
214 end
215  
216 function SA_CheckNode(masterParent, slaveParent, node, tmpTable)
217 local master = masterParent[node];
218 local slave = slaveParent[node];
219  
220 if (type(master) ~= type(slave)) then
221 tmpTable[node] = master;
222  
223 elseif (type(master) == "table") then
224 tmpTable[node] = {};
225 for currentNode in master do
226 SA_CheckNode(master, slave, currentNode, tmpTable[node]);
227 end
228  
229 elseif (SALimits[node] and ((slave < SALimits[node].min) or (slave > SALimits[node].max))) then
230 tmpTable[node] = master;
231  
232 else
233 tmpTable[node] = slave;
234 end
235 end