|
本帖最后由 QQ酱54509 于 2022-4-5 19:56 编辑
我写了个带注释的示例代码,实现的效果如下:用钻石镐挖掘草方块的时候,将掉落物替换为沙子或者圆石,沙子圆石掉落概率相等。
let eventtool=["minecraft:diamond_pickaxe",'minecraft:dirt']//指定工具,可同时指定多个物品
let eventblock ='minecraft:grass_block'//指定方块
let custom_loot_tables=['minecraft:stone','minecraft:sand']//自定义掉落物,用逗号区分,权重均为1,设置多少个物品,均分掉落概率
onEvent('block.loot_tables', event => {
//modifyBlock 为新增掉落表,即不删除原掉落
//addBlock 为覆盖掉落表,删除原掉落物
event.modifyBlock(eventblock, table => {
table.addPool(pool =>{
pool.rolls = 1 //这里设置计算次数,1为破坏一次方块计算1次掉落,10为破坏一次方块计算10次掉落,每次掉落单独计算概率
custom_loot_tables.forEach(table=>{pool.addItem(table)})//这里将每个自定义的掉落物元素添加进掉落表中
pool.addCondition({//addCondition为破坏条件,需要原版json格式,下列代码意义为破坏方块的实体主手持物品eventtool时生效
"condition": "minecraft:alternative",
"terms": [{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"mainhand": {
"items": eventtool
}
}
}
}]
})
})
})
})
|
评分
-
查看全部评分
|