Lokalisierung: Alle Menue-Eintraege des Dungeon-Browsers (Rollen, Status, Dungeon-Liste, Spielerliste, Aktionen) verwenden jetzt das Lokalisierungssystem. Auf englischen Clients erscheinen alle Texte korrekt auf Englisch.
Heroische Dungeons: Der Dungeon-Browser zeigt jetzt auch heroische Dungeons an. Diese erscheinen in einer eigenen Sektion unterhalb der normalen Dungeons mit dem Praefix "Heroisch: " vor dem Namen. Heroische Dungeons koennen wie normale Dungeons ausgewaehlt und angemeldet werden.
Tastenkuerzel: Der Dungeon-Browser hat jetzt ein eigenes Tastenkuerzel unter Shift+F1, Core, Skutastenbelegung, Taste zuweisen, "Dungeon Browser oeffnen". Standard ist keine Taste belegt; der User kann frei zuweisen.
Alle abwaehlen: Neuer Button "Alle abwaehlen" im Dungeon-Browser. Setzt alle Dungeon-Auswahlen auf einmal zurueck.
Anzeige: Der Hinweis "Ausgewaehlt" wird jetzt vor den Dungeon-Namen gesetzt (statt dahinter), damit blinde Spieler beim Durchblaettern sofort hoeren, ob ein Dungeon bereits markiert ist.
Technisch: ~39 neue L[]-Eintraege (DB_*) in beiden Locale-Dateien. Hardcoded Strings in dungeonBrowser.lua durch L[]-Aufrufe ersetzt. Zwei "not info.isHeroic"-Filter entfernt (tGetEligibleDungeons und tBuildPhaseB). Heroische Dungeons werden in Phase A als eigene Sektion mit L["DB_HeroicSection"] dargestellt. SKU_KEY_OPENDUNGEONBROWSER in SkuKeyBinds.lua definiert, Handler und Override-Binding in SkuZOptions/Core.lua. DungeonBrowserDeselectAll() setzt db.selection = {} und triggert Menu-Rebuild.
Navigation / Nahe Route
Bugfix: "Nahe Route" bricht nicht mehr nach dem ersten Wegpunkt ab. Die Navigation ueber "Nahe Route" (im Questbuch und im SkuNav-Menue) wurde nach Erreichen des ersten Wegpunkts faelschlicherweise mit "Route folgen beendet" abgebrochen, anstatt zum Ziel weiterzufuehren. Dieser Fehler trat zonenuebergreifend auf und betraf alle Nahe-Route-Navigationen. Das Problem ist behoben -- Nahe Routen fuehren nun zuverlaessig bis zum Ziel.
Technisch: Die BuildChildren der "Closest route"-Handler in SkuQuest/Options.lua (Zeilen 1101ff) und SkuNav/Options.lua (Zeilen 447ff) verwendeten eine flache Struktur, die metapathFollowingStart und metapathFollowingMetapaths einmalig fuer den ersten Einstiegspunkt setzte. Der bereits korrigierte "Route"-Handler setzte in seinen Per-Entry-Point-Submenues metapathFollowingTarget = nil, was bei Menue-Navigation zwischen Geschwistern die Nahe-Route-Daten zerstoerte. Fix: Gleiche Umstrukturierung auf Per-Entry-Point-Submenues wie beim "Route"-Handler -- jeder Einstiegspunkt berechnet seine eigenen Metapaths in seiner eigenen BuildChildren-Funktion.
Chat-Einladung
Bugfix: Die Einladungsfunktion im Chat-Kontextmenue (CTRL+Enter) funktioniert wieder. Bisher konnte ein Fehler auftreten, wenn InviteUnit als globale Funktion nicht verfuegbar war.
Technisch: SkuChat/Core.lua Zeile 2688: InviteUnit() durch C_PartyInfo.InviteUnit()-Fallback ersetzt (gleicher Pattern wie in SkuMob/Options.lua).
Ziel-Aktionsmenue (CTRL+T)
Pet-Aktionen erweitert: Zwei neue Eintraege im Pet-Untermenue. "Zuruecklassen" schickt das Pet temporaer weg (es kann jederzeit wieder gerufen werden). "Umbenennen" oeffnet ein Eingabefeld, in dem ein neuer Name eingegeben und mit Eingabetaste bestaetigt werden kann.
Lokalisierung: Alle Eintraege des Ziel-Aktionsmenues (Untersuchen, Folgen, Handeln, Duell, Fluestern, Einladen, Freund hinzufuegen, Ignorieren, Anfuehrer uebergeben, Entfernen, Pet-Aktionen, Pet-Modus, Raid-Markierungen, Spieler melden, Pluendermethode, Instanzen zuruecksetzen, Gruppe verlassen) sind jetzt lokalisiert. Auf englischen Clients erscheinen alle Texte auf Englisch.
Technisch: SkuMob/Options.lua: ~78 neue L[]-Eintraege (MOB_*) in beiden Locale-Dateien. Alle hardcoded Strings in tRaidMarkers, tReportReasons, tLootMethods, tBuildPetModeSubmenu und tBuildTargetMenu durch L[]-Aufrufe ersetzt. PetDismiss (nur temporaer) und PetRename (ueber EditBoxPasteShow) als neue tAddAction-Eintraege im tIsPet-Zweig.
Charakterfenster (Equipment-Slots)
Bugfix: Wizard Oil, Gifte und Schleifsteine koennen jetzt ueber das Sku-Menue auf ausgeruestete Waffen angewendet werden, ohne ADDON_ACTION_FORBIDDEN-Fehler. Bisher wurde der Klick auf Equipment-Slots aus dem Addon-Kontext ausgefuehrt, was von Blizzard blockiert wurde.
Technisch: SkuZOptions/Core.lua Zeile 3958: Equipment-Slot-Linksklick verwendet jetzt macrotext ("/click SlotName LeftButton") statt reinem OnAction mit PickupInventoryItem. Dadurch laeuft der Klick im Hardware-Event-Kontext und Blizzard erlaubt die Interaktion. Der bisherige OnAction-Code bleibt als Fallback erhalten.
Rollenabfrage
Bugfix: Die manuelle Rollenabfrage (Tank/Heiler/Schaden) verursacht keinen Absturz mehr. Bisher konnte ein Fehler auftreten, wenn die Rollenbuttons keine .role-Eigenschaft hatten, was zu einem nil-Fehler fuehrte und einen Reload erforderte.
Technisch: SkuCore/LocalMenu.lua Zeile 2026: Nil-Guard und Fallback-Rollennamen (TANK/HEALER/DAMAGER) eingefuegt. tButtons[x] wird zusaetzlich auf Existenz geprueft.
Aura-Export
Bugfix: "Alle Auren exportieren" funktioniert wieder und wirft keinen Fehler mehr. Die Funktion GetAddOnMetadata war in neueren WoW-Versionen nicht verfuegbar und verursachte beim Export einen Absturz.
Technisch: SkuAuras/Options.lua Zeile 812: GetAddOnMetadata durch sicheren Fallback-Pattern ersetzt (GetAddOnMetadata oder C_AddOns.GetAddOnMetadata, mit "unknown" als letztem Fallback). Gleicher Fix auch in SkuZOptions/Core.lua Zeile 5252 (Wegpunkt-Export).
/sku version Befehl
Bugfix: Der Chat-Befehl "/sku version" gibt jetzt zuverlaessig die Addon-Version aus. Bisher konnte die Ausgabe leer bleiben, wenn GetAddOnInfo nicht verfuegbar war.
Technisch: SkuZOptions/Core.lua Zeile 128: GetAddOnInfo durch sicheren GetAddOnMetadata-Fallback ergaenzt (gleicher Pattern wie ErrorLog.lua). Ausgabe zeigt jetzt Titel und Versionsnummer.
Minimap-Ressourcen-Scan
Bugfix: Die passive Minimap-Ueberwachung (Erz, Kraeuter, etc.) faengt keine Mausklicks mehr ab. Bisher konnte beim Klicken an verschiedenen Stellen im Addon ein "Ping"-Geraeusch ertoennen und der Klick wurde nicht ausgefuehrt, weil die unsichtbare 1-Pixel-Minimap unter dem Cursor Klicks abgefangen hat.
Technisch: SkuCore/minimapScanner.lua: In MinimapScanFast() werden jetzt vor dem Positionieren der Minimap unter den Cursor alle sichtbaren Minimap-Kinder (insbesondere MiniMapTrackingFrame) versteckt. Schutz portiert aus Version 1.x (Zeilen 479-484). RestoreMinimap stellt die Kinder per MMA_VISIBLE wieder her.
Bugfix: Kraeutersuche, Bergbau und weitere Tracking-Funktionen funktionieren jetzt korrekt mit dem passiven Minimap-Scan. Bisher wurde der Tracking-Zustand bei jedem Scan-Durchlauf deaktiviert und konnte nicht wiederhergestellt werden, weil die C_Minimap.GetTrackingInfo-Rueckgabe (Tabelle statt Einzelwerte) falsch entpackt wurde. Kraeuter und Erze erschienen nicht mehr auf der Minimap, obwohl der Buff-Balken die Suche als aktiv anzeigte.
Technisch: GetTrackingInfo-Aufrufe in tCaptureMinimapState() und in der Tracking-Disable-Schleife von MinimapScanFast() verwenden jetzt den gleichen type(result)=="table"-Check wie SlashActiveSeekings und SkuZOptions/Core.lua. tCaptureMinimapState/tApplyMinimapState sichern und stellen den Tracking-Zustand korrekt wieder her.
Bugfix: Der passive Minimap-Scan kuendigt Kraeuter, Erze und andere Ressourcen beim Laufen jetzt wieder per Sprache an. Bisher blieb die Ansage aus, weil die Tooltip-Auswertung im passiven Scan-Pfad die Ressourcennamen nie korrekt erkennen konnte -- die Matching-Logik verwendete exakte Gleichheit statt Teilstring-Suche und konnte bei Sonderzeichen (Apostrophe in "Khadgar's Whisker" etc.) oder fehlenden Abhaengigkeiten den Tooltip-Text nicht zuordnen.
Technisch: C_Timer.After-Callback in MinimapScanFast() verwendet jetzt denselben string.find-Substring-Match wie der aktive Scan (MinimapScanFindActiveRessource). SkuChat:Unescape wird optional genutzt, blockiert aber nicht mehr die Verarbeitung. gmatch-Fragmentierung und exakte Gleichheitspruefung entfernt.
Versionsanzeige
Sku.toc und SkuDispatcher/Sku.toc auf Title/Version v40.04 aktualisiert.