一些用户在进入这个文件后可能会感到非常困惑。Custom Fishing 使用了一种其他插件从未尝试过的配置文件格式。与其他钓鱼插件不同,Custom Fishing 提供了一个类似树状的概率池,可以根据条件自由修改权重。现在我们将带您了解默认配置文件,以理解这个系统是如何工作的。
首先,我们看到一个名为 'global group' 的部分
global-group:
list: []
conditions: {}
sub-groups: {}
global-group 只是一个可以自由修改的随机名称,您可以添加任何您想要的组,例如:
river-group:
list: []
conditions: {}
sub-groups: {}
ocean-group:
list: []
conditions: {}
sub-groups: {}
nether-group:
list: []
conditions: {}
sub-groups: {}
the-end-group:
list: []
conditions: {}
sub-groups: {}
仔细观察后,您会发现一个组由三部分组成:list、conditions 和 sub-groups。
如果您希望某个战利品出现,只需将其添加到列表中 如果文件是 loot-conditions.yml,您可以将任何战利品的 ID 放入 item/entity/block
文件夹中 如果文件是 game-conditions.yml,您只能将游戏的 ID 放入 minigame
文件夹中
global-group:
list:
- my_fish:+1
conditions: {}
sub-groups: {}
您可能会想知道这个 +1 是什么意思。实际上,这是一种权重操作符。像这样的权重操作符有很多,例如
global-group:
list:
- my_fish:=0 # 设置权重
- my_fish:+6 # 加
- my_fish:-4 # 减
- my_fish:*10 # 乘
- my_fish:/5 # 除
- my_fish:%3 # 取模
conditions: {}
sub-groups: {}
在这个奇怪的配置中,my_fish 的最终权重是 ((0+6-4)*10/5)%3=1。好吧,有趣的是它的权重绕了一圈后又回到了 1。如果您仍然不理解权重是如何工作的,可以阅读这个页面
global-group:
list:
- my_fish:+1
conditions:
in-water: true
biome:
- my_namespace:my_custom_biome
sub-groups: {}
很好!您现在知道条件系统是如何工作的了,让我们继续看看子组是如何工作的。
global-group:
list:
- my_fish:+1
conditions:
in-water: true
biome:
- my_namespace:my_custom_biome
sub-groups:
impossible_group: # 这个组不会工作,因为生物群系必须是
list: # my_namespace:my_custom_biome 才能进入内部
- my_fish:+1 # 子组部分
conditions:
biome:
- minecraft:plains
possible_group:
list:
- cute_fish:+1
- my_fish:=0
conditions:
equals:
value1: '%cute_player%' # 这是一个虚构的占位符
value2: 'true'
在这个例子中,我创建了两个子组,其中一个不能执行,因为它违反了一个重要原则:子组的条件不能与父组的条件冲突
如果一个玩家很可爱,那么最后他只能得到 cute_fish,因为我把 my_fish 的权重设置为 0