File Details
Loot-Roll 5.0.7.zip
- R
- Apr 19, 2026
- 4.95 MB
- 56
- 2.5.5
- Classic TBC
File Name
Loot-Roll 5.0.7.zip
Supported Versions
- 2.5.5
# Changelog
Version numbers match **`## Version`** in `Loot-Roll.toc`.
(버전은 **`Loot-Roll.toc`의 `## Version`** 과 맞춥니다.)
## [5.0.7]
### Fixed (Loot-Roll)
- **Version**: **5.0.7** (`Loot-Roll.toc`).
- **`/lrfix` 에 "깨진 who 사후 복구" 단계 추가**: v5.0.3 이전 빌드의 `parseWhoFromLootMessage` 는 폴백 패턴 `"^(.-)이%s+"` / `"^(.-)가%s+"` 가 너무 넓어, 아이템 이름 안의 한글 조사 (예: "정기**가** 주입된 머리조각" 의 "정기가", "드레나**이** 샘물" 의 "드레나이") 가 매칭되며 메시지 본문 일부 (`"아이템을 획득했습니다: |Hitem:31365::|h[정기"` 같은 절단 문자열) 가 그대로 `who` 필드에 박혔다. v5.0.3 에서 신규 캡처는 고쳐졌지만 **이미 저장된 행은 `/lrfix` 의 기존 정리(`stripLeadingLootChannelTag` + `normalizePlayerName`) 가 잡지 못해 영구히 깨진 채로 남아 있었다.**
새 단계의 동작:
1. 각 행의 `who` 가 `|H` / `|h` / `[` / `]` / `:` / `아이템` / `획득` / `전리품` 중 하나라도 포함하면 가비지로 판정.
2. 같은 `t` (±5초) · 같은 `itemID` 의 `CHAT_MSG_LOOT` 원문을 `chatBackup` 에서 검색.
3. 찾으면 v5.0.3 이후의 `parseWhoFromLootMessage` 로 다시 파싱:
- 정상 이름 반환 → 그 이름으로 교체 (`classFile` 도 동반 갱신)
- `nil` 반환 → 이름 prefix 가 없는 자기획득 메시지 → **본인 이름으로 교체**
4. `chatBackup` 에서 원문을 못 찾으면 `?` 로 강등.
- **`/lrfix` preview/apply 출력에 카운터 + 예시 추가**: "깨진 who 복구 N행" 줄 추가. `chatBackup` 이 비어 있으면 "원문 없이 '?' 로만 강등됨" 안내 메시지 출력 (이 경우 `/lrcap on` 후 다음 세션에서 재시도 권장).
### 한글
- **버전** 5.0.7: `toc`.
- 5.0.3 이전에 저장된 행 중 `who` 가 `"아이템을 획득했습니다: |Hitem:..|h[정기"` 같이 메시지 본문 일부로 깨진 행을 `/lrfix` 가 사후 교정하도록 단계 추가. `chatBackup` 의 원문 채팅 라인을 같은 시점·같은 아이템으로 찾아 새 parser 로 다시 파싱하고, 자기획득 메시지(이름 prefix 없음) 는 본인 이름으로, 원문이 없으면 `?` 로 강등. `/lrfix` 미리보기/적용 출력에 "깨진 who 복구" 카운터/예시 표시.
---
## [5.0.6]
### Fixed (Loot-Roll)
- **Version**: **5.0.6** (`Loot-Roll.toc`).
- **퀘스트 창에서 받은 [마력 깃든 일리다리 휘장] 등 "다음 퀘스트 과제용" 아이템이 "보상" 으로 잘못 라벨링되던 문제**: `questHowForLink(link)` 의 분류 우선순위는 `시작(itemStartsQuest)` → `수령(itemIsQuestObjectiveClass)` → `보상(기본값)` 이지만, `itemIsQuestObjectiveClass` 가 `GetItemInfo(itemID)` 의 12번째 반환값(`classID`) 으로만 판정하도록 되어 있어, 채팅 약탈 메시지가 들어오는 순간에 아이템 정보가 아직 캐시되지 않으면 `classID = nil → false` 로 떨어져 그대로 기본값 "보상" 으로 폴백됨. 결과적으로 다음 퀘스트에서 쓰라고 NPC 가 건네준 Quest 클래스(class 12) 아이템이 "보상" 아이콘(`ActiveQuestIcon`)과 함께 기록됐음.
사용자 의도(아이템의 성격으로 분류) 를 반영해 두 군데를 보강:
1. **`questHowForLink` 진입부에 `GetItemInfo` 워밍 추가**: `itemIdFromLink` 로 itemID 를 뽑아 `pcall(GetItemInfo, idn)` 와 `pcall(GetItemInfo, link)` 를 한 번씩 호출해 캐시를 미리 채운 뒤 `itemIsQuestObjectiveClass` 를 평가. 첫 호출 시점에 정보가 있다면 "수령" 으로 즉시 분류된다.
2. **`addLootRow` 후처리에 "보상 → 수령" 재분류 가드 추가**: 1번이 실패해(여전히 미캐시) "보상" 으로 라벨링된 행도, `itemIsQuestObjectiveClass(link) and not itemStartsQuest(link)` 면 `lootMethodQuestGive` ("수령") 로 강제 재분류. 표시 함수의 아이콘 매핑(`수령` → `AvailableQuestIcon` = 느낌표) 은 그대로라, 라벨만 바뀌면 아이콘도 자동으로 따라간다.
- **`/lrfix` 마이그레이션에 "보상 → 수령" 재분류 단계 추가**: 과거 빌드에서 이미 저장된 행을 사후 교정. `migrateLootLog` 가 `qReward` 로 라벨링된 행 중 `itemIsQuestObjectiveClass=true && itemStartsQuest=false` 인 행을 골라 `lootMethodQuestGive` 로 바꾸고, `/lrfix` preview/apply 출력에 "보상 → 수령 재분류" 카운터/예시를 추가.
### 한글
- **버전** 5.0.6: `toc`.
- 퀘스트 창에서 다음 퀘스트용으로 받은 [마력 깃든 일리다리 휘장] 같은 Quest 클래스 아이템이 "보상" 이 아니라 "수령" (느낌표 아이콘) 으로 기록되도록 수정. 원인은 채팅 약탈 메시지가 들어오는 순간 `GetItemInfo` 가 아직 캐시 전이라 `classID` 가 `nil` 로 떨어져 기본값 "보상" 으로 폴백되던 타이밍 문제. 분류 진입부에서 `GetItemInfo` 를 미리 워밍하고, 그래도 놓친 경우엔 행 적재 직전에 한 번 더 검사해 "보상 → 수령" 으로 재분류. `/lrfix` 에도 같은 룰을 추가해 과거 행도 일괄 교정 가능.
---
## [5.0.5]
### Fixed (Loot-Roll)
- **Version**: **5.0.5** (`Loot-Roll.toc`).
- **기계공학 [기체 추출](Extract Gas) 사용 후 약탈한 [어둠의 티끌] 등이 "마부"(마법부여) 로 잘못 라벨링되던 문제**: `GLoot.profKeyFromCraftMsg` 의 마법부여 매칭 패턴이 `raw:find("추출", 1, true)` 로 너무 넓게 잡혀, 마법부여의 [마력 추출](Disenchant) 만이 아니라 기계공학의 [기체 추출] 같은 다른 직업의 "추출" 주문까지 모두 enchanting 로 분류했음. 그 결과 `GLoot.bump("enchanting", true)` 가 8초간 모드를 잡고, 그 사이 가스 구름에서 약탈한 행이 `L.lootMethodEnchanting`("마부") 로 라벨링됨. **"마력" + "추출" 동시 매칭** 으로 좁혀, 기체 추출 등 다른 직업 주문은 모드 진입 자체를 차단. 결과적으로 가스 추출기로 모은 아이템은 일반 "전리품" 으로 기록됨. (참고: 기계공학 도구 주문 → "기공"(`lootMethodEngineering`) 자동 분류는 별도 spellID 화이트리스트가 필요해 이번 변경에는 포함하지 않음.)
- **부수: 같은 "추출" 광패턴이 있던 다른 분류기 3곳 동반 수정**:
1. `methodIconTag` (마법부여 아이콘 폴백)
2. `howDisplayText` (DE 라벨 표시)
3. `guessMethodFromLootMsg` (채팅 메시지 → method 추정; `rollKindAndValueFromLootMsg` 가 사용)
세 함수 모두 단순 `find("추출")` 대신 `find("마력추출")` 또는 `find("마력") and find("추출")` 조합만 매칭하도록 변경. 향후 "기체 추출" 류 메시지가 chat 으로 흘러들어와도 DE 로 오분류되지 않음.
### 한글
- **버전** 5.0.5: `toc`.
- 기계공학 가스 추출기로 모은 [어둠의 티끌] 등이 "마부"(마법부여) 로 잘못 기록되던 문제 수정. 원인은 "마력 추출(Disenchant)" 매칭이 단순히 "추출" 만 보고 있어 [기체 추출](Extract Gas) 까지 잡혔던 것. "마력" + "추출" 조합으로 좁혀, 가스 추출기로 모은 아이템은 이제 일반 "전리품" 으로 기록됨. 동일 패턴이 있던 다른 3개 분류 함수도 함께 수정.
---
## [5.0.4]
### Fixed (Loot-Roll)
- **Version**: **5.0.4** (`Loot-Roll.toc`).
- **퀘스트 보상/일반 전리품 등에서 화면 상단 토스트가 뜨던 문제**: `addLootRow` 의 토스트 게이팅이 `(tonumber(q) or 0) >= 2` 만 검사해 그룹 룰(입찰/차비/포기) 결과가 아닌 모든 ≥녹색 아이템에서 토스트가 노출됐음(예: 룬문자 스케슬론 다리갑옷 처럼 퀘스트 보상으로 들어온 행). 게이트를 `isDetailedRollHow(how) or isGdkpBidHow(how)` 로 좁혀, **입찰/차비/포기/숫자 + GDKP 낙찰** 일 때만 토스트가 뜨도록 변경. 다른 토스트 진입점(`upgradeRecentEncounterRowWithRoll`, `upgradeOldRowWithRoll`)은 이미 `isDetailedRollHow` 가 보장된 시점에서만 호출되고 있어 변경 없음. GDKP 거래 갱신 경로(`tryUpgradeLootRowFromGdkpTrade`)는 항상 `Gold bid` 라벨로만 호출되므로 그대로 유지.
### 한글
- **버전** 5.0.4: `toc`.
- 화면 상단 토스트가 입찰/차비/포기 (와 GDKP 낙찰) 일 때만 뜨도록 복구. 퀘스트 보상·일반 전리품·우편·구매·거래·제작·채집 등은 더 이상 토스트를 띄우지 않고 로그에만 적재.
---
## [5.0.3]
### Fixed (Loot-Roll)
- **Version**: **5.0.3** (`Loot-Roll.toc`).
- **본인 자기 수령 라인의 `who` 가 메시지 본문으로 깨져 저장되던 문제**: `parseWhoFromLootMessage` 의 한국어 조사 폴백 패턴(`이/가/님이`) 이 메시지 안에 살아있는 아이템 링크 안의 한글(예: "정화된 드레나**이** 샘물") 까지 매칭해서, "아이템을 획득했습니다: [..]" 처럼 이름이 빠진 자기 수령 라인의 `who` 를 메시지 본문 통째로 잘라 저장했음. 그 결과 selfGet 분기에서 `me` (본인 캐릭터명) 폴백이 동작하지 않고 깨진 `who` 가 저장됨. `parseWhoFromLootMessage` 진입 직후 `|Hitem:..|h[..]|h` 와 잔존 색상 코드를 공백으로 치환하고, 캡처 결과에 `|H`/`[`/`]`/`:`/`:`/`아이템`/`획득`/`차지`/`전리품` 토큰이 섞여 있으면 `nil` 을 돌려주는 가드(`looksLikeGarbage`) 를 추가. 이름 안에 "이 " / "가 " 가 들어간 모든 아이템에서 발생하던 광범위 오염을 차단.
### 한글
- **버전** 5.0.3: `toc`.
- "아이템을 획득했습니다: [정화된 드레나이 샘물]" 같이 본인 수령 메시지에서 획득자 칸이 메시지 본문(예: "아이템을 획득했습니다: \|Hitem:...\|h[정화된 드레나") 으로 잘려 저장되던 문제 수정. `parseWhoFromLootMessage` 가 아이템 링크 내부 한글을 무시하도록 링크를 사전 제거하고, 캡처 결과에 금지 토큰이 섞여 있으면 폐기. 이제 정상적으로 본인 캐릭터명으로 채워짐.
---
## [5.0.2]
### Fixed (Loot-Roll)
- **Version**: **5.0.2** (`Loot-Roll.toc`).
- **`[전리품]: 아이템을 차지했습니다: <link>` (이름 누락) → who=? 로 기록되던 문제**: SYSTEM 채널의 `X님이 입찰/차비 주사위 (1-100): NN` 메시지는 아이템 링크 없이 들어와 `pushItemRollLog` 가 호출되지 않고 `rollLogByName` 에만 적재된다. 이후 위 무명 차지 라인이 도착하면 `bestItemRollInfoFor` 가 link-bound 로그만 보고 nil 을 반환해 winner 가 `?` 로 떨어졌음. `claimNoName` 핸들러에 `rollLogByName` 폴백을 추가: 활성 롤 세션 시간창(60s) 안에서 가장 최근 NEED(없으면 GREED) 를 가진 사람을 winner 로 보정.
- **영문 클라 LOOT winner 라인(`X wins:` / `X receives loot:` / `X receives:` / `X won:`) 미처리**: 한국 클라의 "차지/획득" 윈너 확정 줄에 해당하는 영문 패턴이 별도 핸들러 없이 fallbackOther 까지 흘러갔고, 그 곳은 `rollItemActive` 일 때 SKIP 하므로 영문 그룹룰 winner 가 누락됐음. `onChatMsgLoot` 에 영문 winner 명시 핸들러를 추가해 한국 차지 라인과 동일한 캐노니컬 winner 로 처리.
### 한글
- **버전** 5.0.2: `toc`.
- 한국 클라 "[전리품]: 아이템을 차지했습니다: [..]" 처럼 winner 이름이 빠진 줄에서, SYSTEM 입찰 메시지의 굴림자를 winner 로 보정. 더 이상 ? 행이 남지 않음.
- 영문 클라(`X wins:` / `X receives loot:` 등) winner 라인을 정식으로 인식해 그룹룰 winner 가 기록되지 않던 문제 해소.
---
## [5.0.1]
### Fixed (Loot-Roll)
- **Version**: **5.0.1** (`Loot-Roll.toc`).
- **White (common) items can never be Need/Greed/Pass**: Group loot rolls don't exist for white-quality items, but a "Spirit Essence (영혼의 정수)" picked up as plain loot was being recorded with the **Greed icon + "차비"** label and no roll number. Three-layer fix:
1. `tryPushRollFromChatLine` — the **link-less "선택"/selected/choose fallback** no longer fires when no item link can be extracted from the line. Without a link, we can't tell *which* item the player picked Need/Greed/Pass on, so an unrelated recent row was being overwritten. The fallback now also passes the link to `pushRollLog` when present.
2. `upgradeRecentEncounterRowWithRoll` — when a roll-result message arrives, candidate rows whose `quality <= 1` are skipped, so a stale white-item loot row can no longer be promoted into Need/Greed/Pass.
3. `addLootRow` — final sanitization: if quality is white (`q <= 1`) and `how` is Need/Greed/Pass, demote `how` back to **`L.lootMethodEncounter`** ("전리품" / "Loot") and clear `roll`.
- **Group-looted item appearing twice (`?` row + correct winner)**: Epic items won via group loot (e.g. "용기의 완갑") sometimes appeared as **two rows**: one `who="?", how="전리품"` and a second one with the real winner + bid value. Two fixes:
1. `onEncounterLoot` — early-returns when `playerName` is `nil` / empty / `?`. The placeholder row that caused the duplicate is no longer created; the subsequent `CHAT_MSG_LOOT` / `LOOT_HISTORY_ROLL_COMPLETE` path adds the definitive winner row exactly once.
2. `addLootRow` — safety net: when a real winner row is being added, any existing `who="?"` + encounterish row for the **same item id** within the last **30 s** is removed, so other code paths that may emit a `?` placeholder also get absorbed into the winner row.
- **`/lrfix` migrations** for already-saved bad rows:
- Demotes existing `lootHistory` rows with `quality <= 1` and a Need/Greed/Pass `how` back to "전리품" with `roll = nil`.
- Removes orphan `who="?"` + encounterish + `roll=nil` rows when another row exists for the same `lootItemKey(link)` with a non-`?` winner within ±30 s.
- `/lrfix` and `/lrfix apply` now also report the new "백색 강등" / "고아 ? 정리" counters.
### 한글
- **버전** 5.0.1: `toc`.
- **백색 일반 아이템은 입찰/차비/포기로 절대 들어가지 않음**: WoW 그룹 룰은 백색 등급에 대해 동작하지 않는데, 영혼의 정수를 일반 전리품으로 직접 주웠을 때 "차비 아이콘 + '차비' 라벨, 주사위 숫자 없음"으로 잘못 기록되던 문제를 3단계로 차단:
1. "선택"/selected 폴백 파서가 메시지에서 아이템 링크를 못 뽑아내면 그 줄을 **무시**하도록 수정. 링크가 없으면 어느 아이템에 대한 선택인지 알 수 없어, 같은 플레이어의 직전 무관한 행이 덮어써지던 사고가 사라짐.
2. `upgradeRecentEncounterRowWithRoll` 의 후보 선정에서 `row.quality <= 1` 인 백색 행은 후보에서 제외 → 어떤 늦은 주사위 메시지가 와도 백색 행을 입찰/차비/포기로 승격할 수 없음.
3. `addLootRow` 의 최종 가드: `q <= 1` 인데 `how` 가 입찰/차비/포기면 강제로 "전리품"으로 강등하고 `roll` 을 비움.
- **그룹 룰 아이템이 두 줄로 남던 문제 (예: 용기의 완갑)**: ENCOUNTER_LOOT_RECEIVED 가 `playerName` 없이 먼저 도착해 임시 `who="?"` 행을 만들고, 뒤이어 정상 winner 행이 추가되면서 두 줄이 남던 문제를 두 단계로 수정:
1. `onEncounterLoot` 가 `playerName` 이 비면 행을 만들지 않음. 어차피 CHAT_MSG_LOOT / LOOT_HISTORY_ROLL_COMPLETE 경로에서 정상 winner 가 한 번 더 들어오므로 안전.
2. `addLootRow` 가 정상 winner 행을 추가할 때, 같은 `itemID` 에 대해 최근 30 초 내 `who="?"` + 전리품류 행이 있으면 그 고아 행을 흡수(삭제). 다른 경로로 흘러들어온 `?` 행도 한 줄로 정돈.
- 기존 `lootHistory` 의 같은 패턴 행을 `/lrfix` 에서 일괄 정리: 백색-차비/입찰/포기 → 전리품 강등, 같은 아이템에 정상 winner 가 있는 고아 `?` 행 제거. 미리보기/적용 출력에 카운터 두 개가 추가됨.
---
## [5.0.0]
### Fixed (Loot-Roll)
- **Version**: **5.0.0** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- 전리품 기록·표시 관련 다수의 기존 버그 수정 및 안정성 개선.
### 한글
- **버전** 5.0.0: `toc` + `DB.version`.
- 그동안 보고된 전리품 로그 관련 버그들을 모아 한꺼번에 정리.
---
## [4.0.9]
### Fixed / Changed (Loot-Roll)
- **Version**: **4.0.9** (`Loot-Roll.toc`, in-game `DB.version` on first UI build).
- **Loot log — vendor / mail / trade on confirmed `CHAT_MSG_LOOT`**: For **acquired / won loot** lines (`fromEncounterLootChat`), when **mailbox / merchant / trade** UI is open, classification again uses **`resolveLootHowFromUiContextAndQuest`** so **vendor purchases** show as **Purchase** (and mail/trade stay consistent). Fixes **4.0.8** always forcing those lines to **encounter** loot. In those UI contexts, **Need/Greed/Pass** roll history no longer overwrites **`how`** (`LootRollLoot.lua`, **`resolveLootMethodAndRoll`**).
### 한글
- **버전** 4.0.9: `toc` + `DB.version`.
- **전리품 확정 채팅**: 우편함·상점·거래 창이 **열려 있는 동안** 들어오는 획득/전리품 확정 줄도 UI 맥락으로 분류되어 **구매**(및 우편·거래)가 다시 표시됨. **4.0.8**에서 이 줄을 항상 전리품으로만 두던 동작을 보완. 해당 맥락에서는 주사위 로그로 **how**를 덮어쓰지 않음.
---
## [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.