[MCP Tutorial] Mob erstellen

12/18/2011 00:08 miwolegendär#1
Hallo ich habe langeweile und zeige euch deswegen heute wie ihr shnell und einfach euren eigenen Mob mit dem Minecraft Coder Pack erstellen könnt! :)

Code:
wichtig!
1. Minecraft coder Pack downloaden (wer nicht weis was das ist bitte auf youtube tutorial anschauen)

#Achtung dieses tutorial ist für leute die wissen wie sie mit dem MCP umgehen#
#wenn du noch nie mit dem mcp gearbeitet hast wirst du es schwerer haben als die andern#

Nr.1
Wir öffnen den "src" folder des minecraft coder packs und erstellen eine:
Code:
ModelMOBNAME.java
Diese öffnen wir und schreiben folgendes hinein
Code:
package net.minecraft.src;

public class ModelMOBNAME extends ModelBiped
{

    public ModelMOBNAME()
    {
    }
}
jetzt weiß minecraft das es einen neuen mob gibt aber nicht wie er aussieht und was für eigenschaften er hat!
Wir erstellen heute einen humanoiden mob er greift an wenn du angreifst und spawnt in jedem Biome!
2.
Wir erstellen erneut ein neues .java dokument im src ordner, und nennen es
Code:
EntityMOBNAME.java
diese öffnen wir und schreiben folgendes hinein:
Code:
package net.minecraft.src;

import java.util.Random;

public class EntityMOBNAME extends EntityMob
{

    public EntityLord(World world)
    {
        super(world);
        texture = "/mob/MOBNAME.png";
        moveSpeed = 0.5F;
        attackStrength = 5;
    }

    public int getMaxHealth()
    {
        return 20;
    }

    public void onLivingUpdate()
    {
        if(worldObj.isDaytime() && !worldObj.multiplayerWorld)
        {
            float f = getEntityBrightness(1.0F);
            if(f > 0.5F && worldObj.canBlockSeeTheSky(MathHelper.floor_double(posX), MathHelper.floor_double(posY), MathHelper.floor_double(posZ)) && rand.nextFloat() * 30F < (f - 0.4F) * 2.0F)
            {
                func_40046_d(8);
            }
        }
        super.onLivingUpdate();
    }

    protected String getLivingSound()
    {
        return "mob.zombie";
    }

    protected String getHurtSound()
    {
        return "mob.zombiehurt";
    }

    protected String getDeathSound()
    {
        return "mob.zombiedeath";
    }

    protected int getDropItemId()
    {
        return Item.stick.shiftedIndex;
    }
Dieser Code legt nun feuerschaden geschwindigkeit und sounds fest!

Code:
  protected int getDropItemId()
    {
        return Item.stick.shiftedIndex;
Dieser codeschnipsel steht für das item das gedroppt wird wenn man das monster tötet ! ich habe mal sticks genommen ansonsten wäre das :
Code:
silk= strings
cloth= leder
redstone=redstone
coal=kohle
ice= eis
usw.
Es kann sein das ich einige nicht korrekt aufgelistet habe diese sind aber in der item.java welche ebenfalls im src ordner zufinden ist aufgelistet!
MOBNAME ist in jedem fall durch euren mobnamen zu ersetzen!
:mofo:
Wenn ihr wollt das euer Mob ein Item hält dann müsst ihr folgendes tun!
ihr scrollt bei der EntityMOBNAME.java nach ganz unten und fügt das hier ein:
Code:
public ItemStack getHeldItem()
    {
        return defaultHeldItem;
    }

    private static final ItemStack defaultHeldItem;

    static 
    {
        defaultHeldItem = new ItemStack(Item.ITEMNAME, 1);
    }
Das "ITEMNAME" steht für das item das er halten soll!

3.Er muss gespawnt werden!
Um unseren mob spawnen zu lassen öffnen wir die
Code:
RenderManager.java
und scrollen runter bis zu:
Code:
entityRenderMap = new HashMap();
        entityRenderMap.put(net.minecraft.src.EntitySpider.class, new RenderSpider());
		entityRenderMap.put(net.minecraft.src.EntityMOBNAME.class, new RenderBiped(new ModelMOBNAME(), 0.5F));
        entityRenderMap.put(net.minecraft.src.EntityCaveSpider.class, new RenderSpider());
        entityRenderMap.put(net.minecraft.src.EntityPig.class, new RenderPig(new ModelPig(), new ModelPig(0.5F), 0.7F));
        entityRenderMap.put(net.minecraft.src.EntitySheep.class, new RenderSheep(new ModelSheep2(), new ModelSheep1(), 0.7F));
        entityRenderMap.put(net.minecraft.src.EntityCow.class, new RenderCow(new ModelCow(), 0.7F));
        entityRenderMap.put(net.minecraft.src.EntityMooshroom.class, new RenderMooshroom(new ModelCow(), 0.7F));
        entityRenderMap.put(net.minecraft.src.EntityWolf.class, new RenderWolf(new ModelWolf(), 0.5F));
        entityRenderMap.put(net.minecraft.src.EntityChicken.class, new RenderChicken(new ModelChicken(), 0.3F));
        entityRenderMap.put(net.minecraft.src.EntitySilverfish.class, new RenderSilverfish());
        entityRenderMap.put(net.minecraft.src.EntityCreeper.class, new RenderCreeper());
        entityRenderMap.put(net.minecraft.src.EntityEnderman.class, new RenderEnderman());
        entityRenderMap.put(net.minecraft.src.EntitySnowman.class, new RenderSnowMan());
        entityRenderMap.put(net.minecraft.src.EntitySkeleton.class, new RenderBiped(new ModelSkeleton(), 0.5F));
        entityRenderMap.put(net.minecraft.src.EntityBlaze.class, new RenderBlaze());
        entityRenderMap.put(net.minecraft.src.EntityZombie.class, new RenderBiped(new ModelZombie(), 0.5F));
        entityRenderMap.put(net.minecraft.src.EntitySlime.class, new RenderSlime(new ModelSlime(16), new ModelSlime(0), 0.25F));
        entityRenderMap.put(net.minecraft.src.EntityMagmaCube.class, new RenderMagmaCube());
        entityRenderMap.put(net.minecraft.src.EntityPlayer.class, new RenderPlayer());
        entityRenderMap.put(net.minecraft.src.EntityGiantZombie.class, new RenderGiantZombie(new ModelZombie(), 0.5F, 6F));
        entityRenderMap.put(net.minecraft.src.EntityGhast.class, new RenderGhast());
        entityRenderMap.put(net.minecraft.src.EntitySquid.class, new RenderSquid(new ModelSquid(), 0.7F));
        entityRenderMap.put(net.minecraft.src.EntityVillager.class, new RenderVillager());
        entityRenderMap.put(net.minecraft.src.EntityLiving.class, new RenderLiving(new ModelBiped(), 0.5F));
        entityRenderMap.put(net.minecraft.src.EntityDragon.class, new RenderDragon());
        entityRenderMap.put(net.minecraft.src.EntityEnderCrystal.class, new RenderEnderCrystal());
        entityRenderMap.put(net.minecraft.src.Entity.class, new RenderEntity());
        entityRenderMap.put(net.minecraft.src.EntityPainting.class, new RenderPainting());
        entityRenderMap.put(net.minecraft.src.EntityArrow.class, new RenderArrow());
        entityRenderMap.put(net.minecraft.src.EntitySnowball.class, new RenderSnowball(Item.snowball.getIconFromDamage(0)));
        entityRenderMap.put(net.minecraft.src.EntityEnderPearl.class, new RenderSnowball(Item.enderPearl.getIconFromDamage(0)));
        entityRenderMap.put(net.minecraft.src.EntityEnderEye.class, new RenderSnowball(Item.eyeOfEnder.getIconFromDamage(0)));
        entityRenderMap.put(net.minecraft.src.EntityEgg.class, new RenderSnowball(Item.egg.getIconFromDamage(0)));
        entityRenderMap.put(net.minecraft.src.EntityPotion.class, new RenderSnowball(154));
        entityRenderMap.put(net.minecraft.src.EntityFireball.class, new RenderFireball(2.0F));
        entityRenderMap.put(net.minecraft.src.EntitySmallFireball.class, new RenderFireball(0.5F));
        entityRenderMap.put(net.minecraft.src.EntityItem.class, new RenderItem());
        entityRenderMap.put(net.minecraft.src.EntityXPOrb.class, new RenderXPOrb());
        entityRenderMap.put(net.minecraft.src.EntityTNTPrimed.class, new RenderTNTPrimed());
        entityRenderMap.put(net.minecraft.src.EntityFallingSand.class, new RenderFallingSand());
        entityRenderMap.put(net.minecraft.src.EntityMinecart.class, new RenderMinecart());
        entityRenderMap.put(net.minecraft.src.EntityBoat.class, new RenderBoat());
        entityRenderMap.put(net.minecraft.src.EntityFishHook.class, new RenderFish());
        entityRenderMap.put(net.minecraft.src.EntityLightningBolt.class, new RenderLightningBolt());
und fügt euern mob dort ein so wie ich das getan habe siehe:
Code:
entityRenderMap.put(net.minecraft.src.EntityMOBNAME.class, new RenderBiped(new ModelMOBNAME(), 0.5F));
Nun ist eigentlich alles fertig!
außer einer sache :)
nämlich...
die texture = "/mob/MOBNAME.png";
müsst ihr noch erstellen damit euer mob eine Texture bekommt! also
kopieren wir die von einem zombie, und nennt sie MOBNAME! nun könnt ihr sie umgestalten und eurem mob das nötige design verpassen! viel spaß mit dem mob und bis bald ;).
12/18/2011 00:15 iwanted#2
nice nice
12/18/2011 00:21 miwolegendär#3
Quote:
Originally Posted by iwanted View Post
nice nice
danke :)
12/18/2011 00:31 -i[Gyxx]*#4
Mit Modloader währe es aber für viele besser da es dann keine Basic datein überschreibt :)
12/18/2011 01:16 miwolegendär#5
Quote:
Originally Posted by -i[Gyxx]* View Post
Mit Modloader währe es aber für viele besser da es dann keine Basic datein überschreibt :)
ja aber da das ein anfängertutorial ist ist es doch wohl besser es erst einmal ohne modloader zu probieren oder ? :pimp:
12/18/2011 11:21 False#6
Da fehlt der abschnitt mit Techne ;)
12/18/2011 14:28 miwolegendär#7
Quote:
Originally Posted by .ƒaℓsє. View Post
Da fehlt der abschnitt mit Techne ;)
schon aber es ist auch ein tutorial für einen humanoiden anfängermob!
ich selbst mache nicht viele mobs eher praktisches und habe mich noch nciht so doll mit Techne auseinandergesetzt aber trotzdem danke :)
12/22/2011 20:12 Howaner#8
gut gut