= 创作分享 =
你问我答
1.16.5forge如何使一个武器对某个生物能造成更高的伤害 ...
天文馆的冷鸟

1.16.5forge如何使一个武器对某个生物能造成更高的伤害

天文馆的冷鸟 于 2023-9-16 11:50 ( 1年前 ) [复制链接] [只看楼主] [打印]
509 1
30RF
kubejs和crt都行,之前写了个新的药水效果然后用数据包循环指令给该生物药水效果,然后拿指定武器攻击带有该药水效果的生物能造成额外伤害,后面发现效果不是太理想而且忘了数据包的指令在不开启作弊模式无法运行。
简单举个例子:我用木剑对僵尸攻击可以造成20点伤害,对其他生物依然是4伤害,该怎么做。

最佳答案

查看完整内容

https://docs.blamejared.com/1.16/en/vanilla/api/event/entity/living/MCLivingHurtEvent 监听MCLivingHurtEvent事件→从event.getSource()得到的DamageSource中获取immediateSource或trueSource→用instanceof判断immediateSource或trueSource是否为玩家,转型为MCPlayerEntity,获取玩家当前物品,如果是某某武器→event.getEntityLiving().type.registryName.toString()获取实体注册名判断是不是对应实体→event.setAmout(设 ...
发表于 2023-9-16 11:50:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 1 条回复!
狂想ThePotato
本帖最后由 Kasualix 于 2023-9-16 21:49 编辑

https://docs.blamejared.com/1.16/en/vanilla/api/event/entity/living/MCLivingHurtEvent

监听MCLivingHurtEvent事件→从event.getSource()得到的DamageSource中获取immediateSource或trueSource→用instanceof判断immediateSource或trueSource是否为玩家,转型为MCPlayerEntity,获取玩家当前物品,如果是某某武器→event.getEntityLiving().type.registryName.toString()获取实体注册名判断是不是对应实体→event.setAmout(设定的伤害量)
获取玩家当前物品那里不太确定,毕竟很久没写crt了,模组里叫getUseItem之类的或者说你懒得写脚本要我现场搓个模组也不是不行
可以给武器和实体按照键和值写个映射,方便调用。
مكتوب
发表于 2023-9-16 11:50:46 | 只看该作者

回复 | 举报

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

本版积分规则

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

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

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