如有能力,可前往战利品袋模组作者官方Github Wiki查看更为完整详细的介绍:Home · Malorolam/LootBags Wiki (github.com)

BiliBili视频集:(教程向)战利品mod的妙用p4 相关配置文件的修改


零、相关字段的含义及用法

$STARTBAG和$ENDBAG:这两个词条构成一个战利品的配置文件子目,后面关于该战利品袋的相关词条都包含在内

$ISSECRET:后接布尔值(true/false),若后接true,将无法在创造模式物品栏里看到该战利品袋

$BAGTEXTCOLOR:设置战利品袋颜色,后接颜色代码(如:$LIGHT_PURPLE、$BULE),也可以前接符号 § 来修改颜色

$BAGTEXTUNOPENED:打开战利品袋之前简介的内容,后接文字

$BAGTEXTOPENED:打开战利品袋之后简介的内容,后接文字

$BAGTEXTSHIFT:按住SHIFT键所显现战利品袋的详细内容,后接文字,后接$DROPCHANCES可显示该战利品对应相关生物的掉落概率

$BAGVALUE:[转化该礼袋所得到的点数]:[转换成该礼袋所需的点数](-1表示不可转换或兑换),详情见本教程 三.4

$PASSIVESPAWNWEIGHT:被动型生物(友好生物)掉落该战利品袋的概率,后接整点数做权重

$PLAYERSPAWNWEIGHT:玩家掉落该战利品袋的概率,后接整点数做权重

$BOSSSPAWNWEIGHT:BOSS型生物掉落该战利品袋的概率,后接整点数做权重

$MOBSPAWNWEIGHT:中立型生物和敌对型生物掉落该战利品袋的概率,后接整点数做权重

$USEGENERALLOOTSOURCES:后接布尔值(true/false),若后接true,则使用全局战利品物品资源库(就是能开到你在地牢宝箱等战利品箱里开到的那些物品,物品的概率也会与之对应)

$MAXIMUMITEMS:一个战利品袋最多可以开出物品种类的多少,后接整点数

$MINIMUMITEMS:一个战利品袋最少可以开出物品种类的多少,后接整点数

$MAXIMUMGENERALLOOTWEIGHT:在全局战利品袋资源库中所占的最大权重,后接整点数做权重

$MINIMUMGENERALLOOTWEIGHT:在全局战利品袋资源库中所占的最小权重,后接整点数做权重

$PREVENTITEMREPEATS:防止战利品袋物品重叠,后接none/item/fixed,详情见本教程 三.3

$EXCLUDEENTITIES:后接布尔值(true/false),若后接false,则禁止其它生物掉落该战利品袋($EXCLUDEENTITIES对普通战利品袋暂时无效),

$STARTBLACKLIST和$ENDBLACKLIST:这两个词条构成物品黑名单表,详情见本教程 一

$STARTWHITELIST和$ENDWHITELIST:这两个词条构成物品白名单表,详情见本教程 二

$STARTENTITYLIST和$ENDENTITYLIST:这两个词条构成实体白名单表,详情见本教程 五

注:本教程里的 战利品 指在全局战利品资源库(就是能在要塞或村庄等一些自然建筑里面找到的战利品所构成的资源库)的物品,战利品袋 指本模组添加的战利品袋;概率=该战利品的权重/所有战利品的权重之和


一、将战利品袋里的物品去除

首先要先找到$STARTBLACKLIST和$ENDBLACKLIST,这两个字段构成黑名单表,

然后将要去除的物品写在这两个字段之间(记得要进格!)

基于修改LootBags_BagConfig.cfg实现的功能-第1张图片

(这里我是把石头给禁了,虽然本来就开不出石头...

然后要记住的是:你所写的物品后面一定要加":"和 数字,如果不加的话游戏会崩溃。这个数字对应的是特殊物品id号。

以石头为例:如果这个数字为 0,那么石头的所有种类物品(如花岗岩、闪长岩等)都会被去除,就无法在战利品袋开到了;如果这个数字为 1,那么就只有花岗岩会被去除。


二·、将物品添加到战利品袋

首先要先找到$STARTWHITELIST和$ENDWHITELIST这两个字段构成白名单表,

然后将要去除的物品写在这两个字段之间(不过正常情况下是找不到这两个字段,因此要手动输入)。

但如果你想像上面一样只加一个”:0”的话,那样游戏还是会崩溃,这是因为它有4个参数一定要给它设置:

<特殊物品id号>:<最小值>:<最大值>:<权重>

基于修改LootBags_BagConfig.cfg实现的功能-第2张图片

比如在这里的意思是:添加花岗岩在战利品袋,开出来的数量范围是62~64,概率是0.5%

值得一说的是,若你在这里将石头的特殊物品id值设置为0,它就只会开出id值为0的石头,而不会开出花岗岩等同id物品。


三、添加含有特殊NBT标签的物品

战利品袋模组在读取并加载配置文件时,并不能直接读取添加物品的NBT标签(NBT Tag),而是读取NBT Byte数据。因此,需要将要添加的物品的NBT标签转换为NBT Byte。

这里以成书为例:

首先手持你要导出数据的物品,然后在聊天框栏输入 /lootbags_dumphelditem 指令。回车执行命令后,聊天框里会出现这段文字:

基于修改LootBags_BagConfig.cfg实现的功能-第3张图片

这说明该物品的NBT Byte数据已经成功导出到 \dumps\LootBagsHeldItemDump.txt 文件之中了。

在游戏根目录里找到 dumps 文件夹,打开 LootBagsHeldItemDump.txt,里面的字段就是这本成书所对应的NBT Byte数据。基于修改LootBags_BagConfig.cfg实现的功能-第4张图片之后就把这一字段复制,粘贴到你要添加到的战利品袋里吧。



四、修改战利品袋掉落概率

首先找到格式诸如$____SPAWNWEIGHT的字段,可以找到这些:基于修改LootBags_BagConfig.cfg实现的功能-第5张图片

这些字段后面接的数字就是概率

其中,$PASSIVESPAWNWEIGHT是被动型生物的掉率(就是鸡、牛、猪那些生物,这里是0.50%),$PLAYERSPAWNWEIGHT是玩家的掉率(1.00%),$MOBSPAWNWEIGHT是怪物的掉率(1.00%),$BOSSSPAWNWEIGHT是BOSS生物的掉率(1.00%)。


五、一些杂项

1.$USEGENERALLOOTSOURCES:true/false -->调用全局战利品资源库(就是能在要塞或村庄等一些自然建筑里面找到的战利品所构成的资源库)。若为false,则拥有该词条的战利品袋只能开出白名单里的物品(指在$STARTWHITELIST和$ENDWHITELIST构成的白名单表里的物品)。

2.$ISSECRET:true/false -->是否为秘密战利品袋。若为true,则无法在创造模式物品栏里直接获取。

基于修改LootBags_BagConfig.cfg实现的功能-第6张图片

图一

基于修改LootBags_BagConfig.cfg实现的功能-第7张图片图二

如:这里将Patient袋里的$ISSECRET:中的true改为了false,图一是修改前,图二是修改后。

3.$PREVENTITEMREPEATS:none/item/fixed -->防止战利品袋的物品重叠

None:允许战利品袋里的物品数叠

Item:禁止战利品袋里的物品重复出现

Fixed:战利品内的物品将会以调整配置文件后第一次开出的物品为模板,之后开出来的物品将和第一次的结果一样,没有存档隔离。

基于修改LootBags_BagConfig.cfg实现的功能-第8张图片

图一:$PREVENTITEMREPEATS:none的战利品袋基于修改LootBags_BagConfig.cfg实现的功能-第9张图片

图二:$PREVENTITEMREPEATS:item的战利品袋基于修改LootBags_BagConfig.cfg实现的功能-第10张图片

图三:$PREVENTITEMREPEATS:fixed的战利品袋

值得一提的是,如果该战利品袋的$USEGENERALLOOTSOURCES:false,则它第一次出物品的顺序将会是你在物品白名单里物品的顺序。如在这里吧这个战利品袋的物品白名单表里的物品顺序换了一下,它实际结果的顺序也和物品白名单表里的物品顺序一样的。基于修改LootBags_BagConfig.cfg实现的功能-第11张图片

4.$BAGVALUE:[转化该礼袋所得到的点数]:[转换成该礼袋所需的点数](-1表示不可转换或兑换)

例:这里将Darkosto袋的$BAGVALUE:-1:-1改成$BAGVALUE:1:16,那么Darkosto袋就出现在了礼袋存储器里,并且兑换该礼袋需要16点数,而转化得到的点数只有1。基于修改LootBags_BagConfig.cfg实现的功能-第12张图片

如果将Darkosto袋的$BAGVALUE:1:16改成$BAGVALUE:16:-1,那么可以将其转换点数为16,但无法在礼袋存储器里兑换出Darkosto袋。基于修改LootBags_BagConfig.cfg实现的功能-第13张图片

值得一提的是,如果你将Darkosto袋的$BAGVALUE:1:16改成$BAGVALUE:16:-1,但之前在游戏里礼袋存储器的界面是兑换Darkosto袋,那么你再次回到游戏点开礼袋存储器时,会发现一个有趣的一幕:基于修改LootBags_BagConfig.cfg实现的功能-第14张图片

这里的Darkosto袋兑换不了,换另一个袋子之后就再没办法回到这了,也是挺神奇的。


六、让指定生物掉落相应的战利品袋

首先在所要修改的战利品袋的子目里找到$EXCLUDEENTITIES,将后面的false改为true。这里的意思是禁止其它生物掉落该战利品袋。(不过值得一提的是,$EXCLUDEENTITIES对普通战利品袋暂时无效)基于修改LootBags_BagConfig.cfg实现的功能-第15张图片

接下来要找到这两个字段:$STARTENTITYLIST和$ENDENTITYLIST,我们要在这两个字段所构成的表单里面添加我们接下来要输入的新词条:

首先要了解两个词条:
$INTERNALNAME和$VISIBLENAME。

1.$INTERNALNAME后所接的字段是你所要让实体掉落相应战利品袋的实体名。例如要让村民掉落Direwolf20袋,那么就在这个表单里面添加$INTERNALNAME:villager,就可以达成目标了。

基于修改LootBags_BagConfig.cfg实现的功能-第16张图片

2.$VISIBLENAME后所接的字段是你所要让实体掉落相依战利品袋的名字。(注:这里的名字指的是实体NBT参数 CustomName,实体名就是你每次用/summon指令生成生物后接的那字段)例如让名字为Direwolf20的生物掉落Direwolf20袋,那么就在这个表单里面添加$VISIBLENAME:Direwolf20,就可以达成目标了。

基于修改LootBags_BagConfig.cfg实现的功能-第17张图片

这两个字段效果是可以共存的。基于修改LootBags_BagConfig.cfg实现的功能-第18张图片

附:生成带有指定名字的生物:/summon [实体名] [坐标] {"CustomName":"[名字]","CustomNameVisible":"1b"}


七、制作新的战利品袋

首先要在配置文件里面创建你所要创造的战利品袋的子目。

现在这里面写好$STARTBAG和$ENDBAG,其中$STARTBAG后接的数字为该战利品袋的特殊id值。

这是预先写好的配置文件:

基于修改LootBags_BagConfig.cfg实现的功能-第19张图片

具体的设置说明在前面已经讲解过了,这里就不细说了。

如果这时进入游戏,会发现这个战利品袋没有材质,名字也不对。

基于修改LootBags_BagConfig.cfg实现的功能-第20张图片

因此要去改战利品mod的.jar文件。

在jar包里面打开文件路径:assets\lootbags\textures\items\,将准备好的材质放入该目录里,并将其重命名为你的战利品袋的代号。如前面设置的代号是XQH,那么就将该材质文件重命名为xqh。(材质名称的字母要小写)

基于修改LootBags_BagConfig.cfg实现的功能-第21张图片

然后接着打开路径:assets\lootbags\textures\model\item,新建一个.json文件,里面输入内容格式如下:

基于修改LootBags_BagConfig.cfg实现的功能-第22张图片

材质问题解决了,接下来就是命名的问题了。

打开路径:assets\lootbags\lang\,这里面有所有语言的译本。这里是修改zh_CN.lang文件。输入的格式如下:

基于修改LootBags_BagConfig.cfg实现的功能-第23张图片

这样就成功自制了一个战利品袋。

基于修改LootBags_BagConfig.cfg实现的功能-第24张图片基于修改LootBags_BagConfig.cfg实现的功能-第25张图片