一、安装好MOD,进入游戏(建议创造作弊档随时能进行测试),在游戏内输入/exportCVT,导出交易(后续不要轻易再用,会重置位于export文件夹下的json文件)。

         二、到根目录的config/custom trades/exports下找到你想改的村民交易,比如制箭师(fletcher.json),用 VSCODE或记事本打开,如图:  面向新手的轮椅教程-第1张图片

      先进行简单讲解吧:

(1)"removeOtherTrades"指以当前json文件内的交易内容覆盖所有交易,会导致一些关于随机附魔的NBT标签随机性消除,对于不怎么采用较多种类NBT标签且有也不重要的村民交易来说问题不大,比如制箭师、武器商、工具匠之类的,这些虽然有那么几件随机附魔装备但好不到哪去,不是很重要,可以考虑进行直接覆盖,反正其基本的木棍换绿宝石、铁锭换绿宝石之类的都是必有的,不影响赚钱;或者不替换也行,不替换则为只增加交易表,在游戏内会随机刷出来,但如果是一级交易倒还好能反复刷,如果是高级交易,可能培养十个村民都刷不出来新交易,因此建议考虑覆盖。不能覆盖的为图书管理员,会断绝其NBT随机性,导致刷不出其他附魔书,而只能出现当前json里显示的一种。流浪商人也不建议覆盖,在整合包中流浪商人往往被添加大量物品交易,难保没有一些采用多种NBT形式的物品。

  (2)"maxTrades": 2 定义村民每级可以进行的交易数量,不清楚是否能更改,无论如何村民到大师级为止交易的最大种类有限,个人猜测这个设置高了可能会因为低级交易显示过多而顶掉高级交易,但未经验证。总之不建议更改。

  (3)"trades"罗列出了所有交易项

  (4)单独找一个交易内容看,在一对如图的蓝色括号{ }内。

面向新手的轮椅教程-第2张图片

               1."offer":字面意思,提供,你获得什么东西。"itemKey"是物品ID,"amount"是每次获得的物品数量,

 "priceModifier":价格(数量)变化幅度,固定数值,比如1就是上下变动1。

               2."request":字面意思,需求,你要支付什么东西,不仅限绿宝石,可随意设置成其他物品,里面几个属性同上不细说了。

               3. "tradeExp":每次交易时玩家获得的经验球数量

               4. "maxUses":每次最大交易次数

               5. "priceMultiplier":价格(数量)变化幅度,百分比形式,0.2就是20%。

               6. "demand": 需求,会导致价格改变,用不着动。

               7."tradeLevel":交易等级,只有在几级才会解锁此交易。

               8. "UTID":交易ID,不用管,将交易json文件转移到上一层目录被读取后会自动生成。

                总结,图中的意思是:32木棍换1绿宝石,每次最多交易16次,价格变动5%,交易等级1(新手),每次交易获得2点经验。

         三、着手修改

          1.如果你仅仅想添加新交易而不改动原有交易也就是不覆盖,可快速在游戏内添加:

/addCVT 村民职业类型 将获取的物品{这里填入NBT标签,括号相当于后面讲到的"advancedNBTData"属性,没有或没有额外需求则不用添加这对括号} 获取数量 需要支付的物品{这里同上} 需要的数量 交易经验 单次最大交易次数 交易等级

               要获取NBT标签,鼠标放在物品上ctrl+c即可获得(连同物品ID)。

               输入完成立刻生效,生成的文件在config/custom trades下,并且是不覆盖其他交易的,当然,这些新交易项只会随机刷出来,有时很难出现,特别是在高等级村民交易。


            2.如果想进行交易覆盖,有两个想法:一是魔改交易,在游戏内直接手动添加若干条新交易,然后到config/custom trades下打开对应json文件,把removeOtherTrades"设置为true,这时对应村民所有交易项都会强制变成你设置的了;如果不想魔改,想尽可能保留原版交易,只替换一两条交易为新交易(是修改替换部分交易项,不是添加新交易项,为什么不添加呢,因为添加了可能也要和同等级其他交易项随机抢占位置,而不会变成必出,这样意义不大,而且修改的交易项最好在之前也是该等级下唯一(唯二)的交易项,这样能必出,不追求必出就没必要覆盖了),则需要打开config/custom trades/exports下的对应json文件。我们这里对下面一个盔甲匠的带有满耐久标签的铁靴子交易进行进行替换修改:

面向新手的轮椅教程-第3张图片

假设我们要改为模组Csgo 箱子 (CsgoBox)的箱子,该模组为自定义箱子内容,所有箱子共用同一个ID:csgobox:csgo_box,但是NBT不同,因此需要使用"advancedNBTData"属性来区分,在"offer"下添加(如图已经有了就不要重复添加了)"advancedNBTData":"这里输入NBT",NBT的获取在游戏内ctrl+c即可复制,像这样两端有括号就是NBT:

{Potion:\"minecraft:long_slowness\"}

具体示例:

 "advancedNBTData": "{Potion:\"minecraft:long_slowness\"}"  

但是需要注意:游戏内直接复制获取的NBT只有在游戏内输入时有用,在外面并不符合json语法规范,此时需要在每个项的两个引号前自行添加斜杠,我们以原版迟缓药水箭为例,游戏内复制NBT后找个QQ聊天栏粘贴,会显示这样:

                                     minecraft:tipped_arrow

                                     {Potion:"minecraft:long_slowness"}

          第一行是其物品ID,其二行才是NBT,不要搞混了。而且这样的NBT是不符合规范的,应当改为:

                                     {Potion:\"minecraft:long_slowness\"}

                 引号前添加斜杠,斜杠顺序别搞错了,是\,不是/。

                 如果NBT非常长,可用AI大模型添加斜杠,建议输出为一整行,行数过多检查起来不直观。


     最后再简单说一下流程:修改"offer"下的"itemKey"的原物品ID为将要获得的新的物品ID,

 "request"下的"itemKey"的原物品ID改为要付出的新的物品ID。如果新物品ID可以指代为唯一物品,那么不需要添加NBT标签,可以删除(有则删,没有则不用管)"advancedNBTData"属性,如果有特殊需要也可以添加(保留)"advancedNBTData"属性,比如用于附魔,附魔也属于标签形式;如果仅靠ID不能精准定位物品则必须添加"advancedNBTData"输入NBT。然后其他的一些选项根据需求自行改动即可。


    改好后ctrl+s保存(记得"removeOtherTrades"设置为true),把改好的json文件复制,粘贴到上一级也就是config/custom trades下,如图面向新手的轮椅教程-第4张图片

此举会优先读取这里的json,也相当于备份,放到这里不会被重置。

修改后的流浪商人json文件需要复制粘贴到wanderer文件夹中。


大功告成,在游戏内使用/reloadCVT热重载,看看是否报错,报错再检查检查,没报错就找村民交易看看生效了没。对了,有些NBT内含有name标签(如:name:\"“饥饿”补给箱二号\"),使用汉字会导致游戏内显示名称乱码,要用在线UNICODE工具转码(在线 Unicode 编码转换 | 菜鸟工具)。

     示例:“饥饿”补给箱二号   转码后为:\u201c\u9965\u997f\u201d\u8865\u7ed9\u7bb1\u4e8c\u53f7

因此完整的name标签应该为这样:name:\"\u201c\u9965\u997f\u201d\u8865\u7ed9\u7bb1\u4e8c\u53f7\"


暂时就这些。