先确认版本首充的触发判定方式,打开服务端Mir200/Envir/QuestDiary目录,查找首充相关脚本文件,文件名一般包含firstpay、shouchong、首充礼包字样,打开脚本查看里面的判定变量,常见变量有HUMAN HASPAY、HUMAN FIRSTPAY,部分版本使用充值积分U变量作为判定条件,只有变量标记为1或者充值记录存在,首充按钮才会解除锁定,允许领取奖励。如果脚本依赖盒子后台充值回调,这类原版首充界面单机直接点击充值没有任何反应,需要修改脚本去掉线上回调校验,改成本地触发。
第一种方式,使用版本自带的内置补发后台,很多996单机底板自带GM补发充值功能,进入游戏后输入对应的GM口令调出后台面板,口令在版本配套说明文档内可以找到,调出后台之后选择补发充值,输入角色名字,填写充值金额,勾选计入充值记录、累计充值,提交补发。补发完成后,角色小退重登,打开游戏右上角充值界面,首充按钮会变为可领取状态,直接点击领取首充全部奖励,这个方式会同步写入充值记录,累充、充值活动、每日充值都可以正常生效,是单机最稳定的方案。
第二种方式,引擎控制台直接修改人物变量,角色保持在线,打开996M2主控窗口,找到在线人物列表,双击自己角色打开人物资料面板,切换到自定义变量页面,对照首充脚本里面的变量名称,新增或者修改首充标记变量,赋值为1,保存变量。部分版本需要同步修改充值积分变量,填写对应金额的积分数值,修改完成关闭面板,在游戏内刷新充值界面,首充解锁。如果修改变量之后界面依旧没有变化,说明首充界面是前端UI写死校验,单纯改后端变量无效,需要修改前端配置文件或者改用NPC领取模式。
第三种方式,新建本地首充领取NPC,绕过线上充值接口,在QuestDiary新建脚本文本,写入判定和奖励发放逻辑,设置点击NPC先判断首充标记,标记为0就发放首充全套奖励,同时把标记变量设置为1,防止重复领取,然后在地图配置文件添加NPC坐标、外观和名称。脚本写完之后,在引擎菜单执行重载Quest脚本,不需要重启整套服务,进入游戏找到NPC点击即可领取首充,这个方案适合原生首充UI绑定盒子后台、无法本地解锁的版本,奖励道具、称号、时装、技能都可以自由配置。
第四种方式,直接修改角色数据库记录,关闭M2引擎,打开配套数据库工具,找到角色数据表,定位到自己角色的记录,找到充值金额、首充标识字段,修改数值,保存数据库之后重新启动引擎登录游戏。数据库修改的缺点是不同底板数据表字段命名不一样,字段写错会造成角色数据异常,新手优先使用补发后台和变量修改。
还有部分纯Lua框架的996版本,首充逻辑写在Lua脚本内,脚本路径一般在服务端lua目录,打开首充lua文件,找到充值回调函数,注释掉线上验证代码,增加本地赋值代码,修改完成后执行重载Lua脚本,再进游戏测试。Lua版本的首充UI资源放在客户端res文件夹,缺少首充图标、界面素材,就算解锁首充,界面也会显示空白,需要把配套UI补丁复制到客户端对应目录。
操作过程里常见问题依次排查,补发充值之后首充依旧灰色,先查看M2日志,确认补发记录成功写入,再核对脚本里面的判定条件,有些版本要求充值金额达到指定数额才判定为首充,只补发1元才解锁,补发金额不足不会触发。补发之后可以领取奖励,但是累计充值不增加,是补发面板里面没有勾选计入累计充值,重新补发的时候勾选对应选项。
GM口令输入没有反应,先确认自己角色已经添加管理员权限,在引擎管理员列表添加角色名,权限等级设置最高,保存后小退重登,口令区分大小写,空格不能多打。部分版本的GM补发后台有独立密码,密码写在版本配置文件里面,不是通用密码,需要去配置文件核对。
不要直接使用盒子线上的充值后台给单机角色加充值,线上后台绑定盒子账号,本地单机角色不在盒子数据库内,提交补发不会同步到本地服务端,操作之后没有任何效果。线上模式的首充、礼包、充值回调全部依赖盒子服务器通讯,单机环境必须剥离回调校验,改用本地标记。
每次修改首充脚本、Lua代码、变量判定逻辑之后,优先执行引擎内的重载脚本功能,重载无效再关闭引擎全部窗口重新启动,修改UI和客户端素材,必须退出游戏重新打开客户端。如果想要关闭首充重复领取,脚本里面一定要做好变量锁,发放奖励之后给首充标记赋值,再次点击直接提示已经领取,避免反复刷取奖励。
测试完成之后,检查首充配套的连领奖励,很多首充是分多天领取,这类功能依靠天数变量记录,补发充值解锁首充之后,每天领取的标记同样存在独立变量,部分版本需要同步修改天数变量,才能直接领取后续档位奖励,不然只能等到游戏内时间满足条件才可以领取。

