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

[ALL]Un objet (item) #3 Un pistolet

Discussion dans 'Tutoriels' créé par ATE47, 17 Mai 2013.

  1. ATE47

    ATE47 Bûcheron

    Inscrit:
    3 Juil 2012
    Messages:
    227
    Points:
    121
    Sexe:
    Homme
    Pour faire ce tuto il vous faut savoir comment faire un objet/item (avec ModLoader, le nom de l'objet sera MonObjet)
    [​IMG][​IMG][​IMG][​IMG][​IMG][​IMG][​IMG]
    [ALL]Un objet (item) #3 Un pistolet
    Sommaire:
    I. situer ce qu'il faut changer
    II. ajouter classes
    III. Configurer


    I : situer ce qu'il faut changer
    Dans la classe ItemMonObjet vous remplacez tout par :
    Code (java):
    package net.minecraft.src;
    public class ItemMonObjet extends Item
    {
     
    public ItemMonObjet(int par1)
    {
    super(par1);
    this.maxStackSize = 1; //dit qu'il ne peut avoir que 1 pistolet
    }
    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    {
    EntityBalle balle = new EntityBalle(par2World, par3EntityPlayer);
     
            if (!par3EntityPlayer.capabilities.isCreativeMode && par3EntityPlayer.inventory.hasItem(mod_x.chargeur.itemID))
            {
            ItemStack chargeurPistoler = new ItemStack(mod_x.chargeur);
            chargeur.damageItem(1, par3EntityPlayer);
     
                if (!par2World.isRemote)
                {
                par2World.spawnEntityInWorld(balle);
                }
            }
     
            if (par3EntityPlayer.capabilities.isCreativeMode)
            {
            if (!par2World.isRemote)
            {
            par2World.spawnEntityInWorld(balle);
            }
            }
     
            return par1ItemStack;
    }
    }
    Des erreurs ? Normal.
    Créez un Item nommé ''ItemChargeur" relié à la classe "ItemChargeur".
    sous
    Code (java):
    public static final Item MonObjet= new ItemMonObjet(12060).setItemName("MonObjet");
    dans mod_x
    vous ajoutez :
    Code (java):
    public static final Item chargeurPistoler = new ItemChargeur(1002).setItemName("chargeur");

    (n'oubliez pas de rajouter son nom)
    II : Ajouter classes
    Vous allez créer une nouvelle classe nommée "ItemChargeur" et dedans écrivez :
    Code (java):
    package net.minecraft.src;
    public class ItemChargeurPistoler extends Item
    {
     
    public ItemChargeur(int par1)
    {
            super(par1);
            maxStackSize = 8; //max dans chargeur
            setMaxDamage(30);  //durabilité
    }
     
    }
    Informations:
    maxStackSize = 8; : le nombre de balle dans un chargeur
    setMaxDamage(30); : la durabilité du chargeur
    ensuite une classe "EntityBalle" et dedans écrivez :
    Code (java):
    package net.minecraft.src;
    public class EntityBalle extends EntityThrowable
    {
     
    public EntityBalle(World par1World)
    {
    super(par1World);
    }
    public EntityBalle(World par1World, EntityLiving par2EntityLiving)
    {
            super(par1World, par2EntityLiving);
     
    }
    public EntityBalle(World par1World, double par2, double par4, double par6)
    {
            super(par1World, par2, par4, par6);
    }
     
    public void setVelocity()
    {
            this.motionX *= 0.0D;
            this.motionY *= -0.0D;
            this.motionZ *= -0.0D;
    }
     
    protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
    {
            if (par1MovingObjectPosition.entityHit != null)
            {
                    par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 5); //5 = nombre de point perdu
            }
            if (!this.worldObj.isRemote)
            {
                    this.setDead();
            }
    }
    }
    Informations :
    à la ligne
    Code (java):
     par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 5);
    ), 5); => 5 : le nombre de point perdu

    Maintenant le tuto est fini mais avant de partir lisez ça :

    ---- /!\ ---- /!\ ---- :tnt: erreurs :tnt: ---- /!\ ---- /!\ ----
    1- La balle est tirée mais est invisible
    2- Le chargeur ne se vide pas

    ---- /!\ ---- /!\ ---- :tnt: erreurs :tnt: ---- /!\ ---- /!\ ----

    Fin

    Contactez-moi par MP pour m'aider.
    j'ai tenté de :
    - prendre le render d'une flèche pour la 1 (1)
    - prendre le delete de l'arc (2)
    mais rien
     
  2. pifou92000

    pifou92000 Mineur de Diamants

    Inscrit:
    23 Juin 2011
    Messages:
    2 690
    Points:
    195
    Sexe:
    Homme
    C'est un tuto ou une demande d'aide ? x)
     
  3. ATE47

    ATE47 Bûcheron

    Inscrit:
    3 Juil 2012
    Messages:
    227
    Points:
    121
    Sexe:
    Homme
    C'est un tuto et à la fin une demande d'aide pour les erreurs
     

Partager cette page