当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇脚本CHANGEGLORY报错与充值领取修复

热度:
报错原因:数值溢出与命令不兼容

错误提示CHANGEGLORY+9000000位于元宝充值使者-3.txt第1359行,核心问题在于数值超出引擎上限或命令语法错误。

1.数值溢出:CHANGEGLORY命令用于增加人物荣誉点(Glory),但多数引擎(尤其是老版本)将荣誉点定义为短整型(ShortInt),最大值仅为32767。脚本中一次性增加9000000点,严重超出变量存储上限,导致引擎报错或直接归零。
2.命令不兼容:部分引擎(如GOM、GEE)不支持CHANGEGLORY+N的加法语法,仅支持CHANGEGLORYN(直接设置)或使用GAMEGOLD命令增加元宝。
3.逻辑错误:你用“支付平台荣誉点”兑换“元宝”,但脚本却试图给人物加“荣誉点”,属于变量赋值逻辑错误。

修复方案:修改脚本代码

第一步:备份文件
修改前,务必备份D:\MirServer\Mir200\Envir\Market_Def\元宝充值使者-3.txt文件。

第二步:修正脚本内容
用文本编辑器(如Notepad++)打开报错文件,定位到第1359行附近。找到类似以下代码段:
#ACT
CHANGEGLORY+9000000


方案A:改为元宝增加(推荐)
如果你的本意是充值后领取元宝,应将命令改为GAMEGOLD(通用命令):
#ACT
GAMEGOLD+9000000


方案B:修正为直接赋值(如果必须用荣誉点)
如果引擎支持CHANGEGLORY但仅不支持加法,改为直接赋值(注意:此命令可能直接覆盖当前值):
#ACT
CHANGEGLORY=9000000


方案C:分段累加(兼容性最强)
若必须增加大额荣誉点且引擎不支持一次性大额加法,使用循环脚本(以GOM引擎为例):
#ACT
MOVN1900
WhileN1>0
CHANGEGLORY+10000
DECN11
EndWhile


第三步:重启服务端
修改保存后,必须完全关闭M2Server.exe(游戏引擎),再重新启动,修改才会生效。

支付平台对接排查

你提到“用支付平台荣誉点设置的充值金额领不出来”,除了脚本命令错误,还需检查以下环节:

1.变量读取错误:支付平台通常将金额写入QuestDiary文件夹下的文本文件或G/A变量。脚本应使用CALCVAR或MOV命令从文件中读取数值,而非直接写死+9000000。
2.条件检测缺失:在#ACT(执行段)之前,应有#IF条件检测玩家在支付平台是否有未领取的记录。若缺少检测,脚本会无条件执行,导致数据混乱。
3.引擎版本过低:部分老引擎不支持长整型运算。建议更新引擎至较新版本(如GOM引擎的2021年后的版本),以支持大额数值运算。

验证与回退

修改后,在M2引擎的“查看-列表信息-游戏命令”中搜索CHANGEGLORY,确认该命令在当前引擎中的正确语法。若修改后仍报错,恢复备份文件,并检查M2启动时的“脚本错误”提示,逐行排查语法错误。
[顶部]