Il reste moins de 24h pour s'inscrire à la MFFJam !

Aides et trois Questions



  • Bonjour je créer ce sujet pour que vous me conseiller et m'aider dans mon mod car c'est mon premier et je galère un peu^^
    Pour commencer j'ai trois questions:
    Pourquoi mon arc veut pas prendre de texture alors que j'ai fait comme il faut (.setTextureName(Reference.MOD_ID + ":fire_bow")  ?
    Et comment mettre un effect fire résistance (ou effect en général) quand on porte une armure (entièrement) ?
    Et comment mettre un enchante direct quand l'item est craft (comme dans orespawn pioche en émeraude, il y a direct skill touch) ?

    Merci de vos réponses



  • Support pour les moddeurs, à déplacer 😃

    1)Fonction registerIcons à override dans ta classe héritant de ItemBow
    2)Dans la classe de ton armure, rajoute cette méthode :

    
    public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
    {
    super.onArmorTick(world, player, stack);
    boolean hasAllEquipped = player.getEquipmentInSlot(4) != null ? (player.getEquipmentInSlot(3) != null ? (player.getEquipmentInSlot(2) != null ? (player.getEquipmentInSlot(1) != null ? true : false) : false) : false) : false;
    if(hasAllEquipped)
    {
    player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 20, 1 - 1));//Arguments du constructeur de PtionEffect : le premier integer est l'id de l'effet de potion que tu souhaites utiliser, le second est un int qui signifie la durée en ticks, laisse le *20 mais remplace le 5 par le nbre de sec souhaités et enfin le dernier signifie la puissance de l'effet +1, laisse donc le 2ème -1 (en gros 0 = 1, 1 = 2, etc…) =)
    }
    }
    
    

    3)https://www.minecraftforgefrance.fr/showthread.php?tid=183 ---> Sa marche aussi en 1.7x


  • Administrateurs

    Tu as suivie quel tutoriel pour utiliser Reference.MODID? Ce n'est pas un reproche, juste tu n'es pas le premier à utiliser exactement cette class.



  • Ils suivent tous checonnio84, c'est un mec (je ne le qualifie pas de dev, ou même d'apprentie…) qui fait des vidéos sur youtube, des tutos forge modding 1.7x & 1.8x.
    Un lien vers sa chaîne : https://www.youtube.com/user/checconio84/videos



  • Je suis allez voir la page mais le code robin de 1.6.2 ne marche plus ou en tout cas je n'y arrive pas… voici mon code help:

    public class ItemSwordTest extends ItemSword
    {
       Block ItemTutorial;
       ItemStack itemenchante = new ItemStack(ItemTutorial, 1, 0);
       itemenchante.addEnchantment(Enchantment.fireAspect, 5);
       GameRegistry.addShapelessRecipe(itemenchante, new Object[] {new ItemStack(Item.dyePowder, 1, 15), new ItemStack(Item.dyePowder, 1, 6)});
       public ItemSwordTest(ToolMaterial p_i45356_1_)
       {
           super(p_i45356_1_);
       }
    
    }
    

    Block ItemTutorial je l'ai rajouté essayer de résoudre une erreur a rien a faire.... faite comme si il était pas là.


  • Administrateurs

    Ça ne fonctionne pas surement car il faut mettre ça dans la classe principale, dans la fonction init et non n'importe où dans la classe de ton item.



  • @'robin4002':

    Ça ne fonctionne pas surement car il faut mettre ça dans la classe principale, dans la fonction init et non n'importe où dans la classe de ton item.

    Oui mais du coup comment le jeu sais que c'est mon épée qui faut enchante?

    Envoyé de mon 6039Y en utilisant Tapatalk



  • Tu crées un nouvel ItemStack qui contient ton épée à enchanter dedans. Puis en second lieu tu ajoutes un enchantement fire aspect à cet itemstack. Et enfin tu dis que ce craft te donne cet itemstack. Donc le jeu saura très bien que c'est cet itemstack à craft, avec cet enchantement dessus, et pas n'importe quel autre.



  • Re bonjour j'ai eu un problème avec le pré-enchantement… sa crash quand je créer l'item ^^
    le code l'item:

            ItemStack swordEnchant = new ItemStack(ItemMod.lava_sword, 1);
            swordEnchant.addEnchantment(Enchantment.fireAspect, 10);
    
    

    Et celui du craft:

            GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchant, 1), new Object []{" F ", " F ", " S ", Character.valueOf('F'), ItemMod.fire_ingot, Character.valueOf('S'), ItemMod.stick_iron});
    

    merci de votre aide



  • Donne le code de l'item

    avant essaye sa dans le craft

     GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchante, 1), new Object[] { "XSX", "XSX", "XFX", Character.valueOf('F'), ItemsMod.fire_ingot, Character.valueOf('S'), new ItemStack(ItemMod.stick_iron)}); 
    


  • @'amigo127':

    Donne le code de l'item

    avant essaye sa dans le craft

     GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchante, 1), new Object[] { "XSX", "XSX", "XFX", Character.valueOf('F'), ItemsMod.fire_ingot, Character.valueOf('S'), new ItemStack(ItemMod.stick_iron)}); 
    

    l'item marche très bien car avant que je créer l'item stack sa marchais



  • envoi tes sources via médiafire



  • @'amigo127':

    envoi tes sources via médiafire

    Mes sources ? Ta ce qui te faut là

    Envoyé de mon 6039Y en utilisant Tapatalk



  • Tu crées un stack que tu enchantes, mais le problème est que tu utilises un autre stack dans le GameRegistry, il faut que tu prenne le même. Et ça crash ? Enléves les \ devant les ".

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk



  • @'AymericRed':

    Tu crées un stack que tu enchantes, mais le problème est que tu utilises un autre stack dans le GameRegistry, il faut que tu prenne le même. Et ça crash ? Enléves les \ devant les ".

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

    J'utilise le même et les \ sont des () dans mon code alors où est le problème ?

    Envoyé de mon 6039Y en utilisant Tapatalk



  • Non tu fais new ItemStack à chaque fois.
    Et pourquoi t'a des () autour de tes lettres pour le craft ?

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk



  • alors j'ai pas suivie le sujet mais moi de mon coté j'ai fais  sa

    public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) {
    super.onUpdate(stack, world, entity, par4, par5);
    
    if (stack.isItemEnchanted() == false) {
    stack.addEnchantment(enderdeath.StarsPower, 1);
    
    super.onUpdate(stack, world, entity, par4, par5);
    }
    
    }
    

    elle vérifie si l'item est enchant et si l'item est pas enchant il l'enchant
    Edit:faut méttre sa dans la classe de l'item



  • Ou sinon avec un event déclenché lors du craft (je sais plus son nom), je pense que c'est plus propre.



  • A la limite, tu pourrais procéder avec cet event :

    
    @SubscribeEvent
    public void onItemCrafted(PlayerEvent.ItemCraftedEvent e)
    {
    if(e.crafting != null && e.crafting.getItem().equals(Items.wooden_sword))//Change par ton item
    {
    e.crafting.addEnchantment(Enchantment.fireAspect, 5);
    }
    }
    
    

    A enregistrer sur le bus FML, mais l'enchantement n'apparaîtra qu'au moment où tu as sélectionné ton item crafté.



  • @'AymericRed':

    Ou sinon avec un event déclenché lors du craft (je sais plus son nom), je pense que c'est plus propre.

    Oui c'est plus propre que le code que j'ai fait il va faire plus lag que l'évent