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

来源: 作者: 点击:
一、 报错原因解析与变量类型判断

报错提示 MOV A551 法师 和 INC G507 2,说明脚本逻辑本身能运行,但变量类型与赋值内容不匹配。

1. MOV 命令语法
◦ MOV 是赋值指令。格式为 MOV 变量名 值。

◦ 你的报错:MOV A551 法师。A类变量是数字型,不能直接存入汉字“法师”。若必须存汉字,应改用 S类变量(字符串变量)。

2. INC 命令语法
◦ INC 是加法指令。格式为 INC 变量名 数值。

◦ 你的报错:INC G507 2。G类变量是全局数字变量,此写法正确。若报错,通常是因为 G507 未先初始化(即未先执行过 MOV G507 0),直接加2会导致引擎无法识别该变量。

3. 变量类型速查
◦ A类(个人数字):存整数,如等级、数量。例:MOV A551 100

* S类(个人字符串):存文本,如名字、职业名。例:MOV S551 法师
* G类(全局数字):全服通用整数,重启保存。例:MOV G507 5000

二、 脚本文件添加位置(傻瓜式路径)

根据报错信息 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
MOV A551 100 ; 正确写法:给A551变量赋值为100(数字)
MOV S551 法师 ; 正确写法:给S551变量赋值为“法师”(文字)
INC G507 2 ; 正确写法:给G507变量增加2(需确保G507已存在)
SENDMSG 6 变量设置成功 ; 测试提示


三、 添加新脚本的完整流程

若你是想新增一个功能NPC,而非修改旧脚本,请按此流程操作:

1. 第一步:在Merchant.txt注册NPC
◦ 打开 D:\MirServer\Mir200\Envir\Merchant.txt。

* 在文件末尾添加一行(地图3的330,321坐标):
竞价地图 3 330 321 竞价管理员 0 15 0 0 0
* 参数解释:竞价地图(脚本名) 3(地图号) 330 321(坐标) 竞价管理员(游戏内显示名) 0(方向) 15(外观形象) 0 0 0(其他参数)。

2. 第二步:创建脚本文件
◦ 在 Market_Def 文件夹中,新建一个文本文件,重命名为 竞价地图-3.txt。

* 将以下基础模板复制进去:
[@main]
#IF
#ACT
MOV A551 0 ; 初始化变量,防止INC报错
MOV G507 0
#SAY
欢迎使用竞价系统。\
<开始竞价/@start> \
<查看当前价格/@view>

[@start]
#IF
CHECKGAMEGOLD > 99 ; 检测元宝大于99
#ACT
TAKE 元宝 100 ; 扣除100元宝
INC G507 2 ; 全局价格+2
MOV A551 1 ; 标记个人已参与
SENDMSG 6 竞价成功,当前全局价格增加2点。
#ELSEACT
SENDMSG 6 元宝不足,无法参与竞价。

[@view]
#SAY
当前全局价格:<$GLOBAL(G507)>


3. 第三步:重载NPC生效
◦ 打开 M2Server(主引擎)。

◦ 点击菜单栏 “控制” → “重新加载” → “重载NPC管理”。

◦ 返回游戏,在盟重省(330,321)位置即可看到NPC并测试功能。

四、 快速排错清单

1. 文件路径错误:脚本必须放在 Market_Def,且文件名必须是 NPC名-地图号.txt。
2. 变量未初始化:使用 INC 前,必须先执行一次 MOV 给变量赋初值(通常是0)。
3. 中文乱码:保存脚本文件时,编码格式选 ANSI,不要用UTF-8,否则游戏内显示乱码。
4. M2报错:修改脚本后,必须重载NPC,重启M2会清空G类变量数据。

若按此操作后仍报错,请检查 !SetUp.txt 中是否开启了变量检测,或尝试将 MOV A551 法师 改为 MOV S551 法师。