MC百科社群

标题: 1.16.5forge如何使一个武器对某个生物能造成更高的伤害 [打印本页]

作者: QQ酱247891    时间: 2023-9-16 11:50
标题: 1.16.5forge如何使一个武器对某个生物能造成更高的伤害
kubejs和crt都行,之前写了个新的药水效果然后用数据包循环指令给该生物药水效果,然后拿指定武器攻击带有该药水效果的生物能造成额外伤害,后面发现效果不是太理想而且忘了数据包的指令在不开启作弊模式无法运行。
简单举个例子:我用木剑对僵尸攻击可以造成20点伤害,对其他生物依然是4伤害,该怎么做。

作者: Kasualix    时间: 2023-9-16 11:50
本帖最后由 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之类的或者说你懒得写脚本要我现场搓个模组也不是不行
可以给武器和实体按照键和值写个映射,方便调用。





欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科