【随记】Minecraft数据包loot_table运用

文章目录
  1. 前言
  2. 正文
  3. END

本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

前言

项目地址戳我

Minecraft wiki战利品表

Minecraft wiki战利品表谓词

摸了一个可再生资源数据包,在写下界合金碎片时遇到一些事….

下界合金再生方式,通过下界BOSS级别存在的生物掉落再合适不过了!

正文

下界之星并不写在凋灵的战利品表内,而是通过游戏代码实现掉落,空白的战利品表咱也可以利用起来

可再生下界合金,如此稀有的东西,需要合理控制资源获取方式实现随机掉落数量,最少掉落量为重中之重

刚开始使用uniform不规则分布,直接填写最小值最大值
效果并不理想,会出现过多/过少的情况,无法控制每次掉落量

思路

一个战利品表内可以存在多个战利品池,可以为设置每个池子被roll的概率

再往下分战利品池掉落的物品以及条件与执行的函数

那么就可以写出,roll同一个池子多次,掉落物品执行不规则分布函数,掉落物权重为1(在这里似乎没什么用,概率为这个物品的权重⁄所有考虑的物品权重之和)

  • 解析:池子roll3次,池子内东西100%roll中,*因为就一个entity,进行0-2个掉落物品数量的抽奖*,100%概率出货,运气再差也会出1个

不清楚wight是算的所有池子还只是这个池子下的entity

(后:这里表述还是有点问题的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"rolls": 3,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"count": {
"min": 0.0,
"max": 2.0,
"type": "minecraft:uniform"
}
}
],
"name": "minecraft:netherite_scrap",
"wight": 1
}
]
}

27次凋灵掉落物如图,掉落的数量还是不稳定,且理论最高值6,也才出现一次,换到实际场景下,4碎片做1合金锭,这掉落的量确实少的可怜

优化

可以在这基础上再加战利品池

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"count": {
"min": 0.0,
"max": 5.0,
"type": "minecraft:uniform"
}
}
],
"name": "minecraft:netherite_scrap",
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.30
}
]
}
]
}
  • 解析:池子roll1次,池子内东西100%roll中,*因为就一个entity,进行0-5掉落物品数量的抽奖*,30%概率出货

END

效果展示

地址,理论掉落0-11

解析:

30%概率roll中池1,若中,则进行0-5个不规则分布掉落

roll3次0-2的池2

30%概率roll中池3,若中,则进行0-2个不规则分布掉落

可能wight权重受所有战利品池影响

emmmm,roll多次的池子可以算是保底吧,其他都是额外掉落,数量不够就改值,改到你认为合适为止!

理论最高掉落量不够/高掉落量段掉落数量太少?
加战利品池!

本文作者:SkeletonCold

本文链接: http://skeletoncold.github.io/blog/2022/02/07/minecraft-datapack-loot-table/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论