设置传奇npc功能,核心是先确定npc类型,再分别配置npc坐标、脚本文件和功能命令:普通传送、商店、修理、仓库等功能通常使用`mir200\envir\merchant.txt`,对应脚本放在`mir200\envir\market_def`;城堡管理员、城门开关等管理类npc则使用`npcs.txt`,脚本放在`mir200\envir\npc_def`。普通功能npc优先采用merchant配置,兼容性和可扩展性更好。

添加npc时,先备份服务端,再打开`mir200\envir\merchant.txt`,按照脚本名 地图代码 x坐标 y坐标 显示名称 沙城标志 外观代码 方向的顺序增加一行。`传送员\比奇老兵 0 468 226 比奇老兵 0 126 0`,表示调用`market_def\传送员\比奇老兵-0.txt`,在地图代码0的468、226坐标生成npc,外观代码为126。地图代码、坐标和脚本文件名必须完全对应;坐标不准确时,npc可能生成在墙内、不可行走位置或玩家看不到的区域。外观代码需要客户端存在对应素材,使用自定义外观时还要同步补丁文件。
编写功能时,先在对应脚本建立`[@main]`入口,再使用引擎支持的跳转命令制作菜单,`<购买物品/@buy>`、`<出售物品/@sell>`、`<普通修理/@repair>`、`<特殊修理/@s_repair>`、`<仓库存取/@storage>`。需要传送功能时,将按钮跳转到独立脚本段,在脚本内加入地图、坐标和等级判断;需要交易功能时,必须确认物品数据、金币类型和商店配置已经存在。部分引擎还要求在npc脚本头部声明`@buy`、`@sell`、`@repair`等固定功能,否则按钮能够显示,但点击后不会执行。
不同功能应采用不同的前置条件,传送npc适合加入等级、金币、会员等级或任务变量判断,商店npc适合区分普通金币与绑定金币,修理npc则要同时提供普通修理和特殊修理入口。低等级玩家使用传送功能时,建议只开放新手地图和主城,设置等级1即可使用;中后期地图可增加等级35、40或更高门槛,并在传送前扣除固定金币。仓库功能应保留存入和取回两个按钮,打造、强化、装备开光等功能则要确认服务端存在对应配置,不能只复制菜单名称,否则容易出现空白窗口或扣除材料但没有结果。

完成配置后,保存所有文件,在m2控制台执行重新加载—所有npc,再进入游戏检查npc是否出现、对话是否正常、按钮是否跳转、金币和物品是否正确扣除。npc不显示时依次检查地图代码、坐标、脚本路径、文件命名和外观补丁;npc能对话但功能无效时,检查命令大小写、引擎是否支持该命令以及脚本段名称是否一致。修改传送、商店或强化功能后,应使用普通账号逐项测试,确认等级不足、金币不足、背包已满和材料不足时都能正确提示,确认无误后再开放给所有玩家。