-- ========================================== -- OutcH v1.0 - Erstellt von Quasimoder -- ========================================== -- 1. EINSTELLUNGEN & VARIABLEN local enableFlash = true -- Standard: Flackern ist AN local soundPath = "Interface\\AddOns\\OutcH\\media\\" local sounds = { "outch01.ogg", "outch02.ogg", "outch03.ogg", "outch04.ogg" } -- 2. FLASH-FRAME ERSTELLEN (VISUELLER EFFEKT) local flashFrame = CreateFrame("Frame", nil, UIParent) flashFrame:SetAllPoints(UIParent) flashFrame:SetFrameStrata("BACKGROUND") flashFrame:Hide() local texture = flashFrame:CreateTexture(nil, "BACKGROUND") texture:SetAllPoints(flashFrame) -- Nutzt die Standard-WoW-Textur für den roten Rand texture:SetTexture("Interface\\FullScreenTextures\\LowHealth") texture:SetBlendMode("ADD") texture:SetVertexColor(1, 0, 0, 1) -- Farbe: Rot -- 3. SLASH-BEFEHL (/outch) SLASH_OUTCH1 = "/outch" SlashCmdList["OUTCH"] = function() enableFlash = not enableFlash local status = enableFlash and "|cFF00FF00AN|r" or "|cFFFF0000AUS|r" print("|cFFFF0000OutcH|r: Flackern ist jetzt " .. status) end -- 4. LOGIK FÜR HP-VERLUST local lastHealth = UnitHealth("player") local mainFrame = CreateFrame("Frame") mainFrame:RegisterEvent("UNIT_HEALTH") mainFrame:SetScript("OnEvent", function(self, event, unit) -- Wir prüfen nur die HP des Spielers if unit == "player" then local currentHealth = UnitHealth("player") -- Nur auslösen, wenn HP gesunken ist (nicht bei Heilung) if currentHealth < lastHealth then -- Zufälligen Sound aus der Liste wählen local randomSound = sounds[math.random(1, #sounds)] PlaySoundFile(soundPath .. randomSound, "Master") -- Rotes Aufblitzen zeigen, falls aktiviert if enableFlash then flashFrame:Show() -- Nach 0.15 Sekunden wieder verstecken C_Timer.After(0.15, function() flashFrame:Hide() end) end end -- Aktuellen Wert für den nächsten Vergleich speichern lastHealth = currentHealth end end) -- Startmeldung im Chat print("|cFFFF0000OutcH|r v1.0 geladen! Nutze |cFFFFFF00/outch|r zum Umschalten des Flackerns.")