Commit Graph
16 Commits
Author SHA1 Message Date
90CN b64de0f2a4 修复启动器退出时 _MEI 临时目录清理弹窗 2026-11-05 23:33:52 +08:00
90CN 1e936bfb84 一键换装内嵌 gmweb:取消独立 exe 启动并支持页面热键 2026-11-05 21:08:20 +08:00
hanfuit c6587d88ee 启动器:修复打包后自我套娃开窗,补运行日志与排查文档
根因:start_gmweb() 用 sys.executable 拉起 gmweb/serve.py,源码运行时是
python.exe,PyInstaller 单文件打包后却是启动器自身 —— 于是 `exe serve.py`
又开了一个启动器,新启动器再去拉 serve.py,每代顺延一个端口并各开一个
空窗口,直到 19546 端口用尽。开发机因为 18112 早被占用走了 early return,
所以看不出来。

- 新增多调用模式 run_script_instead():exe <xxx.py> [args] 时用 runpy 直接
  执行该脚本,不开窗口/不提权/不占互斥量,打包后拉起 serve.py 才合法
- 新增单实例互斥(Local\DNF90Launcher-5E9C1B7A):重复启动把已有窗口
  ShowWindow+SetForegroundWindow 后退出,不再开第二个窗口
- start_gmweb() 增加就绪校验:spawn 后最多等 6 秒确认 18112 在监听,未监听
  则改用 importlib 在本进程线程里跑 serve.py 的 main(),绝不再拉起新窗口
- self_elevate() 提权重启带上原始参数(原来 ShellExecuteW 传 None,参数全丢);
  DNF90_GMWEB_CHILD=1 的子进程不再触发 UAC
- WebView2 数据目录固定到 %LOCALAPPDATA%\DNF90Launcher\WebView2 且
  private_mode=False,避免 exe 在只读目录/网络盘时窗口空白且无报错;
  启动前查注册表确认运行时是否存在
- 新增 启动器日志.txt(exe 同目录,512KB 转 .old.txt):console=False 下
  print 与未捕获异常全部落盘,顶部记录 pid/argv/SERVER_ROOT
- 文档:新增 docs/启动器窗口风暴排查.md(现象、根因、复现手法、修复点、
  日志判读表),README 常见坑与文档索引、docs/README、launcher/README 同步
2026-11-05 17:22:51 +08:00
hanfuit cc6beb0a71 启动器:关于页新增官方QQ群二维码,内容整体居中
- 关于页二维码面板改为三列:赞助我们(支付宝/微信)| 官方QQ群 | 团队公众号
- 新增 qr/qq.png 并加入 /qr/ 白名单与打包资源
- 各列二维码改为列内居中,QQ群列宽 184px,避免群号文字折行
- 关于页内容块 margin:0 auto 整体居中,并压缩上下间距使 1204x717 窗口内不出现滚动条
2026-11-05 16:11:26 +08:00
hanfuit 6a4b7e58d3 启动器:游戏更新拆分为当前/历史双子页,新增关于我们页
- 游戏更新页改为「当前更新 / 历史更新」两个标签页,历史页显示条数
- 更新日志合并仓库 Release 与本地 更新日志.txt,按日期去重、仓库优先;断网时仅用本地记录
- 主导航新增「关于我们」,内容与游戏内控制台关于页一致(四行文案 + 赞助/公众号二维码)
- 新增 /qr/<name> 白名单路由读取启动器目录 qr\ 下图片,防止目录穿越
- 二维码支持点击放大(灯箱),图片缺失时显示占位而不是破图
- 打包 spec 补入 qr 三张图,静态响应统一 Cache-Control: no-store
2026-11-05 16:05:00 +08:00
hanfuit 040f6fbd93 启动器:品牌改为 DNF90 灵宝小竹单机版,本地版本号 v2026.11.05,静态响应禁缓存
- index.html:title / 品牌条 / 首页主标题 / 赞助弹窗文案 统一改品牌名
- server.py:CURRENT_VERSION 与 statVersion 占位同步到 v2026.11.05
- server.py:Handler._send 增加 Cache-Control: no-store,避免 WebView2 缓存旧页面
2026-11-05 15:16:44 +08:00
hanfuit b22579658e 小井盖改为自绘 GM 窗口(WebView2)+ 背包可见 + 启动器互斥
- 90CN.dll:新增 90CN_gm_window.cpp,自绘标题栏/边框的置顶窗口,内嵌 WebView2 承载 gmweb 页面
- 点小井盖时隐藏游戏内嵌 IE 面板、弹出控制台;关掉后还原,独占全屏压不住时可选 minimize_game
- 窗口每轮确认置顶,避免游戏抢窗口栈后消失
- gmweb:新增背包页,发放后自动跳转并高亮新入包的行(GET /local/dnf-gm/inventory/list)
- 启动器:新增 /console-status,控制台运行时置灰 GM 工具入口并阻止进入
- 服务端指纹回绑新 DLL(1258496 / 7A179B1B…)
2026-11-05 13:16:52 +08:00
hanfuit 18e98ca7c9 小助手内嵌 GM 页:网页重定向 + 物品分页 + 装备强化增幅发放
- 90CN.dll 新增 IE 控件接管,把腾讯小助手页面重定向到本地 GM 页
- gmweb:物品列表改分页(每页 10/20/50,列表固定 6 行高)
- 发放走 grant-options,支持强化 0-31、增幅属性+等级、锻造 0-8、品质
- 服务端补齐 amplify_level:等级统一写入 ext_data0/packed_flag_byte/reinforce/upgrade_level
- 增幅与强化互斥校验,避免写出客户端无法创建的装备
2026-11-05 12:20:46 +08:00
hanfuit c58168406b 启动器:游戏更新入口移到开始旁,移除设置页面
- 侧边栏顺序调整为 开始 → 游戏更新 → GM工具 → 一键换装 → 游戏设置
- 删除「设置」页面(侧边栏入口 + page-settings section)
- shell.js 移除 loadSettings 函数及 setRefresh 事件监听
- shell.css 清理 .settings-* 相关样式(明暗主题两套)
2026-11-04 20:38:22 +08:00
hanfuit 0ced464168 启动器新增游戏设置页(频道开关+活动开关),窗口标题改名
- 服务端新增活动开关运行时配置与 GM 接口(GET/POST /dnf/gm/activity-switches),
  持久化到 Settings,接入月签到/周签到/PC房↔累计在线的实时下发
- 服务端新增频道开关 GM 接口(channel-switches),目录生成时过滤禁用频道
- channelcatalog/channelinfo 支持按禁用频道 ID 过滤目录与客户端脚本
- 启动器新增「游戏设置」页面:频道开关 Tab + 活动开关 Tab
- native.py/server.py 新增对应转发 API
- 窗口标题/页面 title/侧边栏「90轮回」统一改为「DNF90 灵狐小竹整合单机版」
2026-11-04 20:08:50 +08:00
hanfuit 977a4a1196 启动器:移除服务端工具/支援兵/插件页面,支援兵模板独立保存
- 删除服务端工具、支援兵、插件三个页面(侧边栏入口 + HTML section)
- server.py: 删除 servertool(9个)、companion/basic-attack 相关接口及常量
- native.py: 删除无人引用的 get_server_features/save_server_features/
  companion_state/companion_save(保留 GM 工具依赖的 gameplay 方法)
- shell.js: 删除 loadServerTool/loadCompanion 全部逻辑及状态变量
- shell.css: 清理 st-/cp- 相关样式
- templates/支援兵页面模板.md: 支援兵页面完整导出为独立模板
- 侧边栏「更新日志」更名为「游戏更新」
2026-11-04 19:32:01 +08:00
hanfuit 56236496a0 启动器 UI 改用仓库新源码,不上传本机旧 UI 2026-11-04 19:24:41 +08:00
hanfuit 70b3c5a6dc 合并本地领先源码:旧UI、GM疲劳燃烧、白金徽章孔、宠物修复、支援兵普攻开关 2026-11-04 19:20:49 +08:00
hanfuit f2debaf9bf 启动器:接入 Gitea Releases 自动检查更新 + 更新日志页
- server.py: 新增 /api/update/check、/api/update/changelog 接口,
  用标准库 urllib 请求自托管仓库 Lingbao/90CNServer 的 Releases,
  带 5 分钟缓存与 8 秒超时;本地版本号写死 v2026.11.04
- shell.js: 版本卡片改为动态读取远程最新 tag,发现新版本绿色可点击
  跳转;新增 loadChangelog 渲染发布记录
- index.html/shell.css: 更新日志页改为动态容器,补充卡片样式
2026-11-04 19:16:05 +08:00
hanfuit d31a34e9aa GM 工具:点券实时刷新 + 界面排版与文案优化
服务端:
- gm_tool_wallet.go: GMAdjustAccountCera 落库后遍历在线会话,推送账号级
  点券钱包投影(op53),在线角色点券余额即时刷新,无需离线/重登

启动器前端:
- app.js: 副本控制改名「魔改中心」;删除角色详情页疲劳值编辑块
  (saveFatigue/maxFatigue 及相关输入框);黑钻提示改为「在线回城即时生效」
- index.html/shell.css/shell.js/style.css: 精简 GM 全屏标题栏(仅保留
  窗口按钮)、移除 D 字图标及死样式、修正侧边栏底部间距
2026-11-04 15:09:15 +08:00
hanfuit 645b64fe21 DNF90 服务端与启动器完整源码(含 GM 工具功能增强)
服务端(Go):
- GM 塞背包/带属性装备发放:在线角色推送 op14 增量物品行,背包实时刷新,无需回角色选择界面
- GM 改金币/改等级:去掉在线拒绝,落库后推送 op14 钱包/op37 等级状态,在线实时刷新
- 等级端点统一切换到新版 GMSetCharacterLevel(自带在线刷新)
- 无限/锁死疲劳模式 + 燃烧疲劳:每房间消耗 2 点、打怪与通关经验双倍
- 燃烧疲劳开关时给所有在线角色推送系统提示(op12 mode 0)
- 深渊史诗掉率:GM 全局倍率 + 城镇增益药剂窗口倍率,真实接入掉落结算

启动器(Python/JS):
- 标题栏自绘、窗口 1204x717、禁止拖拽改大小、仅最小化/关闭
- GM 工具:疲劳与燃烧、深渊史诗掉率、拍卖行上架(单一定价对齐)
- 拍卖行上架前端对齐服务端单一价格语义,修复 400 报错
2026-11-04 14:31:55 +08:00