增加传奇npc买卖功能,关键是同时修改npc入口脚本、购买商品列表和出售规则,不能只在对话文字里添加买东西按钮。先关闭服务端并备份整个 `mir200\envir` 目录,再打开 `merchant.txt`,找到目标npc对应的脚本名和地图编号。该文件第一列通常指向 `market_def` 下的脚本,第二列记录地图代码,npc脚本一般按脚本名-地图编号匹配,例如入口写成 `5mbo 0161`,就应检查 `market_def` 内与 `5mbo-0161` 对应的文本文件。已有npc只需要修改脚本,不要重复添加入口,否则可能出现同名npc、坐标重叠或点击后调用错误脚本。

购买功能应先在 `[@main]` 中加入购买跳转,再在脚本中准备 `[@buy]` 段;如果使用的是支持固定库存的引擎,还要在脚本末尾增加 `[goods]` 商品表。常见商品表按物品名称、库存数量、刷新时间、显示位置排列,例如 `回城卷 50 5 0`,表示库存50个、每5分钟刷新、显示在第一个格子,实际价格通常读取物品数据库中的商店价;部分引擎还支持 `%100`、`%150` 这类价格倍率,分别代表原价和原价1.5倍。商品名称必须与数据库名称完全一致,数量设为0、刷新时间写错或位置重复,都可能导致商店空白、商品不刷新或无法购买。
出售功能应根据npc类型补充可交易分类,而不是把所有物品无条件开放给商人。药店适合配置药剂和恢复类物品,杂货店适合回城卷、随机卷和基础材料,书店适合技能书,武器店、衣服店和首饰店分别对应武器、防具、头盔、项链、戒指及手镯等分类;部分经典引擎使用 `+0`、`+3`、`+4`、`+5` 等分类参数控制npc能够买卖的物品范围,也有引擎通过脚本段或数据库商店组控制,因此不能把其他引擎的标签直接复制过来。若只想让npc收购某类物品,应优先限制出售分类和回收价格,避免高级装备、稀有材料被普通商人低价收走。

修改完成后,先保存为服务端能够识别的文本编码,再启动服务端并执行重新加载所有npc,没有该选项时直接重启相关网关和游戏服务。测试顺序应为:点击npc确认对话正常,进入购买界面确认商品名称和价格,购买一件检查金币与背包变化,等待一个刷新周期确认库存恢复,再放入对应物品测试出售金额。新手阶段建议只加入基础药品、随机卷和回城卷,库存可设为50至100件;中期可加入低阶技能书、修理材料和常用装备,并设置5至10分钟刷新;后期稀有装备和高阶材料更适合通过任务、首领或专门商店获取,避免npc无限供应破坏交易和升级节奏。完成测试后,再根据玩家等级、金币产出和物品消耗量调整库存、刷新间隔及价格倍率。