1

我对改装还很陌生。
我想创造一把剑,让暴徒或玩家着火。我正在使用该hitEntity方法,我注意到该功能甚至没有运行。我使用控制台对其进行了测试。当我@Override在方法之前使用符号时,hitEntity它会给我一个错误:

BlazeSword 类型的方法 hitEntity(ItemStack, EntityLiving, EntityLiving) 必须重写或实现超类型方法

这是我的代码:

package com.example.firstMod.tools;

import com.example.firstMod.FirstMod;

import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;

public class BlazeSword extends ItemSword {

    public BlazeSword(int id, ToolMaterial blaze) {
        super(blaze);
        this.setCreativeTab(FirstMod.blazingMod);
        this.setUnlocalizedName("blazeSword");
        this.setTextureName(FirstMod.MODID+":"+"blaze_sword");
    }

    public boolean hitEntity(ItemStack par1itemstack, EntityLiving par2entityliving, EntityLiving par3entityliving){
        par2entityliving.setFire(20);
        return true;
    }    
}
4

2 回答 2

1

如果你得到你用@Override 说的错误,那么在ItemSword 中没有这样的方法。在 ItemSword 类中查找正确的命中方法。

于 2014-08-14T12:58:43.533 回答
-1

hitEntity 方法不起作用,因为您从不调用它。您声明它存在,但您从未运行它。你需要做的是使用你请求的变量在你的 BlazeSword 类中调用你的 hitEntity 方法。在您的 BlazeSword 课程中:

hitEntity(ItemStack par1itemstack, EntityLiving par2entityliving, EntityLiving par3entityliving)

另外,取出@Override,因为您不想找到烈焰剑的层次结构。

于 2014-09-04T23:23:54.867 回答