├── 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) --------------------------------------------------------------------------------