分类
插件中心
类型
dll
作者
坏蛋Dang
日期
2026年6月19日
详细介绍
## 前言
之前分享了一篇文章和一个工具支持调用系统原生残影来给人物补充移动/攻击残影特效。但是该功能实际上有两个地方体验感有问题:
1是残影特效只有在地下城里才有效果,城镇没有
2是没办法关闭残影,只能通过pvf切换来实现
这是实现这个插件的需求来源。另外还有个掉帧问题,理论和实测没有太大性能影响,除非你的参数调的很大或者你的机器带不动了,那这种就不要开了并且把游戏特效关掉或调低。
我的三分钟热度今年已经严重超支。。。。
## 资源
还是在之前的那个github项目上,链接在上一个帖子,这里就不贴链接了避免又被贴吧的超绝敏感肌风控删帖。
里面还包含了skill,一些提炼出来的知识、测试用例等。
### 如何使用
注意:目前只实现了神迹新生20260316和86幻境20260314两个版本的插件,不同版本不能使用!!!也没办法通用!!!
把dll和ini放到游戏DNF.exe所在的目录,注意需要前人大佬实现的DOFLogin.exe这样的“插件”注入工具。
插件参数包括残影透明度、间隔时长、要生成几个都是可以配置的,和之前实现的批量补充属性的工具一样。你觉得不够残影,不像残影可以自行调整参数。
另外游戏设置的效果低/中/高/动态可能会有影响,建议是开高。
## 原理
### 注入原理
插件注入有两部分:
第一部分是前人大佬实现的dll劫持注入,把dll注入到游戏的进程里,这里提到的插件也都是指这样的dll,简单的说就是会被封号的那种。
第二部分:
进入游戏后插件开一个后台线程(不卡游戏主线程);
先校验客户端版本——版本指纹对不上就什么都不挂、安静退出;
校验通过,安装inline hook:在游戏几个关键函数的入口,把头几个字节改成一条"跳转",跳到插件代码;
插件干完活再用一小段"跳板"跳回原函数,保证游戏原功能不受影响;再钩住聊天输入,接收@指令。
到这步,插件代码就"长"在游戏进程里、和游戏共享同一片内存了——读坐标、在绘制时多画几遍残影,都基于这个。
### 热开关原理
简单的说,插件因为常驻在游戏进程里,而所有功能开关都只是内存里的几个标志位,绘制逻辑每一帧都去读它们——所以一改下一帧就没了。。
### 城镇里为什么没办法直接调用原生残影?
城镇里和地下城里的ani实际上是共用的,但是城镇里的就是没办法触发。
地下城的残影 = "帧历史拖尾":引擎每帧把角色世界坐标存进一个帧历史缓冲,画完当前帧后,把历史帧按各自的世界坐标 + 递减透明度重画一遍。它的门是**"帧历史缓冲是否非空"这个运行时状态**——地下城在累积(非空)、城镇是空的(不累积),所以城镇出不来那道拖尾。差异在运行时状态,不在动画。
那最好的方案就是去跟踪城镇为什么是空的这条链路的上游,看能不能变成累积。
最开始我就是按照这个方向,即在城镇里去触发这个开关,但实际效果是没有用,试过在绘制环节强行触发,但上游根本没累积帧历史,绘制层无米下锅。所以才放弃原生、改插件。
不过插件实际上也是参考这个原理自己实现一套的,插件自己累积、自己按历史位置递减透明度重画,所以也可以勉强说是“原生”。。笑
### 难点
吃力不讨好。。性价比太低。
1:测试场景太多,包括但不限于切换角色、武器高强/高锻造特效影响、传承武器自带残影的特效影响,每一次覆盖都得回归涉及到的测试用例。。。
2:需要设计大量的运行时探针来找方向,方向容易错也容易牛角尖加一堆限制,需要从广度和深度两个方向上去探索。
## 遗留问题
1:没办法通用,不同客户端函数的内存地址和数据地址都会偏移。
2:光环、称号特效(妖精女王)、衣服装扮魔改的特效(天空套特效绑在衣服上)这些都会被残影命中。可以做到去掉,但我不想搞了,累了。。。。。。。。。。。。。。。。。。。。。。。
3:误伤,开启或关闭都会误伤NPC,比如地下城里的某些NPC也会跟着有/无残影。
## 总结
目前只实现了神迹新生20260316和86幻境20260314两个版本的插件,不同版本客户端不能通用。
做起来吃力不讨好,估计这也是一直没大佬愿意这么做的原因。
另外如果不喜欢一直有残影,只想真的只有SAO皮肤和武器有残影,这个也是能做的,能拿到皮肤的具体的地址。
本次需求最有用的东西是skill,这是探索过程中提炼出来的。用幻境的版本做了skill验证,不过幻境这个版本多了个壳导致运行时这部分的skill没有验证完全。。。
下载信息
需要评论后才能查看下载链接和验证码
评论后即可查看验证码
评论即可免费解锁验证码
资源评论(0)
暂无评论,快来抢沙发
提示
- 评论后即可查看提取码和下载链接
- 部分资源需要积分兑换才能解锁
- 资源仅供学习交流,请勿用于商业用途