脚本错误信息直接指出了问题所在与发生位置,修复需要理解命令语法并找到正确的脚本文件进行修改。
错误命令具体分析与修正
第一条错误涉及MOV命令。
错误命令:MOV A551 法师
问题诊断:MOV命令用于将数据赋值给变量。标准格式为“MOV 变量名 值”。引擎常见变量类型有A(全局)、G(个人)、P(队)、S(派)、D(时间)等。“A551”是合法的全局A变量名。错误在于“法师”作为字符串值,在大多数传奇引擎脚本中,若赋值字符串,通常需要用引号括起,或使用引擎规定的字符串变量格式。
修正方案:若意图将字符串“法师”存入变量A551,应修改为:MOV A551 <$STR(S1)>。这里假设S1是一个已包含“法师”文本的字符串变量。更直接的方式取决于引擎支持,有时写作“MOV A551 [法师]”或“MOV A551 ‘法师’”,具体需查阅引擎说明书。最常见稳妥的做法是,如果“法师”是一个固定职业名称,可能应将其作为常量存入一个S变量,再赋值给A551。
第二条错误涉及INC命令。
错误命令:INC G507 2
问题诊断:INC命令用于对变量进行自增操作。标准格式为“INC 变量名 步进值”。步进值应为数字。“G507”是个人G变量,合法。错误可能在于:变量G507尚未初始化(即没有初始值),直接进行INC操作会导致错误。部分引擎要求变量在INC前必须已有数值。
修正方案:在INC命令前,确保变量G507已被赋初值。例如,增加一行:MOV G507 0。完整修正片段如下:
MOV G507 0
INC G507 2
或者,如果G507可能已有值,只是需要增加2,那么在某些引擎中,使用“CALCVAR”命令更可靠:CALCVAR G507 + 2。
脚本文件定位与添加步骤
根据错误信息,NPC名称为“竞价地图”,位于地图3的坐标(330:321)。找到对应脚本文件步骤如下。
确定脚本目录:传奇服务端脚本主要存放在“Market_Def”文件夹内(名称可能因引擎而异,如Mir200\Envir\Market_Def)。该文件夹下通常有以地图或城区命名的子文件夹,以及大量的“NPC名.txt”文件。
查找NPC脚本文件:在“Market_Def”目录及其子目录中,搜索文件名包含“竞价地图”的.txt文件。例如,可能直接是“竞价地图.txt”,也可能是“3-竞价地图.txt”(表示地图3的NPC)。另一种查找方式是打开“Merchant.txt”或“Npcs.txt”这类NPC配置文件,找到“竞价地图”的配置行,其参数中会指定对应的脚本文件路径。
编辑脚本文件:用纯文本编辑器(如Notepad++)打开找到的脚本文件。在文件中搜索出错命令所在的脚本段。这通常通过查找特征字符串或根据错误上下文判断。找到后,按照上述分析修改MOV或INC命令。
错误发生的常见位置:此类错误通常出现在NPC的对话脚本中,例如以“[@XXX]”开头的段落里。你需要找到触发该命令的具体对话按钮或触发点。
添加新脚本的通用方法
若需新增功能脚本而非修复,应遵循以下流程。
规划功能与变量:明确功能逻辑,规划所需变量(类型、名称、作用域)。避免与现有变量名冲突。
编写脚本段落:在NPC脚本文件内合适位置(通常在已有脚本段之后或独立的标签下),以“[@标签名]”开头编写新功能块。内部使用#IF、#ACT等编写逻辑。
添加触发入口:在NPC的主菜单(通常是[@main])中,使用“#SAY”文本显示并添加一个可点击的“<触发/@标签名>”链接,供玩家点击进入新功能。
重启服务端测试:修改完成后,保存文件。重启传奇服务端(或重新加载NPC脚本),在游戏中测试功能是否正常,并通过GM命令检查变量值变化以验证。
给脚本新手的核心建议
对于初次接触者,直接修改前建议备份原文件。理解所用引擎的特定脚本命令手册至关重要,不同引擎对字符串处理、变量初始化的要求可能存在差异。调试时,善用“SENDMSG”或“MESSAGEBOX”命令输出中间变量值,是定位逻辑错误的有效手段。

