试图找出如何在我的世界1.12.2 mod中扩大我的覆盖范围

问题描述 投票:0回答:1

我正在尝试使我的Minecraft 1.12.2 mod达到魅力。我有用于检查附魔等级,是否开启等的代码。现在我的问题是函数。我不知道该如何改变我的触角。我知道有一个属性可以执行此操作,但是我不知道如何更改它。谁能帮我?到目前为止,这是我的代码:

    public static void enchantReachFunction(LivingUpdateEvent event)
    {
        Object player = event.getEntityLiving();
        if(event.getEntityLiving() instanceof EntityLivingBase)
        {
            EntityLivingBase entityPlayer = (EntityLivingBase)player;
            int level = EnchantmentHelper.getEnchantmentLevel(ENCHANT_REACH, entityPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST));
            if(!entityPlayer.getEntityWorld().isRemote && level == 1)
            {
                float setBlockReachDistance = 8.0F;
            }

            else if(!entityPlayer.getEntityWorld().isRemote && level == 2)
            {
                float setBlockReachDistance = 12.0F;
            }

            else if(!entityPlayer.getEntityWorld().isRemote && level == 3)
            {
                float setBlockReachDistance = 16.0F;
            }
            else
            {
                float setBlockReachDistance = 4.0F;
            }
        }
    }

基本上,我要检查结界的等级,然后根据等级来增加触及率,但它不起作用。有什么想法吗?

java eclipse minecraft minecraft-forge
1个回答
0
投票

到达率由REACH_DISTANCE属性确定。您可以这样修改:

EntityPlayer player = Minecraft.getMinecraft().player;
player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).applyModifier(new AttributeModifier(player.getUniqueID(), "custom_reach", setBlockReachDistance, 1));

我假设当您手中拿着附有附魔的工具时,您正在改变他们的覆盖范围。您需要跟踪播放器何时切换到该工具并应用修改器。当他们离开工具时,您需要像这样删除修饰符:

player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).removeModifier(player.getUniqueID());
© www.soinside.com 2019 - 2024. All rights reserved.