two-user-workflow.md 3.8 KB

双用户工作流(Plan E)

为什么需要这个

传奇 cq2.exe 的反作弊系统会在加载时扫描同 Windows 会话内的所有进程。 当它扫到 OpenCode(Bun 运行时)时,会触发 Segmentation fault at address 0x3C, 直接让 OpenCode 闪退——而且不仅 OpenCode 启动游戏时崩,OpenCode 在游戏开着时启动也会崩。

唯一确定的解法:把 OpenCode 和 cq2.exe 放在不同的 Windows 用户会话里。 两个会话的进程互相不可见,反作弊 DLL 注入不到另一个会话,崩溃消失。

用户与目录约定

会话 用途 关键路径
Administrator(原用户) OpenCode + cq2_sdk 开发 D:\传奇\, D:\传奇\cq2_sdk\
cq2play(新建用户) 浏览器 + 996box 启动器 + cq2.exe D:\ProgramFiles\996box\, 该用户自己的 AppData

新建的 cq2play 用户:

  • 用户名:cq2play
  • 密码:Cq2play!2026
  • 已加入 Users 组
  • 已被授予 D:\ProgramFiles\996box 和 D:\传奇 的 Modify NTFS 权限
  • 说明:"CQ2 game session (anti-cheat isolated)"

一次性配置(在 cq2play 会话里)

  1. 按 Win+L 锁屏,在登录界面点击 cq2play,输入 Cq2play!2026
  2. 首次进入桌面后,安装 Chrome 浏览器(如果未自带)
  3. Chrome 打开 https://www.996hezi.com/,登录 996box 账号
  4. 找到 玖扬复古176 → 点 启动
  5. 浏览器会从 D:\ProgramFiles\996box\game\cq2.exe 拉起客户端
  6. 验证游戏窗口能正常显示,反作弊不报错

之后的工作流

想写代码 / 跑 SDK 测试

  • 用 Administrator 登录(保持原样)
  • cd D:\传奇\cq2_sdk,uv run pytest 等
  • OpenCode 在此会话自由使用,不受 cq2.exe 影响

想玩游戏 / 验证 SDK 实战

  1. 在 Administrator 会话里,保存工作(提交代码、/exit OpenCode 可选)
  2. 双击桌面上的 切换到 cq2play 用户 (玩游戏).bat
  3. 屏幕锁定,登录界面选 cq2play → 输密码
  4. 打开 Chrome → 996box → 点 启动 → 进游戏
  5. 反作弊加载时,它看不到 Administrator 会话的任何进程,OpenCode 即使开着也不会崩
  6. 玩完,Win+L 切回 Administrator,OpenCode 会话完整保留

同时干两件事(OpenCode 调试 + 玩 cq2)

  • Administrator 会话:OpenCode 改代码 / 跑测试 / 抓日志
  • cq2play 会话:游戏窗口
  • Alt+Tab 在两个会话之间切换
  • 反作弊在 cq2play 会话里跑,跟 Administrator 互不干涉

故障排查

症状 原因 解决
切到 cq2play 找不到游戏图标 桌面快捷方式属于 Administrator 重新建或用 D:\ProgramFiles\996box\game\cq2.exe 路径手动建
cq2.exe 启动后立即被反作弊杀掉 996box 账号未在该用户登录 Chrome 先开 996box 登录一次
切回 Administrator 后 OpenCode 起不来 罕见,可能是 WTS API 抖动 重启 OpenCode 即可(SDK 代码不丢)
磁盘空间被游戏缓存吃满 C:\Users\cq2play\AppData\Local 膨胀 定期清理或用管理员命令 Remove-Item C:\Users\cq2play\AppData\Local\996box -Recurse -Force

撤销(如不需要双用户方案)

# 在 Administrator 的 PowerShell 里:
Remove-LocalUser -Name "cq2play"
# 清理桌面快捷方式
Remove-Item "C:\Users\Administrator\Desktop\切换到 cq2play 用户 (玩游戏).bat"

NTFS ACL 会在用户删除时自动失效,无需手动清理。

备选方案(如果双用户仍不够)

  • WSL2:本应是首选,但当前网络下 Microsoft Azure Blob 下载 700MB Ubuntu AppxBundle 被严重限速(实测 0 字节/分钟,并发也无效),待网络条件改善后可重试
  • Hyper-V 虚拟机:完全隔离,但重且耗内存
  • 换机:另一台机器跑 OpenCode,本机只玩游戏