Loot-Roll

Loot & Roll

File Details

Loot-Roll 4.0.8.zip

  • R
  • Apr 14, 2026
  • 4.96 MB
  • 62
  • 2.5.5
  • Classic TBC

File Name

Loot-Roll 4.0.8.zip

Supported Versions

  • 2.5.5
# Changelog

Version numbers match **`## Version`** in `Loot-Roll.toc`.
(버전은 **`Loot-Roll.toc`의 `## Version`** 과 맞춥니다.)

## [4.0.8]

### Fixed / Changed (Loot-Roll)

- **Version**: **4.0.8** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — `CHAT_MSG_LOOT` confirmed pickup vs mail**: For **acquired / won loot** lines (`fromEncounterLootChat`), no longer maps the local winner to **mail** / **merchant** / **trade** based on open UI. Fixes dungeon loot mislabeled as **mail** when the mailbox was open (`resolveLootMethodAndRoll`). **Mail / vendor / trade** for ambiguous sources still use **`SHOW_LOOT_TOAST`** + **`resolveLootHowFromUiContextAndQuest`**.
- **Loot log — Need/Greed without item link**: **`onChatMsgLoot`** always calls **`pushRollLog`** when a player + roll type parses, even without an item hyperlink; **`pushItemRollLog`** only when a link exists.
- **Loot log — dice value**: **`lootChatExtractRollValue`** normalizes fullwidth colon / Unicode dashes, more flexible **`(1-100) : N`**, trailing **`: N`** fallback; UTF-8 byte escapes (WoW Lua has no **`\u`**).
- **Loot log — late rolls**: **`upgradeRecentEncounterRowWithRoll`** uses **`ROLL_UPGRADE_LOOT_ROW_MAX_AGE` `90`** seconds (was **`25`**) so delayed rolls (death, end of timer, lag) still upgrade rows.

### 한글

- **버전** 4.0.8: `toc` + `DB.version`.
- **전리품 확정 채팅**: 우편함·상점·거래 창이 열린 채 인던 루팅을 우편으로 오표시하던 문제 수정. 우편/구매/거래는 토스트 등 UI 맥락 경로 유지.
- **입찰/차비**: 아이템 링크가 없는 **`CHAT_MSG_LOOT`** 주사위 줄도 **`pushRollLog`** 반영.
- **주사위 숫자**: 전각 콜론·유니코드 대시 등 실제 문구에 맞게 추출; WoW Lua용 **UTF-8 바이트 이스케이프**.
- **늦은 굴림**: 행 생성 후 **90**초 안의 입찰/차비가 줄을 갱신(기본 **30**초 타이머·사망 후 늦은 굴림 등).

---

## [4.0.7]

### Added / Changed (Loot-Roll)

- **Version**: **4.0.7** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Roll window — box (“treasure chest”) session**: New **box icon** button between **Result** and the **dice** button; **framed party/raid announce** + **deadline** + **auto `/roll 1–100`** for the leader; **`boxDiscoverySession`** drives list tags, **highest-only** elimination (no lowest), and badge **crate** icon **`INV_Box_01`** at **12×12** for Classic-friendly art (`LootRoll.lua`).
- **Roll window — normal dice session**: Each press picks a random ceiling **`N ∈ {100,200,…,1000}`** (`sessionNormalRollMax`); announce body uses **`formatNormalRollAnnounceBody`**; **`addRoll`** accepts **`1–N`** for that session (box/mining unchanged); results print as **two lines** (**`announceNormalTopResult` / `announceNormalBottomResult`**) instead of one combined line; list hides **`(1-100)`** suffix only for **1–100** rolls (`LootRoll.lua`).
- **Roll window — mining/herb copy (koKR)**: Indented **framed announce** lines; winner strings use **“담당”**; rules text aligned with **highest-only** tie elimination (`LootRoll.lua`).
- **Roll window — layout**: **Clear** / **Result** buttons narrowed (**40×22** / **48×22**, **3px** gap) so the **mining/herb** bar fits better (`LootRoll.lua`).

### 한글

- **버전** 4.0.7: `toc` + `DB.version`.
- **보물상자(박스) 주사위**: **결과**와 **주사위** 사이 **상자 버튼**, 안내·마감·**본인 1–100 자동**, **최고만 동수탈락**, 우측 상단 배지 **상자 아이콘**(12px, **`INV_Box_01`**).
- **일반 주사위**: 매 회 **100~1000 백단위 무작위 상한 N**, 안내·검증·자동 굴림 **1–N**, 발표 **최고 / 최저 두 줄**, 목록에서 **(1-100)** 만 생략.
- **채광·채집**: 한국어 **들여쓴 안내 멘트**, 결과 **「담당」** 표기 등 문구 정리.
- **하단 바**: **삭제·결과** 버튼 폭 축소로 **채광·채집** 버튼 잘림 완화.

---

## [4.0.6]

### Fixed / Changed (Loot-Roll)

- **Version**: **4.0.6** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — mail source only with mailbox open**: Removed **`mailLootGraceUntil`**, **`TakeInboxItem` / `AutoLootMailItem` hooks**, and grace-based **`isMailLootContext()`**. **Mail** is logged only while **`MAIL_SHOW`** keeps **`isMailboxOpen`** true (`resolveLootHowFromUiContextAndQuest`, **`resolveLootMethodAndRoll`**). **Tradeoff**: **`CHAT_MSG_LOOT` / `SHOW_LOOT_TOAST`** that arrive **after** the mailbox frame has closed are no longer labeled mail (`LootRollLoot.lua`).
- **Loot log — source resolution order**: Documented and linearized: **toast path** = mailbox → merchant → trade → quest window (starter / class-12 give) → encounter; **`CHAT_MSG_LOOT` winner path** = same quest window, then **local** = mailbox → merchant → trade → encounter, else encounter. **Local** branch now includes **trade** like the toast path (`LootRollLoot.lua`).
- **Loot log — quest window + encounter chat**: After **`QUEST_TURNED_IN` / `QUEST_FINISHED`**, generic **`CHAT_MSG_LOOT` “acquired”** lines (e.g. clams) no longer default to **reward**; only **quest starter** / **quest-class (12) objective** keep quest labels; others stay **encounter** (`resolveLootMethodAndRoll`, **`resolveLootHowFromUiContextAndQuest`**).
- **Loot window — `updateLootList` vs locals**: Moved **`strlowerSafe` / `isEncounterishHow` / `isVagueRollHow` / `isDetailedRollHow` / `isGdkpBidHow`** **above** **`updateLootList`** so Lua resolves **locals** (fixes **`attempt to call global 'isDetailedRollHow' (a nil value)`** and blocked frame build) (`LootRollLoot.lua`).
- **Loot window — lifecycle**: **`lootFrameUiReady()`** (parent + scroll child checks), **`LootRollLoot_OnMasterDisabled`** + main-addon hook to **`LFU.teardownLootFrameIfAny()`**; **`LootRollLoot_Toggle` / `Show`** optional **`xpcall(..., debug.traceback)`**; **`/lootroll loot`** guards **`LootRollLoot_Toggle`** (`LootRollLoot.lua`, `LootRoll.lua`).
- **Roll / loot window — frame strata**: Roll frame, loot frame, and loot toast host use **`MEDIUM`**; removed **`HIGH` + `Raise()`** on loot show so default **bags** (typically **`HIGH`**) stack above (`LootRoll.lua`, `LootRollLoot.lua`).
- **Loot log list — alpha**: Row stripes, separators, table edges, and header chrome use **`lootFrameBackdropAlpha()`** (same as **`LootRoll.frameBackdropAlpha`**, default **0.72**) so the list area matches the main backdrop transparency (`LootRollLoot.lua`).

### 한글

- **버전** 4.0.6: `toc` + `DB.version`.
- **우편**: **우편함 UI가 열려 있는 동안만** 우편으로 기록. **`TakeInboxItem` grace·훅** 제거. 닫힌 뒤 늦게 오는 획득/토스트는 우편이 아닐 수 있음.
- **출처 판정 순서**: 토스트 경로와 **`CHAT_MSG_LOOT` 본인** 경로를 **우편함 → 상점 → 거래 → (퀘스트 윈도) → 전리품** 식으로 정리; 본인 줄에 **거래** 분기 추가.
- **퀘스트 직후 + 획득 채팅**: 조개 등은 **보상**으로 덮지 않고, **시작템 / class12 과제**만 퀘 라벨.
- **전리품 창**: **`isDetailedRollHow`** 가 **`updateLootList` 보다 아래** 있어 전역 nil 호출되던 문제 수정(함수 순서 이동).
- **전리품 UI**: 준비 상태 검사·마스터 끔 시 정리·토글 **`xpcall`**·`/lootroll loot` 안전 호출.
- **창 레이어**: 주사위·전리품·토스트 **`MEDIUM`**, 가방보다 아래에 두도록 조정.
- **목록 반투명**: 줄·구분선·가장자리·헤더에 **배경 알파(0.72)** 와 맞춤.

---

## [4.0.5]

### Fixed / Changed (Loot-Roll)

- **Version**: **4.0.5** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Roll / loot window — backdrop alpha**: Shared **`FRAME_BACKDROP_ALPHA = 0.72`** for **`applyElvFrameStyle`** (roll window + loot window when styled); exposed as **`LootRoll.frameBackdropAlpha`**; loot-frame fallback **`SetBackdropColor`** reads **`_G.LootRoll.frameBackdropAlpha`** (`LootRoll.lua`, `LootRollLoot.lua`).
- **Loot log — mail after 4.0.4**: **`TakeInboxItem`** (and **`AutoLootMailItem`** when present) is hooked (**`PLAYER_ENTERING_WORLD`**, once, inside **`pcall`**) to start a short **`mailLootGraceUntil`** window so delayed **`CHAT_MSG_LOOT`** / **`SHOW_LOOT_TOAST`** for the **local player** can still log as **mail** when the mailbox UI is already closed. **`isMailLootContext()`** = mailbox open **or** inside that grace (`resolveLootHowFromUiContextAndQuest`, **`resolveLootMethodAndRoll`**). **Tradeoff**: other personal loot within the same few seconds could be labeled **mail** (rare).
- **Loot window — open / errors**: **`LootRollLoot_Toggle`** / **`LootRollLoot_Show`** wrap **`LFU.buildLootFrame()`** in **`pcall`** and print a chat error on failure; **nil `lootFrame`** guard before **`IsShown()`**. **`LootRollLoot_SetReportPickMode`** uses **`pcall(LFU.buildLootFrame)`** (`LootRollLoot.lua`).
- **Lua chunk local limit (≤200)**: **`LootRollLoot.lua`** no longer exceeds WoW’s per-chunk **`local`** cap: layout constants live in **`LC`**; GDKP helpers in **`GDKP`**; loot-frame build/position/migrate in **`LFU`**. Fixes **`main function has more than 200 local variables`** at load (`migrateLootQualitySettings` line).

### 한글

- **버전** 4.0.5: Loot-Roll `toc` + `DB.version`.
- **주사위·전리품 창 배경**: 공통 알파 **0.72**, **`frameBackdropAlpha`** 로 노출·폴백에서 참조.
- **우편 기록(4.0.4 이후)**: **`TakeInboxItem`** 훅 + **짧은 유예**로 우편함을 닫은 뒤 늦게 오는 획득/토스트도 **우편**으로 잡을 수 있음(몇 초 안 다른 본인 루팅은 드물게 우편으로 오인 가능).
- **전리품 창**: 생성 실패 시 **Lua 대신** 채팅 오류 안내, **`lootFrame` 없을 때** 토글 안전 처리.
- **Lua local 200개 제한**: **`LC` / `GDKP` / `LFU`** 테이블로 묶어 로드 오류(**main function has more than 200 local variables**) 제거.

---

## [4.0.4]

### Fixed / Changed (Loot-Roll)

- **Version**: **4.0.4** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — mail / vendor inference**: Removed **`MAIL_CLOSED`** / **`MERCHANT_CLOSED` grace** windows (`lootMailGraceUntil`, `lootMerchantGraceUntil`). **Mail** and **purchase** are applied only while the **mailbox** or **merchant** UI is **actually open** (`isMailboxOpen` / `isMerchantWindowOpen`), for both **`SHOW_LOOT_TOAST`** (`resolveLootHowFromUiContextAndQuest`) and **`CHAT_MSG_LOOT`** local-winner paths (`resolveLootMethodAndRoll`). Prevents **encounter** loot and toasts from being logged as **mail** shortly after closing the mailbox. **Tradeoff**: attachment **CHAT_MSG_LOOT** that arrives only after the mailbox frame has closed may be logged as **encounter** (`LootRollLoot.lua`).
- **Loot log — quest reward window (toasts)**: Inside **`questRewardLootUntil`**, **`itemStartsQuest(link)`** is evaluated **before** **`itemIsQuestObjectiveClass`** so **quest starters** are not mislabeled as **give** / objective flow (`resolveLootHowFromUiContextAndQuest`; same order in **`resolveLootMethodAndRoll`** for **`CHAT_MSG_LOOT`**).
- **Loot log — quest start detection**: **`itemStartsQuest`**: uses **`CreatesQuest`** / **`CreatesQuest`** from **`C_Item.GetItemQuestInfo`** when present; when the API explicitly says **not** a starter, legacy **`GetItemQuestInfo`** is **not** used to force a starter; **`GetItemInfo`** prime + id/link API attempts unchanged; for **quest class (12)** items, a **hidden `GameTooltip`** scan matches **begins a quest** / localized equivalents (KO/EN/DE/FR/ES/IT/RU/ZH), with **positive cache** by item id; skipped **in combat** (`LootRollLoot.lua`).
- **Loot log — `CHAT_MSG_SYSTEM` “receive item”**: When the line matches **quest-class** items, **`how`** is **시작** / **`Start`** if **`itemStartsQuest`**, else **give** label (`LootRollLoot.lua`).
- **Loot log — method display**: **`methodIconTag`** and **`howDisplayText`** evaluate **quest-start** patterns (**시작**, **start**, **시작템**, **quest start**) **before** the generic **아이템** / **quest item** branch so stored / localized strings containing **아이템** are not shown only as quest-drop (`LootRollLoot.lua`).
- **Code**: **`local itemStartsQuest`** forward declaration moved to the top of **`LootRollLoot.lua`** for early **`resolveLootHowFromUiContextAndQuest`** references.

### 한글

- **버전** 4.0.4: Loot-Roll `toc` + `DB.version`.
- **우편·구매 추정**: 우편함/상점을 **닫은 뒤 grace** 제거. **창이 열려 있는 동안만** 우편·구매로 기록(토스트·본인 획득 채팅 공통). 닫은 직후 전리품이 **우편**으로 쌓이던 문제 완화. **트레이드오프**: 우편함을 닫은 뒤에만 도착하는 첨부 **획득 채팅**은 **전리품**으로 남을 수 있음.
- **퀘스트 보상 윈도**: 토스트·채팅 모두 **`itemStartsQuest` → `itemIsQuestObjectiveClass`** 순으로 **시작 아이템**이 **수령**으로 잡히지 않게 함.
- **퀘스트 시작 판정**: **`C_Item.GetItemQuestInfo`** 의 **`CreatesQuest`** 반영, **`createsQuest == false`** 이면 레거시 **`GetItemQuestInfo`** 로 시작으로 보지 않음; class 12이면 **툴팁 문구** 보조(다국어) + 성공 시 **itemId 캐시**, **전투 중** 미스캔.
- **시스템 채팅 수령**: 퀘스트 범주 아이템이면 **`itemStartsQuest`** 일 때 **시작**.
- **방식 표시**: **시작**류 패턴을 **아이템** 매칭보다 **앞**에 두어 표시 오인 방지.
- **`itemStartsQuest`** 파일 상단 **forward 선언**.

---

## [4.0.3]

### Added / Changed (Loot-Roll)

- **Version**: **4.0.3** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — GDKP title / channel sum (Gold bids only)**: Players who are **not** the **raid leader** and **not** the **Raid Book assigned distributor** sum **all visible** GDKP bid gold on the title bar and in the **extra report line** after Party/Raid/Guild send; labels **낙찰금액합계** (KO) / **Visible bids total** (EN). **Raid leader** or **assigned distributor** still sums **other members only** (own winning bids excluded); tooltips spell out the **own-wins excluded** rule. **Gold bids only** filter tooltip and **settings → loot log** copy updated (`LootRollLoot.lua`, `LootRoll.lua`).
- **Loot log — method column layout**: The **how** column no longer applies **`LOOT_CELL_PAD_X`** on the **left** (only the inter-column **pad** remains), so the method icon is not pushed in from the divider; icon cell **15px** with **RIGHT**-justified `|T|t` in that cell (`LootRollLoot.lua`).
- **Loot log — Disenchant / 추출**: **`methodIconTag`** returns **`UI-GroupLoot-DE-Up`** for DE / **추출** / **disenchant** / **마력** (and **`L.lootMethodDE`** match); **`howDisplayText`** returns **`L.lootMethodDE`** so the list shows **icon + localized label** like other icon methods (toasts use the same helpers) (`LootRollLoot.lua`).

### 한글

- **버전** 4.0.3: Loot-Roll `toc` + `DB.version`.
- **낙찰(골드)만 합계**: 공대장·Raid Book 경매 담당이 아니면 **보이는 낙찰 골드 전부** 합산, 제목·채팅 보고 라벨 **낙찰금액합계** / 영문 **Visible bids total**. 공대장·경매 담당은 **본인 낙찰 제외** 합(낙찰합계) 유지, 툴팁·필터·설정 문구에 **본인 제외** 명시.
- **방식 열**: 열 **왼쪽**에 쓰이던 **`LOOT_CELL_PAD_X`** 제거(열 간 `pad`만), 아이콘 **15px**·셀 내 **우측 정렬**로 좌측 빈 여백 완화.
- **추출**: **`UI-GroupLoot-DE-Up`** 아이콘 + **`L.lootMethodDE`** 라벨(목록·토스트).

---

## [4.0.2]

### Added / Changed (Loot-Roll)

- **Version**: **4.0.2** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — quest UI context (toasts / no-source loot)**: While the **post–quest-turn-in** window is active (`questRewardLootUntil`), **`resolveLootHowFromUiContextAndQuest`** uses **`L.lootMethodQuestGive`** (**수령** / **Receive**) for **Quest-class objective items** (`itemIsQuestObjectiveClass`); other items still use **`L.lootMethodQuest`** (**보상** / reward) (`LootRollLoot.lua`).
- **Loot log — method column (quest start, legacy strings)**: **`methodIconTag`** and **`howDisplayText`** treat **`시작템`** / **`quest start`** (and **`시작`** / **`start`**) like the **`addLootRow`** final pass so old saved `how` values still get the **quest-start icon** and normalized label (`LootRollLoot.lua`).
- **Loot log — row right-click**: **`configureHitItemUseIfQuestGive`** enables **`/use`** on **right-click** for **수령** / **Receive**, **시작** / **start** / **시작템** / **quest start**, and when **`itemStartsQuest(link)`** and the method string contains **시작**; **mail** and **vendor purchase** rows stay non-interactive for this path (`LootRollLoot.lua`).

### 한글

- **버전** 4.0.2: Loot-Roll `toc` + `DB.version`.
- **퀘스트 보상 직후 UI 추정**: 토스트 등 출처 없는 획득에서, 짧은 퀘스트 보상 윈도 안이면 **퀘스트 과제 아이템**은 **수령**, 그 외는 **보상**으로 추정.
- **시작 라벨 호환**: 저장된 **시작템**·**quest start** 등도 아이콘·표시문이 **addLootRow** 맨 끝 판정과 맞게 동작.
- **목록 행 우클릭**: 퀘 수령·퀘스트 시작(및 동일 의미 문자열) 줄에서 아이템 **우클릭 `/use`**; 우편·구매 줄은 제외.

---

## [4.0.1]

### Added / Changed (Loot-Roll)

- **Version**: **4.0.1** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — quest start items**: **`itemStartsQuest`** is applied at the **end** of `addLootRow` (after mining / herb / skinning / DE), overwriting encounter-like `how` except **trade / mail / purchase** and roll types; label **`시작`** (KO) / **`Start`** (en); **`methodIconTag`** quest icon matches after other quest labels; **`updateLootList`** migrates old rows (`LootRollLoot.lua`, `LootRoll.lua`).
- **Loot log — quest objective items** (tooltip **Quest** class): **`itemIsQuestObjectiveClass`** → **퀘드랍** / give-label normalization runs **after** the quest-start pass (same “final judgment” idea); **`not itemStartsQuest`** prevents stripping starters (`LootRollLoot.lua`).
- **Loot log — skinning (무두)**: Same pattern as **mining / herbalism** for **Trade Goods** leather-like materials (`GetItemInfo` subtype strings + subclass fallback); **`L.lootMethodSkinning`**, **`Trade_Skinning`** icon; **`isEncounterishHow`** includes skinning for stack merge (`LootRollLoot.lua`, `LootRoll.lua`).
- **Loot log — method column colors**: **수령** and **시작** no longer use **yellow** (`|cffffd200`); plain text like **보상** / **전리품** (`howDisplayText` in `LootRollLoot.lua`).

### 한글

- **버전** 4.0.1: Loot-Roll `toc` + `DB.version`.
- **퀘스트 시작**: `addLootRow` **맨 끝**에서 재판정(거래·우편·구매·주사위류 제외), 방식 **시작** + 퀘스트 아이콘, 목록 새로고침 시 예전 줄 보정.
- **퀘스트 과제 아이템**: 시작 판정 **다음**에 퀘드랍·지급 라벨 정리; 시작 아이템은 퀘드랍으로 덮지 않음.
- **무두(스킨닝)**: 채광·약초와 동일하게 무역 재료 **가죽**류로 표기·아이콘; 연속 획득 합치기에 포함.
- **방식 열**: 수령·시작 **노란색 제거**, 다른 방식과 같이 기본 밝은색.

---

## [4.0.0]

### Added / Changed (Loot-Roll)

- **Version**: **4.0.0** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — method column**: **Right-aligned** text; when `methodIconTag(how)` returns an icon, **left cell** shows the icon and **right cell** shows **label / roll / GDKP gold** only (`LootRollLoot.lua`).
- **Loot log — mail**: Short **`MAIL_CLOSED` grace** plus **local-player** check so **`CHAT_MSG_LOOT`** acquisition lines still log as **mail** after the mailbox closes; **`MAIL_SHOW` / `MERCHANT_SHOW`** clear the **other** grace timer. **`resolveLootHowFromUiContextAndQuest`** order is **mail before merchant**. **Mail icon**: `INV_Letter_15` with **64×64 UV crop** (trim icon border). **Fix**: **`strlowerSafe` before definition** in `methodIconTag` / `howDisplayText` — use **`strlower(tostring(...))`** for mail-label checks (`LootRollLoot.lua`).
- **Loot log — vendor purchase**: **`MERCHANT_CLOSED` grace** + **local player** so buys are not logged as **encounter** when chat arrives after the merchant window closes (`LootRollLoot.lua`).
- **Loot log — auto popup**: While **mailbox** or **merchant** UI is **open**, **loot frame auto-show** and **loot toasts** are **skipped** (history still updates) to avoid the **HIGH** frame **blocking** Mail / Vendor clicks (`LootRollLoot.lua`).
- **Loot log — method text**: **Removed item-quality coloring** from **Reward / Encounter** method labels (plain **`L.lootMethodQuest`** / **`L.lootMethodEncounter`**). **`howDisplayText`** mail label **`우편`** (`L.lootMethodMail`); quest-give branch shows **`L.lootMethodQuestGive`** (**수령** / **Receive**) in **yellow** instead of the old **지급품** wording (`LootRollLoot.lua`, `LootRoll.lua`).
- **`isEncounterishHow`**: Treats saved **`우체통`** as well as **`우편`** for stack/dedup behavior (`LootRollLoot.lua`).

### 한글

- **버전** 4.0.0: Loot-Roll `toc` + `DB.version`.
- **방식 열**: 텍스트 **우측 정렬**; 아이콘이 있으면 **왼쪽 아이콘 + 오른쪽** 글자·숫자·낙찰금.
- **우편**: 우편함 닫은 뒤에도 **짧은 grace**로 본인 획득 채팅을 **우편**으로 기록; 상점 열면 우편 grace·우편 열면 상점 grace **상호 초기화**. 토스트/UI 추정에서 **우편 우선**. 편지 아이콘 **테두리 크롭**. `strlowerSafe` 선정의 오류 **수정**.
- **상인 구매**: 상점 닫은 뒤 **grace** + 본인이면 **구매**로 기록(늦은 채팅 대비).
- **자동 팝업**: 우편함·상점이 **열린 동안** 전리품 창 자동 표시·토스트 **생략**(기록은 유지), 기본 UI 클릭 가림 방지.
- **방식 문구**: 보상·전리품 등 **아이템 품질색 제거**. 메일 표기 **우편**; 퀘 수령류 표기 **수령**(노란색), 예전 **지급품** 문구 대체.
- 구버전 저장값 **우체통** 인식 유지.

---

## [3.3.4]

### Added (Loot-Roll)

- **Loot log — stack count**: Per-row optional **`stack`** (persisted in `lootHistory`). Shown as **×N** in the list and toasts when **N ≥ 2**; included in **channel report** lines as `… xN`. Parsed from **`CHAT_MSG_LOOT`** tails after the item link: `(N)`, `xN`, `×N`, **`N개`** (KO). **GDKP raid trade log**: quantity read from **`GetTradePlayerItemInfo` / `GetTradeTargetItemInfo`** on the traded slot when **raid Gdkp trade log** is on and stack is ≥ 2. (`LootRollLoot.lua`)
- **Dedup key**: `recentLootKeys` includes stack so different quantities do not collapse into one line.

### Fixed (Loot-Roll)

- **Loot log — quest rewards (KO)**: **`CHAT_MSG_LOOT`** acquisition lines can show **보상** again: **`QUEST_TURNED_IN` / `QUEST_FINISHED`** extend a short time window, and **`resolveLootMethodAndRoll`** checks it **before** treating the line as encounter loot (previously `fromEncounterLootChat` always forced **획득** and skipped the quest branch).

### 한글

- **버전** 3.3.4: Loot-Roll `toc` + `DB.version`.
- **전리품 수량**: `lootHistory`에 **`stack`** 저장. **2개 이상**이면 목록·토스트 **×N**, 채널 보고에 **` xN`**. 채팅 `(N)`·`xN`·`N개` 등 파싱. **공대 GDKP 거래 기록** 켜짐 + 슬롯 **2개 이상**이면 거래창 API로 수량 반영.
- **퀘스트 보상**: 퀘스트 이벤트 직후 윈도 + `resolveLootMethodAndRoll` 순서 조정으로 **보상** 표시 복구.

---

## [3.3.3]

### Fixed (Loot-Roll)

- **Version**: **3.3.3** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — method column (KO)**: `CHAT_MSG_LOOT` **encounter / acquisition** lines (e.g. `…님이 아이템을 획득했습니다`, `[전리품]: … 차지했습니다`) no longer inherit **Mail** when the **mailbox UI** is open and there is no roll type to override the default. Base method for those lines is always **획득** (`lootMethodEncounter`), then Need/Greed/Pass still apply when known. (`LootRollLoot.lua`, `resolveLootMethodAndRoll`)

### 한글

- **버전** 3.3.3: Loot-Roll `toc` + `DB.version`.
- **전리품 방식 열**: 우편함 창이 열린 상태에서도, 채팅 **획득·차지 확정 문구**로 들어온 줄은 **우편**이 아니라 **획득**으로 표시(입찰/차비/포기 정보가 있으면 기존처럼 반영).

---

## [3.3.2]

### Added / Changed (Loot-Roll)

- **Version**: **3.3.2** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — net wallet title (낙찰(골드)만 off)**: Shows **net gold change** vs a saved **baseline** (`GetMoney()` − baseline) using **`PLAYER_MONEY`** — includes loot, vendors, trades, mail, repairs, AH, etc.; **negative** when you spent more than you gained. Baseline stored per character in **`lootSessionBaselineByChar`** (GUID key); persists across **`/reload` and logout** until **right-click** reset (or migrate from legacy `lootSessionBaselineMoney`). (`LootRollLoot.lua`)
- **Loot log — GDKP title labels**: **낙찰합계** / **구매합계** (KO), **Winning total** / **Purchase total** (EN) replace 수입/지출 · Income/Spend; tooltips and settings copy updated. (`LootRoll.lua`)
- **Loot log — filter row**: Tighter **checkbox / icon spacing** so the six filters fit default width without clipping. (`LootRollLoot.lua`)

### 한글

- **버전** 3.3.2: Loot-Roll `toc` + `DB.version`.
- **전리품 제목(낙찰(골드)만 끔)**: 보유금 **순변동** — 상인·거래·전리 등 지갑 변화 전부 반영, **캐릭터별 저장**·**우클릭**으로만 초기화(구 `lootSessionBaselineMoney` 마이그레이션).
- **낙찰(골드)만 켬**: 제목 **낙찰합계** / **구매합계** 문구 및 툴팁·설정 설명 정리.
- **필터 줄**: 체크박스 간격 조정으로 잘림 완화.

---

## [3.3.1]

### Changed (Loot-Roll)

- **Version**: **3.3.1** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Settings — save detached chat positions**: Chat tab rows are laid out **horizontally** (wraps when needed); removed the vertical **scroll** list (`LootRoll.lua`).
- **Settings — window scale slider**: Thinner track; **fill** reflects current scale (50–100%); **colors** aligned with red **`UIPanelButton`** (e.g. Open roll list); tick label color adjusted (`LootRoll.lua`).
- **Chat temperature hint**: Updated **KO/EN** copy (KO example: `%s님의 %.1f도는 섭씨 %.1f도, 또는 화씨 %.1f도 입니다.`). For **your own** lines, the hint is **deferred** (~0.12s, with a no-`C_Timer` fallback) so the **original** temperature line usually appears **before** the addon line (`LootRoll.lua`).

### 한글

- **버전** 3.3.1: Loot-Roll `toc` + `DB.version`.
- **분리 채팅창 위치 저장**: 탭 목록 **가로 배열**(넘치면 다음 줄), 세로 스크롤 박스 제거.
- **창 크기 스케일**: 트랙 두께 축소, **값 비례 채움**, 패널 버튼과 같은 **붉은 톤**, 눈금 글자색 조정.
- **온도 안내**: 문구 정리(예: `…님의 …도는 섭씨 …, 또는 화씨 …`); **본인 발화**는 안내를 한 박자 늦춰 **원문이 먼저** 보이도록.

---

## [3.3.0]

### Changed (Loot-Roll)

- **Version**: **3.3.0** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).

### Raid Book (별도 애드온 `RaidBook/`)

Loot-Roll 루아 변경 없음. Raid Book **3.3.0** 요약:

- **토스트(`showToast`)**: 채팅 대신 화면 상단 패널 — `+아이템` 품질 거절·편집 불가(**danger** 적색 테두리), 추가 실패(**warn**), 수동 **+수익 / -지출 / +아이템**·Ctrl·`/rb` 성공·**거래 완료 장부 반영**(**success**). `RBUtil` / `RBCmd` / `RBGui`, 로캘 문자열 `RBLocale`.
- **`+아이템` 품질**: 채팅 자동 수집과 동일(희귀+ 또는 녹색 도안류). 미달 시 장부 미기록 + 토스트. `ItemPassesLedgerPickupQualityRules`, `AddLoot(..., false)`.
- **거래 → 장부**: `ApplyPlayerToTargetTradeSnap` 성공 시 결과 코드로 토스트(구매·낙찰 합침·마력추출 인계·0골 득자 갱신 등). `danger` 테두리는 주황이 아닌 **빨간색**으로 통일.

상세·파일 단위는 `RaidBook/CHANGELOG.md` **[3.3.0]** 참고.

### 한글

- **버전** 3.3.0: Loot-Roll `toc` + `DB.version`.
- **Raid Book**: 토스트 알림, `+아이템` 고급+ 규칙, 거래 장부 반영 토스트, danger 색 — 위 요약 및 `RaidBook/CHANGELOG.md` 참고.

---

## [3.2.1]

### Added (Loot-Roll)

- **Version**: **3.2.1** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — GDKP title sum tooltip**: With **Gold bids only** / **낙찰(골드)만**, hover the **gold total** on the right of the title bar for a note that the **auction leader / distributor’s own winning bids** are **not** included in this log (ledger-only / no trade path). Strings: `lootTitleGoldSum_tt` (`LootRoll.lua`); hit frame in `LootRollLoot.lua`.

### 한글

- **버전** 3.2.1: Loot-Roll `toc` + `DB.version`.
- **전리품 기록**: **낙찰(골드)만** 켠 상태에서 제목줄 오른쪽 **골드 합계**에 마우스를 올리면 툴팁 — **경매담당자 본인 낙찰가**는 거래·채팅 반영이 없으면 이 목록/합계에 **안 잡힌다**는 안내.

---

## [3.2.0]

### Changed (Loot-Roll)

- **Version**: **3.2.0** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).

### Raid Book (별도 애드온 `RaidBook/`)

Loot-Roll 루아 변경 없음. Raid Book **3.2.0**: `*마력추출*` 표기·정규화, 낙찰 0 시 **무득 자동**, 거래/동기화·`/rb` 설명·분배 인원 기본값 등 — 상세는 `RaidBook/CHANGELOG.md` **[3.2.0]** 참고.

### 한글

- **버전** 3.2.0: Loot-Roll `toc` + `DB.version`.
- **Raid Book** 상세: `RaidBook/CHANGELOG.md` **[3.2.0]** 참고.

---

## [3.1]

### Changed (Loot-Roll)

- **Version**: **3.1** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).

### Raid Book (별도 애드온 `RaidBook/`)

이번 작업에서 코드가 바뀐 것은 **Raid Book** 쪽입니다. Loot-Roll 루아는 변경 없음.

- **낙찰가 입력 + Tab**: Blizzard `strtrim()`이 `"600"` 등을 `"6"`으로 깎던 문제 → `RBCostEditNormalizeDigits()`로 콤마·ASCII 공백만 처리. 중복 `OnTextChanged` 제거, `rbPersistLedgerCost` 정리. 진단용 `/rb debugcost`.
- **거래 자동 장부**: `ApplyPlayerToTargetTradeSnap` — 판매자(거래 넣는 쪽) 짧은 이름 + 아이템 ID + 낙찰 0원 줄을 **수량만큼** 맞춰 처리. 골드 0이어도 스냅샷 유지. 마부사→공대장 재료 넘김 시 중복 줄 완화. `AddLoot(..., skipZeroPrecreditStrip)`.
- **공대장·경매담당 → 골드 0 인계**: 득자 **`*마력추출*`** (예전 표기·한쪽만 `*` 인 값은 정규화). 낙찰 0이면 **무득 체크 자동**. (낙찰 0은 기존과 같이 분배 “획득자” 집계에 안 잡힘.)
- **총분배인원 입력**: **Tab** 시 **Enter**와 같이 `clearAllFocus()` 로 포커스만 해제.

### 한글 (요약)

- **버전** 3.1: Loot-Roll `toc` + `DB.version`.
- **Raid Book**: 낙찰가 Tab/`strtrim` 버그 수정, 거래·마력추출 인계·분배인원 Tab 동작 — 상세는 `RaidBook/CHANGELOG.md` **[3.1]** 참고.

---

## [3.0.2]

### Changed

- **Version**: **3.0.2** (`Loot-Roll.toc`, in-game `DB.version`).
- **Chat temperature hint**: Skips **`N/M도`-style party recruitment** (e.g. `2/5도`, `2 / 5도`) so the denominator is not read as °C/°F. Settings tooltip (KO/EN) notes the exclusion.

### 한글

- **버전** 3.0.2 (`toc`, `DB.version`).
- **온도 안내**: **`2/5도`·`2 / 5도`** 등 앞에 **`숫자/`** 가 붙은 모집 인원 표기는 온도로 처리하지 않음. 설정 툴팁에 안내 추가.

---

## [3.0.1]

### Changed

- **Version**: **3.0.1** (`Loot-Roll.toc`, in-game `DB.version`).
- **Loot log — top quality band (고급-/희귀+/영웅+)**: First-load / migration keeps **Rare+** as the default band. Legacy `lootMinQuality == 1` maps to **rare** (not low). `migrateLootQualitySettings()` runs from **`LootRollLoot_BindDB()`** on addon load; `mirrorSavedVariables()` after migrate.

### 한글

- **버전** 3.0.1 (`toc`, `DB.version`).
- **전리품 상단 등급 필터**: 최초·마이그레이션 시 **희귀+** 에 맞게 정리. 구버전 `lootMinQuality == 1` → **희귀+** 밴드. `LootRollLoot_BindDB()` 시점에 마이그레이션 후 `mirrorSavedVariables()`.

---

## [3.0.0]

### Changed

- **Version line**: Set to **3.0.0** (`Loot-Roll.toc`, in-game `DB.version`). 기능은 2.6.15 이후 패치를 포함합니다; 상세는 아래 2.6.x 항목 참고.

### 한글

- **버전 번호**만 **3.0.0**으로 올렸습니다. 동작·저장 구조는 2.6.x 계열과 호환되는 범위에서 이어집니다.

---

## [2.6.15]

### Changed

- **Chat temperature hint**: Still listens on **all** monitored chat types (say, party, raid, guild, instance, whisper, channels, emote, …). The hint is always shown only in your **default chat frame** (not routed into guild/party/raid–specific tabs). **Party/raid addon coordination** for temperature was **removed** — not needed when only you see the line.
- **Chat temperature hint**: Speaker names in the hint **omit the realm** suffix.
- **Chat temperature hint**: If **you** wrote the line, handling runs **next frame** so your message appears before the hint.

### Fixed

- **Slash** (`/lr`, `/lootroll`, …): If the roll UI failed to load, **show/toggle** no longer errors on a nil frame; a short chat notice is shown instead.
- **Ignored-roll leader notice** to party/raid: `SendChatMessage` uses **`pcall`** (same idea as other send helpers).
- **Loot log** (`LootRollLoot.lua`): After trade / merchant / mail / quest windows close, delayed flag resets use **`C_Timer` only when present**; otherwise flags clear immediately.

### 한글

- **온도 안내**: 길드·파티·공대·귓말·채널 등 **감시 채널은 그대로**이고, 안내 줄은 **항상 기본 채팅창**에만 붙입니다(길드/파티 전용 탭으로 나누지 않음). 본인만 보는 출력이라 **파티·공대 조율(애드온 메시지)** 은 **제거**했습니다.
- 온도 안내 문구의 말한 사람 이름에서 **서버 접미사**를 뺍니다.
- **본인이** 온도를 친 경우, **한 틱 늦춰** 처리해 원문 줄이 먼저 보이게 합니다.
- **슬래시**: 주사위 창 생성에 실패했을 때 열기/토글 시 **Lua 에러**가 나지 않도록 했습니다.
- 무시 알림을 파티·공대로 보낼 때 `SendChatMessage`를 **`pcall`** 로 감쌌습니다.
- **전리품**: 거래·상점·우편·퀘스트 창 닫힘 후 지연 처리에 **`C_Timer` 없으면** 즉시 플래그만 내립니다.

---

## [2.6.14]

### Changed

- **Chat temperature hint**: One line now shows **both** conversions — if the number was **°F** → **°C**, and if it was **°C** → **°F** (client-only; chat tab routing changed again in **2.6.15** — see above).

### 한글

- **온도 안내**: 「화씨였다면 섭씨 ○○도, 섭씨였다면 화씨 ○○도」 형식으로 **두 경우**를 함께 표시합니다. (채팅 탭 라우팅은 **2.6.15**에서 다시 정리됨.)

---

## [2.6.13]

### Fixed

- **Settings panel**: Content is inside a **main scroll frame** so long text no longer overflows off-screen; **scrollbar** works for the whole addon options page.
- **Settings width**: Description blocks and buttons follow the **actual panel width** (`OnShow` / `OnSizeChanged`) so text uses the canvas area (default ~620px when floating; matches Blizzard settings width when embedded).

### 한글

- **설정창**: 본문을 **스크롤**로 감싸 긴 안내가 화면 밖으로 밀리지 않고, **스크롤바**로 전체를 볼 수 있습니다.
- 설명·버튼 폭이 **창 너비에 맞춰** 갱신되어 빈 여백만큼 줄이 좁아지던 문제를 줄였습니다.

---

## [2.6.12]

### Changed

- **Chat temperature hint**: The °C line is printed to the **first chat tab that shows that message type** (guild / party / raid / instance / whisper / channel / say …), using that type’s colors — still **only on your client**.

### 한글

- **온도 변환 안내**: 길드에서 들은 말은 길드가 켜진 탭, 파티는 파티 탭처럼 **출처와 같은 종류**의 채팅창에만 표시합니다(여전히 본인 화면만).

---

## [2.6.11]

### Added

- **Settings** (default **on**): **Chat temperature hint** — when a line contains a number + Korean **도** (e.g. `23도`), assumes **°F** and prints **°C** only to **your** default chat frame (others do not see it). Toggle in settings.

### 한글

- **설정**(기본 **켜짐**): 채팅에 **숫자+도**가 나오면 그 값을 **화씨**로 보고 **섭씨**를 **본인 채팅창에만** 표시합니다.

---

## [2.6.10]

### Changed

- **Settings**: **Raid GDKP** is no longer a checkbox; it is **always enabled** in saved data and explained in a static help block (raid-only behavior unchanged).
- **Loot toast** (live + **result preview**): host/preview panel **taller and slightly wider** so **four** stacked sample rows fit cleanly (was sized for fewer lines).

### 한글

- **설정**: **공격대 GDKP** 체크박스를 없애고 **항상 켜진 값**으로 저장하며, 동작은 설정창 **설명 문단**으로만 안내합니다(공격대에서만 GDKP 갱신하는 것은 동일).
- **전리품 토스트**·**결과창 미리보기**: **4줄** 기준으로 패널 **높이·너비**를 키웠습니다.

---

## [2.6.9]

### Added

- **Loot log**: With **Gold bids only** / **낙찰(골드)만** on, after sending checked rows to **Party / Raid / Guild**, one extra chat line sends the **same filtered GDKP gold total** as the title bar (comma-formatted amount).

### Changed

- **Loot log**: Removed the bottom **Say** button; **Party / Raid / Guild** buttons are wider to use the freed space.
- **Settings**: New **loot log** help block; **Gold bids only** tooltip notes title-bar sum and chat total line.

### 한글

- **전리품**: **낙찰(골드)만** 켜진 상태에서 체크한 줄을 **파티·공대·길드** 채널로 내면, 제목줄과 같은 기준의 **낙찰 골드 합계**를 한 줄 더 보냅니다.
- **전리품**: 하단 **일반(SAY)** 버튼 제거, **파티·공대·길드** 버튼 넓이 확대.
- **설정**: 전리품 기록 창 안내 문단 추가, **낙찰(골드)만** 툴팁에 제목 합계·채팅 합계 안내 반영.

---

## [2.6.8]

### Changed

- **Roll window**: Removed **auto `/roll` + 30s countdown** round start. The bottom-right control is now **`/채광채집`** (KR) / **`/mine herb`** (en): sends one line to **party** or **raid** chat asking for rolls (ore mining 1–100, herbs 1–200). Solo: prints to self + usual no-group notice. Tooltip shows the exact line. Layout: full-width button row above **Clear / Close now / Result**.

### 한글

- 주사위 창: **`/roll` 자동 실행·30초 카운트** 제거. 하단 버튼을 **`/채광채집`**으로 바꿔 클릭 시 **파티·공대**에 「광물 채광 100 약초 채집 200 주사위 굴려주세요.」 멘트 전송. **솔로**는 자신에게만 + 기존 무그룹 안내. 툴팁에 멘트 표시. **삭제·즉시 마감·결과** 위에 한 줄 전체 폭 버튼 배치.

---

## [2.6.7]

### Changed

- **Roll capture (no `/lootroll target`)**: Removed “first roll locks range for everyone.” Each system message’s **(low–high)** is its own pool (e.g. `1–100` vs `1–200`). **Duplicates ignored per pool** (same player rolling twice in the same range). **Announce** prints **top/bottom per range** (each line prefixed with `[low-high]`). **Auto-close when everyone rolled** only runs when there is **a single range** in the session (multi-range → use **Result** manually). **`/lootroll target N`** behavior unchanged (single pool 1–N).

### 한글

- **일반 모드**(`/lootroll target` 없음): **첫 굴림이 전체 기준**이 되던 방식을 없애고, 시스템에 찍힌 **주사위 범위마다** 따로 모읍니다. **같은 구간에서 같은 사람이 여러 번** 굴리면 기존처럼 **중복 무시**. **결과**는 **`[1-100]` … `[1-200]` …** 식으로 **구간별 최고·최저**. **여러 구간이 섞인 라운드**에서는 **전원 굴림 완료 자동 마감**을 쓰지 않고, **결과** 버튼으로 마감. **목표 숫자 모드**는 예전과 같이 **단일 풀(1–N)**.

---

## [2.6.6]

### Changed

- **Chat window list (Settings)**: Better **floating vs docked** detection (`GetChatWindowInfo` `docked` may be **`nil`** for undocked tabs). Fallback lists **shown** secondary windows (2+) so names like **Party** appear even when the API is ambiguous; optional **· docked** tag + tooltip. **`UPDATE_CHAT_WINDOWS`** refreshes the list while settings are open.
- **Settings layout**: **Refresh list** moved **below** the description so the title, text, and button no longer overlap; panel height adjusted.
- **Debug**: Restored optional **`[LR-DBG] LOAD`** line (~2s after load) with roll, loot, and saved **chat#n** x/y; toggle with **`LootRollSaved.debugLoadPos`** (default **on**; set **`false`** to silence).

### 한글

- **채팅창 목록**: 분리 탭 판정 보강(API의 `docked`가 `nil`인 경우 포함), 보조 창이 보이면 **목록에 표시**·API가 도킹으로만 나올 때 **· 도킹** 표시. 채팅 창 변경 시 **`UPDATE_CHAT_WINDOWS`**로 목록 갱신.
- **설정 UI**: **목록 새로고침**을 설명 아래로 내려 겹침 제거, 패널 높이 조정.
- **디버그**: 로드 약 2초 후 **`[LR-DBG] LOAD`** 한 줄(주사위·전리품·저장 채팅 좌표). **`LootRollSaved.debugLoadPos`** 로 끄기(기본 켜짐).

---

## [2.6.5]

### Added

- **Detached chat window positions**: In **Settings**, list **undocked** Blizzard chat tabs, check a window to save its position and size (same SavedVariables as roll/loot). Restored after **logout** or **`/reload`** (delayed re-apply to beat default UI). **Refresh list** rescans. **Reset window positions** also clears saved chat layouts.

### 한글

- **분리된 채팅창 위치**: **설정**에 **도킹 해제된** 채팅 탭이 목록으로 나오며, 체크하면 위치·크기를 저장합니다(주사위/전리품과 같은 저장 데이터). **로그아웃·/reload** 후 복원(기본 UI보다 늦게 다시 적용). **목록 새로고침**으로 갱신. **창 위치 기본값 복구** 시 채팅 저장도 함께 초기화합니다.

---

## [2.6.4]

### Changed

- **Settings defaults**: Interface options checkboxes that had no saved value now default to **checked**: **auto-show loot window** and **raid GDKP trade/chat log**. (Addon enabled was already on by default.) Existing saved `false` values are unchanged.

### 한글

- **설정 기본값**: 저장된 값이 없을 때 설정창 체크가 **모두 켜진 상태**로 시작합니다. **전리품 창 자동 표시**, **공대 GDKP 거래·채팅 기록**의 기본을 켜짐으로 바꿨습니다. (애드온 사용은 기존과 같이 기본 켜짐.) 이미 `false`로 저장된 캐릭터 설정은 그대로입니다.

---

## [2.6.3]

### Notes

- **Loot log vs. on-screen filter**: Rows are **not** saved for **poor (gray) / quality 0** items; **common (white) and above** are stored. The loot window **quality checkboxes** only **filter what you see** (default: **uncommon/green+**). Pick **Common+** to show white items that were already recorded.

### 한글

- **저장 vs 표시**: **회색(등급 0)** 만 로그에 안 남고, **일반(흰색) 이상**은 저장됩니다. 전리품 창 **등급 체크**는 **보기 필터**이며 기본은 **녹색+**만 표시입니다. **일반+**를 켜면 이미 쌓인 흰색 아이템도 보입니다.

---

## [2.6.2]

### Changed

- **Loot log**: Removed the automatic **80-row cap**; new entries no longer drop the oldest rows. Use the loot window **Clear** button when you want to empty the log. (SavedVariables grow with row count and long item links.)

### 한글

- **전리품 로그**: 자동 **80줄 제한**을 없앴습니다. 비우려면 전리품 창의 **Clear**를 쓰면 됩니다. 줄이 많아지면 저장 파일 크기는 늘어납니다.

---

## [2.6.1]

### Added

- **More GDKP raid-chat parsers**: **RaidLedgerBR** Korean trade line (`경매 알림 : …님이 …골에 구매하였습니다.`). **MedusaRaidLedger** “send report to chat” format: a line matching `H:MM <name> Ng` / `HH:MM <name> N,NNN골` followed by a line starting with `••••` and an item link (first item line only when several items share one payment).

### 한글

- **채팅 파싱 확장**: **RaidLedgerBR** 경매 알림 한글 멘트, **MedusaRaidLedger** 공대 보고(시간·`<이름>`·골 다음 `••••` 아이템 줄). 한 거래에 아이템이 여러 줄이면 첫 아이템 줄만 낙찰 반영.

---

## [2.6.0]

### Added

- **GDKP bid from raid/party chat**: With raid GDKP mode on, `CHAT_MSG_RAID` / `RAID_LEADER` / `RAID_WARNING` / `PARTY` (and leader) messages are scanned for ledger-style sale announcements so **any member** can update the loot log (not only the player who traded). Initial support: **Raid Book** Korean line `[Raid Book] …님이 …골드에 구매하였습니다.` and a conservative `[Raid Book] … for … gold` style for English. Same row-upgrade rules as before (most recent matching item row, Gold bid display).

### 한글

- **공격대·파티 채팅 GDKP**: 공격대 GDKP 옵션 켠 상태에서 장부가 올리는 구매 알림 문자열을 파싱해 낙찰자·골드를 반영합니다. **거래 당사자가 아니어도** 공대원이 같은 채팅을 받으므로 기록 가능합니다. 우선 **Raid Book** 한글 멘트(`[Raid Book] …님이 …골드에 구매…`) 및 영문 `[Raid Book] … for … gold` 형태를 지원합니다. 기존과 동일하게 최근 줄 갱신·낙찰 표시 규칙을 따릅니다.

---

## [2.5.0]

### Added

- **Raid GDKP loot log (optional)**: New settings checkbox (raid only). While enabled in a raid, the loot log still records rows as usual (who looted, method, roll). When a player trade **completes** with a clear item-plus-gold pattern, the **most recent** matching item row is **updated**: winner = buyer, method = Gold bid, number = bid in gold. Rows already marked as Gold bid are skipped so a second drop of the same item can match an older row. Rows older than 6 hours are not updated. If no matching row exists (e.g. bank trade), a new row is added. Uses trade snapshots on `TRADE_ACCEPT_UPDATE` / `TRADE_MONEY_CHANGED` and completion via `TRADE_SUCCESS`, `UI_INFO_MESSAGE` / `UI_ERROR_MESSAGE`, and system chat (KO/EN). **No integration with Raid Book** or other addons.
- **Gold bid UI**: GDKP rows use the gold coin texture; amount shown as **number then icon** (e.g. `120` + gold icon).

### 한글

- **공격대 GDKP 전리품(선택)**: 설정 체크박스. 공격대에서 켜 두면 전리품은 예전처럼 먼저 쌓이고, **거래 완료** 또는 **공대 GDKP 채팅**으로 낙찰을 반영합니다. 골드 낙찰은 숫자 + 골드 아이콘 표시.

---

## [2.3.0]

### Added

- **UI scale slider**: A new slider (50%–100%, 5% steps) in the settings panel lets you scale both the roll window and loot log window for lower-resolution monitors. The setting is saved across sessions.
- **Quest reward detection**: Items received as quest rewards are now labeled "보상" (Reward) instead of "획득" (Loot). Uses `QUEST_TURNED_IN` / `QUEST_FINISHED` events.

### 한글

- **창 크기(스케일) 슬라이더**: 설정 패널에 50%~100% 슬라이더 추가. 주사위 창과 전리품 창 크기를 조절할 수 있습니다.
- **퀘스트 보상 감지**: 퀘스트 보상으로 받은 아이템이 "획득" 대신 "보상"으로 표시됩니다.

---

## [2.2.1]

### Fixed

- **sendCountMessage nil error**: Fixed `attempt to call global 'sendCountMessage' (a nil value)` error that occurred when all group members finished rolling.

### 한글

- **sendCountMessage nil 에러 수정**: 전원 굴림 완료 시 발생하던 에러 수정.

---

## [2.2.0]

### Added

- **Loot result toast position preview**: Settings panel button to preview/drag the loot toast position; lock to save.

### 한글

- **전리품 결과창 미리보기**: 설정에서 토스트 위치 미리보기·잠금.

---

## [1.1.1]

### Fixed

- **TOC `## Interface`**: Added current Anniversary / multi-flavour interface IDs (e.g. `120001`, `120000`, …) so the addon is not flagged out of date on the `_anniversary_` client. (Previously only `11503` / `40400` era IDs.)

### 한글

- 기념판 등 최신 클라이언트용 **인터페이스 번호**를 TOC에 추가해 **구버전 애드온**으로 뜨던 문제 수정.

---

## [1.1.0]

### Added

- Minimap button via **LibDBIcon-1.0** + **LibDataBroker-1.1** (embedded libs).
- **Left-click**: toggle **settings** window (duplicate-roll option, ignored-roll chat notices, open roll list).
- **Right-click**: **enable / disable** addon (disabled: no roll capture, grayed icon, main list hidden).
- Slash: **`on`**, **`off`**, **`settings`** / **`config`**.
- **`Art/CompactRoll-CurseForge-400.png`**: 400×400, 1:1 asset for CurseForge listing; **`Textures/MinimapIcon.png`** for in-game / TOC.
- **README.md**, **CHANGELOG.md**.

### 한글

- 미니맵 아이콘 추가 (좌클릭 설정 창 토글, 우클릭 사용함/사용안함, 드래그로 위치·저장).
- 슬래시 `on` / `off` / `settings`.
- 커스포지용 **400×400** 이미지 및 문서 추가.

---

## [1.0.1]

- Removed **1–100-only** filter; all roll ranges from system messages are recorded. Non–1–100 lines show `(low-high)` in the list.

---

## [1.0.0]

- Initial release: roll list, clear, announce, optional duplicate ignore and ignored-roll chat messages, `/croll` commands.