= 创作分享 =
技术讨论
求助!怎么使用kubejs给自制武器添加杀死怪物掉落其头颅 ...
Hmoon

求助!怎么使用kubejs给自制武器添加杀死怪物掉落其头颅的办法

Hmoon 于 2025-12-2 19:14 ( 3天前 ) [讨论] [复制链接] [显示全部楼层] [打印]
minecraft版本1.20.1,kubejs也是最新,自制的斧子武器,用ai搞来搞去还是没效果,死活不掉落,求大佬给代码怎么写
发表于 4 天前 | 显示全部楼层 |阅读模式

回复 | 举报

该帖共收到 4 条回复!
Vanilla
用其附属 LootJS。
May the force be with you.
发表于 4 天前 | 显示全部楼层

回复 | 举报

Kaze_Fengxi
我是新手
发表于 前天 17:39 | 显示全部楼层

回复 | 举报

Kaze_Fengxi

卧槽我开高级模式写那么一大段回复怎么就剩这四个字了,抱歉我重写一下
发表于 前天 17:40 | 显示全部楼层

回复 | 举报

Kaze_Fengxi
本帖最后由 Kaze_Fengxi 于 2025-12-4 17:46 编辑

不清楚有没有啥漏洞或者更好的写法,不咋会用lootjs所以就用kubejs6原本的实现方式了头颅好像是有head有skull的,所以先const一个对象数组

const mobAndHead = [
    { mob: 'minecraft:skeleton', head: 'minecraft:skeleton_head' },
    { mob: 'minecraft:wither_skeleton', head: 'minecraft:wither_skeleton_head' },
    { mob: 'minecraft:zombie', head: 'minecraft:zombie_head' },
    { mob: 'minecraft:creeper', head: 'minecraft:creeper_head' },
    { mob: 'minecraft:dragon', head: 'minecraft:dragon_head' },
]

然后在实体死亡事件里判断是否是玩家手持指定武器直接打死了指定的怪

EntityEvents.death(event => {
    let entity = event.entity
    let source = event.source.actual
    let type = event.source.getType()
    let item = player.getHandSlots()[0].id
    // 把'minecraft:netherite_sword'换成需要的那个武器
    // 依次判断:直接伤害源是否存在、直接伤害源是否是玩家、被杀死的实体是否在数组中、伤害类型是否是玩家手打、主手手持物品是否是下界合金剑
    if (source && source.isPlayer() && mobAndHead.some(e => entity.getType() == e.mob) && type == 'player' && item == 'minecraft:netherite_sword') {
        let head = mobAndHead.find(e => entity.getType() == e.mob).head
        entity.block.popItem(head)
    }
})

把source.isPlayer()判断去掉也许能让其他实体也兼容效果,不过没试过所以不确定

发表于 前天 17:45 | 显示全部楼层

回复 | 举报

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

本版积分规则

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

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

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