我正在为 Apex 第 30 赛季做一个客户端侧的传家宝替换器。
目前的配置:
使用 MmCopyVirtualMemory 进行读写的 BYOVD 内核驱动(KPRL)。
不做 DLL 注入、远程内存分配或代码执行。
有最新的偏移和 Squirrel dump。
模型、贴图、换色、发光和武器切换都正常。在近战武器被创建之前,我把 Fists 的 ParsedWeaponData 设置替换为目标传家宝的设置,并把 Fists 的 model_t* 重定向到传家宝模型。
剩下的问题是动画序列。服务器仍然会创建 Fists 武器类,所以它发送的是 Fists 的序列 ID。Apex 会在本地短暂地计算出正确的传家宝动画,但随后 DT_ServerAnimationData::m_animSequence 会用 Fists 序列覆盖快照。传家宝模型会把那个数字解释成另一个动画。
我试过拦截 m_idealSequence、m_animSequencePredictingClientOnly 以及最终的 viewmodel 序列。过滤器是有效的,但动画会卡住、重置或丢失过渡。从外部重写数值也会导致速度不正确和动画重叠。
我不想用硬编码的序列映射,因为那样一来罕见动画和其他传家宝都会出问题。
有没有更上层的预测设置或数据源,可以让本地近战动画变成权威的?否则,是不是只能在 DT_ServerAnimationData::m_animSequence 处做一个上下文感知的进程内 RecvProxy 回调?
12游戏吧 » Apex 皮肤贴图更换模型发光源码(未完成)