自定义商人 NPC

自定义商人 NPC

完全在游戏内生成并配置商人NPC——通过命令设置物品、价格、货币和自动补货

实用

CustomMerchant

将任意NPC转变为带有自定义商店的商人。无需配置文件,无需资产编辑器——只需使用/merchant命令,关联到一个已有的NPC,即可完成设置。

我制作这个模组是因为我想要一种简单的方式为我的服务器添加商店,而无需每次更改价格时都编辑JSON文件。所有操作都通过界面完成:关联到任意NPC,选择物品,设置价格,选择货币,并配置动画。


工作原理

  • 使用创造工具生成一个NPC
  • 使用实体工具将其冻结(推荐)
  • 看着NPC并运行/merchant
  • 点击"关联到NPC"将商人数据连接到该NPC
  • 配置商店内容和动画

你可以在创造模式下看着已有的商人并按F键进行编辑。

玩家走到关联的NPC前,按F键,商店就会打开。

货币系统使用你背包中的实际物品(而非快捷栏)。如果你将火之精华设置为货币,且某物品价格为50,玩家背包中需要有50个火之精华才能购买。


NPC动画

关联后,你可以为商人NPC选择动画。动画列表会根据NPC的模型自动检测。选择"睡眠"、"待机"、"坐下"或任何可用动画——该设置会在服务器重启后保留。

<!> 从1.2.3更新到1.2.4的警告 ! <!>

  • 如果你卸载并重新加载区块,NPC会生成两次,请删除这两个NPC。这应该只会在第一次加载时发生,之后数据会更新到1.2.4版本,不会再出现这种情况。

自动补货

你可以在配置商人时设置补货计时器(以分钟为单位)。库存会根据实际时间自动补充,因此如果你设置为60分钟,商店每小时会补货一次,即使没有人在线。当物品缺货时,玩家会看到"补货时间:X时X分"而非购买按钮。

如果你需要立即补货所有商品:使用/restockmerchant


编辑商人

切换到创造模式,对任意商人按F键打开编辑界面。从那里你可以:

  • 添加、编辑或移除物品
  • 更改补货间隔或强制补货
  • 更改NPC动画
  • 完全删除商人

命令

/merchant — 打开商人构建器(仅限OP)

/restockmerchant — 强制补货所有商人(仅限OP)


可用货币

任何物品都可以用作货币——只需在配置物品时将其拖拽到货币槽位即可。

默认为火之精华


须知事项

  • 数据保存为JSON格式,并在重启后持久保留
  • 商店UI会在你能负担时显示绿色价格,无法负担时显示红色价格
  • NPC通过UUID标识,因此即使在世界重新加载后也会保持存在
  • 关联的NPC会保持其原始模型和外观——只有交互方式改变

后续计划

  • 翻译支持?
  • "Ecotale"兼容性

已知问题

  • 不能在自定义商人NPC上放置NPC对话和NPC任务
  • "崩溃 - CustomUI Set命令无法设置值。选择器:#InventoryGrid.Slots" 更新后:从背包中移动/删除物品以"刷新"它,重复几次应该就能恢复正常

更新日志:

v1.2.4 — 全新关联系统

  • 完全重做:将商人关联到已有的NPC,而非生成新的NPC
  • 动画选择持久化
  • 改进的UI
  • <!>可能会清除你的商人<!>

v1.2.3 — 完全UI重做

v1.2.2 — 调度器每30秒检查一次,必要时重新生成NPC

v1.2.1 — 修复NPC消失问题


v1.2.4 — Dr1mS