Minecraft 1.12.2模组开发(十一) 防具buff

本次我们准备为一个防具加上buff

盔甲套装教程

1.对 ArmorBase.java (第8讲中创建)添加buff函数effectPlayer 和 防具点击事件onArmorTick

 @SideOnly(Side.CLIENT) 
	@Override
	public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack){
		//itemStack.getItem() == ModItems.EIGHT_GLASSES && 
		if(player.inventory.armorItemInSlot(3).getItem() == ModItems.EIGHT_GLASSES &&
		   player.inventory.armorItemInSlot(3)!=null) {
			effectPlayer(player, MobEffects.SPEED, 3);      //增加速度效果,级别为4
			effectPlayer(player, MobEffects.NIGHT_VISION, 1);   //增加夜视效果,级别为2
		}
		super.onArmorTick(world, player, itemStack);
		
	}
	
	private void effectPlayer(EntityPlayer player, Potion effect, int amplifier) {
		if(player.getActivePotionEffect(effect)==null || player.getActivePotionEffect(effect).getDuration() <=1) {
			player.addPotionEffect(new PotionEffect(effect, 200*20,  amplifier, false, true));
			                                                //时间为20*(你要持续的时间),比如20*60就是持续60秒(1分钟)
		}
	}

cr3.jpg

注意:我们需要判定所穿戴的护具的位置来决定增加相应的效果,从下到上0~3分别对应不同的部位

armorItemInSlot(3):helmet 头盔
armorItemInSlot(2):chestplate, 护胸 
armorItemInSlot(1):leggings, 裤子
armorItemInSlot(0):boots 鞋子

2.保存文件 -> 运行游戏

无buff未穿戴任何护具

cr.jpg

穿戴好眼镜后,我们增加了夜视和急速的效果

cr1.jpg

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值