CS2 注入式自由视角 / 第三人称。功能只有一个:自由视角。
随手写的一个小工具,功能只有一个:自由视角。
写它的初衷很简单:neverlose 没有自由视角——本地角色活着的时候没有,只有死亡之后才解锁。等不了,就自己写了一个。
Bug 大概率是有的,感兴趣可以直接拿去二创、开源。
觉得好用的话,麻烦点一个小小的 Star。
游戏画面不是凭空渲染的:每帧先由 client.dll 算出相机参数(CViewSetup),再用它渲染。只要 hook 住每帧必调的 OverrideView,先调原函数、再覆盖它的输出,相机就归你了。
具体四步:
- 接管相机:hook
client.dll的OverrideView,覆盖CViewSetup输出(origin@0x4A0、angles@0x4B8、fov@0x498),相机完全由自由视角自己的状态决定。 - 冻结位置:每帧把角色位置钉回原点(scene node 绝对坐标),再用低级键盘钩子(
WH_KEYBOARD_LL)把 W/A/S/D、Shift、Space、Ctrl 吞掉,游戏收不到——人物移动不了,也做不了动作。 - 视角独立(核心):转动视角时会带动人物模型(模型跟着转),但不影响自由视角——自由视角的朝向只由鼠标转向决定,不读角色眼睛角度。所以辅助瞄准(AA)就算把角色视线拽向敌人,自由视角也纹丝不动,灵敏度还是游戏原版。
- 安全卸载:
PageDown一键卸载——摘钩 → 停线程 → 关控制台 →FreeLibrary弹出 DLL,游戏无感。
- 准备注入器:仓库只给 DLL,不打包注入器。随便用一个内核注入器就行,用你自己喜欢的,只要能正常注入就没毛病。
- 启动 CS2:进游戏,到主菜单即可(只有角色存活时才接管,死亡后走正常死亡镜头)。
- 注入:把
Release\CameraDll.dll注入到cs2.exe进程。成功后会弹出一个标题为CameraDll的黑色控制台窗口(带运行日志),说明 DLL 已生效。 - 开 / 关自由视角:游戏内按 PageUp 切换。开启后人物原地站立,鼠标和键盘全部用来控制相机,人物朝向不影响自由视角;再按一次 PageUp 还原第一人称。每次切换有系统提示音。
- 相机操作:
WASD:前后左右移动相机Shift:加速移动Space/Ctrl:上升 / 下降鼠标:转向(灵敏度就是游戏原版灵敏度)Home/End:左右微调转向Insert/Delete:俯仰微调
- 退出:按 PageDown 安全卸载 DLL——摘钩、停线程、关控制台窗口,游戏无感,不用重启游戏。
需要 Visual Studio 2022(C++17,x64):
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release产物自动复制到 Release\CameraDll.dll。MinHook 已捆绑在 third_party/minhook,无需联网。MSVC + /W4 + /utf-8,零警告。
偏移基准:build 14178(2026-08-26)。
CS2 每次更新,函数 RVA 会漂,但只需要核两个:
| 项目 | 基准值 | 说明 |
|---|---|---|
OverrideView RVA |
0xC987F0 |
已有特征码自定位,扫不到才需要手改 |
CCSGOInput 全局 RVA |
0x20BF0E0 |
同样有特征码兜底 |
schema 字段基本稳定,不用管:pawn 眼睛 0x3350、scene node 坐标 0xC8、CViewSetup 布局 0x498/0x4A0/0x4B8。