老项目里需要开启游戏控制功能,不外乎是给调试、灰度调参留个内部开关。很多人光知道要改源码,却常常漏掉数据库权限、DLL 放置、版本号对齐这些细节,结果就是编译过了,客户端里还是见不到按钮。
下面这份踩坑记录,把从源码到权限到文件放置到版本一致性,都给你捋顺。
条件一:去掉源码里注释
要开游戏控制,先从源头动手。
找到所有预编译头文件,一般是 StdAfx.h
,滚到最下面,找到这一行:
有的版本可能前面是 //
注释掉了,直接去掉即可。去掉注释,编译才会把这块功能包含进去。
条件二:数据库权限写入
只是放开了宏定义还不够,用户本身也需要有权限。
去 QPAccountsDB
数据库里的 AccountsInfo
表,找到需要控制功能的那一条账号,把 UserRight
这个字段改成 17907712
(有的版本是 536870912
)。
这串数字不固定,按你项目里实际写死的宏来填。
条件三:勾选用户权限为比赛用户
后台用户信息里还要把这个账号设成比赛用户,很多人改了数据库还不勾选这里,结果权限不起作用。
一般在用户信息页,找到“比赛用户”选项,勾上。
条件四:放置控制 DLL 文件
启用控制功能后,服务端和客户端都需要各自带上控制 DLL,否则运行时还是调不出来。
这俩文件通常是:
-
****ClientControl.dll
放到 客户端 目录 -
****ServerControl.dll
放到 服务器 目录
这里的 ****
是具体的模块名字,比如你做碰碰车就叫 BumperCarBattleClientControl.dll
。
条件五:核对版本号一致
很多人把 DLL 放好了还是无效,多数是版本号没对齐。
怎么查:
-
打开 Visual Studio,点击
视图
→资源视图
(快捷键Ctrl+Shift+E
)。 -
找到控制 DLL 的资源节点,双击
VS_VERSION_INFO
。 -
确认
FileVersion
、ProductVersion
和主程序一致,格式是数字用英文逗号隔开。
这里不能用句号,要是写成 6.6.0.3
就是错的,必须是 6,6,0,3
。
条件六:验证界面出现按钮
都做完了,进客户端,如果在左上角出现一个小按钮,就说明控制功能生效了。
点开就能看到控制面板,后面就是调参、测试了。
权限数字参考
常用:
-
17907712
-
536870912
别硬抄,最好自己翻一下宏,确认一致。
写在最后
这套流程,任何一步漏了都跑不出来。
记住三个关键:
-
源码开关注释掉
-
数据库权限码写对
-
控制 DLL 和主程序版本一致
做完再备份一下,防止哪天不小心被覆盖了又得重来。
转载请注明出处,保留作者署名与出处链接,感谢支持开源精神与知识传播!