# 双用户工作流(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` | ## 撤销(如不需要双用户方案) ```powershell # 在 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,本机只玩游戏