一、报错原因解析与变量类型判断
报错提示MOVA551法师和INCG5072,说明脚本逻辑本身能运行,但变量类型与赋值内容不匹配。
1.MOV命令语法
◦MOV是赋值指令。格式为MOV变量名值。
◦你的报错:MOVA551法师。A类变量是数字型,不能直接存入汉字“法师”。若必须存汉字,应改用S类变量(字符串变量)。
2.INC命令语法
◦INC是加法指令。格式为INC变量名数值。
◦你的报错:INCG5072。G类变量是全局数字变量,此写法正确。若报错,通常是因为G507未先初始化(即未先执行过MOVG5070),直接加2会导致引擎无法识别该变量。
3.变量类型速查
◦A类(个人数字):存整数,如等级、数量。例:MOVA551100
*S类(个人字符串):存文本,如名字、职业名。例:MOVS551法师
*G类(全局数字):全服通用整数,重启保存。例:MOVG5075000
二、脚本文件添加位置(傻瓜式路径)
根据报错信息NPC名称:竞价地图地图:3,文件位置锁定如下:
1.找到NPC脚本文件
*打开服务端目录D:\MirServer\Mir200\Envir\。
◦进入Market_Def文件夹。
*找到名为竞价地图-3.txt的文件(“竞价地图”是NPC名,“3”是地图编号)。
*若找不到该文件,说明NPC配置错误,需检查Merchant.txt中的定义。
2.编辑脚本内容
*用记事本打开竞价地图-3.txt。
◦搜索[@开头的段落(如[@main]或[@buy]),在合适的位置添加以下修正后的脚本:
#IF
;这里写触发条件,比如检测元宝CHECKGAMEGOLD>99
#ACT
MOVA551100;正确写法:给A551变量赋值为100(数字)
MOVS551法师;正确写法:给S551变量赋值为“法师”(文字)
INCG5072;正确写法:给G507变量增加2(需确保G507已存在)
SENDMSG6变量设置成功;测试提示
三、添加新脚本的完整流程
若你是想新增一个功能NPC,而非修改旧脚本,请按此流程操作:
1.第一步:在Merchant.txt注册NPC
◦打开D:\MirServer\Mir200\Envir\Merchant.txt。
*在文件末尾添加一行(地图3的330321坐标):
竞价地图3330321竞价管理员015000
*参数解释:竞价地图(脚本名)3(地图号)330321(坐标)竞价管理员(游戏内显示名)0(方向)15(外观形象)000(其他参数)。
2.第二步:创建脚本文件
◦在Market_Def文件夹中,新建一个文本文件,重命名为竞价地图-3.txt。
*将以下基础模板复制进去:
[@main]
#IF
#ACT
MOVA5510;初始化变量,防止INC报错
MOVG5070
#SAY
欢迎使用竞价系统。\
<开始竞价/@start>\
<查看当前价格/@view>
[@start]
#IF
CHECKGAMEGOLD>99;检测元宝大于99
#ACT
TAKE元宝100;扣除100元宝
INCG5072;全局价格+2
MOVA5511;标记个人已参与
SENDMSG6竞价成功,当前全局价格增加2点。
#ELSEACT
SENDMSG6元宝不足,无法参与竞价。
[@view]
#SAY
当前全局价格:<$GLOBAL(G507)>
3.第三步:重载NPC生效
◦打开M2Server(主引擎)。
◦点击菜单栏“控制”→“重新加载”→“重载NPC管理”。
◦返回游戏,在盟重省(330321)位置即可看到NPC并测试功能。
四、快速排错清单
1.文件路径错误:脚本必须放在Market_Def,且文件名必须是NPC名-地图号.txt。
2.变量未初始化:使用INC前,必须先执行一次MOV给变量赋初值(通常是0)。
3.中文乱码:保存脚本文件时,编码格式选ANSI,不要用UTF-8,否则游戏内显示乱码。
4.M2报错:修改脚本后,必须重载NPC,重启M2会清空G类变量数据。
若按此操作后仍报错,请检查!SetUp.txt中是否开启了变量检测,或尝试将MOVA551法师改为MOVS551法师。
报错提示MOVA551法师和INCG5072,说明脚本逻辑本身能运行,但变量类型与赋值内容不匹配。
1.MOV命令语法
◦MOV是赋值指令。格式为MOV变量名值。
◦你的报错:MOVA551法师。A类变量是数字型,不能直接存入汉字“法师”。若必须存汉字,应改用S类变量(字符串变量)。
2.INC命令语法
◦INC是加法指令。格式为INC变量名数值。
◦你的报错:INCG5072。G类变量是全局数字变量,此写法正确。若报错,通常是因为G507未先初始化(即未先执行过MOVG5070),直接加2会导致引擎无法识别该变量。
3.变量类型速查
◦A类(个人数字):存整数,如等级、数量。例:MOVA551100
*S类(个人字符串):存文本,如名字、职业名。例:MOVS551法师
*G类(全局数字):全服通用整数,重启保存。例:MOVG5075000
二、脚本文件添加位置(傻瓜式路径)
根据报错信息NPC名称:竞价地图地图:3,文件位置锁定如下:
1.找到NPC脚本文件
*打开服务端目录D:\MirServer\Mir200\Envir\。
◦进入Market_Def文件夹。
*找到名为竞价地图-3.txt的文件(“竞价地图”是NPC名,“3”是地图编号)。
*若找不到该文件,说明NPC配置错误,需检查Merchant.txt中的定义。
2.编辑脚本内容
*用记事本打开竞价地图-3.txt。
◦搜索[@开头的段落(如[@main]或[@buy]),在合适的位置添加以下修正后的脚本:
#IF
;这里写触发条件,比如检测元宝CHECKGAMEGOLD>99
#ACT
MOVA551100;正确写法:给A551变量赋值为100(数字)
MOVS551法师;正确写法:给S551变量赋值为“法师”(文字)
INCG5072;正确写法:给G507变量增加2(需确保G507已存在)
SENDMSG6变量设置成功;测试提示
三、添加新脚本的完整流程
若你是想新增一个功能NPC,而非修改旧脚本,请按此流程操作:
1.第一步:在Merchant.txt注册NPC
◦打开D:\MirServer\Mir200\Envir\Merchant.txt。
*在文件末尾添加一行(地图3的330321坐标):
竞价地图3330321竞价管理员015000
*参数解释:竞价地图(脚本名)3(地图号)330321(坐标)竞价管理员(游戏内显示名)0(方向)15(外观形象)000(其他参数)。
2.第二步:创建脚本文件
◦在Market_Def文件夹中,新建一个文本文件,重命名为竞价地图-3.txt。
*将以下基础模板复制进去:
[@main]
#IF
#ACT
MOVA5510;初始化变量,防止INC报错
MOVG5070
#SAY
欢迎使用竞价系统。\
<开始竞价/@start>\
<查看当前价格/@view>
[@start]
#IF
CHECKGAMEGOLD>99;检测元宝大于99
#ACT
TAKE元宝100;扣除100元宝
INCG5072;全局价格+2
MOVA5511;标记个人已参与
SENDMSG6竞价成功,当前全局价格增加2点。
#ELSEACT
SENDMSG6元宝不足,无法参与竞价。
[@view]
#SAY
当前全局价格:<$GLOBAL(G507)>
3.第三步:重载NPC生效
◦打开M2Server(主引擎)。
◦点击菜单栏“控制”→“重新加载”→“重载NPC管理”。
◦返回游戏,在盟重省(330321)位置即可看到NPC并测试功能。
四、快速排错清单
1.文件路径错误:脚本必须放在Market_Def,且文件名必须是NPC名-地图号.txt。
2.变量未初始化:使用INC前,必须先执行一次MOV给变量赋初值(通常是0)。
3.中文乱码:保存脚本文件时,编码格式选ANSI,不要用UTF-8,否则游戏内显示乱码。
4.M2报错:修改脚本后,必须重载NPC,重启M2会清空G类变量数据。
若按此操作后仍报错,请检查!SetUp.txt中是否开启了变量检测,或尝试将MOVA551法师改为MOVS551法师。

