Forum francais Minecraft. Serveur de jeu FR-Minecraft et astuces pour Minecraft.

Pages :: Précédent 1 2 3 4 5 6 Suivant

#101 30/10/2011 21:59:38

Membre

Messages : 5

Re : [TUTO] Faire un MOD Minecraft

Salut ! Merci à Nicotbb pour le tuto et à CaptaineCookies pour les informations supplémentaires !
Bon j'avance beaucoup grace a ce tuto et j'en suis a mon 5ème mod. Je pourrias publier certains de mes mods ?
J'vais avoir besoin d'aide pour une chose et je vais aider ce que je peux aider ^^
@Dadavolt: Tu ne pourras pas créer de mob, car tes fonctions sont incompatibles avec MCP !
Je suis désolé :/ (en tout cas c'est ce que je pense)
Je sais d'où tu as trouvé tes fonctions mais sinon essaye avec "la class de ta source".AddSpawn(....) au lieu de ModLoader.AddSpawn .... parce qu'en faite tu dis comme quoi cette fonction fait partit de modLoader.
Si sa marche toujours pas... bah dit le nous ^^
@Da Vinci: Déjà j'aime bien ton pseudo ^^ Sinon pour ton crash y a tellement de cas que...
Bon il se peut que ça soit : - Image pas trouvé
- ID doublé
- Mauvais codage
- Ou encore comme ça me l'avais fait une boucle infinie que ne se termine pas et crash minecraft très très bizarrement !! Je vous ferez voir ma vidéo quand je l'aurai publier ;)
Et aussi, donne nous un screen sur le crash, Merci :)

Bon pour moi, j'voudrai savoir comment faire pour créer un temps qui bloque  une fonction un certain temps.
Je m'explique, je cherche un fonction qui permet de lancer une autre fonction après un temps donné. Mais j'aimerai qu'il soit compatible avec MCP, Minecraft et ModLoader. Merci ! ;)

Hors ligne

#102 03/11/2011 19:51:54

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Merci pour ta réponse, mais enfaite j'ai trouvé tout seul : l'ID de mon bloc était beaucoup trop élevé.

Hors ligne

#103 09/01/2012 18:45:34

Modérateur
Lieu : Entre deux bans

Messages : 2 034

Re : [TUTO] Faire un MOD Minecraft

Allez, j'ose faire un up pour une question dont je n'ai trouvé réponse nul part ailleur...

Que faut-il modifier dans le code lors d'une mise à jour de minecraft?

En attente d'une réponse,
Craterus

Hors ligne


Ex-Seigneur Pumpkins!

#104 22/02/2012 14:18:38

Membre

Messages : 3

Re : [TUTO] Faire un MOD Minecraft

Euh bonjour,

J'en suis au premier tuto sur les ressorts et Cela ne marche pas
Je vous envois un screen de la cmd et du script:

https://upload.fr-minecraft.net/images/f … cmdsjq.bmp
https://upload.fr-minecraft.net/images/f … script.bmp

Hors ligne

#105 29/02/2012 11:23:00

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Quadaboum, pour ton problème (j'ai eu le même), il faut modifier le Minecraft.java qui se situe dans un dossier similaire à celui qui contient les src, il s'appelle client. Tu a deux problèmes qui apparaitront, il faut choisir la première option je crois. Mets aussi à jour ton JRE. J'ai fait ça et ça marchait ;) Ton IDE devrait te proposer une solution qui est d'ajouter à deux fonctions ça: "throws LWJGLException".

Sinon, j'ai moi aussi un problème concernant un mod simple qui rajoute des items, qui à l'air codé sans erreur. Le jeu n'arrive pas à le charger, pourtant Eclipse ne m'indique aucune erreur sur le code :/
Voici le message d'erreur:

Mods loaded: 1
ModLoader 1.1

      Minecraft has crashed!      
      ----------------------      

Minecraft has stopped running because it encountered a problem.

If you wish to report this, please copy this entire text and email it to [email protected].
Please include a description of what you did when the error occured.



--- BEGIN ERROR REPORT 9c4f49b2 --------
Generated 29/02/12 09:15

Minecraft: Minecraft 1.1
OS: Windows 7 (x86) version 6.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: ATI Radeon HD 5450 version 4.2.11399 Compatibility Profile Context, ATI Technologies Inc.

java.lang.InstantiationException
    at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at java.lang.Class.newInstance0(Class.java:372)
    at java.lang.Class.newInstance(Class.java:325)
    at net.minecraft.src.ModLoader.addMod(ModLoader.java:234)
    at net.minecraft.src.ModLoader.readFromClassPath(ModLoader.java:1217)
    at net.minecraft.src.ModLoader.init(ModLoader.java:708)
    at net.minecraft.src.ModLoader.AddAllRenderers(ModLoader.java:150)
    at net.minecraft.src.RenderManager.<init>(RenderManager.java:78)
    at net.minecraft.src.RenderManager.<clinit>(RenderManager.java:9)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:315)
    at net.minecraft.client.Minecraft.run(Minecraft.java:618)
    at java.lang.Thread.run(Thread.java:722)
--- END ERROR REPORT dec2d7b3 ----------

Voici le code de mod_DarKsSwords:

package net.minecraft.src;


public abstract class mod_DarKsSwords extends BaseMod
{

  public static final Item DarkDye = (new ItemDarkMetal(500)).setIconIndex(ModLoader.addOverride("/gui/items.png", "/DarkDye.png")).setItemName("DarkDye");
  public static final Item DarkMetal = (new ItemDarkMetal(501)).setIconIndex(ModLoader.addOverride("/gui/items.png", "/DarkMetal.png")).setItemName("DarkMetal");
    
  public mod_DarKsSwords()
  {
    ModLoader.SetInGameHook(this, true, true);
    ModLoader.AddName(DarkDye, "Dark Dye");
    ModLoader.AddName(DarkMetal, "Dark Metal");
    addRecipes(); 
  }

  private void addRecipes()
  {
    ModLoader.AddRecipe(new ItemStack(DarkDye, 3), new Object[] {"XXX", "XXX", "XXX", Character.valueOf('X'), Item.eyeOfEnder});
    ModLoader.AddRecipe(new ItemStack(DarkMetal, 1), new Object[] {"XXX", "CCC", "VVV", Character.valueOf('X'), DarkDye, Character.valueOf('C'), Item.diamond, Character.valueOf('V'), Item.ingotIron});
  }

  public String Version()
  {
    return "1.1.0";
  }
}

Le code du premier item, ItemDarkDye:

package net.minecraft.src;

public class ItemDarkDye extends Item {
    
    public ItemDarkDye(int id){
        super(id);
    }
}

Le code du deuxième item, ItemDarkMetal:

package net.minecraft.src;

public class ItemDarkMetal extends Item {
    
    public ItemDarkMetal(int id){
        super(id);
    }
}

Je précise que le crash report arrive au moment ou la console de test me dit un truc du style "Fail loading mod_DarKsSwords."

Hors ligne

#106 29/02/2012 12:17:53

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Désolé du double post, j'ai trouvé la solution tout seul. Ma conclusion est que...

//!\\CE TUTO N'EST PLUS A JOUR!!!!//!\\

La fonction pour récupérer la version n'est pas :

public String Version()
      {
        return "1.1.0";
      }

MAIS:

public String getVersion() {
        return "1.1.0";
    }

De plus, la fonction dans laquelle vous devrez tout mettre concernant l'ajout de recettes, item, etc...n'est pas:

public mod_NomDuMod() {
    ModLoader.SetInGameHook(this, true, false); 
    Ressort = (new ItemRessort(113)).setIconCoord(0, 0);
    addRecipes(); //On ajoute les recettes
//J'ai repris l'exemple du tuto...
  }

MAIS:

public void load(){
//Votre code pour ajouter items et blocs à foison
}

Voilà, si un modérateur passe par là et peut mettre à jour svp =)
J'ai fait ces modifs et mon code marche sans problème =)
Pour donner l'exemple avec mon code de mon précédent post, ça donne ça (seulement le mod_DarKsSwords):

package net.minecraft.src;


public class mod_DarKsSwords extends BaseMod
{

  public static final Item DarkDye = (new ItemDarkMetal(500)).setIconIndex(ModLoader.addOverride("/gui/items.png", "/DarkDye.png")).setItemName("DarkDye");
  public static final Item DarkMetal = (new ItemDarkMetal(501)).setIconIndex(ModLoader.addOverride("/gui/items.png", "/DarkMetal.png")).setItemName("DarkMetal");
    
  public void load()
  {
    ModLoader.SetInGameHook(this, true, true);
    ModLoader.AddName(DarkDye, "Dark Dye");
    ModLoader.AddName(DarkMetal, "Dark Metal");
    addRecipes(); 
  }

  private void addRecipes()
  {
    ModLoader.AddRecipe(new ItemStack(DarkDye, 3), new Object[] {"XXX", "XXX", "XXX", Character.valueOf('X'), Item.eyeOfEnder});
    ModLoader.AddRecipe(new ItemStack(DarkMetal, 1), new Object[] {"XXX", "CCC", "VVV", Character.valueOf('X'), DarkDye, Character.valueOf('C'), Item.diamond, Character.valueOf('V'), Item.ingotIron});
  }

  public String getVersion()
  {
    return "1.1.0";
  }
}

Voilà tout =)

DarKobalt

Hors ligne

#107 06/03/2012 21:21:40

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Merci pour ce tuto, ça donne vraiment envie de se lancer dans un mod!

Hors ligne

#108 11/03/2012 03:15:24

Membre

Messages : 15

Re : [TUTO] Faire un MOD Minecraft

C'est très dur de créer un mod

Hors ligne

#109 04/04/2012 21:12:53

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Bonjour,

tout d'abord merci pour ce tuto.

je sais qu'il n'est plus mis a jour mais j'aurai une question, j'ai bien réussi a créer le ressort mais comment fait on pour pouvoir le créer sur un serveur car la ça marche sur une partie solo mais pas sur mon serveur

Merci
Toisur

Hors ligne

#110 11/04/2012 20:48:20

Membre
Lieu : Manoir sur pilotis

Messages : 20

Re : [TUTO] Faire un MOD Minecraft

@nicotbb

tous d'abord merci ton sujet n'est pas mort il est encore bien afficher dans les recherche google (en première page même)

Ensuite pourquoi "notepad(bèèè)"? C'est très bien, c'est facile d'utilisation et ça pique pas les yeux avec 36 000 onglet^^

@tous

Maintenant j'aimerais savoir comment peut on récupérer un texte écrit in-game sur un panneau pour le retranscrire dans le code!
Cela me serai utile car j'aimerai créer un bloc de téléportation ou les coordonnée de destination serait à écrire par le joueur sur un panneau!
Un peu comme l'un des mod du zombe's modpack

Merci

Dernière modification par scadiv (18/04/2012 12:38:39)

Hors ligne

#111 11/06/2012 15:24:48

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Salut, j'ai un problème :

Quand je lance "recompile.bat" (je suis a la deuxième partie), j'ai un message d'erreur

javac: invalid flag: -Xlint:-options
Usage: javac <options> <source files>
Use -help for a list of possible options

Puis le programme s'arrete, help please :'(

Hors ligne

#112 01/07/2012 21:55:41

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Bonsoir à tous!

Avant tout, un grand merci à Nicotbb. Ca fait quelques temps que j'essaye de trouver comment créer un mod et des objets, histoire de repimenter un peu mon server, donc tu m'aides grandement :)

Ceci dit j'ai quelques petits soucis au moment de recompiller (le 1er test de la 1ère étape 13 ). Le CMD me dit en fait que j'ai 4 erreurs et ce sur le mode_jump. Par exemple il n'a pas l'air d'aimer du tout le public static Item Ressort;

Je vous met en copie mon code

package net.minecraft.src;
//Nous sommes dans les sources de Minecraft
//Et nous déclarons notre classe (qui, soit dit en passant, ne l'a pas encore)

public class mod_Jump extends BaseMod {

    public static Item Ressort;

  public mod_Jump() {
    ModLoader.SetInGameHook(this, true, false); //J'explique plus tard...
    Ressort = (new ItemRessort(113)).setIconCoord(0, 0);
    addRecipes(); //On ajoute les recettes
  }

  private void addRecipes() {
    ModLoader.AddRecipe(new ItemStack(Ressort, 1), new Object[] {"C", Character.valueOf('C'), Block.cobblestone});
  }

  public String Version() {
    //Ici j'ai l'habitude de mettre la version de Minecraft, mais (à vérifier) tu peu mettre la version de ton mod.
    return "1.6.5";
    }

}

Merci par avance pour votre aide

Hors ligne

#113 01/07/2012 22:53:53

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Re,

Petite précision, si j'enlève le ; à      public static Item Ressort;     il n'est pas content non plus, me disant qu'il manque un ; . J'ai essayé aussi avec des parenthèse et des crochets mais ca n'a pas non plus l'air de lui plaire...

Hors ligne

#114 31/08/2012 10:35:45

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Bonjour!

Déjà, merci pour ce tuto.
Maitenant, ma question:
Quand je lance decompile.bat, il m'affiche :
== MCP 7.2 (data: 7.2, client: 1.3.2, server: 1.3.2) ==
# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, renumber csv, ast
yle, astyle config


Et il ne se passe rien...

Help please :) !

MaloZ

Hors ligne

#115 06/10/2012 10:17:46

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Déso je suis resté sur les premiers messages du tuto^^
Alors voilà g un gros problème d'erreurs TT :
bug mpc

Je suis un peu une bille en java^^

Voici le code que j'ai marqué :

Dans ItemRessort.java :

package net.minecraft.src;

public class ItemRessort extends Item {

  public ItemRessort(int id) {
    super(id);
  }

}

Et puis dans mod_Jump.java :

package net.minecraft.src;

public class mod_Jump extends BaseMod {

public static Item Ressort;

  public mod_Jump() {
    ModLoader.SetInGameHook(this, true, false);
    Ressort = (new ItemRessort(113)).setIconCoord(0, 0);
    addRecipes();
  }

  private void addRecipes() {
    ModLoader.AddRecipe(new ItemStack(Ressort, 1), new Object[] {"C", Character.valueOf('C'), Block.cobblestone});
  }

  public String Version() {
   
    return "1.3.2";
  }

}

J'ai aussi d'autres petites questions :

Fallait-il mettre le modloader dans les fichier .jar de minecraft avant de décompiler ?

> Pour me répondre il faut que vous sachiez que je l'ai fait.

Merci d'avance^^

Hors ligne

#116 06/11/2012 16:06:43

Membre
Lieu : Nantes

Messages : 1
Site Web

Re : [TUTO] Faire un MOD Minecraft

cool le tuto :)

Hors ligne


Eh salut ! diamond

#117 07/11/2012 01:05:16

Membre
Lieu : Dans le studio du bon geek

Messages : 93
Site Web

Re : [TUTO] Faire un MOD Minecraft

Sa doit vachement être dur pour en créer un tuez moi fire 13 fire

Dernière modification par mario76-110 (07/11/2012 01:06:01)

Hors ligne


Soumetez vous à la force creeper

tueurdezombifjd.png

#118 27/11/2012 18:43:14

Membre

Messages : 40

Re : [TUTO] Faire un MOD Minecraft

Si quelqu'un pouvai me créé mon mod ca serai gentil .
Je n'y connait rien même avec ce tuto .
Pitié quelqu'un peu me le créé ...
Je suis nul ...

Hors ligne

#119 22/12/2012 18:18:48

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Bonjour à tous,

premièrement merci beaucoup pour ce tutoriel qui est très bien fait mais j'ai remarqué que je n'étais pas le seul à avoir des problèmes avec le code de l'auteur. N'ayant pas trouver de réponse dans les messages précédents ( du moins pas pour tout mes problèmes ) alors je fais un petit résumé ici de ce à quoi je suis confronté en espérant avoir des réponses.

Alors déjà je suis toujours au deuxième message de l'auteur.
1) Voici ce que j'ai mis ( avec mes solutions en commentaire, même si elles n'ont l'air de ne pas suffire ).

mod_Jump.java :

package net.minecraft.src;
//import net.minecraft.src.*;
public class mod_Jump extends BaseMod {
    public static Item Ressort//;
    public mod_Jump()
    {
        ModLoader.SetInGameHook(this, true, false); //J'explique plus tard...
        Ressort = (new ItemRessort(113)).setIconCoord(0, 0);
        addRecipes(); //On ajoute les recettes
    }
    private void addRecipes()
    { 
        ModLoader.AddRecipe/*s*/(new ItemStack(Ressort, 1), new Object[] {"C", Character.valueOf('C'), Block.cobblestone});
    }
    public String Version()
    {
        return "1.4.6"; // J'ai mis ma version de MC.
    }
}

ItemRessort.java :

package net.minecraft.src;
//import net.minecraft.src.*;
public class ItemRessort extends Item
{
    public ItemRessort(int id)
    {
        super(id); //On initialise la classe Item dans ItemRessort avec comme paramètre l'ID de l'item...
    }
}

Et donc en faisant çà j'obtient :
1°

2/ Donc, je pensais que c'était du au manque de ';' alors j'ai essayé avec mais ...
... voilà :
2°

3/ Du coup j'ai ajouté les "imports" et enlever le SetInGameHook et ...
3°

4/ Enfin bref je peut continuer ainsi infiniment ... Alors s'il vous plaît si vous pouviez nous passer le code sans erreur alors je suis preneur, merci d'avance.

Hors ligne

#120 22/01/2013 22:01:21

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

très bon tuto des que j'aurais le temps je me ferais un petit mod

Hors ligne

#121 22/01/2013 23:40:59

Membre

Messages : 3

Re : [TUTO] Faire un MOD Minecraft

Salut, pourriez-vous me dire pourquoi vous n'utilisez pas eclipse, qui vous faciliterez grandement la tâche.

Dernière modification par BluebiiBoulga (23/01/2013 00:32:50)

Hors ligne

#122 02/02/2013 20:09:18

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

Bonjour !
je suis déja le tutoriel depuis plusieurs mois.
j'aimerait créer un mod avec des classeurs pour ranger :
1- des livres éditées
2- du papier

avec une gui

code modifiée du coffre:

package net.minecraft.src;

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

public class Blockclasseur extends BlockContainer
{
    private Random random = new Random();

    protected BlockChest(int par1)
    {
        super(par1, Material.wood);
        this.blockIndexInTexture = 26;
        this.setCreativeTab(CreativeTabs.tabDecorations);
        this.setBlockBounds(0.0625F, 0.0F, 0.0625F, 0.9375F, 0.875F, 0.9375F);
    }

    /**
     * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
     * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
     */
    public boolean isOpaqueCube()
    {
        return false;
    }

    /**
     * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
     */
    public boolean renderAsNormalBlock()
    {
        return false;
    }

    /**
     * The type of render function that is called for this block
     */
    public int getRenderType()
    {
        return 22;
    }

    /**
     * Updates the blocks bounds based on its current state. Args: world, x, y, z
     */
    public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
    {
        if (par1IBlockAccess.getBlockId(par2, par3, par4 - 1) == this.blockID)
        {
            this.setBlockBounds(0.0625F, 0.0F, 0.0F, 0.9375F, 0.875F, 0.9375F);
        }
        else if (par1IBlockAccess.getBlockId(par2, par3, par4 + 1) == this.blockID)
        {
            this.setBlockBounds(0.0625F, 0.0F, 0.0625F, 0.9375F, 0.875F, 1.0F);
        }
        else if (par1IBlockAccess.getBlockId(par2 - 1, par3, par4) == this.blockID)
        {
            this.setBlockBounds(0.0F, 0.0F, 0.0625F, 0.9375F, 0.875F, 0.9375F);
        }
        else if (par1IBlockAccess.getBlockId(par2 + 1, par3, par4) == this.blockID)
        {
            this.setBlockBounds(0.0625F, 0.0F, 0.0625F, 1.0F, 0.875F, 0.9375F);
        }
        else
        {
            this.setBlockBounds(0.0625F, 0.0F, 0.0625F, 0.9375F, 0.875F, 0.9375F);
        }
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World par1World, int par2, int par3, int par4)
    {
        super.onBlockAdded(par1World, par2, par3, par4);
        this.unifyAdjacentChests(par1World, par2, par3, par4);
        int var5 = par1World.getBlockId(par2, par3, par4 - 1);
        int var6 = par1World.getBlockId(par2, par3, par4 + 1);
        int var7 = par1World.getBlockId(par2 - 1, par3, par4);
        int var8 = par1World.getBlockId(par2 + 1, par3, par4);

        if (var5 == this.blockID)
        {
            this.unifyAdjacentChests(par1World, par2, par3, par4 - 1);
        }

        if (var6 == this.blockID)
        {
            this.unifyAdjacentChests(par1World, par2, par3, par4 + 1);
        }

        if (var7 == this.blockID)
        {
            this.unifyAdjacentChests(par1World, par2 - 1, par3, par4);
        }

        if (var8 == this.blockID)
        {
            this.unifyAdjacentChests(par1World, par2 + 1, par3, par4);
        }
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving)
    {
        int var6 = par1World.getBlockId(par2, par3, par4 - 1);
        int var7 = par1World.getBlockId(par2, par3, par4 + 1);
        int var8 = par1World.getBlockId(par2 - 1, par3, par4);
        int var9 = par1World.getBlockId(par2 + 1, par3, par4);
        byte var10 = 0;
        int var11 = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if (var11 == 0)
        {
            var10 = 2;
        }

        if (var11 == 1)
        {
            var10 = 5;
        }

        if (var11 == 2)
        {
            var10 = 3;
        }

        if (var11 == 3)
        {
            var10 = 4;
        }

        if (var6 != this.blockID && var7 != this.blockID && var8 != this.blockID && var9 != this.blockID)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, var10);
        }
        else
        {
            if ((var6 == this.blockID || var7 == this.blockID) && (var10 == 4 || var10 == 5))
            {
                if (var6 == this.blockID)
                {
                    par1World.setBlockMetadataWithNotify(par2, par3, par4 - 1, var10);
                }
                else
                {
                    par1World.setBlockMetadataWithNotify(par2, par3, par4 + 1, var10);
                }

                par1World.setBlockMetadataWithNotify(par2, par3, par4, var10);
            }

            if ((var8 == this.blockID || var9 == this.blockID) && (var10 == 2 || var10 == 3))
            {
                if (var8 == this.blockID)
                {
                    par1World.setBlockMetadataWithNotify(par2 - 1, par3, par4, var10);
                }
                else
                {
                    par1World.setBlockMetadataWithNotify(par2 + 1, par3, par4, var10);
                }

                par1World.setBlockMetadataWithNotify(par2, par3, par4, var10);
            }
        }
    }

    /**
     * Turns the adjacent chests to a double chest.
     */
    public void unifyAdjacentChests(World par1World, int par2, int par3, int par4)
    {
        if (!par1World.isRemote)
        {
            int var5 = par1World.getBlockId(par2, par3, par4 - 1);
            int var6 = par1World.getBlockId(par2, par3, par4 + 1);
            int var7 = par1World.getBlockId(par2 - 1, par3, par4);
            int var8 = par1World.getBlockId(par2 + 1, par3, par4);
            boolean var9 = true;
            int var10;
            int var11;
            boolean var12;
            byte var13;
            int var14;

            if (var5 != this.blockID && var6 != this.blockID)
            {
                if (var7 != this.blockID && var8 != this.blockID)
                {
                    var13 = 3;

                    if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6])
                    {
                        var13 = 3;
                    }

                    if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5])
                    {
                        var13 = 2;
                    }

                    if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8])
                    {
                        var13 = 5;
                    }

                    if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7])
                    {
                        var13 = 4;
                    }
                }
                else
                {
                    var10 = par1World.getBlockId(var7 == this.blockID ? par2 - 1 : par2 + 1, par3, par4 - 1);
                    var11 = par1World.getBlockId(var7 == this.blockID ? par2 - 1 : par2 + 1, par3, par4 + 1);
                    var13 = 3;
                    var12 = true;

                    if (var7 == this.blockID)
                    {
                        var14 = par1World.getBlockMetadata(par2 - 1, par3, par4);
                    }
                    else
                    {
                        var14 = par1World.getBlockMetadata(par2 + 1, par3, par4);
                    }

                    if (var14 == 2)
                    {
                        var13 = 2;
                    }

                    if ((Block.opaqueCubeLookup[var5] || Block.opaqueCubeLookup[var10]) && !Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var11])
                    {
                        var13 = 3;
                    }

                    if ((Block.opaqueCubeLookup[var6] || Block.opaqueCubeLookup[var11]) && !Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var10])
                    {
                        var13 = 2;
                    }
                }
            }
            else
            {
                var10 = par1World.getBlockId(par2 - 1, par3, var5 == this.blockID ? par4 - 1 : par4 + 1);
                var11 = par1World.getBlockId(par2 + 1, par3, var5 == this.blockID ? par4 - 1 : par4 + 1);
                var13 = 5;
                var12 = true;

                if (var5 == this.blockID)
                {
                    var14 = par1World.getBlockMetadata(par2, par3, par4 - 1);
                }
                else
                {
                    var14 = par1World.getBlockMetadata(par2, par3, par4 + 1);
                }

                if (var14 == 4)
                {
                    var13 = 4;
                }

                if ((Block.opaqueCubeLookup[var7] || Block.opaqueCubeLookup[var10]) && !Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var11])
                {
                    var13 = 5;
                }

                if ((Block.opaqueCubeLookup[var8] || Block.opaqueCubeLookup[var11]) && !Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var10])
                {
                    var13 = 4;
                }
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, var13);
        }
    }

    /**
     * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side
     */
    public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
    {
        return 4;
    }

    /**
     * Returns the block texture based on the side being looked at.  Args: side
     */
    public int getBlockTextureFromSide(int par1)
    {
        return 4;
    }

    /**
     * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
     */
    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
    {
        int var5 = 0;

        if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID)
        {
            ++var5;
        }

        if (par1World.getBlockId(par2 + 1, par3, par4) == this.blockID)
        {
            ++var5;
        }

        if (par1World.getBlockId(par2, par3, par4 - 1) == this.blockID)
        {
            ++var5;
        }

        if (par1World.getBlockId(par2, par3, par4 + 1) == this.blockID)
        {
            ++var5;
        }

        return var5 > 1 ? false : (this.isThereANeighborChest(par1World, par2 - 1, par3, par4) ? false : (this.isThereANeighborChest(par1World, par2 + 1, par3, par4) ? false : (this.isThereANeighborChest(par1World, par2, par3, par4 - 1) ? false : !this.isThereANeighborChest(par1World, par2, par3, par4 + 1))));
    }

    /**
     * Checks the neighbor blocks to see if there is a chest there. Args: world, x, y, z
     */
    private boolean isThereANeighborChest(World par1World, int par2, int par3, int par4)
    {
        return par1World.getBlockId(par2, par3, par4) != this.blockID ? false : (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID ? true : (par1World.getBlockId(par2 + 1, par3, par4) == this.blockID ? true : (par1World.getBlockId(par2, par3, par4 - 1) == this.blockID ? true : par1World.getBlockId(par2, par3, par4 + 1) == this.blockID)));
    }

    /**
     * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
     * their own) Args: x, y, z, neighbor blockID
     */
    public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
    {
        super.onNeighborBlockChange(par1World, par2, par3, par4, par5);
        TileEntityChest var6 = (TileEntityChest)par1World.getBlockTileEntity(par2, par3, par4);

        if (var6 != null)
        {
            var6.updateContainingBlockInfo();
        }
    }

    /**
     * ejects contained items into the world, and notifies neighbours of an update, as appropriate
     */
    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
    {
        TileEntityChest var7 = (TileEntityChest)par1World.getBlockTileEntity(par2, par3, par4);

        if (var7 != null)
        {
            for (int var8 = 0; var8 < var7.getSizeInventory(); ++var8)
            {
                ItemStack var9 = var7.getStackInSlot(var8);

                if (var9 != null)
                {
                    float var10 = this.random.nextFloat() * 0.8F + 0.1F;
                    float var11 = this.random.nextFloat() * 0.8F + 0.1F;
                    EntityItem var14;

                    for (float var12 = this.random.nextFloat() * 0.8F + 0.1F; var9.stackSize > 0; par1World.spawnEntityInWorld(var14))
                    {
                        int var13 = this.random.nextInt(21) + 10;

                        if (var13 > var9.stackSize)
                        {
                            var13 = var9.stackSize;
                        }

                        var9.stackSize -= var13;
                        var14 = new EntityItem(par1World, (double)((float)par2 + var10), (double)((float)par3 + var11), (double)((float)par4 + var12), new ItemStack(var9.itemID, var13, var9.getItemDamage()));
                        float var15 = 0.05F;
                        var14.motionX = (double)((float)this.random.nextGaussian() * var15);
                        var14.motionY = (double)((float)this.random.nextGaussian() * var15 + 0.2F);
                        var14.motionZ = (double)((float)this.random.nextGaussian() * var15);

                        if (var9.hasTagCompound())
                        {
                            var14.getEntityItem().setTagCompound((NBTTagCompound)var9.getTagCompound().copy());
                        }
                    }
                }
            }
        }

        super.breakBlock(par1World, par2, par3, par4, par5, par6);
    }

    /**
     * Called upon block activation (right click on the block.)
     */
    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
    {
        Object var10 = (TileEntityChest)par1World.getBlockTileEntity(par2, par3, par4);

        if (var10 == null)
        {
            return true;
        }
        else if (par1World.isBlockNormalCube(par2, par3 + 1, par4))
        {
            return true;
        }
        else if (isOcelotBlockingChest(par1World, par2, par3, par4))
        {
            return true;
        }
        else if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID && (par1World.isBlockNormalCube(par2 - 1, par3 + 1, par4) || isOcelotBlockingChest(par1World, par2 - 1, par3, par4)))
        {
            return true;
        }
        else if (par1World.getBlockId(par2 + 1, par3, par4) == this.blockID && (par1World.isBlockNormalCube(par2 + 1, par3 + 1, par4) || isOcelotBlockingChest(par1World, par2 + 1, par3, par4)))
        {
            return true;
        }
        else if (par1World.getBlockId(par2, par3, par4 - 1) == this.blockID && (par1World.isBlockNormalCube(par2, par3 + 1, par4 - 1) || isOcelotBlockingChest(par1World, par2, par3, par4 - 1)))
        {
            return true;
        }
        else if (par1World.getBlockId(par2, par3, par4 + 1) == this.blockID && (par1World.isBlockNormalCube(par2, par3 + 1, par4 + 1) || isOcelotBlockingChest(par1World, par2, par3, par4 + 1)))
        {
            return true;
        }
        else
        {
            if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID)
            {
                var10 = new InventoryLargeChest("container.chestDouble", (TileEntityChest)par1World.getBlockTileEntity(par2 - 1, par3, par4), (IInventory)var10);
            }

            if (par1World.getBlockId(par2 + 1, par3, par4) == this.blockID)
            {
                var10 = new InventoryLargeChest("container.chestDouble", (IInventory)var10, (TileEntityChest)par1World.getBlockTileEntity(par2 + 1, par3, par4));
            }

            if (par1World.getBlockId(par2, par3, par4 - 1) == this.blockID)
            {
                var10 = new InventoryLargeChest("container.chestDouble", (TileEntityChest)par1World.getBlockTileEntity(par2, par3, par4 - 1), (IInventory)var10);
            }

            if (par1World.getBlockId(par2, par3, par4 + 1) == this.blockID)
            {
                var10 = new InventoryLargeChest("container.chestDouble", (IInventory)var10, (TileEntityChest)par1World.getBlockTileEntity(par2, par3, par4 + 1));
            }

            if (par1World.isRemote)
            {
                return true;
            }
            else
            {
                par5EntityPlayer.displayGUIclasseur((IInventory)var10);
                return true;
            }
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World par1World)
    {
        return new TileEntityclasseur();
    }

    /**
     * Looks for a sitting ocelot within certain bounds. Such an ocelot is considered to be blocking access to the
     * chest.
     */
    private static boolean isOcelotBlockingChest(World par0World, int par1, int par2, int par3)
    {
        Iterator var4 = par0World.getEntitiesWithinAABB(EntityOcelot.class, AxisAlignedBB.getAABBPool().addOrModifyAABBInPool((double)par1, (double)(par2 + 1), (double)par3, (double)(par1 + 1), (double)(par2 + 2), (double)(par3 + 1))).iterator();
        EntityOcelot var6;

        do
        {
            if (!var4.hasNext())
            {
                return false;
            }

            EntityOcelot var5 = (EntityOcelot)var4.next();
            var6 = (EntityOcelot)var5;
        }
        while (!var6.isSitting());

        return true;
    }
}

help please ?

ps:
et pour répondre à BluebiiBoulga, j'utilise éclipse
et je ne souhaite pas qu'il y ait de double classeur (côte à côte)

Dernière modification par mario28865 (02/02/2013 20:14:55)

Hors ligne

#123 02/02/2013 21:44:57

Membre

Messages : 2

Re : [TUTO] Faire un MOD Minecraft

j'ai vérifier, il y à un autre fichier.java: ContainerChest.java pour le coffre

code:

package net.minecraft.src;

public class ContainerChest extends Container
{
    private IInventory lowerChestInventory;
    private int numRows;

    public ContainerChest(IInventory par1IInventory, IInventory par2IInventory)
    {
        this.lowerChestInventory = par2IInventory;
        this.numRows = par2IInventory.getSizeInventory() / 9;
        par2IInventory.openChest();
        int var3 = (this.numRows - 4) * 18;
        int var4;
        int var5;

        for (var4 = 0; var4 < this.numRows; ++var4)
        {
            for (var5 = 0; var5 < 9; ++var5)
            {
                this.addSlotToContainer(new Slot(par2IInventory, var5 + var4 * 9, 8 + var5 * 18, 18 + var4 * 18));
            }
        }

        for (var4 = 0; var4 < 3; ++var4)
        {
            for (var5 = 0; var5 < 9; ++var5)
            {
                this.addSlotToContainer(new Slot(par1IInventory, var5 + var4 * 9 + 9, 8 + var5 * 18, 103 + var4 * 18 + var3));
            }
        }

        for (var4 = 0; var4 < 9; ++var4)
        {
            this.addSlotToContainer(new Slot(par1IInventory, var4, 8 + var4 * 18, 161 + var3));
        }
    }

    public boolean canInteractWith(EntityPlayer par1EntityPlayer)
    {
        return this.lowerChestInventory.isUseableByPlayer(par1EntityPlayer);
    }

    /**
     * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
     */
    public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
    {
        ItemStack var3 = null;
        Slot var4 = (Slot)this.inventorySlots.get(par2);

        if (var4 != null && var4.getHasStack())
        {
            ItemStack var5 = var4.getStack();
            var3 = var5.copy();

            if (par2 < this.numRows * 9)
            {
                if (!this.mergeItemStack(var5, this.numRows * 9, this.inventorySlots.size(), true))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(var5, 0, this.numRows * 9, false))
            {
                return null;
            }

            if (var5.stackSize == 0)
            {
                var4.putStack((ItemStack)null);
            }
            else
            {
                var4.onSlotChanged();
            }
        }

        return var3;
    }

    /**
     * Callback for when the crafting gui is closed.
     */
    public void onCraftGuiClosed(EntityPlayer par1EntityPlayer)
    {
        super.onCraftGuiClosed(par1EntityPlayer);
        this.lowerChestInventory.closeChest();
    }

    /**
     * Return this chest container's lower chest inventory.
     */
    public IInventory getLowerChestInventory()
    {
        return this.lowerChestInventory;
    }
}

(code non modifiée)

Hors ligne

#124 10/04/2013 21:03:10

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

excuser moi est ce que quelqu'un pourrait me créer le cgb mods pour 1.5.1 car je n ai pas compris comment faire sil vous plait merci d avance  pour moi trouver des diamond et gold iron goldore je sais c'est triche mais j en ai besoin 01

Hors ligne

#125 10/05/2013 15:28:18

Membre

Messages : 1

Re : [TUTO] Faire un MOD Minecraft

Bonjour à vous ! :D
Je me présente, chartreux77.
J'ai un mod que je suis désireux de mettre en 1.5.2 ! Ce mod est improved first person view ! Le problème c'est que je n'ai absolument aucune idée de comment  m'y prendre pour le convertir à cette version, alors s'il vous plait...Aidez-moi ! :)

Hors ligne

Pages :: Précédent 1 2 3 4 5 6 Suivant

Pied de page des forums