1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

New ! [1.4.6] The Dark Side v5.0.0

Discussion dans 'Mods' créé par arbre1999, 14 Juil 2012.

  1. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Je suis en train de coder yoda mais je n'arrive pas à lui faire porter son sabre laser :
    Code (cpp):
    package net.minecraft.src;
     
    public class EntityYoda extends EntityMob {
     
        public static final ItemStack defaultHeldItem = new ItemStack(mod_DarkSide.greenLightSaber, 1);
     
        public EntityYoda(World par1World) {
            super(par1World);
            texture = "/Images/yoda.png";
            moveSpeed = 1.0F;
            attackStrength = 8;
        }
     
        public int getMaxHealth() {
            return 50;
        }
     
        public int getTotalArmorValue()
        {
            return 2;
        }
     
        protected boolean isAIEnabled()
        {
            return false;
        }
     
        protected boolean canDespawn()
        {
            return true;
        }
     
        protected int getDropItemId()
        {
            return Item.rottenFlesh.shiftedIndex;
        }
     
        public ItemStack getHeldItem()
        {
            return defaultHeldItem;
        }
    }
     
     
  2. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    Change ItemStack en ItemSword.
     
  3. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Dans la fonction ou dans la variable ?
     
  4. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    Dans ton EntityYoda :

    Code (cpp):
    new ItemStack(mod_DarkSide.greenLightSaber, 1);
    Là, il considère le sabre laser comme un objet et non une arme.
     
  5. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Il me dit que le constructeur ItemSword(Item, int) n'est pas défini.
     
  6. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    Autant pour moi, c'est le matin.

    Dans ton mod_sabrelaser, tu dois déclarer une variable comme ceci :

    Code (cpp):
    public static final Item TonItem = new ItemSword(tonid, EnumToolMaterial.LEMATERIAUXQUE TUVEUX).setItemName("TonNom").setIconIndex(tonnom).setMaxStackSize(1);
    Ensuite dans ton EntityYoda, tu déclares une variable comme ceci :

    Code (cpp):
    private static final ItemStack defaultHeldItem;
       
        public ItemStack getHeldItem()
        {
            return defaultHeldItem;
        }
    static
        {
            defaultHeldItem = new ItemStack(mod_TonMod.TonArme, 1);
        }
    Pour dire quelle arme il doit tenir.
     
  7. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Je suis d'accord, c'est ça que j'ai fais mais cela n'a pas marché !
     
  8. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    Mets ici le code de ton EntityYoda ainsi que le mod_Sabrelaser.
     
  9. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    EntityYoda :
    Code (cpp):
    package net.minecraft.src;
     
    public class EntityYoda extends EntityMob {
       
        public EntityYoda(World par1World) {
            super(par1World);
            texture = "/Images/yoda.png";
            moveSpeed = 1.0F;
            attackStrength = 8;
        }
     
        public int getMaxHealth() {
            return 50;
        }
       
        public int getTotalArmorValue()
        {
            return 2;
        }
       
        protected boolean isAIEnabled()
        {
            return false;
        }
       
        protected boolean canDespawn()
        {
            return true;
        }
       
        protected int getDropItemId()
        {
            return mod_DarkSide.redCristal.shiftedIndex;
        }
       
        private static final ItemStack defaultHeldItem;
         
        public ItemStack getHeldItem()
        {
            return defaultHeldItem;
        }
        static
        {
            defaultHeldItem = new ItemStack(mod_DarkSide.greenLightSaber, 1);
        }
    }
     
    mod_DarkSide :

    Code (cpp):
    package net.minecraft.src;
     
    import java.util.Map;
    import java.util.Random;
     
    public class mod_DarkSide extends BaseMod {
     
        static int ii = 530;
        static int ib = 130;
       
        //Items
        public static final Item ironStick = (new Item(ii++).setFull3D().setItemName("ironStick"));
        public static final Item ironTube = (new Item(ii++).setFull3D().setItemName("ironTube"));
       
        public static final Item redCristal = (new Item(ii++).setFull3D().setItemName("redCristal"));
        public static final Item blueCristal = (new Item(ii++).setFull3D().setItemName("blueCristal"));
        public static final Item greenCristal = (new Item(ii++).setFull3D().setItemName("greenCristal"));
        public static final Item purpleCristal = (new Item(ii++).setFull3D().setItemName("purpleCristal"));
       
        public static final Item redLightSaber = (new ItemSword(ii++, EnumToolMaterial.REDCRISTAL).setFull3D().setItemName("RedLightSaber"));
        public static final Item blueLightSaber = (new ItemSword(ii++, EnumToolMaterial.BLUECRISTAL).setFull3D().setItemName("BlueLightSaber"));
        public static final Item greenLightSaber = (new ItemSword(ii++, EnumToolMaterial.GREENCRISTAL).setFull3D().setItemName("GreenLightSaber"));
        public static final Item purpleLightSaber = (new ItemSword(ii++, EnumToolMaterial.PURPLECRISTAL).setFull3D().setItemName("PurpleLightSaber"));
       
        //Blocks
        public static final Block redLaser = (new BlockRedLaser(ib++, 0, Material.air)).setHardness(0F).setResistance(0F).setLightValue(1F).setBlockName("redLaser");
        public static final Block blueLaser = (new BlockBlueLaser(ib++, 0, Material.air)).setHardness(0F).setResistance(0F).setLightValue(1F).setBlockName("blueLaser");
        public static final Block greenLaser = (new BlockGreenLaser(ib++, 0, Material.air)).setHardness(0F).setResistance(0F).setLightValue(1F).setBlockName("greenLaser");
        public static final Block purpleLaser = (new BlockPurpleLaser(ib++, 0, Material.air)).setHardness(0F).setResistance(0F).setLightValue(1F).setBlockName("purpleLaser");
       
        public static final Block redCristalOre = (new BlockRedCristal(ib++, 0, Material.rock)).setHardness(2F).setResistance(2F).setBlockName("redCristalOre");
        public static final Block blueCristalOre = (new BlockBlueCristal(ib++, 0, Material.rock)).setHardness(2F).setResistance(2F).setBlockName("blueCristalOre");
        public static final Block greenCristalOre = (new BlockGreenCristal(ib++, 0, Material.rock)).setHardness(2F).setResistance(2F).setBlockName("greenCristalOre");
        public static final Block purpleCristalOre = (new BlockPurpleCristal(ib++, 0, Material.rock)).setHardness(2F).setResistance(2F).setBlockName("purpleCristalOre");
       
        public mod_DarkSide()
        {
            ModLoader.registerBlock(redCristalOre);
            redCristalOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/redCristalOre.png");
            ModLoader.addName(redCristalOre, "Minerai de cristal rouge");
           
            ModLoader.registerBlock(blueCristalOre);
            blueCristalOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/blueCristalOre.png");
            ModLoader.addName(blueCristalOre, "Minerai de cristal bleu");
           
            ModLoader.registerBlock(greenCristalOre);
            greenCristalOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/greenCristalOre.png");
            ModLoader.addName(greenCristalOre, "Minerai de cristal vert");
           
            ModLoader.registerBlock(purpleCristalOre);
            purpleCristalOre.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/purpleCristalOre.png");
            ModLoader.addName(purpleCristalOre, "Minerai de cristal violet");
           
            ModLoader.registerBlock(redLaser);
            redLaser.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/redLaser.png");
            ModLoader.addRecipe(new ItemStack(redLaser, 16), new Object[]{"RDR", " C ", " P ", Character.valueOf('R'), Item.redstone, Character.valueOf('D'), Block.dispenser, Character.valueOf('C'), redCristal, Character.valueOf('P'), Block.pistonBase});
            ModLoader.addName(redLaser, "Laser Rouge");
           
            ModLoader.registerBlock(blueLaser);
            blueLaser.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/blueLaser.png");
            ModLoader.addRecipe(new ItemStack(blueLaser, 16), new Object[]{"RDR", "BCB", "BPB", Character.valueOf('R'), Item.redstone, Character.valueOf('D'), Block.dispenser, Character.valueOf('C'), blueCristal, Character.valueOf('P'), Block.pistonBase, Character.valueOf('B'), Item.diamond});
            ModLoader.addName(blueLaser, "Laser Bleu");
           
            ModLoader.registerBlock(greenLaser);
            greenLaser.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/greenLaser.png");
            ModLoader.addRecipe(new ItemStack(greenLaser, 16), new Object[]{"RDR", " C ", " P ", Character.valueOf('R'), Item.redstone, Character.valueOf('D'), Block.dispenser, Character.valueOf('C'), greenCristal, Character.valueOf('P'), Block.pistonBase});
            ModLoader.addName(greenLaser, "Laser Vert");
           
            ModLoader.registerBlock(purpleLaser);
            purpleLaser.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Images/purpleLaser.png");
            ModLoader.addRecipe(new ItemStack(purpleLaser, 16), new Object[]{"RDR", " C ", " P ", Character.valueOf('R'), Item.redstone, Character.valueOf('D'), Block.dispenser, Character.valueOf('C'), purpleCristal, Character.valueOf('P'), Block.pistonBase});
            ModLoader.addName(purpleLaser, "Laser Violet");
        }
       
        public void load() {
           
            //Iron stick
           
            ironStick.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/ironStick.png");
            ModLoader.addRecipe(new ItemStack(ironStick, 2), new Object[]{"I", "I", Character.valueOf('I'), Item.ingotIron});
            ModLoader.addName(ironStick, "Bâton de fer");
           
            //Iron tube
           
            ironTube.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/ironTube.png");
            ModLoader.addRecipe(new ItemStack(ironTube, 1), new Object[]{"BIB", "BIB", "BIB", Character.valueOf('I'), ironStick, Character.valueOf('B'), Block.blockSteel});
            ModLoader.addName(ironTube, "Tube de fer");
           
            //Red crystal
           
            redCristal.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/redCristal.png");
            ModLoader.addName(redCristal, "Cristal Rouge");
           
            //Blue crystal
           
            blueCristal.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/blueCristal.png");
            ModLoader.addName(blueCristal, "Cristal Bleu");
           
            //Green crystal
           
            greenCristal.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/greenCristal.png");
            ModLoader.addName(greenCristal, "Cristal Vert");
           
            purpleCristal.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/purpleCristal.png");
            ModLoader.addName(purpleCristal, "Cristal Violet");
           
            redLightSaber.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/redLightSaber.png");
            ModLoader.addRecipe(new ItemStack(redLightSaber, 1), new Object[]{"R", "T", Character.valueOf('R'), redCristal, Character.valueOf('T'), ironTube});
            ModLoader.addName(redLightSaber, "Sabre laser rouge (Jedi Obscur)");
           
            blueLightSaber.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/blueLightSaber.png");
            ModLoader.addRecipe(new ItemStack(blueLightSaber, 1), new Object[]{"B", "T", Character.valueOf('B'), blueCristal, Character.valueOf('T'), ironTube});
            ModLoader.addName(blueLightSaber, "Sabre laser bleu (Jedi)");
           
            greenLightSaber.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/greenLightSaber.png");
            ModLoader.addRecipe(new ItemStack(greenLightSaber, 1), new Object[]{"G", "T", Character.valueOf('G'), greenCristal, Character.valueOf('T'), ironTube});
            ModLoader.addName(greenLightSaber, "Sabre laser vert (Jedi)");
           
            purpleLightSaber.iconIndex = ModLoader.addOverride("/gui/items.png", "/Images/purpleLightSaber.png");
            ModLoader.addRecipe(new ItemStack(purpleLightSaber, 1), new Object[]{"V", "T", Character.valueOf('V'), purpleCristal, Character.valueOf('T'), ironTube});
            ModLoader.addName(purpleLightSaber, "Sabre laser violet (Jedi ou Sith)");
           
            //Monster
           
            ModLoader.registerEntityID(EntityYoda.class, "Yoda", ModLoader.getUniqueEntityId());
            ModLoader.addSpawn(EntityYoda.class, 5, 2, 4, EnumCreatureType.monster);
        }
       
        public void addRendered(Map map)
        {
            map.put(EntityYoda.class, new RenderBiped(new ModelBiped(), 0.5F));
        }
       
        public void generateSurface(World world, Random random, int chunkX, int chunkZ)
        {
            for (int i=0 ; i < 5 ; i++)
            {
                int X = chunkX + random.nextInt(16);
                int Y = 5 + random.nextInt(16 - 5);
                int Z = chunkZ + random.nextInt(16);
                (new WorldGenMinable(redCristalOre.blockID, 5)).generate(world, random, X, Y, Z);
            }
            for (int i=0 ; i < 5 ; i++)
            {
                int X = chunkX + random.nextInt(16);
                int Y = 5 + random.nextInt(16 - 5);
                int Z = chunkZ + random.nextInt(16);
                (new WorldGenMinable(blueCristalOre.blockID, 5)).generate(world, random, X, Y, Z);
            }
            for (int i=0 ; i < 5 ; i++)
            {
                int X = chunkX + random.nextInt(16);
                int Y = 5 + random.nextInt(16 - 5);
                int Z = chunkZ + random.nextInt(16);
                (new WorldGenMinable(greenCristalOre.blockID, 5)).generate(world, random, X, Y, Z);
            }
            for (int i=0 ; i < 3 ; i++)
            {
                int X = chunkX + random.nextInt(16);
                int Y = 5 + random.nextInt(16 - 5);
                int Z = chunkZ + random.nextInt(16);
                (new WorldGenMinable(purpleCristalOre.blockID, 3)).generate(world, random, X, Y, Z);
            }
        }
     
        public String getVersion() {
            return "1.2.5";
        }
       
    }
     
     
  10. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    C'est vrai que c'est louche. A priori, ton code est correct. Néanmoins, essaye de rajouter ceci

    Code (cpp):
    .setIconIndex(greenlightsaber)
    Après ton .setItemName("GreenLightSaber"));

    Question bête : T'as bien ajouter tes images dans le "/jars/minecraft.jar" ? On sait jamais.
     
  11. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Reponse 1 : On ne peut pas faire .setIconIndex(greenLightSaber) car setIconIndex attend un int en paramètre.
    Reponse 2 : Oui j'ai bien rajouté les images.
    Reponse 3 : J'ai essayé de mettre une épée en diamant à la place du sabre laser et ça ne marche pas.
     
  12. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    J'ai refait le code de mon côté et le mob apparaît bien avec l'arme. Cependant, je ne fait pas de la même façon que toi.

    Si jamais tu veux réessaye, voici ce que j'ai fait :

    EntityYoda (Des choses ne te serviront pas dedans)

    mod_DarkSide

    mod_Yoda



    J'ai refait le code en n'utilisant qu'un seul item chez toi et en lui donnant une propriété de fer pour tester.
     
    • Utile Utile x 1
  13. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Merci beaucoup !
    J'ai compris ce qui clochais : j'avais mis addRendered au lieu de addRenderer !!!:*
    J'ai une nouvelle question : comment faire pour que deux mobs se tapent entre eux s'il se voient ?
     
  14. Drakhus

    Drakhus Mineur de Redstone

    Inscrit:
    27 Mar 2011
    Messages:
    1 746
    Points:
    163
    tasks.addTask(8, new EntityAIAttackOnCollide(this, net.minecraft.src.TonEntity.class, moveSpeed, true));

    targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, net.minecraft.src.TonEntity.class, 16F, 0, true));
     
  15. arbre1999

    arbre1999 Bûcheron

    Inscrit:
    16 Juin 2012
    Messages:
    131
    Points:
    76
    Sexe:
    Homme
    Cela fonctionne mais il ne bougent pas avant d'être attaquer !
     

Partager cette page