File Details
GuildDeathLog v9.6.2
- R
- Mar 12, 2026
- 8.39 MB
- 148
- 2.5.5+1
- Classic + 1
File Name
GuildDeathLog.zip
Supported Versions
- 2.5.5
- 1.15.8
## [9.6.2] — 2026-03-12
### TBC 2.5.5 Kompatibilitaet
- TOC: `## Interface-BCC: 20505` hinzugefuegt
- GuildCompetition nutzt jetzt den Compat-Layer (addon._compat) fuer SendAddonMessage und RegisterAddonMessagePrefix
- Kein direkter Zugriff auf C_ChatInfo mehr — funktioniert in Classic Era UND TBC
### Bugfix: Punkte-Persistenz
- **PLAYER_LOGOUT + PLAYER_LEAVING_WORLD**: Daten werden IMMER beim Ausloggen gespeichert
- **Dirty-Save Timer**: Kills werden 2s nach dem letzten Kill gebatcht gespeichert statt zufaellig (1:10 Chance war vorher = Datenverlust)
- Punkte bleiben jetzt zuverlaessig nach Relog/Disconnect stehen
### Verbesserung: Intra-Guild Spieler-Sync
- Neuer Nachrichtentyp "P" (Player): Gildenmitglieder teilen ihre eigenen Punkte + Kill-Anzahl per GUILD-Channel
- Spieler-Rangliste zeigt jetzt auch Kills von anderen Gildenmitgliedern (nicht nur eigene)
- Remote-Spielerdaten werden mit "nur hoeher"-Logik akzeptiert (kein Rollback)
- Gilden-Score wird weiterhin cross-guild per INSTANCE_CHAT und YELL geteilt
### Farb-Audit: Buch-Pergament Einheitlichkeit
- **UIChapters.lua**: Alle `|cffCC0000` (grelles Rot) auf `|cff7A3010` (Pergament-Rotbraun) geaendert
- **UIChapters.lua**: `|cff1A7A1A` (grelles Gruen) auf `|cff3A7030` (gedaempftes Gruen) geaendert
- **UIChapters.lua**: `|cffAA2020` (helles Rot) auf `|cff7A3010` (Pergament-Rotbraun) geaendert
- **UI.lua**: Gefahrenzonen-Farbstufen von Neon-Lila/Rot auf Braun-Abstufungen geaendert
- **UIGuildStats.lua**: Komplett neugeschrieben mit reiner Pergament-Palette (9 Braun/Sepia-Toene)
## [9.6.1] — 2026-03-12
### Bugfix: Meilenstein-Toast komplett repariert
#### UIToasts.lua
- **Kategorie-Mapping komplett**: Alle 12 Meilenstein-Kategorien (level, survival, dungeon, raid, kills, profession, pvp, wealth, quests, social, meta, secret) haben jetzt eigene Farben und Labels. Vorher nur 5 (combat, survival, social, legend, death) — keine davon passte zu den echten Kategorien
- **Korrekte Badge-Texte**: "CHARAKTER-LEVEL", "DUNGEON-MEILENSTEIN", "KAMPF-MEILENSTEIN" etc. statt generischem "MEILENSTEIN"
- **Safety-Fallbacks**: Icon faellt auf Fragezeichen-Icon zurueck wenn nil, Name faellt auf "Unbekannt" zurueck
#### SurvivalStreak.lua
- **Toast-Aufruf repariert**: Uebergab `title/text/subtext` statt `name/desc/icon/category` an ShowMilestoneToast — dadurch fehlten Icon, Name und Kategorie-Farbe komplett
## [9.6.0] — 2026-03-12
### Neues Feature: Gilden-Wettbewerb & Leaderboard
#### GuildCompetition.lua (Neues Modul)
- **Punktesystem**: Jeden Kill = Punkte je nach Gegnertyp (0-50 Pkt)
- **7 Gegnerkategorien**: Normal (1), Elite (5), Selten (10), Selten Elite (15), Dungeon-Boss (25), Weltboss (50)
- **Todes-Strafe**: Gildenmitglied-Tod = -500 Punkte (Hardcore!)
- **Cross-Guild Leaderboard**: Sync ueber "GDLComp" Addon-Channel (GUILD, INSTANCE_CHAT, YELL)
- **100+ bekannte Classic Dungeon-Bosse** als Lookup-Table fuer praezise Klassifizierung
- **Dirty-Flag Pattern** fuer performante Score-Neuberechnung
- **7-Tage Verfall** fuer inaktive Gilden im Leaderboard
#### UIGuildStats.lua (Neues UI-Modul)
- Buch-Kapitel XIII umgebaut: "Kill-Statistiken" → "Gilden-Wettbewerb"
- Gilden-Score gross im Buch-Stil (MORPHEUS-Font, Pergament-Farben)
- Leaderboard mit Balkendiagramm (eigene Gilde hervorgehoben)
- Spieler-Rangliste mit Klassenfarben und Kill-Aufschluesselung
- Persoenliche Jagdstatistik nach Kategorie
- Punktelegende am Seitenende
#### Integration
- KillStats.lua: Kills werden automatisch an GuildCompetition weitergeleitet
- Sync.lua: Tode loesen Strafpunkte in GuildCompetition aus
- SlashCommands.lua: `/gdl guildcomp` (Aliase: gc, wettbewerb, competition, leaderboard)
#### Housekeeping
- Versions-Mismatch behoben (Config.lua/SlashCommands sagten 9.3.0, TOC/Core sagten 9.5.0)
- Alle Versionsnummern konsistent auf 9.6.0
## [9.5.0] — 2026-03-10
### Fixed / Improved — UI Lesbarkeit & Kontrast
#### Buttons allgemein
- `CreateElegantButton`: Hintergrundfarbe deutlich aufgehellt (`0.38, 0.28, 0.14`), Textfarbe von fast-Schwarz auf Gold-Braun (`0.62, 0.46, 0.22`), Hover-State ebenso aufgehellt
#### Ruhmeshalle
- Banner-Text „Unsterbliche / Krieger des Lichts" von `#4A3A28` auf `#8A6010` angehoben
#### Grün-Farben (Pergament-Kontrast)
- Alle grellen `#00FF66` / `#44FF88` Grün-Töne auf dezentes `#3A7030` reduziert
- Lebend-Badges, Online-Status, Achievement-Status betroffen
#### Kill-Statistiken
- `#CC0000` Knallrot → `#7A3010` (Braunrot, Pergament-konform)
- Kill-Balken-Farbe gedämpft, Umgebungsschaden-Counter ebenfalls angepasst
#### Klassen-Icons
- `CLASS_ICONS` in `UI.lua` um String-Keys erweitert: englische Klassen-IDs (`WARLOCK`, `ROGUE`, etc.) und deutsche Namen (`Hexenmeister`, `Schurke`, etc.) → Icons erscheinen jetzt auch wenn `deathData.class` ein String ist
#### Schwarzes Brett
- „Neuen Beitrag anpinnen"-Button aufgehellt, lesbare Gold-Textfarbe
#### Gildenregeln
- Bearbeiten-Button aufgehellt
- **Offizier-Zugriff**: Button nur noch sichtbar für Rang ≤ 2 (GM / Officer / Senior Officer) via `GuildLeader:CanEdit()`
#### Gildenkalender
- „Neues Event"-Button aufgehellt
- Inaktive Response-Buttons (Zusagen / Absagen) kontrastreicher
- Event-Erstellung auf Officer+ beschränkt (`GuildLeader:CanEdit()`)
#### Footer-Icons (rechte Buchseite)
- Icons jetzt in einer dezenten Hintergrundleiste (`iconBar`) statt frei im Buchrand gequetscht
- Leiste mit Backdrop + Border, Icons sauber nebeneinander linksbündig ausgerichtet
### Added
- `GuildLeader:CanEdit()` — gibt `true` für Rang ≤ 2 zurück (GM / Officer / Senior Officer)
---
## [9.4.3] — 2026-03-10
### Fixed
- **GuildLeader.lua:869**: `GetGuildInfo("player") or (nil, nil, 0)` — Lua erlaubt kein Multi-Return mit `or` → auf zwei Zeilen aufgeteilt
- **UIChapters.lua:1702**: Literaler Zeilenumbruch in Lua-String → `\n` Escape
---
## [9.4.2] — 2026-03-10
### Fixed
- **Löschen im Buch**: Fehlender Delete-Button in `RenderMemorial` (Gedenkhalle).
- Kleines `×`-Symbol erscheint beim Hover über jeden Eintrag (links neben Nachruf-Edit)
- Mit gesetztem Admin-Passwort → Passwort-Dialog; ohne Passwort → einfacher Bestätigungs-Dialog
- Löschen wird per `BroadcastDelete` an alle Gildenmitglieder synchronisiert
- Edit- und Delete-Button sind initial unsichtbar, erscheinen nur bei Hover
- **Calendar Serialize**: Eventname auf 40 Zeichen, Beschreibung auf 180 Zeichen begrenzt → verhindert Überschreiten des 255-Byte WoW-Addon-Message-Limits
### Confirmed Working
- **Gildenkalender-Sync**: Vollständig implementiert (ADD, DELETE, RESPONSE, SYNC, REQUEST über `GDLCal`-Channel). Alle Gildenmitglieder mit dem Addon empfangen Events automatisch.
---
## [9.4.1] — 2026-03-10
### Fixed
- **Nicht-Gildenmitglieder im Buch**: `Sync:RecordLocalDeath` prüfte den Gilden-Status des Toten nicht. Jetzt wird `Guild:IsMember()` + `inGuild`-Flag + Gildenname-Vergleich geprüft. GuildlessMode bleibt weiterhin die Opt-in-Ausnahme.
- **Koordinaten 0.0, 0.0**: `coordX/coordY` (Buch-Format) und `posX/posY` (Sync-Format) waren nicht synchronisiert. Normalisierung beim Speichern eingebaut. `0,0`-Werte werden zu `nil` gesetzt → Buch zeigt keine Koordinaten wenn keine vorhanden.
- **Killer #-1**: `source_id < 0` bedeutet Spieler-Kill (PvP) oder Environment → wird jetzt als "Unbekannt" aufgelöst statt "Kreatur #-1". Fallback-Detektor erkennt Spieler-GUIDs und setzt Killer auf Spielername.
- **Mehrere Töne bei Tod**:
- `AnimFX.BellTolls` + `AnimFX.DeathCinematic` spielten `PlaySound(878)` = **Level-Up Sound** → entfernt
- `Sync:RecordLocalDeath` + `Sync:ProcessIncomingDeath` spielten `PlaySound(8959)` (Raid-Warn) direkt → entfernt, delegiert an `DeathBell:Play()`
- `DeathBell`: Doppelton → Einzelton; Sound von `BellTollNightElf.ogg` → `BellTollAlliance.ogg` (tiefer, passender Grabgeläut)
- Jetzt: **ein einziger Sound**, gesteuert durch DeathBell-Modul
---
## [9.4.0] — 2026-03-10
### Fixed (Vollständiger Cross-Module Audit)
**Methoden-Fehler:**
- **DNLBridge**: `KillerTracker:GetNPCName()` existiert nicht → durch `npcNames`-Tabellen-Lookup ersetzt
- **Calendar**: `GDL:IsAdmin()` existiert nicht, kein Guard → durch `GuildLeader:IsAdmin()` ersetzt
- **GuildLeader**: `IsAdmin()` neu hinzugefügt (Rang ≤ 1 = GM/Officer)
- **Milestones**: `TestLevelMilestones()` + `ForceUnlockCurrentLevel()` fehlten → beide hinzugefügt (für `/gdl` Slash-Commands)
**Config-Defaults:**
- `dangerZoneEnabled`, `deathBellEnabled`, `overlayPosition`, `patreonName` in `SETTING_DEFAULTS` ergänzt — verhindert nil-Crashes bei frischer DB
**Double-Initialize (13 Module):**
- `GDL:InitializeModules()` ruft `Initialize()` auf allen Modulen auf
- 13 Module (Anniversary, Calendar, DNLBridge, DeathHeatmap, GuildLeader, GuildRoster, KillerPortrait, LastHours, PlayedTime, Professions, Report, SurvivalStreak, ZoneWarning) riefen sich am Dateiende selbst auf → `_initialized`-Guard eingebaut
**Akzeptiert (kein Fix nötig):**
- `UI:RefreshRosterOverlay` — Guard vorhanden, Feature fehlt bewusst
- `MapMarkers WORLD_MAP_UPDATE` — pcall-gesichert
- `GDL:UpdateSupporterStatus/Milestones` — Guards vorhanden
- TOC-Ladereihenfolge DNLBridge — GetModule ist lazy, kein echtes Problem
---
## [9.3.3] — 2026-03-10
### Fixed (Death-Pipeline — kritisch)
- **DNLBridge**: Doppeltes Overlay entfernt — `_PipelineStep2` zeigte Overlay, `Sync:RecordLocalDeath` ebenfalls → jetzt nur noch über `RecordLocalDeath`
- **DNLBridge**: `HM.ShowForMap(mapId)` → `HM:UpdateMap()` (Funktion existierte nicht)
- **Sync**: `ShowOverlay(deathData, false)` → `ShowOverlay(deathData, deathData.isSelf)` — eigene Tode werden jetzt korrekt als solche angezeigt
- **Sync**: GuildlessMode-Fallback in `RecordLocalDeath` — Tode werden jetzt unter `_GUILDLESS_` gespeichert wenn kein Gildenname vorhanden (statt lautlosem Verwerfen)
---
## [9.3.2] — 2026-03-10
### Fixed
- **DNLBridge**: `GetModule("DeathScreenshot")` entfernt — Modul existiert nicht. Screenshot läuft intern über `PlayedTimeTracker` (kein Funktionsverlust)
- **GDL_Commands_v930.lua / UIChapters_Patch.lua**: Emojis (ππΊοΈ) durch WoW-kompatible Texte ersetzt (nicht im TOC, aber auf Disk — präventiv)
---
# Das Buch der Gefallenen - Changelog
## Version 9.3.0 — "Fake 3D: Das Buch lebt"
### UI: Fake-3D Parallax & Tiefe
- **Parallax-Effekt**: Staubmoten und Lichtreflex bewegen sich traege relativ zur Maus-Position
- **Tiefer Buchfalz-Schatten**: Multi-Layer Schatten statt flacher 2px Linie → echte Tiefenwirkung
- **Seiten-Lichtreflex**: Subtiler heller Schein auf der rechten Buchseite, folgt der Maus
- **Ecken-Vignette**: Dezente Abdunkelung an Buchecken fuer mehr Tiefe
### Visual Fixes (aus Screenshot-Analyse)
- **Gedenkhalle**: Datums-Anzeige rechts oben nicht mehr abgeschnitten (Font groesser, explizite Width)
- **Gedenkhalle**: Name-FontString begrenzt auf 190px damit kein Overlap mit Datum
- **Statistiken**: Zonennamen ueberlagern nicht mehr die Balken (Label-Width 100→120, Bar-Offset 100→122)
- **Kill-Statistiken**: Umgebungsschaden prominenter dargestellt mit Icon, Header-Box und Anteil-Balken
- **Kondolenzbuch**: Alternating Row-Tint fuer bessere Lesbarkeit
- **Kondolenzbuch**: Separatoren staerker sichtbar (Alpha 0.15→0.30, Offset angepasst)
- **Kondolenzbuch**: Hover-OnLeave stellt Alternating-Tint korrekt wieder her
### Technik
- Alle Fake-3D Effekte nutzen ausschliesslich SetColorTexture (keine SetGradient/CreateColor Abhaengigkeit)
- Parallax-Smoothing via Delta-Time Lerp (keine harten Spruenge)
- Staubmoten haben individuelle Parallax-Tiefe (depth-Parameter)
- Performance: Parallax-Ticker prueft IsShown() als Guard
### TOC
- Version: 9.2.0 → 9.3.0
---
## Version 9.2.0 — "What's New: Die Timeline"
### Neues Modul: WhatsNew.lua
Timeline-Style Changelog-Popup, inspiriert vom Deathlog-Addon.
- **Timeline-UI**: Vertikale Timeline mit Versions-Nodes von v4.5 bis aktuell
- **Farbcodierung**: Major (Gold), Feature (Gruen), Fix (Blau), Current (Highlight)
- **Auto-Popup**: Zeigt sich automatisch bei Versionsupdate (einmalig pro Version)
- **Discord-Integration**: Klickbarer Link mit Copy-Dialog (discord.gg/yHA6SKZPEv)
- **Scroll-to-Current**: Scrollt automatisch zum neuesten Eintrag
- **Slash-Commands**: `/gdl news`, `/gdl whatsnew`, `/gdl changelog`, `/gdl wn`
- **FadeIn-Animation + Sound** beim Oeffnen/Schliessen
- **Pulsierender Glow** am aktuellen Versions-Node
### SavedVariables
- `GuildDeathLogDB.whatsNewSeen` — gespeicherte letzte gesehene Version (verhindert Doppel-Popup)
### TOC
- Version: 9.1.0 → 9.2.0
- WhatsNew.lua nach UI-Modulen eingetragen
### SlashCommands
- `news` Command + Aliases registriert
- Help-Text aktualisiert auf v9.2.0
---
## Version 9.1.0 — "UI-Split: Das Monster zerlegt"
### UI.lua Aufspaltung (7292 → 5 Dateien)
Die monolithische UI.lua (7292 Zeilen) wurde in 5 spezialisierte Dateien aufgeteilt.
Alle Funktionen bleiben auf derselben UI-Table — externe Aufrufer (Sync, Deathlog, etc.) sind nicht betroffen.
- **UI.lua** (1019 Zeilen): Book-Frame, Navigation, Inhaltsverzeichnis, Show/Hide, Shared State + Helpers
- **UIChapters.lua** (2878 Zeilen): Alle RenderXxx() Funktionen fuer die rechte Buchseite (Memorial, HallOfFame, Statistics, Milestones, Achievements, Condolences, Calendar, etc.)
- **UIOverlay.lua** (856 Zeilen): Death-Popup-Overlay, Chronik-Eintraege, Tag-Trenner, Passwort-Dialog
- **UIToasts.lua** (810 Zeilen): Achievement-, Milestone- und Calendar-Toast-Benachrichtigungen
- **UIWindows.lua** (1805 Zeilen): Settings, Standalone-Fenster (HallOfFame, Statistics, KillStats, Milestones, Titles)
### Architektur
- Shared State ueber `addon._UI` Bridge: Sub-Files greifen auf dieselbe UI-Table zu
- File-lokale Queues (overlayQueue, achToastQueue, calToastQueue) auf `UI._xxx` Table verlagert
- GDL_ScaleLerp als `UI.ScaleLerp` exponiert, CLASS_COLORS/ICONS als `UI.CLASS_COLORS`/`UI.CLASS_ICONS`
- ClassColorHex, CleanKillerName, CountDeathsOnDay als UI-Methoden statt file-lokale Funktionen
- Einziges `GDL:RegisterModule("UI", UI)` in UI.lua Core — kein doppeltes Registrieren
### TOC
- Version: 9.0.0 → 9.1.0
- Ladereihenfolge: UI.lua → UIChapters.lua → UIOverlay.lua → UIToasts.lua → UIWindows.lua
- Klare Sektionskommentare
---
## Version 9.0.0 — "Architektur-Refactor: Modular Immersive Context UI Framework"
### BREAKING: Major Architecture Overhaul
Umbau nach den Projekt-Richtlinien (Modular Immersive Context UI Framework).
Alle Aenderungen sind abwaertskompatibel - SavedVariables bleiben erhalten.
### Core (GuildDeathLog.lua)
- **Slash-Commands ausgelagert**: 400-Zeilen if-elseif-Kette ersetzt durch Dispatch-Table in `SlashCommands.lua`
- **Version alignment**: Alle Versionsnummern konsistent auf 9.0.0 (TOC, Core, Help, InitDB)
- Core von 930 auf 531 Zeilen reduziert (-43%)
### Neue Dateien
- **Config.lua**: Zentrale Konfiguration (Konstanten, Defaults, Lookup-Tables) - keine Modul-Logik
- **Libs/AnimationHelper.lua**: Wiederverwendbare Animations-Bibliothek (FadeIn/Out, ScaleLerp, SlideIn, Bounce, Easing)
- **SlashCommands.lua**: Dispatch-Table fuer alle Slash-Commands mit Alias-Support
### Bugfixes (Kritisch!)
- **Anniversary.lua**: Registrierte sich bei `addon.modules` statt `_G["GuildDeathLog"].modules` → Modul war fuer den Core unsichtbar. Gefixt.
- **ZoneWarning.lua**: Identischer Bug wie Anniversary. Gefixt.
- **GuildRoster.lua**: Doppelte `RegisterModule("Roster")` Aufrufe (Zeile 100 + 463). Duplikat entfernt.
- **UI.lua**: `GDLChronicle` Frame ohne `BackdropTemplate` erstellt - Verstoß gegen Engine Rules. Gefixt.
### TOC (GuildDeathLog.toc)
- Version: 8.14.3 → 9.0.0
- Wrath-Interface (30401) entfernt (nicht supported)
- Neue Dateien eingetragen: Config.lua, Libs/AnimationHelper.lua, SlashCommands.lua
- Kommentare fuer Ladereihenfolge
### Cleanup
- 9 Python-Patch-Scripts aus Addon-Root in `_dev_scripts/` verschoben
- UTF-8 BOM aus UI.lua und CHANGELOG.md entfernt
- Windows Line-Endings (CRLF) in allen Lua/TOC/MD-Dateien gefixt
### Architektur-Verbesserungen
- Ordnerstruktur nach Richtlinie: Core → Config → Libs → SlashCommands → Module
- Module-Registrierung konsistent: alle nutzen jetzt `GDL:RegisterModule(name, table)`
- Slash-Command-System erweiterbar: neuer Command = 1 Zeile `RegisterCmd()`