Skip to main content

配置奖池

奖池,在本插件用lottery来代表,其中包括了例如抽奖动画、抽奖计算器、虚拟钥匙名称、钥匙物品以及奖品内容等信息。

大部分内容需要yml配置

本插件会自动生成一个样例:

animation: "Default"
multipleAnimation: "DefaultMultiple"
calculator: "Guaranteed"
virtualKeyName: "default"
showProbability: true
customTag:
guaranteedCount: 10
maxDrawCount: 100
key:
#ni: "foo"
#ia: "bar"
#mm: "foo"
material: "GRASS"
displayName: "&6default's key"
lore:
- "&aUse to add a key!"
awards:
exampleAward1:
item:
#ni: "foo"
#ia: "bar"
#mm: "foo"
#internal: "bar"
material: "STONE"
displayName: "&6special stone"
lore:
- "&x&0&0&F&F&7&F I have a special lore!"
amount: 1
giveItem: true
rawItem: false
weight: 10
command:
- "say 123"
customTag:
guaranteedRewards: true

创建奖池

在插件文件夹中lottery文件夹新建一个 奖池名称.yml

奖池名称 奖池文件都存放在插件文件夹的lottery文件夹内,奖池名称为文件名,例如default.yml 奖池名为default。

设置动画

必填

想更好抽奖动画,观摩抽奖动画的动画,然后在文件中修改:

animation: "Default" multipleAnimation: "DefaultMultiple"

你这简单的yml配置总该会吧

设置计算器

必填

calculator: "Guaranteed"

现在插件内置的计算器:

Guaranteed

个人保底,当某个人抽满设定的次数时,必定出保底物品。

每一抽都可能抽到保底,如果提前出了会清除未保底次数。

保底该怎么设置? 在稍后的章节会详细讲解。

AbsoluteGuaranteed

绝对保底,基本与Guaranteed是相同的,只是在这个计算器中,玩家不再会提前出保底物品。只有到保底次数后才会抽到保底物品,保底物品的出现是随机的,同样也会重复。未保底次数与Guaranteed的数据是共享的。

SingleGuaranteed

与Guaranteed基本相同,这个计算器独特的地方是,保底物品不会重复出现。如果保底物品全被抽完了,玩家只会获得普通物品。

未保底次数同样也是共享的。

牛魔的,必须加一个普通物品,不然抽干净了再抽你想抽你大坝呢?

还有,标记抽到过的原理是记录奖品名称,不是记录奖品是什么,谁知道你往里面塞了什么。 当玩家抽到了之后你在同样的奖品名称里面改成不一样的东西,玩家还是抽不到的

Claw

全服保底,设置方式与Guaranteed相同。就像抓娃娃机一样,所有人抽的次数都会累积,累积到保底次数的下一抽必定会出保底物品。

可能会提前出,这时候会清除累积次数。

累积次数的数据不会保存,会在服务器重启时/插件加载阶段重置。

数据不跨服

Normal

没有任何保底机制,所有的东西都是按照权重的概率出现。

当然你也可以自己注册一个计算器然后使用,这部分内容请看开发部分。

设置虚拟钥匙名称

必填

virtualKeyName: "default"

在这个版本添加了虚拟钥匙的功能,虚拟钥匙拥有自己的名称。

而在这里设置的值则代表本奖池抽奖需要消耗的虚拟钥匙名。

如何添加虚拟钥匙? 请观看下文指令与实体钥匙部分。

是否展示概率

默认为否

showProbability: true

在玩家使用preview指令预览奖池的时候,会在物品下方添加物品获取概率的lore。

什么,你想伪造概率? 你可以自己手动在奖品上加一个概率的lore...

自定义数据

customTag:
guaranteedCount: 10
maxDrawCount: 100

这是留给一些附属、计算器存放信息的部分,例如在这里的guaranteedCount 就是这个奖池抽10次到达保底。maxDrawCount则是这个奖池最多只能抽100次。

你还可以存放更多的信息,这就由其余附属或者开发者发挥了。

实体钥匙

必填

key:
#ni: "foo"
#ia: "bar"
#mm: "foo"
material: "GRASS"
displayName: "&6default's key"
lore:
- "&aUse to add a key!"

实体钥匙的作用是一个兜底,它的作用就是右键获得一个虚拟钥匙。虚拟钥匙的名称则是奖池对应的虚拟钥匙名称。

我不建议你使用这个,mod服什么的被玩家爽刷作者不负任何责任哦。

如何自定义自己的实体钥匙?

首先,你可通过填入NI IA MM等物品库的物品实现,就像上面的注释一样(记得把#去掉)

其次,你还可以通过对物品添加nbt实现: 名为XL2KEY 类型为String 值为虚拟钥匙名称。

怎么填?

material 物品类型:

1.12:https://docs.zoyn.top/bukkitapi/1.12.2/org/bukkit/Material.html

1.13+:https://bukkit.windit.net/javadoc/org/bukkit/Material.html

displayName 和lore你总会吧...

奖品

奖品就是awards下面的,每个奖品的键是奖品名称 ,奖品名称不能重复哦。

awards:
exampleAward1:
item:
#ni: "foo"
#ia: "bar"
#mm: "foo"
#internal: "bar"
material: "STONE"
displayName: "&6special stone"
lore:
- "&x&0&0&F&F&7&F I have a special lore!"
##这里的RGB是只有高版本才可以用的哦
amount: 1
giveItem: true
rawItem: false
weight: 10
command:
- "say 123"
customTag:
guaranteedRewards: true

这里的奖品"exampleAward1"

item部分的配置和实体部分是相同的,相信读者你很聪明。

你同样可以在游戏内通过/xl manage 来配置奖池,然后通过手持物品点击来在游戏内设置物品。

giveItem决定了抽到后是否给与这里的item物品,这里item同样也是预览奖池、抽奖动画展示的物品。

rawItem决定了在动画与预览的时候是否强制显示原物品,在某些情况下动画中的奖品可能会有所错误,则需要开启这个选项。

weight 物品的权重,有关奖品计算器的获取,获取原理后文会提到。

command 为可填,同时决定了是否执行指令与执行的指令内容,支持占位符(前提是你安装了PlaceholderAPI插件)

customTag 为自定义内容,这里的guaranteedRewards则代表着这个物品是否为保底物品。

至此 奖池的配置内容已经结束了。