# 04. Thiết kế Giao diện Lớp phủ & Tiện ích Hỗ trợ (Overlay HUD & QoL Assistant)

> **Mục tiêu**: Xây dựng lớp phủ trong suốt (Transparent Overlay) siêu nhẹ, hiển thị Thẻ định giá nhanh, Bộ cảnh báo mod nguy hiểm trên Waystone và Bảng quản lý giao dịch 1-Click.  
> **Khung Công nghệ Khuyến nghị**: Tauri 2.0 (Rust Core + Svelte/React Frontend) hoặc C++ ImGui DirectX 11.

---

## 1. Kiến trúc Cửa sổ Lớp phủ Trong suốt (Transparent Overlay Window)

Lớp phủ được thiết kế để nổi lên trên màn hình game POE2 (2560x1440 Borderless) mà **không làm mất quyền điều khiển (Focus)** của trò chơi:

```mermaid
graph TD
    User["Người chơi Đang thao tác trong Game"]
    
    subgraph Windows_OS ["Hệ điều hành Windows"]
        GameWindow["Cửa sổ POE2: PathOfExile.exe (Active Focus)"]
        OverlayWindow["Cửa sổ Lớp phủ Tool (WS_EX_TOPMOST | WS_EX_LAYERED)"]
    end

    subgraph Overlay_Modules ["Các Mô-đun Giao diện Tiện ích"]
        PriceCard["Thẻ Định giá Nhanh (Ctrl+D)"]
        MapWarning["Cảnh báo Mod Chết người trên Waystone"]
        TradeNotification["Bảng Thông báo Người mua Hàng 1-Click"]
        ChatShortcuts["Phím tắt Tiện ích (F5 Hideout, F6 Quái còn lại)"]
    end

    User --> GameWindow
    OverlayWindow -. Hiển thị trực quan đè lên .-> GameWindow
    OverlayWindow --> PriceCard
    OverlayWindow --> MapWarning
    OverlayWindow --> TradeNotification
    OverlayWindow --> ChatShortcuts
```

### Thuộc tính Kỹ thuật Cửa sổ Win32:
- `WS_EX_TOPMOST`: Luôn ghim lớp phủ lên trên cùng màn hình.
- `WS_EX_LAYERED`: Hỗ trợ độ trong suốt theo kênh Alpha (mờ ảo hiện đại).
- `WS_EX_TRANSPARENT`: Cho phép mọi cú nhấp chuột xuyên qua cửa sổ lớp phủ để tương tác trực tiếp với game, trừ khi người chơi đang chủ động tương tác với thẻ định giá.

---

## 2. Các Tiện ích Hỗ trợ Người chơi Đột phá (Core QoL Features)

### 2.1. Bộ Cảnh báo Mod Chết người trên Waystone (Map Danger Warning)
Khi nhặt hoặc chế tạo một viên Đá Định Vị (Waystone), người chơi chỉ cần nhấn phím tắt kiểm tra:
- Hệ thống lập tức quét toàn bộ các dòng thuộc tính bản đồ và làm nổi bật màu Đỏ/Vàng các dòng có nguy cơ gây đột tử cho nhân vật:

```text
+--------------------------------------------------------+
| [CẢNH BÁO BẢN ĐỒ NGUY HIỂM] - Waystone Tier 14         |
+--------------------------------------------------------+
| [!] NGUY HIỂM CHÍ MẠNG:                                |
|   - Monsters reflect 18% of Elemental Damage (Phản Sát) |
|   - Players cannot Regenerate Life or Mana (Không hồi) |
|                                                        |
| [*] Chú ý:                                             |
|   - -12% to all maximum Player Resistances             |
|   - Monsters gain 45% of Physical Damage as Extra Fire |
+--------------------------------------------------------+
| Gợi ý: Dùng Chaos Orb để quay lại trước khi đặt vào đền!|
+--------------------------------------------------------+
```

### 2.2. Bảng Quản lý Giao dịch 1-Click (Trade Notification Manager)
Theo dõi tệp `LatestClient.txt` để phát hiện tin nhắn hỏi mua đồ:
- Khi có người mua, góc màn hình xuất hiện một thẻ thông báo nhỏ gọn:

```text
+--------------------------------------------------------+
| [GIAO DỊCH] Người chơi: "Exile_Trader_99"               |
| Cần mua: Death Chaser (Composite Bow)                  |
| Giá bán: 45 Chaos Orbs  (Tab: "Bán Đồ 1", Ô: 4, 12)    |
+--------------------------------------------------------+
| [ Mời Nhóm (F1) ]  [ Giao Dịch (F2) ]  [ Cảm ơn & Kick ]|
+--------------------------------------------------------+
```

- **Nguyên tắc 1-Click Chuẩn GGG**:
  - Nhấp nút `Mời Nhóm`: Gửi lệnh chuẩn `/invite Exile_Trader_99` vào chat.
  - Nhấp nút `Giao Dịch`: Gửi lệnh chuẩn `/tradewith Exile_Trader_99`.
  - Nhấp nút `Cảm ơn & Kick`: Gửi lời nhắn `@Exile_Trader_99 Thank you!` và `/kick Exile_Trader_99`.
  - Mỗi nút bấm đại diện cho đúng **1 hành động độc lập**, hoàn toàn hợp lệ 100% với điều khoản sử dụng.

### 2.3. Hệ thống Phím tắt Tiện ích Thông minh (Smart Chat Shortcuts)
- **Phím `F5`**: Tự động gửi `/hideout` để dịch chuyển tức thì về khu trú ẩn Hideout sau khi hoàn thành map.
- **Phím `F6`**: Tự động gửi `/remaining` để kiểm tra số lượng quái vật còn sót lại trong khu vực.
- **Phím `F7`**: Tự động gửi `/exit` để thoát nhanh ra màn hình chọn nhân vật khi gặp tình huống kẹt địa hình.
