实现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);
    }
}

最后更新于