项目描述
为《剑网三》等大型网络游戏开发一款图形化、可配置的自动按键脚本工具。该工具通过内核级驱动模拟物理键盘信号,能够绕过游戏的反作弊系统,实现复杂的技能连招、循环辅助操作。用户无需编程,只需在界面中添加按键序列,即可通过热键一键启停。
我的角色
独立开发者,负责从需求分析、技术选型、编码实现到最终打包交付的全流程。
核心技术及实施
双层模拟引擎
先尝试使用 keyboard 和 pynput 进行用户态模拟,发现被游戏屏蔽后,果断转向内核级方案。
研究了 Interception 和 DD 两款开源/免费驱动,最终因 Interception 安装复杂且 DLL 位数不匹配问题,选定 DD 虚拟驱动作为主方案。
通过 ctypes 直接调用 DD 驱动的 DD_key 函数,实现了按键的按下、释放及单点/连续/按住三种模式,并加入随机延迟模拟人类操作。
图形化配置界面
使用 Tkinter 搭建友好的配置窗口,支持动态添加/删除键位行。
实现了分组功能(组内顺序/同步执行),用户可为不同技能设定不同分组,脚本按分组编号循环执行。
内置常用键下拉列表(字母、数字、F1-F12、方向键等),同时允许手动输入特殊键。
提供锁定机制防止误触,热键(默认 F12)可自定义,并自动转换为 pynput 可识别的格式。
音频反馈系统
利用 Windows MCI 接口在脚本启动和停止时播放自定义音效,支持 .wav、.wma 等格式,且不弹出任何播放器窗口。
当音频文件缺失时,自动回退为系统 TTS 语音播报。
打包与分发
编写 resource_path 函数统一处理开发环境和打包后的资源路径。
使用 PyInstaller 将 Python 脚本连同 DD 驱动 DLL 及音频文件打包为单个 exe,方便无 Python 环境的用户直接运行。
解决了打包过程中 DLL 位数不匹配、--add-data 路径错误、隐式导入缺失等一系列问题。
项目成果
成功制作出稳定运行的《剑网三》按键脚本,在内核级驱动下完全绕过游戏屏蔽。
软件界面直观、功能完善,支持复杂的多键位分组循环,极大提升了玩家的操作效率。
用户只需双击 exe 即可使用,无需安装 Python 或任何驱动,降低了使用门槛。
难点与解决
难点 1:游戏反作弊系统屏蔽了常规软件模拟按键。
解决:转入内核级驱动方案,并对比多种驱动后选择最合适的 DD 驱动,最终成功绕过拦截。
难点 2:DD 驱动 DLL 联网验证导致打包后报错。
解决:寻找离线版 DLL 替换,并指导用户正确放置文件。
难点 3:打包后 exe 找不到 DLL 或音频文件。
解决:引入 resource_path 函数并结合 --add-data 参数,确保资源在 exe 运行时能被正确定位。