由于我基本不再玩 osu! 了,所以把我在 osu!stable 上的私人源码公开出来。
它包含瞄准辅助(aim assist)、一套带节奏(timing)画像的 relax 实现,以及一个自定义的 APC 手动映射注入器。
程序没有菜单,也没有运行时配置;不过你可以修改各功能头文件里的配置项后重新编译。
我欢迎提问,但我不会协助任何人编译这份源码,也不会在未来的游戏更新导致签名/偏移失效后提供更新后的签名或偏移。
Aim Assist(瞄准辅助)
锁定辅助范围内的下一个圆圈或滑条(slider)。
使用配置的最大偏移量对光标修正进行限幅。
采用平滑后的角度与速度噪声,而不是直接吸附(snapping)。
包含串(stream)速度限制、变向阻尼,以及光标渐进式重新同步。
可选的防拖拽(anti-tug)行为。
Relax
处理圆圈、滑条和转盘(spinner)。
从 osu!.*.cfg 中读取所配置的 osu! 左右键。
当配置按键无法读取时,回退到 Z 和 X。
使用一个持久的 32 字节种子,使每次启动生成的节奏画像保持一致。
对节奏偏移、按住时长、按键不对称性、热身、疲劳、串漂移(stream drift)以及休息段后的变化进行建模。
在串中交替按键,并在较慢的间隔下将交替与单点(single tapping)混合使用。
按物件持续时间保持滑条和转盘的按住状态。
当玩家近期没有移动光标时,停止生成点击。
可选的 BPM 限制:在超过配置速度后引入准确度损失。
Injector(注入器)
目标为 32 位的 osu!.exe 进程。
在映射前等待 clr.dll 和 clrjit.dll。
采用基于 APC 的手动映射,并强制通过 NtTestAlert 投递。
应用重定位、解析导入表,并调用 TLS 回调。
通过 CLR 方法表槽位替换(method-table slot swap)挂钩 Player 生命周期。
替换输入处理器所使用的间接 SetMousePos 委托。
初始化完成后恢复各节区保护属性,并清除已映射 PE 的头部。
12游戏吧 » 《osu!》放松模式 + 瞄准辅助源码