diff --git a/README.md b/README.md index 3b245cd..4c3e725 100644 --- a/README.md +++ b/README.md @@ -13,32 +13,19 @@ ## 一、它由哪几块组成 -``` -┌──────────────────────────────────────────────────────────────┐ -│ DNF90启动器.exe (launcher/, Python + pywebview) │ -│ 127.0.0.1:19527 · 单文件 PyInstaller · 六页单窗口 │ -│ ├─ 开始:拉起 / 停止本地服务端,显示连接状态 │ -│ ├─ GM工具:角色 / 道具 / 邮件 / 背包 / 拍卖行 / 任务 / 副本 │ -│ ├─ 一键换装:装备方案套用(Admin API) │ -│ ├─ 游戏设置:活动 / 频道开关 │ -│ ├─ 游戏更新:当前更新 + 历史更新(仓库 Release 合并本地日志) │ -│ └─ 关于我们:赞助码 / QQ群 / 公众号 │ -└───────────────┬──────────────────────────┬───────────────────┘ - │ Native API │ 启动 GM 页服务 - │ 127.0.0.1:18111 │ python gmweb/serve.py - ▼ ▼ -┌───────────────────────────┐ ┌────────────────────────────────┐ -│ DNF90Server.exe (server/) │ │ GM 控制台网页 (gmweb/) │ -│ Go · Admin / GM 接口 │◄──┤ 127.0.0.1:18112 → 代理 18111 │ -│ SQLite: runtime/data/*.db │ │ 游戏内嵌窗口 800×720 │ -└───────────────────────────┘ └────────────────────────────────┘ - ▲ - │ 客户端内嵌调用(DLL 指纹校验) -┌───────────────┴──────────────────────────────────────────────┐ -│ 90CN.dll (client-patch/, C++) 被 90CN_web.ini 控制 │ -│ 接管游戏自带面板 → 弹自己的 WebView2 窗口指向 18112 │ -└──────────────────────────────────────────────────────────────┘ -``` +| 进程 / 组件 | 位置 | 监听 | 职责 | +|------------|------|------|------| +| `DNF90启动器.exe` | `launcher/` | `127.0.0.1:19527` | 拉起与停止服务端、内置 GM 工具、换装、游戏设置、更新日志、关于页 | +| `DNF90Server.exe` | `server/` | `127.0.0.1:18111`(Admin) | 游戏逻辑、账号角色、背包拍卖行任务副本、SQLite 落库 | +| GM 控制台网页 | `gmweb/` | `127.0.0.1:18112` | 游戏内嵌页面,`/api/*` 反代 18111 并注入 admin token | +| `90CN.dll` | `client-patch/` | — | 客户端补丁,接管游戏自带面板,弹 WebView2 窗口指向 18112 | + +调用关系(从玩家视角): + +1. 玩家双击启动器 → 启动器拉起 `DNF90Server.exe`,并顺带起 `gmweb/serve.py` +2. 登录进游戏 → 客户端加载 `90CN.dll`,连本地服务端 `18111`(DLL 指纹不匹配就断开) +3. 点小井盖 → 补丁弹自己的窗口,打开 `http://127.0.0.1:18112/` 的 GM 控制台 +4. 控制台里的所有操作,经 `serve.py` 反代到服务端 Admin 接口执行 ## 二、目录结构