= 创作分享 =
你问我答
kubejs如何实现手持某物品挖掘方块才会以特定几率掉落物 ...
Mr_Scientist

kubejs如何实现手持某物品挖掘方块才会以特定几率掉落物品

Mr_Scientist 于 2022-4-3 18:10 ( 2年前 ) [复制链接] [只看楼主] [打印]
728 1
30RF
如题

最佳答案

查看完整内容

我写了个带注释的示例代码,实现的效果如下:用钻石镐挖掘草方块的时候,将掉落物替换为沙子或者圆石,沙子圆石掉落概率相等。 let eventtool=["minecraft:diamond_pickaxe",'minecraft:dirt']//指定工具,可同时指定多个物品 let eventblock ='minecraft:grass_block'//指定方块 let custom_loot_tables=['minecraft:stone','minecraft:sand']//自定义掉落物,用逗号区分,权重均为1,设置多少个物品,均分掉落概率 onEvent('blo ...
发表于 2022-4-3 18:10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 1 条回复!
RExiangzi
本帖最后由 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  
                            }
                        }
                    }
                }]
            })
        })
    })
})



评分

参与人数 1RF +5 收起 理由
QQ酱132585 + 5 给大佬递分

查看全部评分

发表于 2022-4-3 18:10:51 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表