配置奖池
奖池,在本插件用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则代表着这个物品是否为保底物品。
至此 奖池的配置内容已经结束了。