90CN
|
ab778e9e4c
|
修复团本频道不显示次数:活动目录可用时补发 op1303
|
2026-11-05 20:46:50 +08:00 |
|
hanfuit
|
7f41f9797a
|
GM 控制台跟随游戏窗口:窗口模式下按游戏客户区收小并居中
- 新增 FindGameWindow/FitInsideGame:取本进程最大可见顶层窗口的客户区作为游戏画面
- 开窗口时按 min(配置尺寸, 客户区-2倍边距) 定尺寸并居中;游戏画面小于配置时自动缩
- 新增 GmWindowFollowGame:切全屏/改分辨率/挪游戏窗口时重新摆放,玩家手动拖过的窗口不动
- 服务端指纹回绑 186A2C95… (1260032)
|
2026-11-05 13:29:05 +08:00 |
|
hanfuit
|
0c7ef6d645
|
小井盖面板全程压制:不再放回、关控制台后关闭并抑制 2.5 秒
- 触发条件改为「面板真的可见」而不是「窗口存在」,避免隐藏缓存的旧面板被当成点击
- 控制台打开期间面板一露头就 SW_HIDE,关控制台时关面板并在 2.5 秒内持续压制、最多再请 4 次关闭
- 轮询从 250ms 提到 40/60ms,消除旧页面闪现
- 服务端指纹回绑 CE86D4DF… (1258496)
|
2026-11-05 13:26:06 +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
|
e9a3952a9d
|
GM 页:修复内嵌 IE 输入法 + 物品分类浏览
- 90CN.dll:给 IE 控件窗口链重新关联 IME 上下文,中文输入不再只能打字母
- gmweb:页面加 ime-mode:active,focus 时再主动要一次
- 物品页加分组/类型/等级筛选,不依赖中文输入也能定位物品
- 服务端指纹回绑新 DLL(1223680 / 26633404…)
|
2026-11-05 12:37:03 +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
|
6e570fe820
|
修复 DLL 自校验 CRC 算法并加固槽位定位(频道无法连接问题)
根因:重写的 patch_dll_crc.py 用 binascii.crc32(data, 0xFFFFFFFF) 计算 CRC,
该参数是"末值异或之后的运行值",再喂回去等于重复施加了条件化,得到的是
CRC32 的另一个变体,与 90CN.cpp 里 Crc32Update 的实现不一致。结果是补丁写
入的 expected 永远校验不过,客户端在 VerifySelfIntegrity 失败后安装流程中断,
transport 钩子(codec/decode/route/dproto)全部没装上,表现为"无法连接频道"。
改动:
- tools/patch_dll_crc.py
* CRC 改为标准 zlib.crc32(init 默认 0),与 C 端 Crc32Update 完全一致;
已用旧版本 DLL 反向验证(10-20、11-03、10-28 三份的存储值均能复算一致)
* 槽位改为按 PE 段表定位,只接受 .data/.rdata 内的候选,拒绝把补丁写进
.text 机器码(此前曾命中 cmp ..., 0C0DEC0DEh 的立即数导致访问违例)
* 新增 info/verify 子命令,patch 后自动回读校验
- 90CN.cpp
* SelfCrcSlot 三个字段加 volatile,避免 /O2 把 offset/expected 折叠成常量
* VerifySelfIntegrity 增加分步诊断日志,便于定位安装线程中断点
- client_build_id.go
* 指纹重绑为本次构建产物:1215488 / C7BE377C…8247071A
验证:客户端日志 self crc check computed==expected==0x80AFC116 ok=1,
transport DLL installed codec=1 decode=1 route=1 dproto=1,
channel connect result=1,first-login watchdog server_seen=1 client_seen=1。
|
2026-11-05 11:37:10 +08:00 |
|
hanfuit
|
2ca06e113a
|
修正客户端完整性校验:补齐 CRC 后处理脚本并回绑 90CN.dll 指纹
问题:上一提交把 boundDll 指纹改成 1230336/F6DDA534…,但配套的
90CN.dll 未交付到客户端目录,服务端启动即被 verifyClientArtifacts 拦下
(client dll: size mismatch: 1230848 != 1230336),日志表现为空壳。
本次改动:
- 新增 client-patch/tools/patch_dll_crc.py,实现仓库中缺失的 DLL 自校验
槽位回填(magic 0xC0DEC0DE + offset + 全文件 CRC32,跳过自身 4 字节),
附带 verify 子命令可回读校验
- 新增 client-patch/tools/build_90cn.bat / .ps1,一键编译 + 打 CRC + 输出指纹
- client_build_id.go 指纹回绑到本次实际构建产物:
1215488 / 30E41FF583893E611E6975DF96246E1320B042F7B33A32503C987F211D1776F5
验证:重编 DNF90Server.exe 后裸跑,完整性校验通过,PVF 加载完成,
dnfbridge 正常监听 :7001,game_ports=31,admin http 127.0.0.1:18111。
|
2026-11-05 10:41:47 +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
|
70b3c5a6dc
|
合并本地领先源码:旧UI、GM疲劳燃烧、白金徽章孔、宠物修复、支援兵普攻开关
|
2026-11-04 19:20:49 +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 |
|