增加传奇npc的买卖物品,必须同时检查npc入口、商品清单和物品数据,单独修改对话文字通常只能让按钮显示,不能真正完成交易。操作前先完整备份服务端目录,并确认使用的是哪种传奇引擎,因为端游常见的mir2结构与手游引擎的配置方式并不通用。若是修改已有商店,优先复制原npc文件再改名测试;若是新增商店,还要先在npc配置中放置npc、绑定地图和坐标,并确认角色靠近后能够正常打开对话。商店物品必须已经存在于物品数据库中,名称、编号或stdmode字段只要有一项不匹配,就可能出现列表空白、无法购买或买入后消失的情况。

mir2类传奇服务端增加出售物品,通常按照定位npc—打开商店脚本—补充商品列表—重启测试的顺序处理。先在`envir\merchant.txt`中找到目标npc代码和地图编号,再进入`envir\market_def`,打开与npc代码对应的文件;保留原有的`[@main]`、`[@buy]`和`[@sell]`入口,在`[goods]`段按照原文件格式增加商品。常见写法类似物品名 100 10,其中100、10只是示例数值,实际应依照同一文件中已有行的字段顺序填写,价格不能为负数,库存不能填0。建议先加入1种药品、1本技能书和1件装备,每种库存设为10,价格分别使用100、1000和5000进行测试,确认购买扣除的货币、背包数量和商品显示均正常后,再批量增加。若npc只能买不能卖,重点检查`[@sell]`是否调用出售功能,以及该引擎是否限制出售物品类别。

战神引擎一类的传奇手游服务端,需要在npc脚本初始化和对话事件中分别配置商品与交易功能。`oninitialize`必须存在,先用`addstdmode(x)`加入该npc允许买卖或修理的物品类型,再用`fillgoods(物品名,数量,时间)`设定库存和刷新间隔;例如数量填写50、时间填写1,表示库存不足时按1分钟周期补齐到50件。购买按钮应调用`click_buy`,出售按钮应调用`click_sell`,否则即使商品已经写入初始化脚本,npc界面也可能只有文字而没有实际交易窗口。想调整售价时,先检查脚本中的折扣或倍率设置,例如`setrebate(100)`通常代表按基础价格的100%计算;改成150时应先用单件商品测试,避免所有商品价格同时变为1.5倍。
验证npc买卖功能时,应按买1件—买满背包—卖1件—等待刷新—重新登录的顺序逐项检查。前期测试使用低价消耗品最安全,中期加入装备和技能书,后期再测试绑定物品、耐久装备、限购商品和不同货币支付;每类至少测试1件,确认购买后数量增加、出售后货币到账、库存不足时提示正确。常见错误包括改错地图编号、npc代码与脚本文件不一致、商品名称多一个空格、只改客户端显示文件、库存字段填错、遗漏买入或卖出入口,以及修改后没有重启对应服务。若购买正常但出售失败,优先检查出售开关、物品类别白名单和绑定状态;若商品显示正常但点击无反应,检查脚本入口名称和按钮调用标签。完成测试后再将药品库存提高到50至100、装备库存设置为10至30,并根据服务器经济量调整价格,避免npc无限回收高价值装备导致金币快速贬值。