传奇单机增加npc
增加npc的关键不是只新建一个脚本文本,而是同时完成总表登记、地图脚本、引擎重载三步;采用常见mirserver目录结构的传奇单机包,可先复制备份服务端的envir目录,再进入`mir200\envir`,找到npc总表`merchant`或`merchant.txt`。如果只是需要一个能被点击的空白npc,准备一个名称、地图编号、坐标和外观代码即可;如果还要实现传送、兑换、领取任务等功能,则必须另外编写对应npc脚本。总表记录决定npc出现在哪里,脚本文件决定玩家点击后能做什么,缺少任意一项都会造成npc不显示或无法对话。

登记npc时,应先确认地图编号和可行走坐标,再在总表中添加完整字段,格式可参考`传送员 3 329 266 传送员 0 73 0`。其中第一个传送员用于关联脚本,`3`是地图编号,`329 266`是x、y坐标,第二个传送员是游戏内显示名称,`73`是外观代码,前后的`0`通常保持原引擎格式不变。管理员输入`@map`可查看当前地图编号,坐标应选择角色能够正常站立的空地,不能放在墙体、障碍物、地图边界或传送点重叠位置。地图编号、坐标和外观代码都要使用整数,字段之间至少保留一个半角空格,名称和路径中的符号不要混用全角字符。

创建脚本时,应在`mir200\envir\market_def`目录建立与总表字段对应的文本文件,例如总表写入`传送员 3 329 266 传送员 0 73 0`,脚本文件就命名为`传送员-3.txt`,其中连字符必须是英文半角`-`,地图编号必须与总表完全一致。脚本至少保留`[@main]`段,用于显示npc初始对话;需要传送或功能按钮时,再在主段落下增加对应功能标签和执行内容。新手可先只写一段测试文字,确认npc能够出现和对话后,再逐步加入物品扣除、等级检查、坐标传送等逻辑,避免一次修改过多导致无法判断故障位置。
文件保存后,应在引擎控制器中执行控制—重新加载—所有npc,再回到游戏检查显示名称、位置、外观和对话是否正常;仅修改脚本时也要重新加载相关npc,若名称已经改动但画面没有变化,可小退、切换地图或重新进入当前场景。最常见的问题是总表名称与脚本文件名称不一致、地图编号写错、坐标落在不可站立区域、文件扩展名被保存成`.txt.txt`,以及使用了中文分号或中文横线;排查时应按总表字段—脚本文件名—脚本内容—重载npc的顺序逐项核对。完成基础npc后,可根据用途设置传送、装备兑换、任务领取或条件判断,并为高等级地图单独建立对应地图编号的脚本文件,避免同名npc在不同地图之间互相覆盖。



