跳到正文

Dynamic Villager Trades Neoforge

作者:CraisinLord

让村民交易更有趣,现已支持 NeoForge 1.21!

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

alt text
专精于最高等级、盔甲和水相关附魔的图书管理员村民交易示例。

这是将原版 Dynamic Villager Trades直接移植到 Neoforge 1.21.1 的版本。没错,你可以通过 Sinytra connector 在 Fabric 1.21 上使用原版模组,但我不想在 Integrated MC 中这么做。你可以在那里找到该模组的所有其他版本。此模组也会更新以支持未来的 Neoforge 版本。

重新审视村民交易机制,旨在告别那些挤满村民、交易大多毫无用处的大型交易大厅,转而让你通过较少的村民获得所需的一切;通过有针对性的交易,村民还能逐渐变得专精。为此,模组做出了以下两项改动:

  • 村民会根据玩家之前的互动来选择交易。例如,你经常向某位图书管理员购买抢夺附魔书,那么他今后更有可能提供剑类附魔和幸运类附魔。
  • 村民每次补货时/每天都会更换交易(可配置)。这样就不必为了买到所需物品而繁殖大量村民,同时也为交易机制增添了一点挑战。你从村民那里买卖某种物品越多,他补货后选择该交易的可能性就越高。
    此外,此模组允许你通过数据包添加或替换村民交易。在多人游戏中,只需在服务器端安装此模组。

关于添加自定义交易的模组:默认配置会自动生成,并包含未安装此模组时原本就会出现的所有模组交易;生成器会尽力根据工具材料、附魔名称等信息,为这些交易建立合理的关联。如果想调整这些交易,可以使用“/dynamicvillagertrades export”命令,将当前配置导出为数据包。有些模组交易无法写入数据包(例如锦致装饰中的随机地图),会导致该职业的导出失败;不过,只要数据包没有整体替换该职业,这些交易仍会在运行时添加。在这种情况下,可以使用不替换出错职业的数据包来配置额外交易(见下文)。

关于替换原版交易的模组:这类模组永远无法与 DVT 兼容。其中也包括其他允许通过 JSON 配置交易的模组;DVT 有自己的配置系统,请使用该系统。

数据包格式

你可以参考生成的原版数据包,了解一些已配置交易的示例。每个 JSON 文件都会扩展或替换(如果 replace 为 true)某个特定职业的交易,这些交易在 offers 字典中指定。字典中的每个条目代表一组交易,并指定可以从该组中选取的交易数量下限 min_trades 和上限 max_trades;此外,还可以选择性指定该组的亲和度(稍后会详细介绍)以及组内随机性(数值越低,村民越快确定具体交易)。如果 replace 为 false,交易会添加到同名的现有组中;否则,该组会被整体替换。虽然组名(键)可以任意设置,但它会影响交易在 GUI 中的显示顺序,因此默认数据包中的组名都以数字开头(否则会按字母顺序排列)。交易列表中的每个条目都指定了可选取该交易的最低等级(例如学徒)、交易类型(1.18–1.20 版本的说明见 SJVT wiki*,1.21 及更高版本请参考新版示例数据包)、交易使用时会应用到村民属性上的增量,以及可选的亲和度。村民的属性代表其与玩家过往互动的记忆,作用类似一种子职业,会让某些交易相较于其他交易更容易被选中。每个属性由一个任意名称(例如 “luck”)和一个数值构成,初始值为 0;每当使用具有该属性的交易时,数值就会根据该交易中指定的 “attributes” 增量进行调整(例如,购买掠夺或时运附魔书时)。请注意,每个村民都拥有配置中提到的所有属性,因此无需“声明”属性;增加任何名称的属性始终有效。另一方面,交易对各项属性的亲和度决定了村民的属性值会如何影响该交易被选中的概率。如果没有明确指定亲和度,系统会根据属性增量自动计算(增量越高,亲和度越高)。如果你希望某项交易增加某个属性,却不与该属性产生亲和度,或者反之,可以同时指定该交易的 attributes 和 affinities。如前所述,亲和度字典也可以放在交易组中,而不是某笔交易中。这样一来,不同组之间的交易就不会直接相互竞争:模组会先根据亲和度选择一个组,再从该组内选择一笔交易。如果各组中的交易数量相差很大,这种做法就很有用,因为它可以避免仅仅由于组较大,就导致该组更常被选中。只有在 max_trades > min_trades 时,这样做才有意义。

请注意,如果某个特定职业(例如模组添加的职业)缺少配置,模组会在运行时自动生成配置。该配置中的交易会与原版交易非常相似,但那些在原版中不一定会出现的交易,各自都会有独特的属性,并与同等级的交易归入同一组(基本上,村民会专精于特定交易,但仅限于原版中通常需要由村民自行选择的交易;不同等级的交易之间不会相互竞争)。

* 本模组还添加了另外两种交易类型:enchant_specific_book 和 sell_specific_potion_holding_item。

向图书管理员职业添加附魔书交易的说明

默认的图书管理员配置会在运行时生成,并为附魔书交易使用四个相同的组,唯一的区别是提供的经验值不同,这样交易就会尽可能贴近原版。因此,除非你打算整体替换图书管理员职业,否则应将每笔新交易都添加到这四个组中。属性方面,建议沿用现有属性(offense、defense、bow 等),以保持交易权重平衡。选择属性时,请注意:

– 亲和度过于相似的交易,可能会妨碍村民专精于玩家想要的交易。例如,如果你添加一笔同时对 “tool” 和 “fast” 属性具有亲和度的交易,那么专精于这两项属性的村民就会在效率附魔书和新书之间随机切换,无论玩家购买其中任何一本书多少次都是如此。这未必是坏事,因为玩家可能确实想从同一名村民那里购买这些书;缩小交易大厅规模正是本模组的目标之一。
– 亲和度与大多数其他交易差异过大的交易,也可能难以专精,因为玩家大多数时候都会获得无法提升目标属性的交易。例如,如果你添加两笔交易,并分别为它们设置两项全新的独有属性,那么玩家只能通过购买这两本书,才能让村民专精于它们。然而,附魔书种类繁多,这两笔交易一开始很少出现,玩家可能需要等待村民补货很多次,才有希望选中其中一本作为交易。另一方面,如果这些交易的属性分别是一个新的自定义属性和 “fire”,玩家就可以通过购买火焰附加等书籍,提高获得这些书的概率。
– 只有当这些附魔书确实与相应属性不兼容时,属性增量和亲和度才应设为负值。例如,如果你希望某本书与火焰附加同时出现的可能性极低(也许因为它与水有关),可以将 “fire” 设为负值。大多数情况下,这可能不是个好主意。
– 默认配置为 enchanter 属性使用 1 作为增量(让附魔书比其他交易更受青睐);low_level 属性的增量设在 -1 到 0.5 之间(让低等级附魔书更受青睐。请注意,等级是相对于该附魔的最高等级而言的,因此火焰附加 II 和效率 V 都会使该属性降低 1,而效率 II 会使其增加 0.5);书籍的主要类别(armor、sword、tool、bow、fishing、trident、crossbow、all)使用 1;次要类别之间则分配 1(例如,如果一本书属于 “melee”、”luck” 和 “resource”,每项属性都会增加 0.333)。添加交易时尽量遵循这些规则,以保持平衡。各类别都和其他属性一样,也是属性;你可以自由创建新类别,但如前所述,这可能会让你的交易更难获得。

选项

global_randomness(默认值:1.0):数值越低,村民越快确定一部分交易;数值越高,获得所需交易所需的时间越长。此值会乘以数据包中指定的组随机性。

refresh_delay(默认值:0):村民需要补货多少次后才会更换交易。请注意,无论此值如何,村民升级时交易都会更换。

no_book_duplicates(默认值:true):是否避免图书管理员同时出售带有相同附魔的书(例如,保护 III 和保护 IV)。

enchant_repair_compat(默认值:false):为图书管理员出售的每本书添加消失诅咒,以兼容 Enchant & Repair。

致谢

此模组的源代码基于 SimpleJsonVillagerTrades。原模组由 orlouge 制作,点击此处。

常见问题

Dynamic Villager Trades Neoforge 支持哪些 Minecraft 版本?

Dynamic Villager Trades Neoforge 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

Dynamic Villager Trades Neoforge 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

CraisinLord 的其他作品

查看全部 →