Modding FR

T-Shirt

Bucheron
10 Septembre 2011
195
10
13
109
Alors pour cela, je connais quelque amie ^^ !
Google, youtube, et plein d'autre ...
Sinon tu es sur que tu as tout lu, je crois qu'il explique.
 

MisaXage

Redstonien Confirmé
31 Août 2011
145
10
13
24
Bonjour,
J'ai commencé ce superbe tuto sur les mods aujourd'hui mais à la partie III, à la recompilisation ,
ça me met cette erreur :

http://img696.imageshack.us/img696/6321/bug1op.png

Voici mod_MyMod

Code:
package net.minecraft.src;

public class mod_MyMod extends BaseMod
{
    public mod_MyMod()
    {
    ModLoader.RegisterBlock(myBloc);
    ModLoader.AddRecipe(new ItemStack(myBloc, 3), new Object[] {"###",Character.valueOf('#'), Block.cobblestone});
    }

    public static final Block myBloc = (new BlockMyBloc(99,224)).setHardness(1.0F).setResistance(2F).setStepSound(Block.soundStoneFootstep);

    public String Version()
    {
    return "1.8_01";
    }
}

Et BlockMyBloc :

Code:
package net.minecraft.src;

import java.util.Random;

public class BlockMyBloc extends Block
{
    public BlockMyBloc(int i, int j)
    {
        super(i, j, Material.ground);
    }

    public int idDropped(int i, Random random)
    {
        return mod_MyMod.myBloc.blockID;
    }
}

Merci d'avance.

MisaXage
 

Creops

Aventurier
27 Septembre 2011
4
0
1
28
les deux tutos sur les objets ne sont pas assez complets
et mon copain google n'est pas assez précis
 

rafoudiablol

Lol ?!
29 Mai 2011
499
16
135
27
Pour les outils, il suffit d'utiliser la méthode setMaxDamage(int max). pour changer son nombre d'utiilsation max.

Les blocks cassables et leurs puissance de destruction est dans le fichier ItemTool :

Code:
    public float getStrVsBlock(ItemStack itemstack, Block block)
    {
        for(int i = 0; i < blocksEffectiveAgainst.length; i++)
        {
            if(blocksEffectiveAgainst[i] == block)
            {
                return efficiencyOnProperMaterial;
            }
        }
        return 1.0F;
    }
Remplit le tableau blocksEffectiveAgainst[] comme ceci :

Code:
    static
    {
        blocksEffectiveAgainst = (new Block[] {
            Block.truc, Block.machin, mod_tonMod.bidule
      });
    }

Dégâts contre les entités :

Code:
    public int getDamageVsEntity(Entity entity)
    {
        return damageVsEntity;
    }
On peut aussi varier les dégâts en fonction de la creature.



Dégâts une fois un block cassé :

Code:
    public boolean onBlockDestroyed(ItemStack itemstack, int i, int j, int k, int l, EntityLiving entityliving)
    {
        itemstack.damageItem(1, entityliving);
        return true;
    }
On voit que l'on effectue des dégâts à l'item

Il suffit de ré-implémenter ses méthodes dans le code ton item et les modifier selon ton bon plaisir ;)

Modifie la variable efficiencyOnProperMaterial pour changer les dégâts contre les blocks.
Bien sûr tout ça n'est valable que si tu fait hériter ton objet de ItemTool.

Il existe a aussi une autre méthode pour faire de nouveaux outils : on créé un fichier de Material, mais utile seulement si tu veut rajouter des nouveaux matériels autre que diamant, fer, pierre, bois ou or.