实现1.7的爆炸加伤
监听Forge的livingHurtEvent事件,检测玩家身上的药水效果等级来进行伤害操作
function livingHurtEvent(event) {
if (event.source.func_94541_c()) {
//基础值
var multiplier = 1.0;
var EntityLivingBase = Java.type("net.minecraft.entity.EntityLivingBase");
var PotionCoreHelper = Java.type("com.tmtravlr.potioncore.PotionCoreHelper");
if (event.source.func_94541_c() && event.source.func_76346_g()instanceof EntityLivingBase) {
//伤害来源的实体对象(打出这段伤害的玩家)
var source = event.source.func_76346_g();
//获取玩家身上的加成数
var num = source.func_110148_a(PotionCoreHelper.projectileDamage).func_111126_e();
//设定伤害的倍数 (num/0.75)这是因为原本一级药水加0.75,这里是算出药水等级来的 再乘以0.5就是让药水每级提升百分之五十
multiplier *= ((num/0.75) * 0.5);
}
//最终修改伤害
event.ammount = (event.ammount * multiplier);
}
}
最后更新于