Ir para conteúdo

Como fazer com que o mob só morra se o player ou mob adversário tenha o item certo na mão?


Irineu3737

Posts Recomendados

 Uso Mcreator,pois não sei forge nem java,e parece que no programa não tem essa opção,então vou ter q mecher na parte de codigo.Eu criei um mod pelo Mcreator que até agora só tem um mob , "vampiro",e vou adicionar estaca de madeira,e quero que o vampiro só morra se quem estiver tentando matar ele esteja com estaca de madeira na mão.Qual seria o codigo pra isso? E em qual parte do codigo do mob colocar?Esse é o codigo do mob:

package mod.mcreator;

import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.client.registry.RenderingRegistry;

import net.minecraft.world.biome.Biome;
import net.minecraft.world.World;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.EnumHand;
import net.minecraft.util.DamageSource;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAIPanic;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAILeapAtTarget;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.Entity;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.Minecraft;

import java.util.Random;
import java.util.Iterator;
import java.util.ArrayList;

@SuppressWarnings("unchecked")
public class mcreator_vampiro {

    public int mobid = 3;
    public static Object instance;

    public void load(FMLInitializationEvent event) {
    }

    public void generateNether(World world, Random random, int chunkX, int chunkZ) {
    }

    public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
    }

    public int addFuel(ItemStack fuel) {
        return 0;
    }

    @SideOnly(Side.CLIENT)
    public void registerRenderers() {
        RenderBiped customRender = new RenderBiped(Minecraft.getMinecraft().getRenderManager(), new ModelBiped(), 0) {

            protected ResourceLocation getEntityTexture(Entity par1Entity) {
                return new ResourceLocation("angel.png");
            }
        };
        customRender.addLayer(new net.minecraft.client.renderer.entity.layers.LayerHeldItem(customRender));
        customRender.addLayer(new net.minecraft.client.renderer.entity.layers.LayerBipedArmor(customRender) {

            protected void initArmor() {
                this.modelLeggings = new ModelBiped();
                this.modelArmor = new ModelBiped();
            }
        });
        RenderingRegistry.registerEntityRenderingHandler(mcreator_vampiro.Entityvampiro.class, customRender);
    }

    public void serverLoad(FMLServerStartingEvent event) {
    }

    public void preInit(FMLPreInitializationEvent event) {
        EntityRegistry.registerModEntity(new ResourceLocation("testenvironmentmod:vampiro"), mcreator_vampiro.Entityvampiro.class, "vampiro", mobid,
                instance, 64, 1, true, (255 << 16) + (255 << ? + 255, (255 << 16) + (255 << ? + 255);
        EntityRegistry.addSpawn(mcreator_vampiro.Entityvampiro.class, 20, 3, 30, EnumCreatureType.MONSTER, allbiomes(Biome.REGISTRY));
    }

    public static Biome[] allbiomes(net.minecraft.util.registry.RegistryNamespaced<ResourceLocation, Biome> in) {
        Iterator<Biome> itr = in.iterator();
        ArrayList<Biome> ls = new ArrayList<Biome>();
        while (itr.hasNext()) {
            ls.add(itr.next());
        }
        return ls.toArray(new Biome[ls.size()]);
    }

    public static class Entityvampiro extends EntityMob {

        World world = null;

        public Entityvampiro(World var1) {
            super(var1);
            world = var1;
            experienceValue = 5;
            this.isImmuneToFire = false;
            addRandomArmor();
            setNoAI(!true);
            this.tasks.addTask(1, new EntityAIWander(this, 1));
            this.tasks.addTask(2, new EntityAILookIdle(this));
            this.tasks.addTask(3, new EntityAISwimming(this));
            this.tasks.addTask(4, new EntityAILeapAtTarget(this, (float) 0.8));
            this.tasks.addTask(5, new EntityAIPanic(this, 1.2));
            this.targetTasks.addTask(6, new EntityAIHurtByTarget(this, true));
        }

        protected void applyEntityAttributes() {
            super.applyEntityAttributes();
            this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(1.0D);
            this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10D);
            if (this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE) != null)
                this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3D);
        }

        protected void addRandomArmor() {
        }

        @Override
        protected Item getDropItem() {
            return null;
        }

        @Override
        protected net.minecraft.util.SoundEvent getAmbientSound() {
            return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation(""));
        }

        @Override
        protected net.minecraft.util.SoundEvent getHurtSound(DamageSource ds) {
            return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation("game.neutral.hurt"));
        }

        @Override
        protected net.minecraft.util.SoundEvent getDeathSound() {
            return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation("game.neutral.die"));
        }

        @Override
        public void onStruckByLightning(EntityLightningBolt entityLightningBolt) {
            super.onStruckByLightning(entityLightningBolt);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            Entity entity = this;
        }

        @Override
        public void fall(float l, float d) {
            super.fall(l, d);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            Entity entity = this;
        }

        /**
         * Called when the entity is attacked.
         */
        @Override
        public boolean attackEntityFrom(DamageSource source, float amount) {
            boolean retval = super.attackEntityFrom(source, amount);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            Entity entity = this;
            return retval;
        }

        @Override
        public void onDeath(DamageSource source) {
            super.onDeath(source);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            Entity entity = this;
        }

        @Override
        public boolean processInteract(EntityPlayer entity, EnumHand hand) {
            boolean retval = super.processInteract(entity, hand);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            ItemStack itemstack = entity.getHeldItem(hand);
            return retval;
        }

        @Override
        public void onKillEntity(EntityLivingBase entity) {
            super.onKillEntity(entity);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
        }

        @Override
        public void onEntityUpdate() {
            super.onEntityUpdate();
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
            Entity entity = this;
        }

        @Override
        public void onCollideWithPlayer(EntityPlayer entity) {
            super.onCollideWithPlayer(entity);
            int i = (int) this.posX;
            int j = (int) this.posY;
            int k = (int) this.posZ;
        }

        @Override
        protected float getSoundVolume() {
            return 1.0F;
        }
    }
}
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...