├── RedCross.tga
├── SpellReplay.toc
├── README.md
└── SpellReplay.lua
/RedCross.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Oldsalt0/SpellReplay/HEAD/RedCross.tga
--------------------------------------------------------------------------------
/SpellReplay.toc:
--------------------------------------------------------------------------------
1 | ## Interface: 20400
2 | ## Title: SpellReplay
3 | ## Author: Oldsalt (Smolderforge)
4 | ## Notes: Displays the spells you just casted and much more
5 | ## DefaultState: enabled
6 | ## SavedVariables: replaySavedSettings, displayToPartyTable
7 | SpellReplay.lua
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SpellReplay
2 |
3 |
4 |
5 |
6 |
7 | SpellReplay is a TBC/WotLK AddOn that was originally made for Sbkzor in order to backport a retail addon widely used by streamers called TrufiGCD. The AddOn scrolls smoothly and speeds up when multiple spells are used at the same time, making it easier to highlight good plays.
8 |
9 | It has been built from scratch to also include and display:
10 | - Missed spells
11 | - White hits
12 | - Spell rank
13 | - Spell damage/healing
14 | - Mana gains
15 | - Pet spells
16 | - Poisons applied (or resisted) on Shiv
17 | ... and much more.
18 |
19 | The additions mentioned above are adjustable. You can also rescale the frame, change its scrolling direction, speed (ie. slower scrolling while casting) and modify the number of spells to display.
20 | Settings are accessible from Interface > AddOns > SpellReplay or by simply right-clicking on the background square.
21 |
22 | ## How to install
23 | - Click on the green button "Clone or download"
24 | - Select Download ZIP
25 | - Extract this .zip file under 'Your_WoW_Directory\Interface\AddOns\\'
26 | - Remove the "-master" from the folder name
--------------------------------------------------------------------------------
/SpellReplay.lua:
--------------------------------------------------------------------------------
1 | -- SpellReplay (TBC/WotLK)
2 |
3 | local ReplayFrame = CreateFrame("Frame", "ReplayFrame", UIParent)
4 | ReplayFrame:SetPoint("CENTER")
5 | ReplayFrame:SetWidth(40)
6 | ReplayFrame:SetHeight(40)
7 | ReplayFrame:SetClampedToScreen(true)
8 | ReplayFrame:SetMovable(true)
9 |
10 | local ReplayBackground = ReplayFrame:CreateTexture(nil, "BACKGROUND")
11 | ReplayBackground:SetAllPoints()
12 | ReplayBackground:SetTexture(0, 0, 0, 0.15)
13 |
14 | local InterfaceOptionsFrame_OpenToFrame = InterfaceOptionsFrame_OpenToFrame
15 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
16 | InterfaceOptionsFrame_OpenToFrame = InterfaceOptionsFrame_OpenToCategory
17 | end
18 | local ReplayButton = CreateFrame("Button", "ReplayButton", ReplayFrame)
19 | ReplayButton:SetAllPoints()
20 | ReplayButton:SetScript("OnMouseDown", function(self, button)
21 | if replaySavedSettings[12] == 0 then
22 | if not InterfaceOptionsFrame:IsShown() and not GameMenuFrame:IsShown() and button == "RightButton" then
23 | InterfaceOptionsFrame_OpenToFrame("SpellReplay")
24 | elseif InterfaceOptionsFrame:IsShown() and button == "RightButton" then
25 | InterfaceOptionsFrame:Hide()
26 | else
27 | ReplayFrame:StartMoving()
28 | end
29 | end
30 | end)
31 | ReplayButton:SetScript("OnMouseUp", function(self, button) if replaySavedSettings[12] == 0 then ReplayFrame:StopMovingOrSizing() end end)
32 | ReplayButton:SetScript("OnEnter", function() if replaySavedSettings[13] == 0 then ReplayBackground:Show() end end)
33 | ReplayButton:SetScript("OnLeave", function() if replaySavedSettings[13] == 0 then ReplayBackground:Hide() end end)
34 |
35 | local spellcache = setmetatable({}, {__index=function(t, v) local a = {GetSpellInfo(v)} if GetSpellInfo(v) then t[v] = a end return a end}) -- caching GetSpellInfo() outputs
36 | local function GetSpellInfo(a)
37 | return unpack(spellcache[a])
38 | end
39 | local replayTexture = {}
40 | local replayRank = {}
41 | local replayDamage = {}
42 | local replayFont = {}
43 | local replayFailTexture = {}
44 | local replayUpperTexture = {}
45 | local replayUpperFailTexture = {}
46 | local spellTable = {}
47 | local timestampTable = {}
48 | local movSpeed = 0
49 | local endPos = 0
50 | local replaySettings = {}
51 | replaySettings.panel = CreateFrame("Frame", "ReplaySettingsPanel", UIParent)
52 | replaySettings.panel.name = "SpellReplay"
53 | InterfaceOptions_AddCategory(replaySettings.panel)
54 | replaySettings.childpanel = CreateFrame( "Frame", "ReplaySettingsGeneralPanel", replaySettings.panel)
55 | replaySettings.childpanel.name = "General settings"
56 | replaySettings.childpanel.parent = replaySettings.panel.name
57 | InterfaceOptions_AddCategory(replaySettings.childpanel)
58 | replaySettings.childpanel = CreateFrame( "Frame", "ReplaySettingsResistsPanel", replaySettings.panel)
59 | replaySettings.childpanel.name = "Resists settings"
60 | replaySettings.childpanel.parent = replaySettings.panel.name
61 | InterfaceOptions_AddCategory(replaySettings.childpanel)
62 | replaySettings.childpanel = CreateFrame( "Frame", "ReplaySettingsOptionalPanel", replaySettings.panel)
63 | replaySettings.childpanel.name = "Optional settings"
64 | replaySettings.childpanel.parent = replaySettings.panel.name
65 | InterfaceOptions_AddCategory(replaySettings.childpanel)
66 | replaySettings = nil
67 |
68 | ReplaySettingsPanel:SetScript("OnShow", function() -- fixing ugly panel/childpanels behaviour
69 | for i=1,50 do
70 | if _G["InterfaceOptionsFrameAddOnsButton"..i]:GetText() == "SpellReplay" then
71 | if _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:GetText() == "General settings" then
72 | if ReplaySettingsPanel:IsShown() then
73 | _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:Click()
74 | end
75 | else
76 | _G["InterfaceOptionsFrameAddOnsButton"..i.."Toggle"]:Click()
77 | _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:Click()
78 | end
79 | break
80 | end
81 | end
82 | ReplayResetButton:Show()
83 | end)
84 | ReplaySettingsPanel:SetScript("OnHide", function()
85 | if InterfaceOptionsFrame:IsShown() then
86 | ReplaySettingsPanel:Hide()
87 | end
88 | ReplayResetButton:Hide()
89 | end)
90 | ReplaySettingsGeneralPanel:SetScript("OnShow", function()
91 | for i=1,50 do
92 | if _G["InterfaceOptionsFrameAddOnsButton"..i]:GetText() == "SpellReplay" then
93 | if _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:GetText() == "General settings" and _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:IsShown() then
94 | _G["InterfaceOptionsFrameAddOnsButton"..(i+1)]:Click()
95 | else
96 | _G["InterfaceOptionsFrameAddOnsButton"..i.."Toggle"]:Click()
97 | end
98 | break
99 | end
100 | end
101 | ReplayResetButton:Show()
102 | end)
103 | ReplaySettingsGeneralPanel:SetScript("OnHide", function()
104 | if InterfaceOptionsFrame:IsShown() then
105 | ReplaySettingsGeneralPanel:Hide()
106 | end
107 | ReplayResetButton:Hide()
108 | end)
109 | ReplaySettingsResistsPanel:SetScript("OnShow", function() ReplayResetButton:Show() end)
110 | ReplaySettingsResistsPanel:SetScript("OnHide", function() ReplayResetButton:Hide() end)
111 | ReplaySettingsOptionalPanel:SetScript("OnShow", function() ReplayResetButton:Show() end)
112 | ReplaySettingsOptionalPanel:SetScript("OnHide", function() ReplayResetButton:Hide() end)
113 |
114 | --
115 |
116 | local SettingsGeneralTitle = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal") -- General settings
117 | SettingsGeneralTitle:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 15, -15)
118 | SettingsGeneralTitle:SetFont("Fonts\\FRIZQT__.TTF", 17)
119 | SettingsGeneralTitle:SetText("SpellReplay")
120 |
121 | local SettingsGeneralSubtitle = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
122 | SettingsGeneralSubtitle:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 15, -40)
123 | SettingsGeneralSubtitle:SetFont("Fonts\\FRIZQT__.TTF", 10)
124 | SettingsGeneralSubtitle:SetTextColor(1, 1, 1)
125 | SettingsGeneralSubtitle:SetText("General settings")
126 |
127 | local SettingsEnableButton = CreateFrame("CheckButton", nil, ReplaySettingsGeneralPanel, "InterfaceOptionsCheckButtonTemplate")
128 | SettingsEnableButton:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 25, -60)
129 | SettingsEnableButton:SetHitRectInsets(0, -45, 0, 0)
130 | SettingsEnableButton:SetWidth(25)
131 | SettingsEnableButton:SetHeight(25)
132 | SettingsEnableButton:SetScript("OnClick", function()
133 | if SettingsEnableButton:GetChecked() then
134 | replaySavedSettings[11] = 1
135 | if not ReplayFrame:IsShown() then
136 | ReplayFrame:Show()
137 | end
138 | else
139 | replaySavedSettings[11] = 0
140 | if ReplayFrame:IsShown() then
141 | ReplayFrame:Hide()
142 | end
143 | end
144 | end)
145 |
146 | local SettingsEnableFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
147 | SettingsEnableFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 50, -65)
148 | SettingsEnableFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
149 | SettingsEnableFont:SetTextColor(1, 1, 1)
150 | SettingsEnableFont:SetText("Enable")
151 |
152 | local SettingsLockButton = CreateFrame("CheckButton", nil, ReplaySettingsGeneralPanel, "InterfaceOptionsCheckButtonTemplate")
153 | SettingsLockButton:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 25, -90)
154 | SettingsLockButton:SetHitRectInsets(0, -90, 0, 0)
155 | SettingsLockButton:SetWidth(25)
156 | SettingsLockButton:SetHeight(25)
157 | SettingsLockButton:SetScript("OnClick", function()
158 | if SettingsLockButton:GetChecked() then
159 | replaySavedSettings[12] = 1
160 | else
161 | replaySavedSettings[12] = 0
162 | end
163 | end)
164 |
165 | local SettingsLockFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
166 | SettingsLockFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 50, -95)
167 | SettingsLockFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
168 | SettingsLockFont:SetTextColor(1, 1, 1)
169 | SettingsLockFont:SetText("Lock position")
170 |
171 | local SettingsBackgroundButton = CreateFrame("CheckButton", "SettingsBackgroundButton", ReplaySettingsGeneralPanel, "InterfaceOptionsCheckButtonTemplate")
172 | SettingsBackgroundButton:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 25, -120)
173 | SettingsBackgroundButton:SetHitRectInsets(0, -120, 0, 0)
174 | SettingsBackgroundButton:SetWidth(25)
175 | SettingsBackgroundButton:SetHeight(25)
176 | SettingsBackgroundButton:SetScript("OnClick", function()
177 | if SettingsBackgroundButton:GetChecked() then
178 | replaySavedSettings[13] = 1
179 | ReplayBackground:Show()
180 | else
181 | replaySavedSettings[13] = 0
182 | ReplayBackground:Hide()
183 | end
184 | end)
185 |
186 | local SettingsBackgroundFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
187 | SettingsBackgroundFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 50, -125)
188 | SettingsBackgroundFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
189 | SettingsBackgroundFont:SetTextColor(1, 1, 1)
190 | SettingsBackgroundFont:SetText("Show background")
191 |
192 | local SettingsScalingFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
193 | SettingsScalingFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 230, -50)
194 | SettingsScalingFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
195 | SettingsScalingFont:SetText("Frame scaling")
196 |
197 | local SettingsScalingSlider = CreateFrame("Slider", "SettingsScalingSlider", ReplaySettingsGeneralPanel, "OptionsSliderTemplate")
198 | SettingsScalingSlider:ClearAllPoints()
199 | SettingsScalingSlider:SetPoint("TOPLEFT", 200, -65)
200 | SettingsScalingSlider:SetMinMaxValues(0, 7)
201 | SettingsScalingSlider:SetWidth(150)
202 | SettingsScalingSliderLow:SetText(" |cffffffff0.8")
203 | SettingsScalingSliderHigh:SetText("|cffffffff1.5 ")
204 | SettingsScalingSlider:SetValueStep(1)
205 | SettingsScalingSlider:SetHitRectInsets(0, 0, -5, -5)
206 | SettingsScalingSlider:SetScript("OnMouseUp", function(self, button)
207 | if SettingsScalingSlider:GetValue() > 0 then
208 | replaySavedSettings[14] = 0.8 + SettingsScalingSlider:GetValue() / 10
209 | else
210 | replaySavedSettings[14] = 0.8
211 | end
212 | ReplayFrame:SetScale(replaySavedSettings[14])
213 | end)
214 | SettingsScalingSlider:SetScript("OnValueChanged", function()
215 | if SettingsScalingSlider:GetValue() > 0 then
216 | replaySavedSettings[14] = 0.8 + SettingsScalingSlider:GetValue() / 10
217 | else
218 | replaySavedSettings[14] = 0.8
219 | end
220 | ReplayFrame:SetScale(replaySavedSettings[14])
221 | GameTooltip:SetOwner(SettingsScalingSlider, "ANCHOR_TOP", 120, 20)
222 | GameTooltip:SetText("Scaling: x"..replaySavedSettings[14])
223 | GameTooltip:Show()
224 | GameTooltip:FadeOut()
225 | end)
226 | SettingsScalingSlider:SetScript("OnEnter", function()
227 | if SettingsScalingSlider:GetValue() > 0 then
228 | replaySavedSettings[14] = 0.8 + SettingsScalingSlider:GetValue() / 10
229 | else
230 | replaySavedSettings[14] = 0.8
231 | end
232 | ReplayFrame:SetScale(replaySavedSettings[14])
233 | GameTooltip:SetOwner(SettingsScalingSlider, "ANCHOR_TOP", 120, 20)
234 | GameTooltip:SetText("Scaling: x"..replaySavedSettings[14])
235 | GameTooltip:Show()
236 | GameTooltip:FadeOut()
237 | end)
238 |
239 | local SettingsDirectionFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
240 | SettingsDirectionFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 200, -105)
241 | SettingsDirectionFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
242 | SettingsDirectionFont:SetText("Scrolling direction")
243 |
244 | local SettingsDirectionMenu = CreateFrame("Button", "SettingsDirectionMenu", ReplaySettingsGeneralPanel, "UIDropDownMenuTemplate")
245 | SettingsDirectionMenu:ClearAllPoints()
246 | SettingsDirectionMenu:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 180, -120)
247 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
248 | UIDropDownMenu_SetWidth(SettingsDirectionMenu, 140)
249 | UIDropDownMenu_JustifyText(SettingsDirectionMenu, "CENTER")
250 | else
251 | UIDropDownMenu_SetWidth(140, SettingsDirectionMenu)
252 | UIDropDownMenu_JustifyText("CENTER", SettingsDirectionMenu)
253 | end
254 | local directionInitMenu = {}
255 | UIDropDownMenu_Initialize(SettingsDirectionMenu, function()
256 | directionInitMenu.checked = nil
257 | directionInitMenu.func = nil
258 | directionInitMenu.text = "Right"
259 | directionInitMenu.checked = function()
260 | if replaySavedSettings ~= nil and replaySavedSettings[15] == 1 then
261 | return true
262 | else
263 | return nil
264 | end
265 | end
266 | directionInitMenu.func = function()
267 | if replaySavedSettings ~= nil and replaySavedSettings[15] ~= 1 then
268 | replaySavedSettings[15] = 1
269 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
270 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Right")
271 | else
272 | UIDropDownMenu_SetText("Right", SettingsDirectionMenu)
273 | end
274 | for i=table.maxn(spellTable)-1,0,-1 do
275 | if replayTexture[i] == nil then
276 | break
277 | else
278 | replayTexture[i]:Hide()
279 | replayTexture[i] = nil
280 | if replayRank[i] ~= nil then
281 | replayRank[i]:Hide()
282 | replayRank[i] = nil
283 | end
284 | if replayDamage[i] ~= nil then
285 | replayDamage[i]:Hide()
286 | replayDamage[i] = nil
287 | end
288 | if replayFont[i] ~= nil then
289 | replayFont[i]:Hide()
290 | replayFont[i] = nil
291 | end
292 | if replayFailTexture[i] ~= nil then
293 | replayFailTexture[i]:Hide()
294 | replayFailTexture[i] = nil
295 | end
296 | if replayUpperTexture[i] ~= nil then
297 | replayUpperTexture[i]:Hide()
298 | replayUpperTexture[i] = nil
299 | end
300 | if replayUpperFailTexture[i] ~= nil then
301 | replayUpperFailTexture[i]:Hide()
302 | replayUpperFailTexture[i] = nil
303 | end
304 | end
305 | end
306 | end
307 | end
308 | UIDropDownMenu_AddButton(directionInitMenu)
309 | directionInitMenu.text = "Left"
310 | directionInitMenu.checked = function()
311 | if replaySavedSettings ~= nil and replaySavedSettings[15] == 2 then
312 | return true
313 | else
314 | return nil
315 | end
316 | end
317 | directionInitMenu.func = function()
318 | if replaySavedSettings ~= nil and replaySavedSettings[15] ~= 2 then
319 | replaySavedSettings[15] = 2
320 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
321 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Left")
322 | else
323 | UIDropDownMenu_SetText("Left", SettingsDirectionMenu)
324 | end
325 | for i=table.maxn(spellTable)-1,0,-1 do
326 | if replayTexture[i] == nil then
327 | break
328 | else
329 | replayTexture[i]:Hide()
330 | replayTexture[i] = nil
331 | if replayRank[i] ~= nil then
332 | replayRank[i]:Hide()
333 | replayRank[i] = nil
334 | end
335 | if replayDamage[i] ~= nil then
336 | replayDamage[i]:Hide()
337 | replayDamage[i] = nil
338 | end
339 | if replayFont[i] ~= nil then
340 | replayFont[i]:Hide()
341 | replayFont[i] = nil
342 | end
343 | if replayFailTexture[i] ~= nil then
344 | replayFailTexture[i]:Hide()
345 | replayFailTexture[i] = nil
346 | end
347 | if replayUpperTexture[i] ~= nil then
348 | replayUpperTexture[i]:Hide()
349 | replayUpperTexture[i] = nil
350 | end
351 | if replayUpperFailTexture[i] ~= nil then
352 | replayUpperFailTexture[i]:Hide()
353 | replayUpperFailTexture[i] = nil
354 | end
355 | end
356 | end
357 | end
358 | end
359 | UIDropDownMenu_AddButton(directionInitMenu)
360 | end)
361 |
362 | local SettingsCropTexButton = CreateFrame("CheckButton", "SettingsCropTexButton", ReplaySettingsGeneralPanel, "InterfaceOptionsCheckButtonTemplate")
363 | SettingsCropTexButton:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 25, -150)
364 | SettingsCropTexButton:SetHitRectInsets(0, -120, 0, 0)
365 | SettingsCropTexButton:SetWidth(25)
366 | SettingsCropTexButton:SetHeight(25)
367 | SettingsCropTexButton:SetScript("OnClick", function()
368 | if SettingsCropTexButton:GetChecked() then
369 | replaySavedSettings[16] = 1
370 | for i=table.maxn(spellTable)-1,0,-1 do
371 | if replayTexture[i] ~= nil then
372 | replayTexture[i]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
373 | else
374 | break
375 | end
376 | end
377 | else
378 | replaySavedSettings[16] = 0
379 | for i=table.maxn(spellTable)-1,0,-1 do
380 | if replayTexture[i] ~= nil then
381 | replayTexture[i]:SetTexCoord(0, 1, 0, 1)
382 | else
383 | break
384 | end
385 | end
386 | end
387 | end)
388 |
389 | local SettingsCropTexFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
390 | SettingsCropTexFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 50, -155)
391 | SettingsCropTexFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
392 | SettingsCropTexFont:SetTextColor(1, 1, 1)
393 | SettingsCropTexFont:SetText("Crop spell borders")
394 |
395 | local SettingsSpeedSubtitle = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
396 | SettingsSpeedSubtitle:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 15, -210)
397 | SettingsSpeedSubtitle:SetFont("Fonts\\FRIZQT__.TTF", 10)
398 | SettingsSpeedSubtitle:SetTextColor(1, 1, 1)
399 | SettingsSpeedSubtitle:SetText("Scrolling speed settings")
400 |
401 | local SettingsPushSpeedFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
402 | SettingsPushSpeedFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 60, -235)
403 | SettingsPushSpeedFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
404 | SettingsPushSpeedFont:SetText("Push speed |cffffffff(i)")
405 |
406 | local SettingsPushSpeedInfoFrame = CreateFrame("Frame", "SettingsPushSpeedInfoFrame", ReplaySettingsGeneralPanel)
407 | SettingsPushSpeedInfoFrame:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 136, -235)
408 | SettingsPushSpeedInfoFrame:SetWidth(15)
409 | SettingsPushSpeedInfoFrame:SetHeight(15)
410 | SettingsPushSpeedInfoFrame:EnableMouse(true)
411 | SettingsPushSpeedInfoFrame:SetScript("OnEnter", function()
412 | GameTooltip:SetOwner(SettingsPushSpeedInfoFrame, "ANCHOR_RIGHT", 10, -10)
413 | GameTooltip:SetText("high amount of spells in quick succession")
414 | GameTooltip:Show()
415 | end)
416 | SettingsPushSpeedInfoFrame:SetScript("OnLeave", function()
417 | GameTooltip:Hide()
418 | end)
419 |
420 | local SettingsPushSpeedSlider = CreateFrame("Slider", "SettingsPushSpeedSlider", ReplaySettingsGeneralPanel, "OptionsSliderTemplate")
421 | SettingsPushSpeedSlider:ClearAllPoints()
422 | SettingsPushSpeedSlider:SetPoint("TOPLEFT", 20, -250)
423 | SettingsPushSpeedSlider:SetMinMaxValues(0, 24)
424 | SettingsPushSpeedSlider:SetWidth(150)
425 | SettingsPushSpeedSliderLow:SetText(" |cffffffff30")
426 | SettingsPushSpeedSliderHigh:SetText("|cffffffff150 ")
427 | SettingsPushSpeedSlider:SetValueStep(1)
428 | SettingsPushSpeedSlider:SetHitRectInsets(0, 0, -5, -5)
429 | SettingsPushSpeedSlider:SetScript("OnMouseUp", function(self, button)
430 | replaySavedSettings[17] = 30 + SettingsPushSpeedSlider:GetValue() * 5
431 | end)
432 | SettingsPushSpeedSlider:SetScript("OnValueChanged", function()
433 | replaySavedSettings[17] = 30 + SettingsPushSpeedSlider:GetValue() * 5
434 | GameTooltip:SetOwner(SettingsPushSpeedSlider, "ANCHOR_TOP", 120, 20)
435 | GameTooltip:SetText("Push speed: "..replaySavedSettings[17])
436 | GameTooltip:Show()
437 | GameTooltip:FadeOut()
438 | end)
439 | SettingsPushSpeedSlider:SetScript("OnEnter", function()
440 | replaySavedSettings[17] = 30 + SettingsPushSpeedSlider:GetValue() * 5
441 | GameTooltip:SetOwner(SettingsPushSpeedSlider, "ANCHOR_TOP", 120, 20)
442 | GameTooltip:SetText("Push speed: "..replaySavedSettings[17])
443 | GameTooltip:Show()
444 | GameTooltip:FadeOut()
445 | end)
446 |
447 | local SettingsBaseSpeedFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
448 | SettingsBaseSpeedFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 60, -285)
449 | SettingsBaseSpeedFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
450 | SettingsBaseSpeedFont:SetText("Base speed")
451 |
452 | local SettingsBaseSpeedSlider = CreateFrame("Slider", "SettingsBaseSpeedSlider", ReplaySettingsGeneralPanel, "OptionsSliderTemplate")
453 | SettingsBaseSpeedSlider:ClearAllPoints()
454 | SettingsBaseSpeedSlider:SetPoint("TOPLEFT", 20, -300)
455 | SettingsBaseSpeedSlider:SetMinMaxValues(0, 20)
456 | SettingsBaseSpeedSlider:SetWidth(150)
457 | SettingsBaseSpeedSliderLow:SetText(" |cffffffff0")
458 | SettingsBaseSpeedSliderHigh:SetText("|cffffffff100 ")
459 | SettingsBaseSpeedSlider:SetValueStep(1)
460 | SettingsBaseSpeedSlider:SetHitRectInsets(0, 0, -5, -5)
461 | SettingsBaseSpeedSlider:SetScript("OnMouseUp", function(self, button)
462 | replaySavedSettings[18] = SettingsBaseSpeedSlider:GetValue() * 5
463 | end)
464 | SettingsBaseSpeedSlider:SetScript("OnValueChanged", function()
465 | replaySavedSettings[18] = SettingsBaseSpeedSlider:GetValue() * 5
466 | GameTooltip:SetOwner(SettingsBaseSpeedSlider, "ANCHOR_TOP", 120, 20)
467 | GameTooltip:SetText("Base speed "..replaySavedSettings[18])
468 | GameTooltip:Show()
469 | GameTooltip:FadeOut()
470 | end)
471 | SettingsBaseSpeedSlider:SetScript("OnEnter", function()
472 | replaySavedSettings[18] = SettingsBaseSpeedSlider:GetValue() * 5
473 | GameTooltip:SetOwner(SettingsBaseSpeedSlider, "ANCHOR_TOP", 120, 20)
474 | GameTooltip:SetText("Base speed: "..replaySavedSettings[18])
475 | GameTooltip:Show()
476 | GameTooltip:FadeOut()
477 | end)
478 |
479 | local SettingsCastingSpeedFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
480 | SettingsCastingSpeedFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 51, -335)
481 | SettingsCastingSpeedFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
482 | SettingsCastingSpeedFont:SetText("Casting speed")
483 |
484 | local SettingsCastingSpeedSlider = CreateFrame("Slider", "SettingsCastingSpeedSlider", ReplaySettingsGeneralPanel, "OptionsSliderTemplate")
485 | SettingsCastingSpeedSlider:ClearAllPoints()
486 | SettingsCastingSpeedSlider:SetPoint("TOPLEFT", 20, -350)
487 | SettingsCastingSpeedSlider:SetMinMaxValues(0, 20)
488 | SettingsCastingSpeedSlider:SetWidth(150)
489 | SettingsCastingSpeedSliderLow:SetText(" |cffffffff0")
490 | SettingsCastingSpeedSliderHigh:SetText("|cffffffff100 ")
491 | SettingsCastingSpeedSlider:SetValueStep(1)
492 | SettingsCastingSpeedSlider:SetHitRectInsets(0, 0, -5, -5)
493 | SettingsCastingSpeedSlider:SetScript("OnMouseUp", function(self, button)
494 | replaySavedSettings[19] = SettingsCastingSpeedSlider:GetValue() * 5
495 | end)
496 | SettingsCastingSpeedSlider:SetScript("OnValueChanged", function()
497 | replaySavedSettings[19] = SettingsCastingSpeedSlider:GetValue() * 5
498 | GameTooltip:SetOwner(SettingsCastingSpeedSlider, "ANCHOR_TOP", 120, 20)
499 | GameTooltip:SetText("Casting speed: "..replaySavedSettings[19])
500 | GameTooltip:Show()
501 | GameTooltip:FadeOut()
502 | end)
503 | SettingsCastingSpeedSlider:SetScript("OnEnter", function()
504 | replaySavedSettings[19] = SettingsCastingSpeedSlider:GetValue() * 5
505 | GameTooltip:SetOwner(SettingsCastingSpeedSlider, "ANCHOR_TOP", 120, 20)
506 | GameTooltip:SetText("Casting speed: "..replaySavedSettings[19])
507 | GameTooltip:Show()
508 | GameTooltip:FadeOut()
509 | end)
510 |
511 | local SettingsSpellNbFont = ReplaySettingsGeneralPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
512 | SettingsSpellNbFont:SetPoint("TOPLEFT", ReplaySettingsGeneralPanel, 202, -165)
513 | SettingsSpellNbFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
514 | SettingsSpellNbFont:SetText("Nb. of spells to display")
515 |
516 | local SettingsSpellNbSlider = CreateFrame("Slider", "SettingsSpellNbSlider", ReplaySettingsGeneralPanel, "OptionsSliderTemplate")
517 | SettingsSpellNbSlider:ClearAllPoints()
518 | SettingsSpellNbSlider:SetPoint("TOPLEFT", 200, -180)
519 | SettingsSpellNbSlider:SetMinMaxValues(0, 4)
520 | SettingsSpellNbSlider:SetWidth(150)
521 | SettingsSpellNbSliderLow:SetText(" |cffffffff2")
522 | SettingsSpellNbSliderHigh:SetText("|cffffffff6 ")
523 | SettingsSpellNbSlider:SetValueStep(1)
524 | SettingsSpellNbSlider:SetHitRectInsets(0, 0, -5, -5)
525 | SettingsSpellNbSlider:SetScript("OnMouseUp", function(self, button)
526 | replaySavedSettings[20] = SettingsSpellNbSlider:GetValue() + 2
527 | end)
528 | SettingsSpellNbSlider:SetScript("OnValueChanged", function()
529 | replaySavedSettings[20] = SettingsSpellNbSlider:GetValue() + 2
530 | GameTooltip:SetOwner(SettingsSpellNbSlider, "ANCHOR_TOP", 120, 20)
531 | GameTooltip:SetText("Displayed: "..replaySavedSettings[20].." spells")
532 | GameTooltip:Show()
533 | GameTooltip:FadeOut()
534 | end)
535 | SettingsSpellNbSlider:SetScript("OnEnter", function()
536 | replaySavedSettings[20] = SettingsSpellNbSlider:GetValue() + 2
537 | GameTooltip:SetOwner(SettingsSpellNbSlider, "ANCHOR_TOP", 120, 20)
538 | GameTooltip:SetText("Displayed: "..replaySavedSettings[20].." spells")
539 | GameTooltip:Show()
540 | GameTooltip:FadeOut()
541 | end)
542 |
543 | --
544 |
545 | local SettingsResistsTitle = ReplaySettingsResistsPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal") -- Resists settings
546 | SettingsResistsTitle:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 15, -15)
547 | SettingsResistsTitle:SetFont("Fonts\\FRIZQT__.TTF", 17)
548 | SettingsResistsTitle:SetText("SpellReplay")
549 |
550 | local SettingsResistsSubtitle = ReplaySettingsResistsPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
551 | SettingsResistsSubtitle:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 15, -40)
552 | SettingsResistsSubtitle:SetFont("Fonts\\FRIZQT__.TTF", 10)
553 | SettingsResistsSubtitle:SetTextColor(1, 1, 1)
554 | SettingsResistsSubtitle:SetText("Resists settings")
555 |
556 | local SettingsDisplayResistsButton = CreateFrame("CheckButton", nil, ReplaySettingsResistsPanel, "InterfaceOptionsCheckButtonTemplate")
557 | SettingsDisplayResistsButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 25, -60)
558 | SettingsDisplayResistsButton:SetHitRectInsets(0, -100, 0, 0)
559 | SettingsDisplayResistsButton:SetWidth(25)
560 | SettingsDisplayResistsButton:SetHeight(25)
561 | SettingsDisplayResistsButton:SetScript("OnClick", function()
562 | if SettingsDisplayResistsButton:GetChecked() then
563 | replaySavedSettings[21] = 1
564 | SettingsResistsOnFrameButton:Enable()
565 | SettingsResistsOnFrameFont:SetTextColor(1, 1, 1)
566 | SettingsResistsOnChatFrameButton:Enable()
567 | SettingsResistsOnChatFrameFont:SetTextColor(1, 1, 1)
568 | SettingsResistsOnPartyButton:Enable()
569 | SettingsResistsOnPartyFont:SetTextColor(1, 1, 1)
570 | if SettingsResistsOnPartyButton:GetChecked() then
571 | DisplayToPartyAddButton:Enable()
572 | DisplayToPartyDelButton:Enable()
573 | for i,value in pairs(displayToPartyTable) do
574 | if _G["SettingsListContentButton"..i] ~= nil then
575 | _G["SettingsListContentButton"..i]:Enable()
576 | _G["SettingsListContentButton"..i]:SetTextColor(1, 1, 1)
577 | end
578 | end
579 | end
580 | else
581 | replaySavedSettings[21] = 0
582 | SettingsResistsOnFrameButton:Disable()
583 | SettingsResistsOnFrameFont:SetTextColor(0.5, 0.5, 0.5)
584 | SettingsResistsOnChatFrameButton:Disable()
585 | SettingsResistsOnChatFrameFont:SetTextColor(0.5, 0.5, 0.5)
586 | SettingsResistsOnPartyButton:Disable()
587 | SettingsResistsOnPartyFont:SetTextColor(0.5, 0.5, 0.5)
588 | DisplayToPartyAddButton:Disable()
589 | DisplayToPartyDelButton:Disable()
590 | for i,value in pairs(displayToPartyTable) do
591 | if _G["SettingsListContentButton"..i] ~= nil then
592 | _G["SettingsListContentButton"..i]:SetTextColor(0.5, 0.5, 0.5)
593 | _G["SettingsListContentButton"..i]:Disable()
594 | end
595 | end
596 | end
597 | end)
598 |
599 | local SettingsDisplayResistsFont = ReplaySettingsResistsPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
600 | SettingsDisplayResistsFont:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 50, -65)
601 | SettingsDisplayResistsFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
602 | SettingsDisplayResistsFont:SetTextColor(1, 1, 1)
603 | SettingsDisplayResistsFont:SetText("Display resists")
604 |
605 | local SettingsResistsOnFrameButton = CreateFrame("CheckButton", "SettingsResistsOnFrameButton", ReplaySettingsResistsPanel, "InterfaceOptionsCheckButtonTemplate")
606 | SettingsResistsOnFrameButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 40, -85)
607 | SettingsResistsOnFrameButton:SetHitRectInsets(0, -80, 0, 0)
608 | SettingsResistsOnFrameButton:SetWidth(25)
609 | SettingsResistsOnFrameButton:SetHeight(25)
610 | SettingsResistsOnFrameButton:SetScript("OnClick", function()
611 | if SettingsResistsOnFrameButton:GetChecked() then
612 | replaySavedSettings[22] = 1
613 | else
614 | replaySavedSettings[22] = 0
615 | end
616 | end)
617 |
618 | local SettingsResistsOnFrameFont = ReplaySettingsResistsPanel:CreateFontString("SettingsResistsOnFrameFont", "ARTWORK", "GameFontNormal")
619 | SettingsResistsOnFrameFont:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 65, -90)
620 | SettingsResistsOnFrameFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
621 | SettingsResistsOnFrameFont:SetTextColor(1, 1, 1)
622 | SettingsResistsOnFrameFont:SetText("On the frame")
623 |
624 | local SettingsResistsOnChatFrameButton = CreateFrame("CheckButton", "SettingsResistsOnChatFrameButton", ReplaySettingsResistsPanel, "InterfaceOptionsCheckButtonTemplate")
625 | SettingsResistsOnChatFrameButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 40, -105)
626 | SettingsResistsOnChatFrameButton:SetHitRectInsets(0, -105, 0, 0)
627 | SettingsResistsOnChatFrameButton:SetWidth(25)
628 | SettingsResistsOnChatFrameButton:SetHeight(25)
629 | SettingsResistsOnChatFrameButton:SetScript("OnClick", function()
630 | if SettingsResistsOnChatFrameButton:GetChecked() then
631 | replaySavedSettings[23] = 1
632 | else
633 | replaySavedSettings[23] = 0
634 | end
635 | end)
636 |
637 | local SettingsResistsOnChatFrameFont = ReplaySettingsResistsPanel:CreateFontString("SettingsResistsOnChatFrameFont", "ARTWORK", "GameFontNormal")
638 | SettingsResistsOnChatFrameFont:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 65, -110)
639 | SettingsResistsOnChatFrameFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
640 | SettingsResistsOnChatFrameFont:SetTextColor(1, 1, 1)
641 | SettingsResistsOnChatFrameFont:SetText("On the chat")
642 |
643 | local SettingsResistsOnPartyButton = CreateFrame("CheckButton", "SettingsResistsOnPartyButton", ReplaySettingsResistsPanel, "InterfaceOptionsCheckButtonTemplate")
644 | SettingsResistsOnPartyButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 40, -125)
645 | SettingsResistsOnPartyButton:SetHitRectInsets(0, -130, 0, 0)
646 | SettingsResistsOnPartyButton:SetWidth(25)
647 | SettingsResistsOnPartyButton:SetHeight(25)
648 | SettingsResistsOnPartyButton:SetScript("OnClick", function()
649 | if SettingsResistsOnPartyButton:GetChecked() then
650 | replaySavedSettings[24] = 1
651 | DisplayToPartyAddButton:Enable()
652 | DisplayToPartyDelButton:Enable()
653 | for i,value in pairs(displayToPartyTable) do
654 | if _G["SettingsListContentButton"..i] ~= nil then
655 | _G["SettingsListContentButton"..i]:Enable()
656 | _G["SettingsListContentButton"..i]:SetTextColor(1, 1, 1)
657 | end
658 | end
659 | else
660 | replaySavedSettings[24] = 0
661 | DisplayToPartyAddButton:Disable()
662 | DisplayToPartyDelButton:Disable()
663 | for i,value in pairs(displayToPartyTable) do
664 | if _G["SettingsListContentButton"..i] ~= nil then
665 | _G["SettingsListContentButton"..i]:SetTextColor(0.5, 0.5, 0.5)
666 | _G["SettingsListContentButton"..i]:Disable()
667 | end
668 | end
669 | end
670 | end)
671 |
672 | local SettingsResistsOnPartyFont = ReplaySettingsResistsPanel:CreateFontString("SettingsResistsOnPartyFont", "ARTWORK", "GameFontNormal")
673 | SettingsResistsOnPartyFont:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 65, -130)
674 | SettingsResistsOnPartyFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
675 | SettingsResistsOnPartyFont:SetTextColor(1, 1, 1)
676 | SettingsResistsOnPartyFont:SetText("On /party for the spells listed below:")
677 |
678 | local SettingsListBorder = CreateFrame("Frame", "SettingsListBorder", ReplaySettingsResistsPanel)
679 | SettingsListBorder:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 80, -150)
680 | SettingsListBorder:SetWidth(160)
681 | SettingsListBorder:SetHeight(150)
682 | SettingsListBorder:SetBackdrop({
683 | edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
684 | tile = false,
685 | edgeSize = 16,
686 | insets = { left = 3, right = 3, top = 3, bottom = 3 }
687 | })
688 |
689 | local SettingsListFrame = CreateFrame("Frame", nil, SettingsListBorder)
690 | SettingsListFrame:SetPoint("CENTER")
691 | SettingsListFrame:SetWidth(160)
692 | SettingsListFrame:SetHeight(150)
693 |
694 | local SettingsListTexture = SettingsListFrame:CreateTexture()
695 | SettingsListTexture:SetWidth(156)
696 | SettingsListTexture:SetHeight(146)
697 | SettingsListTexture:SetPoint("CENTER")
698 | SettingsListTexture:SetTexture(0, 0, 0, 0.5)
699 |
700 | local SettingsListScrollFrame = CreateFrame("ScrollFrame", "SettingsListScrollFrame", SettingsListFrame)
701 | SettingsListScrollFrame:SetPoint("TOPLEFT", 4, -5)
702 | SettingsListScrollFrame:SetPoint("BOTTOMRIGHT", 4, 4)
703 | SettingsListScrollFrame:SetWidth(160)
704 | SettingsListScrollFrame:SetHeight(150)
705 |
706 | local SettingsListScrollBar = CreateFrame("Slider", nil, SettingsListScrollFrame, "UIPanelScrollBarTemplate")
707 | SettingsListScrollBar:SetPoint("TOPRIGHT", SettingsListFrame, "TOPRIGHT", -4, -20)
708 | SettingsListScrollBar:SetPoint("BOTTOMRIGHT", SettingsListFrame, "BOTTOMRIGHT", -4, 19)
709 | SettingsListScrollBar:SetMinMaxValues(0, 0)
710 | SettingsListScrollBar:SetValueStep(20)
711 | SettingsListScrollBar.scrollStep = 1
712 | SettingsListScrollBar:SetValue(0)
713 | SettingsListScrollBar:SetWidth(16)
714 | SettingsListScrollBar:SetScript("OnValueChanged", function(self, value)
715 | local scrollBarMin, scrollBarMax = SettingsListScrollBar:GetMinMaxValues()
716 | if SettingsListScrollBar:GetValue() == scrollBarMin then
717 | SettingsListScrollFrameScrollUpButton:Disable()
718 | elseif SettingsListScrollFrameScrollUpButton:IsEnabled() == 0 then
719 | SettingsListScrollFrameScrollUpButton:Enable()
720 | end
721 | if SettingsListScrollBar:GetValue() == scrollBarMax then
722 | SettingsListScrollFrameScrollDownButton:Disable()
723 | elseif SettingsListScrollFrameScrollDownButton:IsEnabled() == 0 then
724 | SettingsListScrollFrameScrollDownButton:Enable()
725 | end
726 | self:GetParent():SetVerticalScroll(value)
727 | end)
728 | SettingsListScrollFrameScrollUpButton:Disable()
729 | SettingsListScrollFrameScrollUpButton:SetScript("OnClick", function()
730 | SettingsListScrollBar:SetValue(SettingsListScrollBar:GetValue() - 20)
731 | PlaySound("UChatScrollButton")
732 | end)
733 | SettingsListScrollFrameScrollDownButton:Disable()
734 | SettingsListScrollFrameScrollDownButton:SetScript("OnClick", function()
735 | SettingsListScrollBar:SetValue(SettingsListScrollBar:GetValue() + 20)
736 | PlaySound("UChatScrollButton")
737 | end)
738 | SettingsListScrollFrame.SettingsListScrollBar = SettingsListScrollBar
739 |
740 | local SettingsListScrollBarBackground = SettingsListScrollBar:CreateTexture(nil,"BACKGROUND")
741 | SettingsListScrollBarBackground:SetAllPoints()
742 | SettingsListScrollBarBackground:SetTexture(0,0,0,0.6)
743 |
744 | local SettingsListContentFrame = CreateFrame("Frame", nil, SettingsListScrollFrame)
745 | SettingsListContentFrame:SetWidth(160)
746 | SettingsListContentFrame:SetHeight(150)
747 |
748 | SettingsListScrollFrame.SettingsListContentFrame = SettingsListContentFrame
749 | SettingsListScrollFrame:SetScrollChild(SettingsListContentFrame)
750 |
751 | SettingsListScrollFrame:EnableMouseWheel(true)
752 | SettingsListScrollFrame:SetScript("OnMouseWheel", function(self, delta)
753 | local scrollBarMin, scrollBarMax = SettingsListScrollBar:GetMinMaxValues()
754 | if delta < 0 and SettingsListScrollBar:GetValue() < scrollBarMax then
755 | SettingsListScrollBar:SetValue(SettingsListScrollBar:GetValue() + 20)
756 | elseif delta > 0 and SettingsListScrollBar:GetValue() > scrollBarMin then
757 | SettingsListScrollBar:SetValue(SettingsListScrollBar:GetValue() - 20)
758 | end
759 | end)
760 |
761 | local displayToPartySelection = 0
762 | local function DisplayToPartyListing()
763 | for i,value in pairs(displayToPartyTable) do
764 | if _G["SettingsListContentButton"..i] == nil then
765 | _G["SettingsListContentButton"..i] = CreateFrame("Button", "SettingsListContentButton"..i, SettingsListContentFrame, "FriendsFrameIgnoreButtonTemplate")
766 | _G["SettingsListContentButton"..i]:SetPoint("TOPLEFT", 0, -20 * (i-1))
767 | _G["SettingsListContentButton"..i]:SetWidth(140)
768 | _G["SettingsListContentButton"..i]:SetHeight(20)
769 | _G["SettingsListContentFont"..i] = SettingsListContentFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
770 | _G["SettingsListContentFont"..i]:SetPoint("LEFT", _G["SettingsListContentButton"..i], 12, 0)
771 | _G["SettingsListContentFont"..i]:SetTextColor(1, 1, 1)
772 | _G["SettingsListContentButton"..i]:SetHighlightTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight")
773 | _G["SettingsListContentButton"..i]:SetScript("OnClick", function()
774 | for k=1,#displayToPartyTable do
775 | if k == tonumber(select(3, strfind(_G["SettingsListContentButton"..i]:GetName(), "(%d+)"))) then
776 | _G["SettingsListContentButton"..i]:LockHighlight()
777 | displayToPartySelection = i
778 | else
779 | _G["SettingsListContentButton"..k]:UnlockHighlight()
780 | end
781 | end
782 | end)
783 | end
784 | _G["SettingsListContentFont"..i]:SetText(value)
785 | _G["SettingsListContentButton"..i]:Show()
786 | if i == #displayToPartyTable then
787 | SettingsListScrollBar:SetMinMaxValues(0, max(0,(i-7)*20))
788 | if i > 7 then
789 | SettingsListScrollFrameScrollDownButton:Enable()
790 | else
791 | SettingsListScrollFrameScrollDownButton:Disable()
792 | end
793 | end
794 | end
795 | end
796 |
797 | local DisplayToPartyAddButton = CreateFrame("Button", "DisplayToPartyAddButton", ReplaySettingsResistsPanel, "UIPanelButtonTemplate")
798 | DisplayToPartyAddButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 85, -300)
799 | DisplayToPartyAddButton:SetWidth(75)
800 | DisplayToPartyAddButton:SetHeight(25)
801 | DisplayToPartyAddButton:SetText("Add new")
802 | DisplayToPartyAddButton:SetScript("OnClick", function()
803 | StaticPopupDialogs["ADDPARTYSPELL_POPUP"] = {
804 | text = "Type the name of the spell you want to add\n(Capital letters are important)",
805 | button1 = "Add",
806 | button2 = "Cancel",
807 | OnShow = function()
808 | StaticPopup1EditBox:SetText("")
809 | end,
810 | OnAccept = function()
811 | if StaticPopup1EditBox:GetText() ~= "" then
812 | tinsert(displayToPartyTable, StaticPopup1EditBox:GetText())
813 | sort(displayToPartyTable)
814 | DisplayToPartyListing()
815 | end
816 | end,
817 | EditBoxOnEnterPressed = function()
818 | if StaticPopup1EditBox:GetText() ~= "" then
819 | tinsert(displayToPartyTable, StaticPopup1EditBox:GetText())
820 | sort(displayToPartyTable)
821 | DisplayToPartyListing()
822 | StaticPopup_Hide("ADDPARTYSPELL_POPUP")
823 | end
824 | end,
825 | EditBoxOnEscapePressed = function()
826 | StaticPopup_Hide("ADDPARTYSPELL_POPUP")
827 | end,
828 | exclusive = 1,
829 | hasEditBox = 1,
830 | hideOnEscape = 1,
831 | timeout = 0,
832 | whileDead = 1,
833 | }
834 | StaticPopup_Show ("ADDPARTYSPELL_POPUP")
835 | end)
836 |
837 | local DisplayToPartyDelButton = CreateFrame("Button", "DisplayToPartyDelButton", ReplaySettingsResistsPanel, "UIPanelButtonTemplate")
838 | DisplayToPartyDelButton:SetPoint("TOPLEFT", ReplaySettingsResistsPanel, 160, -300)
839 | DisplayToPartyDelButton:SetWidth(75)
840 | DisplayToPartyDelButton:SetHeight(25)
841 | DisplayToPartyDelButton:SetText("Delete")
842 | DisplayToPartyDelButton:SetScript("OnClick", function()
843 | if displayToPartySelection ~= 0 and displayToPartyTable[displayToPartySelection] ~= nil then
844 | _G["SettingsListContentButton"..displayToPartySelection]:UnlockHighlight()
845 | for i,value in pairs(displayToPartyTable) do
846 | _G["SettingsListContentFont"..i]:SetText("")
847 | _G["SettingsListContentButton"..i]:Hide()
848 | end
849 | tremove(displayToPartyTable, displayToPartySelection)
850 | sort(displayToPartyTable)
851 | displayToPartySelection = 0
852 | DisplayToPartyListing()
853 | end
854 | end)
855 |
856 | --
857 |
858 | local SettingsOptionalTitle = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
859 | SettingsOptionalTitle:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 15, -15)
860 | SettingsOptionalTitle:SetFont("Fonts\\FRIZQT__.TTF", 17)
861 | SettingsOptionalTitle:SetText("SpellReplay")
862 |
863 | local SettingsOptionalSubtitle = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
864 | SettingsOptionalSubtitle:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 15, -40)
865 | SettingsOptionalSubtitle:SetFont("Fonts\\FRIZQT__.TTF", 10)
866 | SettingsOptionalSubtitle:SetTextColor(1, 1, 1)
867 | SettingsOptionalSubtitle:SetText("Optional settings")
868 |
869 | local SettingsRanksButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate") -- Optional settings
870 | SettingsRanksButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 25, -60)
871 | SettingsRanksButton:SetHitRectInsets(0, -100, 0, 0)
872 | SettingsRanksButton:SetWidth(25)
873 | SettingsRanksButton:SetHeight(25)
874 | SettingsRanksButton:SetScript("OnClick", function()
875 | if SettingsRanksButton:GetChecked() then
876 | SettingsAllRanksButton:Enable()
877 | SettingsAllRanksFont:SetTextColor(1, 1, 1)
878 | SettingsRankOneButton:Enable()
879 | SettingsRankOneFont:SetTextColor(1, 1, 1)
880 | if SettingsAllRanksButton:GetChecked() then
881 | replaySavedSettings[31] = 1
882 | else
883 | SettingsRankOneButton:SetChecked(true)
884 | replaySavedSettings[31] = 2
885 | end
886 | else
887 | replaySavedSettings[31] = 0
888 | SettingsAllRanksButton:Disable()
889 | SettingsAllRanksFont:SetTextColor(0.5, 0.5, 0.5)
890 | SettingsRankOneButton:Disable()
891 | SettingsRankOneFont:SetTextColor(0.5, 0.5, 0.5)
892 | end
893 | end)
894 |
895 | local SettingsRanksFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
896 | SettingsRanksFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 50, -65)
897 | SettingsRanksFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
898 | SettingsRanksFont:SetTextColor(1, 1, 1)
899 | SettingsRanksFont:SetText("Display spell ranks")
900 |
901 | local SettingsAllRanksButton = CreateFrame("CheckButton", "SettingsAllRanksButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
902 | SettingsAllRanksButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -85)
903 | SettingsAllRanksButton:SetHitRectInsets(0, -80, 0, 0)
904 | SettingsAllRanksButton:SetWidth(25)
905 | SettingsAllRanksButton:SetHeight(25)
906 | SettingsAllRanksButton:SetScript("OnClick", function()
907 | if SettingsAllRanksButton:GetChecked() then
908 | replaySavedSettings[31] = 1
909 | SettingsAllRanksButton:SetChecked(true)
910 | SettingsRankOneButton:SetChecked(false)
911 | else
912 | replaySavedSettings[31] = 0
913 | SettingsRanksButton:SetChecked(false)
914 | SettingsAllRanksButton:SetChecked(false)
915 | SettingsAllRanksButton:SetButtonState("NORMAL")
916 | SettingsAllRanksButton:Disable()
917 | SettingsAllRanksFont:SetTextColor(0.5, 0.5, 0.5)
918 | SettingsRankOneButton:Disable()
919 | SettingsRankOneFont:SetTextColor(0.5, 0.5, 0.5)
920 | end
921 | end)
922 |
923 | local SettingsAllRanksFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsAllRanksFont", "ARTWORK", "GameFontNormal")
924 | SettingsAllRanksFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -90)
925 | SettingsAllRanksFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
926 | SettingsAllRanksFont:SetTextColor(1, 1, 1)
927 | SettingsAllRanksFont:SetText("All ranks")
928 |
929 | local SettingsRankOneButton = CreateFrame("CheckButton", "SettingsRankOneButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
930 | SettingsRankOneButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -105)
931 | SettingsRankOneButton:SetHitRectInsets(0, -105, 0, 0)
932 | SettingsRankOneButton:SetWidth(25)
933 | SettingsRankOneButton:SetHeight(25)
934 | SettingsRankOneButton:SetScript("OnClick", function()
935 | if SettingsRankOneButton:GetChecked() then
936 | replaySavedSettings[31] = 2
937 | SettingsAllRanksButton:SetChecked(false)
938 | SettingsRankOneButton:SetChecked(true)
939 | else
940 | replaySavedSettings[31] = 0
941 | SettingsRanksButton:SetChecked(false)
942 | SettingsAllRanksButton:SetChecked(false)
943 | SettingsRankOneButton:SetButtonState("NORMAL")
944 | SettingsAllRanksButton:Disable()
945 | SettingsAllRanksFont:SetTextColor(0.5, 0.5, 0.5)
946 | SettingsRankOneButton:Disable()
947 | SettingsRankOneFont:SetTextColor(0.5, 0.5, 0.5)
948 | end
949 | end)
950 |
951 | local SettingsRankOneFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsRankOneFont", "ARTWORK", "GameFontNormal")
952 | SettingsRankOneFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -110)
953 | SettingsRankOneFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
954 | SettingsRankOneFont:SetTextColor(1, 1, 1)
955 | SettingsRankOneFont:SetText("Rank 1 only")
956 |
957 | local SettingsWhiteHitsButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
958 | SettingsWhiteHitsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 25, -135)
959 | SettingsWhiteHitsButton:SetHitRectInsets(0, -100, 0, 0)
960 | SettingsWhiteHitsButton:SetWidth(25)
961 | SettingsWhiteHitsButton:SetHeight(25)
962 | SettingsWhiteHitsButton:SetScript("OnClick", function()
963 | if SettingsWhiteHitsButton:GetChecked() then
964 | SettingsMeleeWhiteHitsButton:Enable()
965 | SettingsMeleeWhiteHitsFont:SetTextColor(1, 1, 1)
966 | SettingsRangedWhiteHitsButton:Enable()
967 | SettingsRangedWhiteHitsFont:SetTextColor(1, 1, 1)
968 | if SettingsMeleeWhiteHitsButton:GetChecked() and SettingsRangedWhiteHitsButton:GetChecked() then
969 | replaySavedSettings[32] = 3
970 | elseif SettingsMeleeWhiteHitsButton:GetChecked() then
971 | replaySavedSettings[32] = 1
972 | else
973 | replaySavedSettings[32] = 2
974 | SettingsRangedWhiteHitsButton:SetChecked(true)
975 | end
976 | else
977 | replaySavedSettings[32] = 0
978 | SettingsMeleeWhiteHitsButton:Disable()
979 | SettingsMeleeWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
980 | SettingsRangedWhiteHitsButton:Disable()
981 | SettingsRangedWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
982 | end
983 | end)
984 |
985 | local SettingsWhiteHitsFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
986 | SettingsWhiteHitsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 50, -140)
987 | SettingsWhiteHitsFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
988 | SettingsWhiteHitsFont:SetTextColor(1, 1, 1)
989 | SettingsWhiteHitsFont:SetText("Display white hits")
990 |
991 | local SettingsMeleeWhiteHitsButton = CreateFrame("CheckButton", "SettingsMeleeWhiteHitsButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
992 | SettingsMeleeWhiteHitsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -160)
993 | SettingsMeleeWhiteHitsButton:SetHitRectInsets(0, -80, 0, 0)
994 | SettingsMeleeWhiteHitsButton:SetWidth(25)
995 | SettingsMeleeWhiteHitsButton:SetHeight(25)
996 | SettingsMeleeWhiteHitsButton:SetScript("OnClick", function()
997 | if SettingsMeleeWhiteHitsButton:GetChecked() then
998 | if SettingsRangedWhiteHitsButton:GetChecked() then
999 | replaySavedSettings[32] = 3
1000 | else
1001 | replaySavedSettings[32] = 1
1002 | end
1003 | else
1004 | if SettingsRangedWhiteHitsButton:GetChecked() then
1005 | replaySavedSettings[32] = 2
1006 | else
1007 | replaySavedSettings[32] = 0
1008 | SettingsWhiteHitsButton:SetChecked(false)
1009 | SettingsMeleeWhiteHitsButton:SetButtonState("NORMAL")
1010 | SettingsMeleeWhiteHitsButton:Disable()
1011 | SettingsMeleeWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1012 | SettingsRangedWhiteHitsButton:Disable()
1013 | SettingsRangedWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1014 | end
1015 | end
1016 | end)
1017 |
1018 | local SettingsMeleeWhiteHitsFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsMeleeWhiteHitsFont", "ARTWORK", "GameFontNormal")
1019 | SettingsMeleeWhiteHitsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -165)
1020 | SettingsMeleeWhiteHitsFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1021 | SettingsMeleeWhiteHitsFont:SetTextColor(1, 1, 1)
1022 | SettingsMeleeWhiteHitsFont:SetText("Melee white hits")
1023 |
1024 | local SettingsRangedWhiteHitsButton = CreateFrame("CheckButton", "SettingsRangedWhiteHitsButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1025 | SettingsRangedWhiteHitsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -180)
1026 | SettingsRangedWhiteHitsButton:SetHitRectInsets(0, -105, 0, 0)
1027 | SettingsRangedWhiteHitsButton:SetWidth(25)
1028 | SettingsRangedWhiteHitsButton:SetHeight(25)
1029 | SettingsRangedWhiteHitsButton:SetScript("OnClick", function()
1030 | if SettingsRangedWhiteHitsButton:GetChecked() then
1031 | if SettingsMeleeWhiteHitsButton:GetChecked() then
1032 | replaySavedSettings[32] = 3
1033 | else
1034 | replaySavedSettings[32] = 2
1035 | end
1036 | else
1037 | if SettingsMeleeWhiteHitsButton:GetChecked() then
1038 | replaySavedSettings[32] = 1
1039 | else
1040 | replaySavedSettings[32] = 0
1041 | SettingsWhiteHitsButton:SetChecked(false)
1042 | SettingsRangedWhiteHitsButton:SetButtonState("NORMAL")
1043 | SettingsMeleeWhiteHitsButton:Disable()
1044 | SettingsMeleeWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1045 | SettingsRangedWhiteHitsButton:Disable()
1046 | SettingsRangedWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1047 | end
1048 | end
1049 | end)
1050 |
1051 | local SettingsRangedWhiteHitsFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsRangedWhiteHitsFont", "ARTWORK", "GameFontNormal")
1052 | SettingsRangedWhiteHitsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -185)
1053 | SettingsRangedWhiteHitsFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1054 | SettingsRangedWhiteHitsFont:SetTextColor(1, 1, 1)
1055 | SettingsRangedWhiteHitsFont:SetText("Ranged white hits")
1056 |
1057 | local SettingsDamagesButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1058 | SettingsDamagesButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 25, -210)
1059 | SettingsDamagesButton:SetHitRectInsets(0, -100, 0, 0)
1060 | SettingsDamagesButton:SetWidth(25)
1061 | SettingsDamagesButton:SetHeight(25)
1062 | SettingsDamagesButton:SetScript("OnClick", function()
1063 | if SettingsDamagesButton:GetChecked() then
1064 | SettingsAllDamagesButton:Enable()
1065 | SettingsAllDamagesFont:SetTextColor(1, 1, 1)
1066 | SettingsCritDamagesButton:Enable()
1067 | SettingsCritDamagesFont:SetTextColor(1, 1, 1)
1068 | if SettingsCritDamagesButton:GetChecked() then
1069 | replaySavedSettings[33] = 2
1070 | else
1071 | SettingsAllDamagesButton:SetChecked(true)
1072 | replaySavedSettings[33] = 1
1073 | end
1074 | else
1075 | replaySavedSettings[33] = 0
1076 | SettingsAllDamagesButton:Disable()
1077 | SettingsAllDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1078 | SettingsCritDamagesButton:Disable()
1079 | SettingsCritDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1080 | end
1081 | end)
1082 |
1083 | local SettingsDamagesFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1084 | SettingsDamagesFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 50, -215)
1085 | SettingsDamagesFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
1086 | SettingsDamagesFont:SetTextColor(1, 1, 1)
1087 | SettingsDamagesFont:SetText("Display damages")
1088 |
1089 | local SettingsAllDamagesButton = CreateFrame("CheckButton", "SettingsAllDamagesButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1090 | SettingsAllDamagesButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -235)
1091 | SettingsAllDamagesButton:SetHitRectInsets(0, -80, 0, 0)
1092 | SettingsAllDamagesButton:SetWidth(25)
1093 | SettingsAllDamagesButton:SetHeight(25)
1094 | SettingsAllDamagesButton:SetScript("OnClick", function()
1095 | if SettingsAllDamagesButton:GetChecked() then
1096 | replaySavedSettings[33] = 1
1097 | SettingsAllDamagesButton:SetChecked(true)
1098 | SettingsCritDamagesButton:SetChecked(false)
1099 | else
1100 | replaySavedSettings[33] = 0
1101 | SettingsDamagesButton:SetChecked(false)
1102 | SettingsAllDamagesButton:SetChecked(false)
1103 | SettingsAllDamagesButton:SetButtonState("NORMAL")
1104 | SettingsAllDamagesButton:Disable()
1105 | SettingsAllDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1106 | SettingsCritDamagesButton:Disable()
1107 | SettingsCritDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1108 | end
1109 | end)
1110 |
1111 | local SettingsAllDamagesFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsAllDamagesFont", "ARTWORK", "GameFontNormal")
1112 | SettingsAllDamagesFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -240)
1113 | SettingsAllDamagesFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1114 | SettingsAllDamagesFont:SetTextColor(1, 1, 1)
1115 | SettingsAllDamagesFont:SetText("All damages")
1116 |
1117 | local SettingsCritDamagesButton = CreateFrame("CheckButton", "SettingsCritDamagesButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1118 | SettingsCritDamagesButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -255)
1119 | SettingsCritDamagesButton:SetHitRectInsets(0, -105, 0, 0)
1120 | SettingsCritDamagesButton:SetWidth(25)
1121 | SettingsCritDamagesButton:SetHeight(25)
1122 | SettingsCritDamagesButton:SetScript("OnClick", function()
1123 | if SettingsCritDamagesButton:GetChecked() then
1124 | replaySavedSettings[33] = 2
1125 | SettingsAllDamagesButton:SetChecked(false)
1126 | SettingsCritDamagesButton:SetChecked(true)
1127 | else
1128 | replaySavedSettings[33] = 0
1129 | SettingsDamagesButton:SetChecked(false)
1130 | SettingsCritDamagesButton:SetChecked(false)
1131 | SettingsCritDamagesButton:SetButtonState("NORMAL")
1132 | SettingsAllDamagesButton:Disable()
1133 | SettingsAllDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1134 | SettingsCritDamagesButton:Disable()
1135 | SettingsCritDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1136 | end
1137 | end)
1138 |
1139 | local SettingsCritDamagesFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsCritDamagesFont", "ARTWORK", "GameFontNormal")
1140 | SettingsCritDamagesFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -260)
1141 | SettingsCritDamagesFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1142 | SettingsCritDamagesFont:SetTextColor(1, 1, 1)
1143 | SettingsCritDamagesFont:SetText("Critical damages only")
1144 |
1145 | local SettingsHealsButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1146 | SettingsHealsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 25, -285)
1147 | SettingsHealsButton:SetHitRectInsets(0, -100, 0, 0)
1148 | SettingsHealsButton:SetWidth(25)
1149 | SettingsHealsButton:SetHeight(25)
1150 | SettingsHealsButton:SetScript("OnClick", function()
1151 | if SettingsHealsButton:GetChecked() then
1152 | SettingsAllHealsButton:Enable()
1153 | SettingsAllHealsFont:SetTextColor(1, 1, 1)
1154 | SettingsCritHealsButton:Enable()
1155 | SettingsCritHealsFont:SetTextColor(1, 1, 1)
1156 | if SettingsCritHealsButton:GetChecked() then
1157 | replaySavedSettings[34] = 2
1158 | else
1159 | SettingsAllHealsButton:SetChecked(true)
1160 | replaySavedSettings[34] = 1
1161 | end
1162 | else
1163 | replaySavedSettings[34] = 0
1164 | SettingsAllHealsButton:Disable()
1165 | SettingsAllHealsFont:SetTextColor(0.5, 0.5, 0.5)
1166 | SettingsCritHealsButton:Disable()
1167 | SettingsCritHealsFont:SetTextColor(0.5, 0.5, 0.5)
1168 | end
1169 | end)
1170 |
1171 | local SettingsHealsFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1172 | SettingsHealsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 50, -290)
1173 | SettingsHealsFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
1174 | SettingsHealsFont:SetTextColor(1, 1, 1)
1175 | SettingsHealsFont:SetText("Display heals")
1176 |
1177 | local SettingsAllHealsButton = CreateFrame("CheckButton", "SettingsAllHealsButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1178 | SettingsAllHealsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -310)
1179 | SettingsAllHealsButton:SetHitRectInsets(0, -80, 0, 0)
1180 | SettingsAllHealsButton:SetWidth(25)
1181 | SettingsAllHealsButton:SetHeight(25)
1182 | SettingsAllHealsButton:SetScript("OnClick", function()
1183 | if SettingsAllHealsButton:GetChecked() then
1184 | replaySavedSettings[34] = 1
1185 | SettingsAllHealsButton:SetChecked(true)
1186 | SettingsCritHealsButton:SetChecked(false)
1187 | else
1188 | replaySavedSettings[34] = 0
1189 | SettingsHealsButton:SetChecked(false)
1190 | SettingsAllHealsButton:SetChecked(false)
1191 | SettingsAllHealsButton:SetButtonState("NORMAL")
1192 | SettingsAllHealsButton:Disable()
1193 | SettingsAllHealsFont:SetTextColor(0.5, 0.5, 0.5)
1194 | SettingsCritHealsButton:Disable()
1195 | SettingsCritHealsFont:SetTextColor(0.5, 0.5, 0.5)
1196 | end
1197 | end)
1198 |
1199 | local SettingsAllHealsFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsAllHealsFont", "ARTWORK", "GameFontNormal")
1200 | SettingsAllHealsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -315)
1201 | SettingsAllHealsFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1202 | SettingsAllHealsFont:SetTextColor(1, 1, 1)
1203 | SettingsAllHealsFont:SetText("All heals")
1204 |
1205 | local SettingsCritHealsButton = CreateFrame("CheckButton", "SettingsCritHealsButton", ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1206 | SettingsCritHealsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 40, -330)
1207 | SettingsCritHealsButton:SetHitRectInsets(0, -105, 0, 0)
1208 | SettingsCritHealsButton:SetWidth(25)
1209 | SettingsCritHealsButton:SetHeight(25)
1210 | SettingsCritHealsButton:SetScript("OnClick", function()
1211 | if SettingsCritHealsButton:GetChecked() then
1212 | replaySavedSettings[34] = 2
1213 | SettingsAllHealsButton:SetChecked(false)
1214 | SettingsCritHealsButton:SetChecked(true)
1215 | else
1216 | replaySavedSettings[34] = 0
1217 | SettingsHealsButton:SetChecked(false)
1218 | SettingsCritHealsButton:SetChecked(false)
1219 | SettingsCritHealsButton:SetButtonState("NORMAL")
1220 | SettingsAllHealsButton:Disable()
1221 | SettingsAllHealsFont:SetTextColor(0.5, 0.5, 0.5)
1222 | SettingsCritHealsButton:Disable()
1223 | SettingsCritHealsFont:SetTextColor(0.5, 0.5, 0.5)
1224 | end
1225 | end)
1226 |
1227 | local SettingsCritHealsFont = ReplaySettingsOptionalPanel:CreateFontString("SettingsCritHealsFont", "ARTWORK", "GameFontNormal")
1228 | SettingsCritHealsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 65, -335)
1229 | SettingsCritHealsFont:SetFont("Fonts\\FRIZQT__.TTF", 10)
1230 | SettingsCritHealsFont:SetTextColor(1, 1, 1)
1231 | SettingsCritHealsFont:SetText("Critical heals only")
1232 |
1233 | local SettingsManaButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1234 | SettingsManaButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 25, -360)
1235 | SettingsManaButton:SetHitRectInsets(0, -100, 0, 0)
1236 | SettingsManaButton:SetWidth(25)
1237 | SettingsManaButton:SetHeight(25)
1238 | SettingsManaButton:SetScript("OnClick", function()
1239 | if SettingsManaButton:GetChecked() then
1240 | replaySavedSettings[35] = 1
1241 | else
1242 | replaySavedSettings[35] = 0
1243 | end
1244 | end)
1245 |
1246 | local SettingsManaFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1247 | SettingsManaFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 50, -365)
1248 | SettingsManaFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
1249 | SettingsManaFont:SetTextColor(1, 1, 1)
1250 | SettingsManaFont:SetText("Display mana gains")
1251 |
1252 | local SettingsPetSpellsButton = CreateFrame("CheckButton", nil, ReplaySettingsOptionalPanel, "InterfaceOptionsCheckButtonTemplate")
1253 | SettingsPetSpellsButton:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 200, -60)
1254 | SettingsPetSpellsButton:SetHitRectInsets(0, -100, 0, 0)
1255 | SettingsPetSpellsButton:SetWidth(25)
1256 | SettingsPetSpellsButton:SetHeight(25)
1257 | SettingsPetSpellsButton:SetScript("OnClick", function()
1258 | if SettingsPetSpellsButton:GetChecked() then
1259 | replaySavedSettings[36] = 1
1260 | else
1261 | replaySavedSettings[36] = 0
1262 | end
1263 | end)
1264 |
1265 | local SettingsPetSpellsFont = ReplaySettingsOptionalPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1266 | SettingsPetSpellsFont:SetPoint("TOPLEFT", ReplaySettingsOptionalPanel, 225, -65)
1267 | SettingsPetSpellsFont:SetFont("Fonts\\FRIZQT__.TTF", 13)
1268 | SettingsPetSpellsFont:SetTextColor(1, 1, 1)
1269 | SettingsPetSpellsFont:SetText("Display pet spells")
1270 |
1271 | --
1272 |
1273 | StaticPopupDialogs["REPLAYRESET_POPUP"] = {
1274 | text = "",
1275 | button1 = "Yes",
1276 | button2 = "Cancel",
1277 | OnShow = function()
1278 | if ReplaySettingsGeneralPanel:IsShown() then
1279 | StaticPopup1Text:SetText("Reset General settings to default?")
1280 | elseif ReplaySettingsResistsPanel:IsShown() then
1281 | StaticPopup1Text:SetText("Reset Resists settings to default?")
1282 | elseif ReplaySettingsOptionalPanel:IsShown() then
1283 | StaticPopup1Text:SetText("Reset Optional settings to default?")
1284 | end
1285 | end,
1286 | OnAccept = function()
1287 | if ReplaySettingsGeneralPanel:IsShown() then
1288 | replaySavedSettings[11] = 1
1289 | SettingsEnableButton:SetChecked(true)
1290 | ReplayFrame:ClearAllPoints()
1291 | ReplayFrame:SetPoint("CENTER")
1292 | ReplayFrame:Show()
1293 | replaySavedSettings[12] = 0
1294 | replaySavedSettings[13] = 1
1295 | SettingsBackgroundButton:SetChecked(true)
1296 | ReplayBackground:Show()
1297 | replaySavedSettings[14] = 1
1298 | SettingsScalingSlider:SetValue(2)
1299 | ReplayFrame:SetScale(1)
1300 | replaySavedSettings[15] = 1
1301 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
1302 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Right")
1303 | else
1304 | UIDropDownMenu_SetText("Right", SettingsDirectionMenu)
1305 | end
1306 | for i=table.maxn(spellTable)-1,0,-1 do
1307 | if replayTexture[i] ~= nil then
1308 | replayTexture[i]:Hide()
1309 | replayTexture[i] = nil
1310 | if replayRank[i] ~= nil then
1311 | replayRank[i]:Hide()
1312 | replayRank[i] = nil
1313 | end
1314 | if replayDamage[i] ~= nil then
1315 | replayDamage[i]:Hide()
1316 | replayDamage[i] = nil
1317 | end
1318 | if replayFont[i] ~= nil then
1319 | replayFont[i]:Hide()
1320 | replayFont[i] = nil
1321 | end
1322 | if replayFailTexture[i] ~= nil then
1323 | replayFailTexture[i]:Hide()
1324 | replayFailTexture[i] = nil
1325 | end
1326 | if replayUpperTexture[i] ~= nil then
1327 | replayUpperTexture[i]:Hide()
1328 | replayUpperTexture[i] = nil
1329 | end
1330 | if replayUpperFailTexture[i] ~= nil then
1331 | replayUpperFailTexture[i]:Hide()
1332 | replayUpperFailTexture[i] = nil
1333 | end
1334 | else
1335 | break
1336 | end
1337 | end
1338 | replaySavedSettings[16] = 1
1339 | SettingsCropTexButton:SetChecked(true)
1340 | replaySavedSettings[17] = 100
1341 | SettingsPushSpeedSlider:SetValue(14)
1342 | replaySavedSettings[18] = 30
1343 | SettingsBaseSpeedSlider:SetValue(6)
1344 | replaySavedSettings[19] = 30
1345 | SettingsCastingSpeedSlider:SetValue(6)
1346 | replaySavedSettings[20] = 4
1347 | SettingsSpellNbSlider:SetValue(2)
1348 | elseif ReplaySettingsResistsPanel:IsShown() then
1349 | replaySavedSettings[21] = 1
1350 | SettingsDisplayResistsButton:SetChecked(true)
1351 | replaySavedSettings[22] = 1
1352 | SettingsResistsOnFrameButton:SetChecked(true)
1353 | replaySavedSettings[23] = 1
1354 | SettingsResistsOnChatFrameButton:SetChecked(true)
1355 | replaySavedSettings[24] = 1
1356 | SettingsResistsOnPartyButton:SetChecked(true)
1357 | for i,value in pairs(displayToPartyTable) do
1358 | _G["SettingsListContentButton"..i]:UnlockHighlight()
1359 | _G["SettingsListContentButton"..i]:SetText("")
1360 | _G["SettingsListContentButton"..i]:Hide()
1361 | end
1362 | displayToPartyTable = {}
1363 | SettingsListScrollBar:SetMinMaxValues(0, 0)
1364 | SettingsListScrollBar:SetValue(0)
1365 | SettingsListScrollFrameScrollUpButton:Disable()
1366 | SettingsListScrollFrameScrollDownButton:Disable()
1367 | SettingsResistsOnFrameButton:Enable()
1368 | SettingsResistsOnFrameFont:SetTextColor(1, 1, 1)
1369 | SettingsResistsOnChatFrameButton:Enable()
1370 | SettingsResistsOnChatFrameFont:SetTextColor(1, 1, 1)
1371 | SettingsResistsOnPartyButton:Enable()
1372 | SettingsResistsOnPartyFont:SetTextColor(1, 1, 1)
1373 | DisplayToPartyAddButton:Enable()
1374 | DisplayToPartyDelButton:Enable()
1375 | elseif ReplaySettingsOptionalPanel:IsShown() then
1376 | replaySavedSettings[31] = 2
1377 | SettingsRanksButton:SetChecked(true)
1378 | SettingsAllRanksButton:SetChecked(false)
1379 | SettingsRankOneButton:SetChecked(true)
1380 | replaySavedSettings[32] = 2
1381 | SettingsWhiteHitsButton:SetChecked(true)
1382 | SettingsMeleeWhiteHitsButton:SetChecked(false)
1383 | SettingsRangedWhiteHitsButton:SetChecked(true)
1384 | replaySavedSettings[33] = 1
1385 | SettingsDamagesButton:SetChecked(true)
1386 | SettingsAllDamagesButton:SetChecked(true)
1387 | SettingsCritDamagesButton:SetChecked(false)
1388 | replaySavedSettings[34] = 1
1389 | SettingsHealsButton:SetChecked(true)
1390 | SettingsAllHealsButton:SetChecked(true)
1391 | SettingsCritHealsButton:SetChecked(false)
1392 | replaySavedSettings[35] = 1
1393 | SettingsManaButton:SetChecked(true)
1394 | replaySavedSettings[36] = 1
1395 | SettingsPetSpellsButton:SetChecked(true)
1396 | SettingsAllRanksButton:Enable()
1397 | SettingsAllRanksFont:SetTextColor(1, 1, 1)
1398 | SettingsRankOneButton:Enable()
1399 | SettingsRankOneFont:SetTextColor(1, 1, 1)
1400 | SettingsMeleeWhiteHitsButton:Enable()
1401 | SettingsMeleeWhiteHitsFont:SetTextColor(1, 1, 1)
1402 | SettingsRangedWhiteHitsButton:Enable()
1403 | SettingsRangedWhiteHitsFont:SetTextColor(1, 1, 1)
1404 | SettingsAllDamagesButton:Enable()
1405 | SettingsAllDamagesFont:SetTextColor(1, 1, 1)
1406 | SettingsCritDamagesButton:Enable()
1407 | SettingsCritDamagesFont:SetTextColor(1, 1, 1)
1408 | SettingsAllHealsButton:Enable()
1409 | SettingsAllHealsFont:SetTextColor(1, 1, 1)
1410 | SettingsCritHealsButton:Enable()
1411 | SettingsCritHealsFont:SetTextColor(1, 1, 1)
1412 | end
1413 | end,
1414 | exclusive = 1,
1415 | hideOnEscape = 1,
1416 | timeout = 0,
1417 | whileDead = 1,
1418 | }
1419 | local ReplayResetButton = CreateFrame("Button", "ReplayResetButton", InterfaceOptionsFrame, "UIPanelButtonGrayTemplate")
1420 | ReplayResetButton:SetPoint("TOPRIGHT", -32, -413)
1421 | ReplayResetButton:SetText("Reset to default")
1422 | ReplayResetButton:SetWidth(120)
1423 | ReplayResetButton:SetHeight(25)
1424 | ReplayResetButton:Hide()
1425 | ReplayResetButton:SetScript("OnClick", function()
1426 | StaticPopup_Show ("REPLAYRESET_POPUP")
1427 | end)
1428 |
1429 | --
1430 |
1431 | local total = 0
1432 | local AuraDelayFrame = CreateFrame("Frame")
1433 | local function AuraDelay(self, elapsed)
1434 | total = total + elapsed
1435 | for i=1,40 do
1436 | if select(1, UnitBuff("player", i)) ~= nil then
1437 | local spellName, _, spellIcon = UnitBuff("player", i)
1438 | if spellName == spellTable[table.maxn(spellTable)] then
1439 | if table.maxn(spellTable) <= 1 then
1440 | replayTexture[0]:SetTexture(spellIcon)
1441 | else
1442 | replayTexture[table.maxn(spellTable)-1]:SetTexture(spellIcon)
1443 | end
1444 | total = 0
1445 | AuraDelayFrame:SetScript("OnUpdate", nil)
1446 | break
1447 | end
1448 | else
1449 | break
1450 | end
1451 | end
1452 | if total > 1 then
1453 | total = 0
1454 | AuraDelayFrame:SetScript("OnUpdate", nil)
1455 | end
1456 | end
1457 |
1458 |
1459 |
1460 | ReplayFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
1461 | ReplayFrame:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
1462 | ReplayFrame:RegisterEvent("PLAYER_LOGIN")
1463 | ReplayFrame:SetScript("OnEvent", function(self, event, ...)
1464 | if event == "PLAYER_LOGIN" then
1465 | if replaySavedSettings == nil or replaySavedSettings[1] ~= nil then
1466 | replaySavedSettings = {}
1467 | replaySavedSettings[11] = 1
1468 | SettingsEnableButton:SetChecked(true)
1469 | replaySavedSettings[12] = 0
1470 | replaySavedSettings[13] = 1
1471 | SettingsBackgroundButton:SetChecked(true)
1472 | replaySavedSettings[14] = 1
1473 | SettingsScalingSlider:SetValue(2)
1474 | replaySavedSettings[15] = 1
1475 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
1476 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Right")
1477 | else
1478 | UIDropDownMenu_SetText("Right", SettingsDirectionMenu)
1479 | end
1480 | replaySavedSettings[16] = 1
1481 | SettingsCropTexButton:SetChecked(true)
1482 | replaySavedSettings[17] = 100
1483 | SettingsPushSpeedSlider:SetValue(14)
1484 | replaySavedSettings[18] = 30
1485 | SettingsBaseSpeedSlider:SetValue(6)
1486 | replaySavedSettings[19] = 30
1487 | SettingsCastingSpeedSlider:SetValue(6)
1488 | replaySavedSettings[20] = 4
1489 | SettingsSpellNbSlider:SetValue(2)
1490 | replaySavedSettings[21] = 1
1491 | SettingsDisplayResistsButton:SetChecked(true)
1492 | replaySavedSettings[22] = 1
1493 | SettingsResistsOnFrameButton:SetChecked(true)
1494 | replaySavedSettings[23] = 1
1495 | SettingsResistsOnChatFrameButton:SetChecked(true)
1496 | replaySavedSettings[24] = 1
1497 | SettingsResistsOnPartyButton:SetChecked(true)
1498 | replaySavedSettings[31] = 2
1499 | SettingsRanksButton:SetChecked(true)
1500 | SettingsRankOneButton:SetChecked(true)
1501 | replaySavedSettings[32] = 2
1502 | SettingsWhiteHitsButton:SetChecked(true)
1503 | SettingsRangedWhiteHitsButton:SetChecked(true)
1504 | replaySavedSettings[33] = 1
1505 | SettingsDamagesButton:SetChecked(true)
1506 | SettingsAllDamagesButton:SetChecked(true)
1507 | replaySavedSettings[34] = 1
1508 | SettingsHealsButton:SetChecked(true)
1509 | SettingsAllHealsButton:SetChecked(true)
1510 | replaySavedSettings[35] = 1
1511 | SettingsManaButton:SetChecked(true)
1512 | replaySavedSettings[36] = 1
1513 | SettingsPetSpellsButton:SetChecked(true)
1514 | displayToPartyTable = {}
1515 | else
1516 | if replaySavedSettings[11] == 1 then -- Enable (on/off)
1517 | SettingsEnableButton:SetChecked(true)
1518 | else
1519 | ReplayFrame:Hide()
1520 | end
1521 | if replaySavedSettings[12] == 1 then -- Lock position (on/off)
1522 | SettingsLockButton:SetChecked(true)
1523 | end
1524 | if replaySavedSettings[13] == 1 then -- Show background (on/off)
1525 | SettingsBackgroundButton:SetChecked(true)
1526 | else
1527 | ReplayBackground:Hide()
1528 | end
1529 | ReplayFrame:SetScale(replaySavedSettings[14]) -- Frame scaling (0.8 - 1.5)
1530 | SettingsScalingSlider:SetValue((replaySavedSettings[14] - 0.8) * 10)
1531 | if replaySavedSettings[15] == 1 or replaySavedSettings[15] == nil then -- Scrolling direction (Right/Left)
1532 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
1533 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Right")
1534 | else
1535 | UIDropDownMenu_SetText("Right", SettingsDirectionMenu)
1536 | end
1537 | else
1538 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 then
1539 | UIDropDownMenu_SetText(SettingsDirectionMenu, "Left")
1540 | else
1541 | UIDropDownMenu_SetText("Left", SettingsDirectionMenu)
1542 | end
1543 | end
1544 | if replaySavedSettings[16] == 1 then -- Crop spell borders (on/off)
1545 | SettingsCropTexButton:SetChecked(true)
1546 | end
1547 | if replaySavedSettings[17] == nil then -- Scrolling speed (30 - 150 / 0 - 100)
1548 | replaySavedSettings[17] = 100
1549 | SettingsPushSpeedSlider:SetValue(14)
1550 | replaySavedSettings[18] = 30
1551 | SettingsBaseSpeedSlider:SetValue(6)
1552 | replaySavedSettings[19] = 30
1553 | SettingsCastingSpeedSlider:SetValue(6)
1554 | else
1555 | SettingsPushSpeedSlider:SetValue((replaySavedSettings[17] - 30) / 5)
1556 | SettingsBaseSpeedSlider:SetValue(replaySavedSettings[18] / 5)
1557 | SettingsCastingSpeedSlider:SetValue(replaySavedSettings[19] / 5)
1558 | end
1559 | if replaySavedSettings[20] == nil then -- Number of spells to display (2 - 6)
1560 | replaySavedSettings[20] = 4
1561 | SettingsSpellNbSlider:SetValue(2)
1562 | else
1563 | SettingsSpellNbSlider:SetValue(replaySavedSettings[20] - 2)
1564 | end
1565 | if replaySavedSettings[21] == 1 then -- Display resists (on/off)
1566 | SettingsDisplayResistsButton:SetChecked(true)
1567 | else
1568 | SettingsResistsOnFrameButton:Disable()
1569 | SettingsResistsOnFrameFont:SetTextColor(0.5, 0.5, 0.5)
1570 | SettingsResistsOnChatFrameButton:Disable()
1571 | SettingsResistsOnChatFrameFont:SetTextColor(0.5, 0.5, 0.5)
1572 | SettingsResistsOnPartyButton:Disable()
1573 | SettingsResistsOnPartyFont:SetTextColor(0.5, 0.5, 0.5)
1574 | DisplayToPartyAddButton:Disable()
1575 | DisplayToPartyDelButton:Disable()
1576 | for i,value in pairs(displayToPartyTable) do
1577 | if _G["SettingsListContentButton"..i] ~= nil then
1578 | _G["SettingsListContentButton"..i]:SetTextColor(0.5, 0.5, 0.5)
1579 | _G["SettingsListContentButton"..i]:Disable()
1580 | end
1581 | end
1582 | end
1583 | if replaySavedSettings[22] == 1 then -- Display resists on the frame (on/off)
1584 | SettingsResistsOnFrameButton:SetChecked(true)
1585 | end
1586 | if replaySavedSettings[23] == 1 then -- Display resists on the chat (on/off)
1587 | SettingsResistsOnChatFrameButton:SetChecked(true)
1588 | end
1589 | if replaySavedSettings[24] == 1 then -- Display resists on /party (on/off)
1590 | SettingsResistsOnPartyButton:SetChecked(true)
1591 | else
1592 | DisplayToPartyAddButton:Disable()
1593 | DisplayToPartyDelButton:Disable()
1594 | for i,value in pairs(displayToPartyTable) do
1595 | if _G["SettingsListContentButton"..i] ~= nil then
1596 | _G["SettingsListContentButton"..i]:SetTextColor(0.5, 0.5, 0.5)
1597 | _G["SettingsListContentButton"..i]:Disable()
1598 | end
1599 | end
1600 | end
1601 | if replaySavedSettings[31] == 0 then -- Display spell ranks (none/all/rank one)
1602 | SettingsAllRanksButton:SetChecked(true)
1603 | SettingsAllRanksButton:Disable()
1604 | SettingsAllRanksFont:SetTextColor(0.5, 0.5, 0.5)
1605 | SettingsRankOneButton:Disable()
1606 | SettingsRankOneFont:SetTextColor(0.5, 0.5, 0.5)
1607 | elseif replaySavedSettings[31] == 1 then
1608 | SettingsRanksButton:SetChecked(true)
1609 | SettingsAllRanksButton:SetChecked(true)
1610 | else
1611 | SettingsRanksButton:SetChecked(true)
1612 | SettingsRankOneButton:SetChecked(true)
1613 | end
1614 | if replaySavedSettings[32] == 0 then -- Display white hits (none/melee+-ranged)
1615 | SettingsMeleeWhiteHitsButton:Disable()
1616 | SettingsMeleeWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1617 | SettingsRangedWhiteHitsButton:Disable()
1618 | SettingsRangedWhiteHitsFont:SetTextColor(0.5, 0.5, 0.5)
1619 | elseif replaySavedSettings[32] == 1 then
1620 | SettingsWhiteHitsButton:SetChecked(true)
1621 | SettingsMeleeWhiteHitsButton:SetChecked(true)
1622 | elseif replaySavedSettings[32] == 2 then
1623 | SettingsWhiteHitsButton:SetChecked(true)
1624 | SettingsRangedWhiteHitsButton:SetChecked(true)
1625 | else
1626 | SettingsWhiteHitsButton:SetChecked(true)
1627 | SettingsMeleeWhiteHitsButton:SetChecked(true)
1628 | SettingsRangedWhiteHitsButton:SetChecked(true)
1629 | end
1630 | if replaySavedSettings[33] == 0 then -- Display damages (none/all/crits)
1631 | SettingsAllDamagesButton:SetChecked(true)
1632 | SettingsAllDamagesButton:Disable()
1633 | SettingsAllDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1634 | SettingsCritDamagesButton:Disable()
1635 | SettingsCritDamagesFont:SetTextColor(0.5, 0.5, 0.5)
1636 | elseif replaySavedSettings[33] == 1 then
1637 | SettingsDamagesButton:SetChecked(true)
1638 | SettingsAllDamagesButton:SetChecked(true)
1639 | else
1640 | SettingsDamagesButton:SetChecked(true)
1641 | SettingsCritDamagesButton:SetChecked(true)
1642 | end
1643 | if replaySavedSettings[34] == 0 then -- Display heals (none/all/crits)
1644 | SettingsAllHealsButton:SetChecked(true)
1645 | SettingsAllHealsButton:Disable()
1646 | SettingsAllHealsFont:SetTextColor(0.5, 0.5, 0.5)
1647 | SettingsCritHealsButton:Disable()
1648 | SettingsCritHealsFont:SetTextColor(0.5, 0.5, 0.5)
1649 | elseif replaySavedSettings[34] == 1 then
1650 | SettingsHealsButton:SetChecked(true)
1651 | SettingsAllHealsButton:SetChecked(true)
1652 | else
1653 | SettingsHealsButton:SetChecked(true)
1654 | SettingsCritHealsButton:SetChecked(true)
1655 | end
1656 | if replaySavedSettings[35] == 1 then -- Display mana gains (on/off)
1657 | SettingsManaButton:SetChecked(true)
1658 | end
1659 | if replaySavedSettings[36] == nil or replaySavedSettings[36] == 1 then -- Display pet spells (on/off)
1660 | SettingsPetSpellsButton:SetChecked(true)
1661 | replaySavedSettings[36] = 1
1662 | end
1663 | end
1664 | if displayToPartyTable == nil then
1665 | displayToPartyTable = {}
1666 | else
1667 | DisplayToPartyListing()
1668 | end
1669 | ReplayFrame:UnregisterEvent("PLAYER_LOGIN")
1670 | end
1671 |
1672 |
1673 |
1674 | if event == "UNIT_SPELLCAST_SUCCEEDED" and arg1 == "player" and arg2 ~= "Attack" and arg2 ~= "Throw" and arg2 ~= "Shoot" and arg2 ~= "Auto Shot" and arg2 ~= "Combat Swap (DND)" then
1675 | local spellName = arg2
1676 | local spellRank = arg3
1677 | if table.maxn(spellTable) == 0 then
1678 | replayTexture[0] = ReplayFrame:CreateTexture(nil, "ARTWORK")
1679 | replayTexture[0]:SetPoint("TOPLEFT", 0, 0)
1680 | replayTexture[0]:Hide()
1681 | replayTexture[0]:SetWidth(40)
1682 | replayTexture[0]:SetHeight(40)
1683 | if replaySavedSettings[16] == 1 then
1684 | replayTexture[0]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1685 | end
1686 | spellTable[1] = spellName
1687 | timestampTable[1] = GetTime()
1688 | elseif spellName ~= spellTable[table.maxn(spellTable)] or spellName == spellTable[table.maxn(spellTable)] and GetTime() - timestampTable[table.maxn(timestampTable)] > 0.5 then
1689 | local i = table.maxn(spellTable)
1690 | replayTexture[i] = ReplayFrame:CreateTexture(nil)
1691 | if replaySavedSettings[15] == 1 then
1692 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) > 40 then
1693 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1694 | else
1695 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) - 40, 0)
1696 | end
1697 | else
1698 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) < -40 then
1699 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1700 | else
1701 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) + 40, 0)
1702 | end
1703 | end
1704 | replayTexture[i]:Hide()
1705 | replayTexture[i]:SetWidth(40)
1706 | replayTexture[i]:SetHeight(40)
1707 | if replaySavedSettings[16] == 1 then
1708 | replayTexture[i]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1709 | end
1710 | spellTable[i+1] = spellName
1711 | timestampTable[i+1] = GetTime()
1712 | end
1713 | if table.maxn(spellTable) > 0 and replayTexture[table.maxn(spellTable) - 1]:GetTexture() == nil then
1714 | local i = table.maxn(spellTable) - 1
1715 | if spellName == GetSpellInfo(42292) then -- PvP trinket
1716 | if UnitFactionGroup("player") == "Alliance" then
1717 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Jewelry_TrinketPVP_01")
1718 | else
1719 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Jewelry_TrinketPVP_02")
1720 | end
1721 | elseif select(3, GetSpellInfo(spellName)) ~= nil then
1722 | replayTexture[i]:SetTexture(select(3, GetSpellInfo(spellName)))
1723 | elseif select(10, GetItemInfo(spellName)) ~= nil then
1724 | replayTexture[i]:SetTexture(select(10, GetItemInfo(spellName)))
1725 | elseif spellName == GetSpellInfo(770) or spellName == GetSpellInfo(16857) then -- Faerie fire
1726 | replayTexture[i]:SetTexture("Interface\\Icons\\Spell_Nature_FaerieFire")
1727 | elseif spellName == GetSpellInfo(33878) or spellName == GetSpellInfo(33876) then -- Mangle
1728 | replayTexture[i]:SetTexture("Interface\\Icons\\Ability_Druid_Mangle2")
1729 | elseif spellName == GetSpellInfo(437) then -- Mana potions
1730 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Potion_137")
1731 | elseif spellName == GetSpellInfo(439) then -- Healing potions
1732 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Potion_131")
1733 | elseif spellName == GetSpellInfo(44166) then -- Refreshment table food and drink
1734 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Misc_Food_100")
1735 | elseif spellName == GetSpellInfo(27089) then -- Drink
1736 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Drink_07")
1737 | elseif spellName == GetSpellInfo(18234) then -- Food
1738 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Misc_Fork&Knife")
1739 | elseif spellName == GetSpellInfo(10052) then -- Mage gems
1740 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Misc_Gem_Stone_01")
1741 | elseif spellName == GetSpellInfo(28170) then -- Spellstone
1742 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Misc_Gem_Sapphire_01")
1743 | elseif spellName == GetSpellInfo(16666) then -- Demonic rune
1744 | replayTexture[i]:SetTexture("Interface\\Icons\\INV_Misc_Rune_04")
1745 | else
1746 | AuraDelayFrame:SetScript("OnUpdate", AuraDelay)
1747 | end
1748 | end
1749 | local i = table.maxn(spellTable) - 1
1750 | if spellRank ~= nil and strfind(spellRank, "(%d+)") and replayTexture[i]:GetTexture() ~= nil and replayTexture[i]:GetTexture() ~= select(3, GetSpellInfo(5940)) then
1751 | local _, _, spellRankNumber = strfind(spellRank, "(%d+)")
1752 | if (replaySavedSettings[31] == 2 and spellRankNumber == "1") or replaySavedSettings[31] == 1 then
1753 | replayRank[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1754 | replayRank[i]:SetPoint("CENTER", replayTexture[i], 0, 28)
1755 | replayRank[i]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1756 | replayRank[i]:SetJustifyH("CENTER")
1757 | replayRank[i]:SetText("|cff107be5R"..spellRankNumber)
1758 | replayRank[i]:Hide()
1759 | end
1760 | end
1761 | end
1762 |
1763 |
1764 |
1765 | if event == "COMBAT_LOG_EVENT_UNFILTERED" then
1766 | local _, eventType, sourceGUID, spellCaster, _, _, _, _, spellID = ...
1767 | if sourceGUID == UnitGUID("pet") and replaySavedSettings[36] == 1 or eventType == "SPELL_AURA_APPLIED" and arg10 == "Seduction" and UnitChannelInfo("pet") and strfind(select(4, UnitChannelInfo("pet")), "Spell_Shadow_MindSteal") then -- pet spells
1768 | if (eventType == "SPELL_DAMAGE" or eventType == "SPELL_MISSED") and select(2, UnitClass("player")) == "MAGE" or eventType == "SPELL_CAST_SUCCESS" and select(2, UnitClass("player")) ~= "MAGE" or eventType == "SPELL_AURA_APPLIED" and arg10 == "Seduction" and sourceGUID == "0x0000000000000000" then
1769 | local spellName = GetSpellInfo(spellID)
1770 | local i = table.maxn(spellTable)
1771 | if table.maxn(spellTable) == 0 then
1772 | replayTexture[0] = ReplayFrame:CreateTexture(nil, "ARTWORK")
1773 | replayTexture[0]:SetPoint("TOPLEFT", 0, 0)
1774 | replayTexture[0]:Hide()
1775 | replayTexture[0]:SetWidth(40)
1776 | replayTexture[0]:SetHeight(40)
1777 | if replaySavedSettings[16] == 1 then
1778 | replayTexture[0]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1779 | end
1780 | replayRank[0] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1781 | replayRank[0]:SetPoint("CENTER", replayTexture[0], 0, 28)
1782 | replayRank[0]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1783 | replayRank[0]:SetJustifyH("CENTER")
1784 | replayRank[0]:SetText("|cff2e8b57PET")
1785 | if replaySavedSettings[15] == 1 and select(4, replayTexture[0]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[0]:GetPoint()) > 0 then
1786 | replayRank[0]:Hide()
1787 | end
1788 | replayTexture[0]:SetTexture(select(3, GetSpellInfo(spellID)))
1789 | spellTable[1] = spellName
1790 | timestampTable[1] = GetTime()
1791 | elseif spellName ~= spellTable[table.maxn(spellTable)] or spellName == spellTable[table.maxn(spellTable)] and GetTime() - timestampTable[table.maxn(timestampTable)] > 0.5 then
1792 | replayTexture[i] = ReplayFrame:CreateTexture(nil)
1793 | if replaySavedSettings[15] == 1 then
1794 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) > 40 then
1795 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1796 | else
1797 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) - 40, 0)
1798 | end
1799 | else
1800 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) < -40 then
1801 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1802 | else
1803 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) + 40, 0)
1804 | end
1805 | end
1806 | replayTexture[i]:Hide()
1807 | replayTexture[i]:SetWidth(40)
1808 | replayTexture[i]:SetHeight(40)
1809 | if replaySavedSettings[16] == 1 then
1810 | replayTexture[i]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1811 | end
1812 | replayRank[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1813 | replayRank[i]:SetPoint("CENTER", replayTexture[i], 0, 28)
1814 | replayRank[i]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1815 | replayRank[i]:SetJustifyH("CENTER")
1816 | replayRank[i]:SetText("|cff2e8b57PET")
1817 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
1818 | replayRank[i]:Hide()
1819 | end
1820 | replayTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
1821 | spellTable[i+1] = spellName
1822 | timestampTable[i+1] = GetTime()
1823 | end
1824 | local i = table.maxn(spellTable) - 1
1825 | if eventType == "SPELL_DAMAGE" and replaySavedSettings[33] ~= 0 then
1826 | for i=table.maxn(spellTable),0,-1 do
1827 | if arg10 == spellTable[i] and replayTexture[i-1] ~= nil and replayDamage[i-1] == nil and replayFont[i-1] == nil then
1828 | replayDamage[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1829 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -25)
1830 | replayDamage[i-1]:SetJustifyH("CENTER")
1831 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
1832 | replayDamage[i-1]:Hide()
1833 | end
1834 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg18 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg17 == 1 then
1835 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
1836 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 12)
1837 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
1838 | elseif replaySavedSettings[33] ~= 2 then
1839 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1840 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
1841 | end
1842 | break
1843 | end
1844 | end
1845 | elseif eventType == "SPELL_MISSED" and arg12 ~= "ABSORB" then
1846 | if replaySavedSettings[21] == 1 then
1847 | for i=table.maxn(spellTable),0,-1 do
1848 | if replayTexture[i-1] ~= nil and select(3, GetSpellInfo(spellID)) == replayTexture[i-1]:GetTexture() and replayDamage[i-1] == nil and replayFont[i-1] == nil then
1849 | replayFailTexture[i-1] = ReplayFrame:CreateTexture(nil, "OVERLAY")
1850 | replayFailTexture[i-1]:SetPoint("CENTER", replayTexture[i-1])
1851 | replayFailTexture[i-1]:SetWidth(35)
1852 | replayFailTexture[i-1]:SetHeight(35)
1853 | replayFailTexture[i-1]:SetTexture("Interface\\AddOns\\SpellReplay\\RedCross")
1854 | replayFont[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1855 | replayFont[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
1856 | replayFont[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 8)
1857 | replayFont[i-1]:SetJustifyH("CENTER")
1858 | replayFont[i-1]:SetText("|cffffa500"..arg12)
1859 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
1860 | replayFailTexture[i-1]:Hide()
1861 | replayFont[i-1]:Hide()
1862 | end
1863 | break
1864 | end
1865 | end
1866 | end
1867 | if replaySavedSettings[23] == 1 then
1868 | DEFAULT_CHAT_FRAME:AddMessage("|cffffa500"..arg10.." failed ("..arg12..")")
1869 | end
1870 | if replaySavedSettings[24] == 1 and displayToPartyTable ~= nil then
1871 | for i,value in pairs(displayToPartyTable) do
1872 | if arg10 == value then
1873 | SendChatMessage(arg10.." failed ("..arg12..")", "PARTY")
1874 | return
1875 | end
1876 | end
1877 | end
1878 | end
1879 | end
1880 | if (eventType == "SPELL_DAMAGE" or eventType == "SPELL_MISSED") and select(2, UnitClass("player")) ~= "MAGE" then
1881 | local spellName = GetSpellInfo(spellID)
1882 | local i = table.maxn(spellTable)
1883 | if table.maxn(spellTable) == 0 then
1884 | replayTexture[0] = ReplayFrame:CreateTexture(nil, "ARTWORK")
1885 | replayTexture[0]:SetPoint("TOPLEFT", 0, 0)
1886 | replayTexture[0]:Hide()
1887 | replayTexture[0]:SetWidth(40)
1888 | replayTexture[0]:SetHeight(40)
1889 | if replaySavedSettings[16] == 1 then
1890 | replayTexture[0]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1891 | end
1892 | replayRank[0] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1893 | replayRank[0]:SetPoint("CENTER", replayTexture[0], 0, 28)
1894 | replayRank[0]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1895 | replayRank[0]:SetJustifyH("CENTER")
1896 | replayRank[0]:SetText("|cff2e8b57PET")
1897 | if replaySavedSettings[15] == 1 and select(4, replayTexture[0]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[0]:GetPoint()) > 0 then
1898 | replayRank[0]:Hide()
1899 | end
1900 | replayTexture[0]:SetTexture(select(3, GetSpellInfo(spellID)))
1901 | spellTable[1] = spellName
1902 | timestampTable[1] = GetTime()
1903 | else
1904 | for i=table.maxn(spellTable),0,-1 do
1905 | if replayTexture[i-1] ~= nil and select(3, GetSpellInfo(spellID)) == replayTexture[i-1]:GetTexture() and (GetTime() - timestampTable[i] < 1 or strfind(arg10, "Effect") and GetTime() - timestampTable[i] < 1.5) then
1906 | break
1907 | elseif replayTexture[i-1] == nil then
1908 | local i = table.maxn(spellTable)
1909 | replayTexture[i] = ReplayFrame:CreateTexture(nil)
1910 | if replaySavedSettings[15] == 1 then
1911 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) > 40 then
1912 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1913 | else
1914 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) - 40, 0)
1915 | end
1916 | else
1917 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) < -40 then
1918 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
1919 | else
1920 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) + 40, 0)
1921 | end
1922 | end
1923 | replayTexture[i]:Hide()
1924 | replayTexture[i]:SetWidth(40)
1925 | replayTexture[i]:SetHeight(40)
1926 | if replaySavedSettings[16] == 1 then
1927 | replayTexture[i]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
1928 | end
1929 | replayRank[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1930 | replayRank[i]:SetPoint("CENTER", replayTexture[i], 0, 28)
1931 | replayRank[i]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1932 | replayRank[i]:SetJustifyH("CENTER")
1933 | replayRank[i]:SetText("|cff2e8b57PET")
1934 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
1935 | replayRank[i]:Hide()
1936 | end
1937 | replayTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
1938 | spellTable[i+1] = spellName
1939 | timestampTable[i+1] = GetTime()
1940 | break
1941 | end
1942 | end
1943 | end
1944 | if eventType == "SPELL_DAMAGE" and replaySavedSettings[33] ~= 0 then
1945 | for i=table.maxn(spellTable),0,-1 do
1946 | if arg10 == spellTable[i] and replayTexture[i-1] ~= nil and replayDamage[i-1] == nil and replayFont[i-1] == nil then
1947 | replayDamage[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1948 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -25)
1949 | replayDamage[i-1]:SetJustifyH("CENTER")
1950 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
1951 | replayDamage[i-1]:Hide()
1952 | end
1953 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg18 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg17 == 1 then
1954 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
1955 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 12)
1956 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
1957 | elseif replaySavedSettings[33] ~= 2 then
1958 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 9)
1959 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
1960 | end
1961 | break
1962 | end
1963 | end
1964 | elseif eventType == "SPELL_MISSED" and arg12 ~= "ABSORB" then
1965 | if replaySavedSettings[21] == 1 then
1966 | for i=table.maxn(spellTable),0,-1 do
1967 | if replayTexture[i-1] ~= nil and select(3, GetSpellInfo(spellID)) == replayTexture[i-1]:GetTexture() and replayDamage[i-1] == nil and replayFont[i-1] == nil then
1968 | replayFailTexture[i-1] = ReplayFrame:CreateTexture(nil, "OVERLAY")
1969 | replayFailTexture[i-1]:SetPoint("CENTER", replayTexture[i-1])
1970 | replayFailTexture[i-1]:SetWidth(35)
1971 | replayFailTexture[i-1]:SetHeight(35)
1972 | replayFailTexture[i-1]:SetTexture("Interface\\AddOns\\SpellReplay\\RedCross")
1973 | replayFont[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
1974 | replayFont[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
1975 | replayFont[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 8)
1976 | replayFont[i-1]:SetJustifyH("CENTER")
1977 | replayFont[i-1]:SetText("|cffffa500"..arg12)
1978 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
1979 | replayFailTexture[i-1]:Hide()
1980 | replayFont[i-1]:Hide()
1981 | end
1982 | break
1983 | end
1984 | end
1985 | end
1986 | if replaySavedSettings[23] == 1 then
1987 | DEFAULT_CHAT_FRAME:AddMessage("|cffffa500"..arg10.." failed ("..arg12..")")
1988 | end
1989 | if replaySavedSettings[24] == 1 and displayToPartyTable ~= nil then
1990 | for i,value in pairs(displayToPartyTable) do
1991 | if arg10 == value then
1992 | SendChatMessage(arg10.." failed ("..arg12..")", "PARTY")
1993 | return
1994 | end
1995 | end
1996 | end
1997 | end
1998 | end
1999 | end
2000 | if spellCaster == UnitName("player") and (((eventType == "RANGE_DAMAGE" or eventType == "RANGE_MISSED") and (replaySavedSettings[32] == 2 or replaySavedSettings[32] == 3)) or ((eventType == "SWING_DAMAGE" or eventType == "SWING_MISSED") and (replaySavedSettings[32] == 1 or replaySavedSettings[32] == 3))) then -- ranged/melee autos
2001 | local spellName = ""
2002 | if eventType == "RANGE_DAMAGE" or eventType == "RANGE_MISSED" then
2003 | spellName = GetItemInfo(GetInventoryItemLink("player", 18))
2004 | else
2005 | spellName = GetItemInfo(GetInventoryItemLink("player", 16))
2006 | end
2007 | local i = table.maxn(spellTable)
2008 | if table.maxn(spellTable) == 0 then
2009 | replayTexture[0] = ReplayFrame:CreateTexture(nil, "ARTWORK")
2010 | replayTexture[0]:SetPoint("TOPLEFT", 0, 0)
2011 | replayTexture[0]:SetWidth(40)
2012 | replayTexture[0]:SetHeight(40)
2013 | if replaySavedSettings[16] == 1 then
2014 | replayTexture[0]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
2015 | end
2016 | spellTable[1] = spellName
2017 | timestampTable[1] = GetTime()
2018 | elseif spellName ~= spellTable[table.maxn(spellTable)] or spellName == spellTable[table.maxn(spellTable)] then
2019 | replayTexture[i] = ReplayFrame:CreateTexture(nil)
2020 | if replaySavedSettings[15] == 1 then
2021 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) > 40 then
2022 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
2023 | else
2024 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) - 40, 0)
2025 | end
2026 | else
2027 | if replayTexture[i-1] == nil or select(4, replayTexture[i-1]:GetPoint()) < -40 then
2028 | replayTexture[i]:SetPoint("TOPLEFT", 0, 0)
2029 | else
2030 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i-1]:GetPoint()) + 40, 0)
2031 | end
2032 | end
2033 | replayTexture[i]:SetWidth(40)
2034 | replayTexture[i]:SetHeight(40)
2035 | if replaySavedSettings[16] == 1 then
2036 | replayTexture[i]:SetTexCoord(0.06, 0.94, 0.06, 0.94)
2037 | end
2038 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2039 | replayTexture[i]:Hide()
2040 | end
2041 | spellTable[i+1] = spellName
2042 | timestampTable[i+1] = GetTime()
2043 | end
2044 | if replayTexture[i] ~= nil then
2045 | if eventType == "SWING_DAMAGE" or eventType == "SWING_MISSED" then
2046 | if select(2, UnitClass("player")) == "DRUID" and GetShapeshiftForm() == 3 then
2047 | replayTexture[i]:SetTexture("Interface\\Icons\\Ability_Druid_CatFormAttack")
2048 | elseif select(2, UnitClass("player")) == "DRUID" and GetShapeshiftForm() == 1 then
2049 | replayTexture[i]:SetTexture("Interface\\Icons\\Ability_Druid_Swipe")
2050 | else
2051 | replayTexture[i]:SetTexture(select(10, GetItemInfo(GetInventoryItemLink("player", 16))))
2052 | end
2053 | else
2054 | replayTexture[i]:SetTexture(select(10, GetItemInfo(GetInventoryItemLink("player", 18))))
2055 | end
2056 | end
2057 | if (eventType == "RANGE_MISSED" or eventType == "SWING_MISSED") and replaySavedSettings[21] == 1 and replaySavedSettings[22] == 1 and replayTexture[i] ~= nil then -- damages/misses on ranged/melee white hits
2058 | replayFailTexture[i] = ReplayFrame:CreateTexture(nil, "OVERLAY")
2059 | replayFailTexture[i]:SetPoint("CENTER", replayTexture[i])
2060 | replayFailTexture[i]:SetWidth(35)
2061 | replayFailTexture[i]:SetHeight(35)
2062 | replayFailTexture[i]:SetTexture("Interface\\AddOns\\SpellReplay\\RedCross")
2063 | replayFont[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2064 | replayFont[i]:SetPoint("CENTER", replayTexture[i], 0, -26)
2065 | replayFont[i]:SetFont("Fonts\\FRIZQT__.TTF", 8)
2066 | replayFont[i]:SetJustifyH("CENTER")
2067 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2068 | replayFailTexture[i]:Hide()
2069 | replayFont[i]:Hide()
2070 | end
2071 | if eventType == "RANGE_MISSED" then
2072 | replayFont[i]:SetText("|cffffa500"..arg12)
2073 | else
2074 | replayFont[i]:SetText("|cffffa500"..arg9)
2075 | end
2076 | elseif eventType == "SWING_DAMAGE" and arg9 ~= nil and replayDamage[i] == nil and replayTexture[i] ~= nil and replaySavedSettings[33] ~= 0 then
2077 | replayDamage[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2078 | replayDamage[i]:SetPoint("CENTER", replayTexture[i], 0, -25)
2079 | replayDamage[i]:SetJustifyH("CENTER")
2080 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2081 | replayDamage[i]:Hide()
2082 | end
2083 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg15 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg14 == 1 then
2084 | replayDamage[i]:SetPoint("CENTER", replayTexture[i], 0, -26)
2085 | replayDamage[i]:SetFont("Fonts\\FRIZQT__.TTF", 12)
2086 | replayDamage[i]:SetText("|cffffffff"..arg9)
2087 | elseif replaySavedSettings[33] ~= 2 then
2088 | replayDamage[i]:SetFont("Fonts\\FRIZQT__.TTF", 9)
2089 | replayDamage[i]:SetText("|cffffffff"..arg9)
2090 | end
2091 | elseif eventType == "RANGE_DAMAGE" and arg12 ~= nil and replayDamage[i] == nil and replayTexture[i] ~= nil and replaySavedSettings[33] ~= 0 then
2092 | replayDamage[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2093 | replayDamage[i]:SetPoint("CENTER", replayTexture[i], 0, -25)
2094 | replayDamage[i]:SetJustifyH("CENTER")
2095 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2096 | replayDamage[i]:Hide()
2097 | end
2098 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg18 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg17 == 1 then
2099 | replayDamage[i]:SetPoint("CENTER", replayTexture[i], 0, -26)
2100 | replayDamage[i]:SetFont("Fonts\\FRIZQT__.TTF", 12)
2101 | replayDamage[i]:SetText("|cffffffff"..arg12)
2102 | elseif replaySavedSettings[33] ~= 2 then
2103 | replayDamage[i]:SetFont("Fonts\\FRIZQT__.TTF", 9)
2104 | replayDamage[i]:SetText("|cffffffff"..arg12)
2105 | end
2106 | end
2107 | end
2108 | if spellCaster == UnitName("player") and (eventType == "SPELL_DAMAGE" and replaySavedSettings[33] ~= 0 or eventType == "SPELL_HEAL" and replaySavedSettings[34] ~= 0) and spellID ~= 16666 and spellID ~= 33778 then -- damages/heals on spells
2109 | for i=table.maxn(spellTable),0,-1 do
2110 | if arg10 == spellTable[i] and replayTexture[i-1] ~= nil and replayDamage[i-1] == nil and replayFont[i-1] == nil and (arg10 ~= spellTable[i-1] or replayTexture[i-2] == nil or replayTexture[i-2] ~= nil and (replayDamage[i-2] ~= nil or replayFont[i-2] ~= nil)) then
2111 | replayDamage[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2112 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -25)
2113 | replayDamage[i-1]:SetJustifyH("CENTER")
2114 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
2115 | replayDamage[i-1]:Hide()
2116 | end
2117 | if eventType == "SPELL_DAMAGE" then
2118 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg18 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg17 == 1 then
2119 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
2120 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 12)
2121 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
2122 | elseif replaySavedSettings[33] ~= 2 then
2123 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 9)
2124 | replayDamage[i-1]:SetText("|cffffff00"..arg12)
2125 | end
2126 | else
2127 | if tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) > 2 and arg15 == 1 or tonumber(strsub(select(1,GetBuildInfo()), 1, 1)) <= 2 and arg13 ~= nil and arg13 == 1 then
2128 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -26)
2129 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 12)
2130 | replayDamage[i-1]:SetText("|cff00b200+"..arg12)
2131 | elseif replaySavedSettings[34] ~= 2 then
2132 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 9)
2133 | replayDamage[i-1]:SetText("|cff00b200+"..arg12)
2134 | end
2135 | end
2136 | break
2137 | end
2138 | end
2139 | end
2140 | if eventType == "SPELL_ENERGIZE" and spellCaster == UnitName("player") and arg13 == 0 and replaySavedSettings[35] == 1 then -- mana gains
2141 | local i = table.maxn(spellTable)
2142 | if arg10 == spellTable[i] and replayDamage[i-1] == nil and replayTexture[i-1] ~= nil then
2143 | replayDamage[i-1] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2144 | replayDamage[i-1]:SetPoint("CENTER", replayTexture[i-1], 0, -25)
2145 | replayDamage[i-1]:SetJustifyH("CENTER")
2146 | replayDamage[i-1]:SetFont("Fonts\\FRIZQT__.TTF", 9)
2147 | replayDamage[i-1]:SetText("|cff0080ff+"..arg12)
2148 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i-1]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i-1]:GetPoint()) > 0 then
2149 | replayDamage[i-1]:Hide()
2150 | end
2151 | end
2152 | end
2153 | if arg12 == "REFLECT" and arg7 == UnitName("player") then -- Shield Reflect
2154 | for i=table.maxn(spellTable),0,-1 do
2155 | if replayTexture[i] ~= nil and replayUpperTexture[i] == nil and select(3, GetSpellInfo(23920)) == replayTexture[i]:GetTexture() then
2156 | replayUpperTexture[i] = ReplayFrame:CreateTexture(nil)
2157 | replayUpperTexture[i]:SetPoint("CENTER", replayTexture[i], 0, 35)
2158 | replayUpperTexture[i]:SetWidth(25)
2159 | replayUpperTexture[i]:SetHeight(25)
2160 | replayUpperTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
2161 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2162 | replayUpperTexture[i]:Hide()
2163 | end
2164 | break
2165 | end
2166 | end
2167 | end
2168 | if arg12 == "RESIST" and arg7 == UnitName("player") then -- Cloak of Shadows first resist
2169 | for i=1,40 do
2170 | if select(1, UnitBuff("player", i)) ~= nil then
2171 | local spellName = UnitBuff("player", i)
2172 | if spellName == "Cloak of Shadows" then
2173 | for i=table.maxn(spellTable),0,-1 do
2174 | if replayTexture[i] ~= nil and replayUpperTexture[i] == nil and select(3, GetSpellInfo("Cloak of Shadows")) == replayTexture[i]:GetTexture() then
2175 | replayUpperTexture[i] = ReplayFrame:CreateTexture(nil)
2176 | replayUpperTexture[i]:SetPoint("CENTER", replayTexture[i], 0, 35)
2177 | replayUpperTexture[i]:SetWidth(25)
2178 | replayUpperTexture[i]:SetHeight(25)
2179 | replayUpperTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
2180 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2181 | replayUpperTexture[i]:Hide()
2182 | end
2183 | break
2184 | end
2185 | end
2186 | end
2187 | end
2188 | end
2189 | end
2190 | if arg10 ~= nil and strfind(arg10, "Poison") then -- Poisons applied by Shiv
2191 | i = table.maxn(spellTable) - 1
2192 | if replayTexture[i] ~= nil and replayUpperTexture[i] == nil and select(3, GetSpellInfo(5940)) == replayTexture[i]:GetTexture() and GetTime() - timestampTable[table.maxn(timestampTable)] < 0.03 then
2193 | if eventType == "SPELL_MISSED" and arg12 ~= "ABSORB" then
2194 | replayUpperTexture[i] = ReplayFrame:CreateTexture(nil)
2195 | replayUpperTexture[i]:SetPoint("CENTER", replayTexture[i], 0, 35)
2196 | replayUpperTexture[i]:SetWidth(25)
2197 | replayUpperTexture[i]:SetHeight(25)
2198 | replayUpperTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
2199 | replayUpperFailTexture[i] = ReplayFrame:CreateTexture(nil, "OVERLAY")
2200 | replayUpperFailTexture[i]:SetPoint("CENTER", replayTexture[i], 0, 35)
2201 | replayUpperFailTexture[i]:SetWidth(22)
2202 | replayUpperFailTexture[i]:SetHeight(22)
2203 | replayUpperFailTexture[i]:SetTexture("Interface\\AddOns\\SpellReplay\\RedCross")
2204 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2205 | replayUpperTexture[i]:Hide()
2206 | replayUpperFailTexture[i]:Hide()
2207 | end
2208 | else
2209 | replayUpperTexture[i] = ReplayFrame:CreateTexture(nil)
2210 | replayUpperTexture[i]:SetPoint("CENTER", replayTexture[i], 0, 35)
2211 | replayUpperTexture[i]:SetWidth(25)
2212 | replayUpperTexture[i]:SetHeight(25)
2213 | replayUpperTexture[i]:SetTexture(select(3, GetSpellInfo(spellID)))
2214 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2215 | replayUpperTexture[i]:Hide()
2216 | end
2217 | end
2218 | end
2219 | elseif replaySavedSettings[21] == 1 and eventType == "SPELL_MISSED" and spellCaster == UnitName("player") and arg12 ~= "ABSORB" then -- Other missed spells
2220 | if replaySavedSettings[22] == 1 and (spellID ~= 64382 or arg12 ~= "IMMUNE" and spellID == 64382) then -- not Shattering Throw immunes (WotLK)
2221 | for i=table.maxn(spellTable),0,-1 do
2222 | if replayTexture[i] ~= nil and replayFont[i] == nil and select(3, GetSpellInfo(spellID)) == replayTexture[i]:GetTexture() and (GetTime() - timestampTable[i+1] < 1 or strfind(arg10, "Effect") and GetTime() - timestampTable[i+1] < 1.5) then
2223 | replayFailTexture[i] = ReplayFrame:CreateTexture(nil, "OVERLAY")
2224 | replayFailTexture[i]:SetPoint("CENTER", replayTexture[i])
2225 | replayFailTexture[i]:SetWidth(35)
2226 | replayFailTexture[i]:SetHeight(35)
2227 | replayFailTexture[i]:SetTexture("Interface\\AddOns\\SpellReplay\\RedCross")
2228 | replayFont[i] = ReplayFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
2229 | replayFont[i]:SetPoint("CENTER", replayTexture[i], 0, -26)
2230 | replayFont[i]:SetFont("Fonts\\FRIZQT__.TTF", 8)
2231 | replayFont[i]:SetJustifyH("CENTER")
2232 | replayFont[i]:SetText("|cffffa500"..arg12)
2233 | if replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > 0 then
2234 | replayFailTexture[i]:Hide()
2235 | replayFont[i]:Hide()
2236 | end
2237 | break
2238 | end
2239 | end
2240 | end
2241 | if replaySavedSettings[23] == 1 then
2242 | DEFAULT_CHAT_FRAME:AddMessage("|cffffa500"..arg10.." failed ("..arg12..")") -- chat frame message for failed spells
2243 | end
2244 | if replaySavedSettings[24] == 1 and displayToPartyTable ~= nil then
2245 | for i,value in pairs(displayToPartyTable) do
2246 | if arg10 == value then
2247 | SendChatMessage(arg10.." failed ("..arg12..")", "PARTY") -- /party message for all the failed spells on displayToPartyTable
2248 | return
2249 | end
2250 | end
2251 | end
2252 | end
2253 | end
2254 | end)
2255 |
2256 |
2257 |
2258 | local ReplayUpdateFrame = CreateFrame("Frame")
2259 | ReplayUpdateFrame:SetScript("OnUpdate", function(self, elapsed)
2260 | if spellTable ~= nil and #spellTable > 0 and replayTexture[table.maxn(spellTable)-1] ~= nil then
2261 | if replaySavedSettings[15] == 1 then
2262 | endPos = replaySavedSettings[20] * 40
2263 | if select(4, replayTexture[table.maxn(spellTable)-1]:GetPoint()) < 0 then
2264 | movSpeed = replaySavedSettings[17]
2265 | elseif UnitChannelInfo("player") or UnitCastingInfo("player") then
2266 | movSpeed = replaySavedSettings[19]
2267 | else
2268 | movSpeed = replaySavedSettings[18]
2269 | end
2270 | else
2271 | endPos = -replaySavedSettings[20] * 40
2272 | if select(4, replayTexture[table.maxn(spellTable)-1]:GetPoint()) > 0 then
2273 | movSpeed = -replaySavedSettings[17]
2274 | elseif UnitChannelInfo("player") or UnitCastingInfo("player") then
2275 | movSpeed = -replaySavedSettings[19]
2276 | else
2277 | movSpeed = -replaySavedSettings[18]
2278 | end
2279 | end
2280 | for i=table.maxn(spellTable)-1,0,-1 do
2281 | if replayTexture[i] == nil then
2282 | break
2283 | else
2284 | if not replayTexture[i]:IsShown() and (replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) > 0 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) < 0) then
2285 | replayTexture[i]:Show()
2286 | if replayRank[i] ~= nil then
2287 | replayRank[i]:Show()
2288 | end
2289 | if replayDamage[i] ~= nil then
2290 | replayDamage[i]:Show()
2291 | end
2292 | if replayFont[i] ~= nil then
2293 | replayFont[i]:Show()
2294 | end
2295 | if replayFailTexture[i] ~= nil then
2296 | replayFailTexture[i]:Show()
2297 | end
2298 | if replayUpperTexture[i] ~= nil then
2299 | replayUpperTexture[i]:Show()
2300 | end
2301 | if replayUpperFailTexture[i] ~= nil then
2302 | replayUpperFailTexture[i]:Show()
2303 | end
2304 | elseif replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < endPos - 20 or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > endPos + 20 then
2305 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i]:GetPoint()) + movSpeed * elapsed, 0)
2306 | elseif replaySavedSettings[15] == 1 and select(4, replayTexture[i]:GetPoint()) < endPos or replaySavedSettings[15] == 2 and select(4, replayTexture[i]:GetPoint()) > endPos then
2307 | replayTexture[i]:SetPoint("TOPLEFT", select(4, replayTexture[i]:GetPoint()) + movSpeed * elapsed, 0)
2308 | replayTexture[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2309 | if replayRank[i] ~= nil then
2310 | replayRank[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2311 | end
2312 | if replayDamage[i] ~= nil then
2313 | replayDamage[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2314 | end
2315 | if replayFont[i] ~= nil then
2316 | replayFont[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2317 | end
2318 | if replayFailTexture[i] ~= nil then
2319 | replayFailTexture[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2320 | end
2321 | if replayUpperTexture[i] ~= nil then
2322 | replayUpperTexture[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2323 | end
2324 | if replayUpperFailTexture[i] ~= nil then
2325 | replayUpperFailTexture[i]:SetAlpha(abs(endPos - select(4, replayTexture[i]:GetPoint())) / 20)
2326 | end
2327 | elseif replayTexture[i] ~= nil then
2328 | replayTexture[i]:Hide()
2329 | replayTexture[i] = nil
2330 | if replayRank[i] ~= nil then
2331 | replayRank[i]:Hide()
2332 | replayRank[i] = nil
2333 | end
2334 | if replayDamage[i] ~= nil then
2335 | replayDamage[i]:Hide()
2336 | replayDamage[i] = nil
2337 | end
2338 | if replayFont[i] ~= nil then
2339 | replayFont[i]:Hide()
2340 | replayFont[i] = nil
2341 | end
2342 | if replayFailTexture[i] ~= nil then
2343 | replayFailTexture[i]:Hide()
2344 | replayFailTexture[i] = nil
2345 | end
2346 | if replayUpperTexture[i] ~= nil then
2347 | replayUpperTexture[i]:Hide()
2348 | replayUpperTexture[i] = nil
2349 | end
2350 | if replayUpperFailTexture[i] ~= nil then
2351 | replayUpperFailTexture[i]:Hide()
2352 | replayUpperFailTexture[i] = nil
2353 | end
2354 | end
2355 | end
2356 | end
2357 | end
2358 | end)
--------------------------------------------------------------------------------