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

传奇脚本MOV与INC变量报错修复与添加教程

热度:
一、报错原因解析与变量类型判断

报错提示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法师。
[顶部]