根据报错日志:
MOV A551 法师 错误
原因:字符串参数 法师 未加引号,引擎无法识别非数字内容。
修正:需改为 MOV A551 "法师"(字符串必须用英文双引号包裹)。
INC G507 2 错误
原因:变量 G507 未预先声明或类型冲突(G开头为全局数字变量,不可直接操作字符串)。
修正:需检查变量是否定义,并确保为整数类型。
📂 添加脚本的正确步骤
✅ 1. 定位NPC脚本文件
文件路径:D:\MirServer\Mir200\Envir\market_def\竞价地图-3.txt
(根据报错中的 NPC名称竞价地图+地图编号3 确定)。
操作:用记事本打开此文件,搜索报错坐标 (330:321) 找到问题脚本段。
✅ 2. 修正脚本命令格式
在对应位置修改命令:
错误原命令:
MOV A551 法师 → 修正为 → MOV A551 "法师" # 字符串加引号
INC G507 2 → 保留但需检查G507是否定义 # 若未定义需初始化
关键检查:
声明变量(若G507为全局变量):
在服务端 Mir200\GlobalVal.ini 中添加 G507=0 初始化。
字符串处理:所有非数字参数(如职业名称、物品名)必须加引号。
✅ 3. 解决引擎兼容性问题
若修正后仍报错:
更新引擎:老引擎(如0328版)不支持新命令,需升级到 1108引擎。
添加插件支持:
打开 Mir200\PlugList.txt,添加 945Engine.dll 并重启服务端。
⚠️ 避坑指南
变量命名规范
G0-G499:全局数字变量(需在GlobalVal.ini初始化)。
A0-A499:全局字符变量(保存字符串)。
禁止使用 P/D/M/N/S 开头的变量名(易引发冲突)。
新脚本添加流程
graph LR
A[新脚本放入 market_def 文件夹] --> B[检查变量声明]
--> C[字符串参数加引号]
--> D[用引擎工具测试语法]
--> E[重启服务端验证]
高频错误预防
字符串引号缺失 → 用文本工具批量搜索 MOV A 检查未加引号的参数。
变量未初始化 → 在 GlobalVal.ini 预定义所有 G 变量。
❓ 常见问题解答
Q:A551 和 G507 应该定义在哪里?
- A551 是全局字符变量,在脚本中直接使用(无需预定义);
- G507 是全局数字变量,需在 Mir200\GlobalVal.ini 中设置初始值(如 G507=0)。
Q:添加脚本后M2报“脚本死循环”怎么办?
- 修改 !setup.txt 中的 ScriptGotoCountLimit=1000(默认10太低)并重启。
Q:更新脚本后登录器黑屏?
- 补丁未生效:将 NewopUI.Pak 复制到客户端 Data 文件夹,并检查登录器配置器的 PAK 密码。
最终建议:修正后重启服务端,在游戏中触发NPC对话测试。若仍报错,需检查 M2Server 控制台输出的详细错误行号(如 QFunction-0.txt 第2078行)。
传奇脚本添加后变量报错三步搞定MOV/INC命令错误
来源:
作者:
点击:

