File Details
HCRoleplay v1.8.7
- R
- Feb 26, 2026
- 131.78 KB
- 5
- 1.15.8
- Classic
File Name
HCRoleplay.zip
Supported Versions
- 1.15.8
# Changelog – HCRoleplay
## [1.8.7] – 2026-02-26
### Added
- **"Das lebende Rollenbuch" – Minimap-Button komplett neu gestaltet:**
- **Kerzenlicht-Glow**: Sanft pulsierender Starburst in warmem Amber (3s Bounce, Alpha 0.06–0.44) — wie eine Kerze die einen alten Buchdeckel beleuchtet
- **3 organisch schwebende Tintenwisps**: Kein einfacher Kreisflug wie bei GDL — jeder Wisp hat einen eigenen Basisradius, eine pulsierende Radiusveränderung (`sin(t) * pulseAmp`) und einen leichten y-Drift (`cos(t * 0.6) * 2`), was eine fließende "Tinte-im-Wasser"-Bewegung ergibt. Goldene Warmtöne (amber/gold/elfenbein).
- **Pergament-Tint**: Icon in warmem Parchment-Ton (0.95, 0.88, 0.65), Border in Gold (0.88, 0.75, 0.35).
- **Emote-Blitz**: Jedes Mal wenn ein RP-Emote tatsächlich gesendet wird, leuchtet ein goldener Ring kurz auf (`Flash()`) und die Wisps hellen für 0.6s auf — visuelles Feedback direkt am Button.
- **Zustandsreaktiv**: Rechtsklick-Deaktivierung dimmt Icon (grau), Border (grau), pausiert den Glow und dimmt die Wisps auf 6% — sofort sichtbar dass das Addon aus ist. Re-Aktivierung stellt alle Farben und Animationen wieder her.
## [1.8.6] – 2026-02-26
### Added
- **AFK: Charakter legt sich hin** statt nur ein Emote-Text zu senden: Bei AFK-Setzen feuert jetzt zuerst `DoEmote("SLEEP")` (Charakter legt sich hin), 0,8s später folgt der gewohnte `SendRP("AFK")`-Text.
- **AFK-Rückkehr: Gähnen als Aufwach-Signal**: Beim Zurückkehren aus dem AFK feuert `DoEmote("TIRED")` (Gähnen), 0,5s später der `SendRP("BACK_FROM_AFK")`-Text.
- **Login: Charakter liegt beim Einloggen**: Bei frischem Login (`isLogin = true`) legt sich der Charakter nach 0,3s via `DoEmote("SLEEP")` hin — als würde er gerade schlafen. Nach 3s folgt der gewohnte `SendRP("LOGIN")`-Text. Der Charakter steht automatisch auf, sobald sich der Spieler bewegt.
## [1.8.5] – 2026-02-26
### Fixed
- **Loot: GetItemInfo Cache-Miss** (Hauptursache): `GetItemInfo()` gibt `nil` zurück wenn ein Item noch nicht im Client-Cache ist. Bisher wurde in diesem Fall still abgebrochen (`if not quality then return end`). Jetzt wird bis zu 4× mit je 0,3s Verzögerung (`C_Timer.After`) nachgefragt, bis die Qualität verfügbar ist.
- **Loot: Doppelter Zufallsfilter entfernt**: Uncommon-Items hatten einen inline `math.random(100) <= 20`-Check (20%) zusätzlich zum `SendRP`-eigenen 15%-Chance-System → effektive Wahrscheinlichkeit ~3%. Der inline-Filter wurde entfernt. Jetzt gilt ausschließlich der im UI konfigurierbare Wert (Standard 15%) für Uncommon-Items. Common- (Qualität 1) und Grau-Items (Qualität 0) werden komplett ignoriert.
- **Berufe: `DoTradeSkill` existiert im Classic 1.15.x Modern Client nicht mehr**: Der Hook schlug silent fehl (via `pcall`), `pendingCraftItem` wurde nie gesetzt, Emotes feuerten nie. Der primäre Hook nutzt jetzt `C_TradeSkillUI.CraftRecipe` (modernes API), `DoTradeSkill`/`DoCraft` bleiben als Fallback für ältere Builds.
- **Loot: `msg:find(playerName)` jetzt plain-text** (`find(..., 1, true)`): Verhindert Fehler wenn der Charaktername Sonderzeichen enthält, die Lua als Regex-Metazeichen interpretiert.
## [1.8.4] – 2026-02-26
### Fixed
- **ENTER_COMBAT zu früh ausgelöst (Wut-Klassen)**: Das Emote feuerte sofort bei `PLAYER_REGEN_DISABLED`, zu einem Zeitpunkt wo Krieger/Bär noch 0 Wut haben. Da `GetResourceStateKey()` für Wut eine invertierte Logik nutzt (0 Wut = `full_res`), stimmte der Emote-Kontext nicht. Jetzt wird das ENTER_COMBAT-Emote um **1,5 Sekunden verzögert** (`C_Timer.After`) – bis dann hat der Charakter die ersten Treffer kassiert und die Wut spiegelt die tatsächliche Situation wider. Guard: Feuert nur, wenn `inCombat` nach dem Delay noch true ist.
## [1.8.3] – 2026-02-26
### Fixed
- **CheckEatingDrinking: falscher UnitBuff-Feldindex** (Classic 1.15.8 Modern Client API hat kein `rank`-Feld mehr → `dispelType` liegt an Position 4, nicht 5). EAT- und DRINK-Emotes feuerten deshalb nie.
- **FISHING-Event war nie implementiert**: In Config/DEFAULTS als 100%-Event aktiv, wurde aber nie ausgelöst. Jetzt Erkennung via `UNIT_SPELLCAST_START` mit allen Angelruten-Spell-IDs (7620/7731/7732/18248 – Classic Rang 1–4). Emote feuert beim Auswerfen der Angel.
- **GATHER_NODE + GATHER_SKIN fehlten in Config.EVENT_INFO und Config.DEFAULT_CHANCES**: Diese in v1.8.1 hinzugefügten Events konnten nicht über das UI ein-/ausgeschaltet werden, und `Config.GetChance()` fiel auf 100% statt der korrekten 30%/40% zurück. Jetzt vollständig in Config registriert.
- **COMPANION_UPDATE nicht registriert**: Das Event wurde im OnEvent-Handler behandelt (für Mount-Erkennung), aber nie via `frame:RegisterEvent()` angemeldet. Jetzt korrekt registriert.
- **`/hcrp events` zeigte veraltete Chancen**: Slash-Command nutzte die veraltete `EVENT_CHANCE`-Tabelle (Dezimalwerte, unvollständig) statt `HCRoleplayDB.chances`. Jetzt werden die Live-Werte aus der DB angezeigt.
### Changed
- **Versionstrings vereinheitlicht**: Core.lua (Ladeprint), UI.lua (Info-Tab + Versionsanzeige) und Minimap.lua (Tooltip) zeigten verschiedene Stände (v1.6.0, v1.7.0). Alle auf v1.8.3 aktualisiert.