diff --git a/OutH.lua b/OutH.lua index d198a17..1f8ae6f 100644 --- a/OutH.lua +++ b/OutH.lua @@ -3,16 +3,10 @@ -- ========================================== -- 1. EINSTELLUNGEN & VARIABLEN -local enableFlash = true -- Standard: Flackern ist AN +local enableFlash = true local soundPath = "Interface\\AddOns\\OutcH\\media\\" -local sounds = { - "outch01.ogg", - "outch02.ogg", - "outch03.ogg", - "outch04.ogg" -} --- 2. FLASH-FRAME ERSTELLEN (VISUELLER EFFEKT) +-- 2. FLASH-FRAME ERSTELLEN local flashFrame = CreateFrame("Frame", nil, UIParent) flashFrame:SetAllPoints(UIParent) flashFrame:SetFrameStrata("BACKGROUND") @@ -20,48 +14,53 @@ 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 +texture:SetVertexColor(1, 0, 0, 1) -- 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) +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 +-- 4. LOGIK FÜR HP-VERLUST & GESCHLECHT 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) +if unit == "player" then + local currentHealth = UnitHealth("player") --- Startmeldung im Chat -print("|cFFFF0000OutcH|r v1.0 geladen! Nutze |cFFFFFF00/outch|r zum Umschalten des Flackerns.") + if currentHealth < lastHealth then + -- Geschlecht prüfen: 2 = Männlich, 3 = Weiblich + local gender = UnitSex("player") + local prefix = "m_" -- Standard auf männlich setzen + + if gender == 3 then + prefix = "f_" + end + + -- Zufallszahl 1-4 generieren + local randomNumber = math.random(1, 4) + -- Dateiname zusammenbauen (z.B. m_outch01.ogg) +local soundFile = string.format("%soutch0%d.ogg", prefix, randomNumber) + +-- Sound abspielen +PlaySoundFile(soundPath .. soundFile, "Master") + +-- Flackern +if enableFlash then + flashFrame:Show() + C_Timer.After(0.15, function() flashFrame:Hide() end) + end + end + + lastHealth = currentHealth + end + end) + +print("|cFFFF0000OutcH|r v1.0 geladen! (Gender-Detection aktiv)") diff --git a/media/f_outch01.ogg b/media/f_outch01.ogg new file mode 100644 index 0000000..9f65256 Binary files /dev/null and b/media/f_outch01.ogg differ diff --git a/media/f_outch02.ogg b/media/f_outch02.ogg new file mode 100644 index 0000000..ac2d17d Binary files /dev/null and b/media/f_outch02.ogg differ diff --git a/media/f_outch03.ogg b/media/f_outch03.ogg new file mode 100644 index 0000000..b5f7eed Binary files /dev/null and b/media/f_outch03.ogg differ diff --git a/media/m_outch01.ogg b/media/m_outch01.ogg new file mode 100644 index 0000000..a8f4d81 Binary files /dev/null and b/media/m_outch01.ogg differ diff --git a/media/m_outch02.ogg b/media/m_outch02.ogg new file mode 100644 index 0000000..efc7f47 Binary files /dev/null and b/media/m_outch02.ogg differ diff --git a/media/m_outch03.ogg b/media/m_outch03.ogg new file mode 100644 index 0000000..0f3b503 Binary files /dev/null and b/media/m_outch03.ogg differ diff --git a/media/m_outch04.ogg b/media/m_outch04.ogg new file mode 100644 index 0000000..deb9bae Binary files /dev/null and b/media/m_outch04.ogg differ