传奇怎么增加npc买卖东西
来源:夜神 | 更新时间:2026-05-09 02:22
增加npc买卖功能需要同时配置npc入口、交易脚本和商品库存,单独添加购买或出售文字并不能真正启用交易。交易类npc通常写入 `mir200\envir\merchant.txt`,对应脚本放在 `mir200\envir\market_def\`,再通过 `@buy`、`@sell` 等参数调用引擎功能。若只是修改现有药店、书店或武器店,直接复制原npc脚本后调整商品,成功率高于从空文件开始制作。

新增npc时,先备份 `merchant.txt` 和目标脚本,再在 `market_def` 中建立与地图代码对应的脚本文件。文件通常采用脚本名-地图代码.txt的格式,例如脚本入口写成新药商,地图代码为3,实际文件可命名为 `新药商-3.txt`;随后在 `merchant.txt` 增加一行,格式依次填写脚本路径、地图代码、x坐标、y坐标、npc名称、方向或标志、外观代码及其他引擎参数。第一列必须能准确指向 `market_def` 下的相对路径,坐标必须是目标地图中可站立的位置,否则npc可能只显示在错误区域,甚至无法正常出现。

买卖入口必须写在npc脚本头部,并在主对话中加入对应链接,基础药店可以使用:`(@buy @sell)`、`%100`、`+0`、`+42`;`[@main]`中再加入 `<购买/@buy>` 与 `<出售/@sell>`。其中`%100`代表原始售价,改成`%150`就是按原价的1.5倍出售;药品常用`+0 +42`,书店常用`+3 +4`,兵器店常用`+5 +6 +43`,具体分类应优先照抄同类npc的现成参数。需要绑定金币购买时,在头部增加`@bindbuy`,并在对话中使用`<绑定金币购买/@bindbuy>`,不能把普通金币入口直接改名代替。

商品库存必须放在主对话脚本之后的`[goods]`区域,不能写在`[@main]`之前。常见格式是物品名称 数量 刷新分钟数 摆放位置,例如`金创药 50 5 0`表示库存50个、每5分钟刷新一次,显示在第一个格子;`随机传送卷 30 10 1`表示库存30个、每10分钟刷新一次。部分引擎只支持前三项,不支持第四列摆放位置,此时应按照现有npc脚本格式填写,不能强行增加参数。商品名称还必须与服务端物品数据库中的名称完全一致,空格、错字或使用客户端显示名,都可能导致商品不显示。
完成配置后,应先用低数量、短刷新时间测试,再检查购买扣除金币、出售回收价格、库存刷新和多个玩家同时交易是否正常。新手改造npc时,建议只替换`[goods]`中的物品并保留原有分类参数;需要区分初级药品、中级装备和高级材料时,再分别建立独立npc,避免多个商店共用脚本造成商品串店。若修改后游戏内没有变化,先确认文件名、地图代码、路径和脚本入口完全一致,再使用引擎提供的npc重载功能或重启相关服务端进程。
