• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Créer une armure

Les items
1.9.4
8
25
7.3k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • BrokenSwing
    BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par robin4002 21 juin 2018, 15:45 26 juin 2016, 21:50

    Sommaire

    • Introduction
    • Pré-requis
    • Code
      • La classe principale
      • La classe de l’armure
      • Les textures
    • Bonus
    • Résultat

    Introduction

    Nous allons voir comment créer une armure.

    Pré-requis

    • Créer un item simple

    Code

    La classe principale

    Dans la classe principale créez 4 items qui correspondrons aux éléments de votre armure.

    public static final Item tuto_helmet = new TutorielArmor(EntityEquipmentSlot.HEAD).setRegistryName("tuto_helmet").setUnlocalizedName("tuto_helmet");
    public static final Item tuto_chestplate = new TutorielArmor(EntityEquipmentSlot.CHEST).setRegistryName("tuto_chestplate").setUnlocalizedName("tuto_chestplate");
    public static final Item tuto_leggings = new TutorielArmor(EntityEquipmentSlot.LEGS).setRegistryName("tuto_leggings").setUnlocalizedName("tuto_leggings");
    public static final Item tuto_boots = new TutorielArmor(EntityEquipmentSlot.FEET).setRegistryName("tuto_boots").setUnlocalizedName("tuto_boots");

    La classe TutorielArmor n’existe pas, nous allons la créer après.
    Enregistrez les items dans la fonction fonction preInit(FMLPreInitialization event) de votre mod

    GameRegistry.register(tuto_helmet);
    GameRegistry.register(tuto_chestplate);
    GameRegistry.register(tuto_leggings);
    GameRegistry.register(tuto_boots);

    Passons à la classe de l’armure.

    La classe de l’armure :

    Créez la classe de l’armure, je l’ai appelé TutorielArmor comme nous l’avons vu. Faites hériter cette classe de la classe ItemArmor.
    Et mettez le constructeur suivant :

    public TutorielArmor(EntityEquipmentSlot equipmentSlotIn) {
    super(material, 0, equipmentSlotIn);
    }

    Le premier argument est le matériau de votre armure, nous allons le créer après. Le second argument est un id de rendu, mais c’est utiliser pour les
    classes de minecraft, ça ne change rien ici. Le troisième argument est le slot d’armure dans lequel l’objet sera.

    Vous allez créer une variable de classe nommée material de type ArmorMaterial de la façon suivante.

    public static final ArmorMaterial material = EnumHelper.addArmorMaterial("armortuto", ModTutoriel.MODID + ":armortuto", 500, new int[]{4, 6, 7, 3}, 17, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F);

    Ici nous utilisons une classe implémentée par forge afin de créer un matériau d’armure qui estEnumHelper), le premier argument est le nom du matériau, le second est
    le nom de la texture, vous devez mettre sous la forme modid:nomTex, et le jeu ira chercher vos textures (oui il en faut 2) dans
    assets.modid.textures.models.armor.nomTex_layer_1 et assets.modid.textures.models.armor.nomTex_layer_2. Le layer 1 contient tout les éléments
    de l’armure sauf le pantalon, et le layer 2 contient le pantalon. Ensuite vient le troisième argument, c’est la durabilité de l’armure.
    Le tableau d’entier correspond à l’absortion de chaque pièce (bottes, pantalons, plastron, casque), l’argument d’après est le son à jouer lorsqu’on équipe l’armure
    Le dernier argument correspond à la dureté de l’armure, c’est une autre réduction de dégâts.

    Pour préciser quel objet doit être utilisé pour réparer votre armure rajoutez un bloc static en dessous de la déclaration de votre matériau avec le code suivant.

    material.customCraftingMaterial = Items.APPLE;
    

    Ici on réparera l’armure avec une pomme.

    On obtient alors :

    public class TutorielArmor extends ItemArmor {
    public static final ArmorMaterial material = EnumHelper.addArmorMaterial("armortuto", ModTutoriel.MODID + ":armortuto", 500, new int[]{4, 6, 7, 3}, 17, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F);
    static {
    material.customCraftingMaterial = Items.APPLE;
    }
    public TutorielArmor(EntityEquipmentSlot equipmentSlotIn) {
    super(material, 0, equipmentSlotIn);
    }
    }

    Les textures

    Enregistrez les textures d’inventaire comme si c’était des objets normaux, pour le rendu sur le joueur il faut donc, comme dit précédemment,
    placer les textures dans le package assets.modid.textures.models.armor, ce qui me donne :
    assets.modid.textures.models.armor.armortuto_layer_1.png et assets.modid.textures.models.armor.armortuto_layer_2, voici les layers :


    Bonus

    Vous allez vite vous rendre compte que vos armures sont capables de vous rendre invicible et cela en augmentant un peu la résistance du matériau.
    Ici nous allons voir comment personnaliser la résistance de votre armure.

    Dans la classe de votre armure, implémentez l’interface ISpecialArmor
    Cette interface contient 3 fonctions:

    • public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot)
    • public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot)
    • public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot)
      La première renvoie la propriété de résistance pour les paramètres passés, pour les slots, il vont de 0 à 3 dans l’ordre boots, leggings, chestplate, helmet.
      La seconde renvoie le nombre de demi-morceau d’armure à afficher pour les paramètres passés.
      La troisième doit endommager la pièce d’armure donnée en fonction des paramètres passés.

    Nous allons commencer avec la première :

    @Override
    public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
    }

    Nous allons d’abord créer un switch suivant le slot donné

    @Override
    public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
    switch(slot) {
    case 3: //Helmet
    return null;
    case 2: //Chestplate
    return null;
    case 1: //Leggings
    return null;
    case 0: //Boots
    return null;
    default: //Nothing, to disable eclipse warning
    return null;
    }
    }

    Voilà nous avons le switch, maintenant il faut créer les ArmorProperties à retourner, regardons d’abord le constructeur de ce dernier.

    ArmorProperties(int priority, double ratio, int max)
    

    Bon, ici nous avons des variables qui sont utilisée pour le calcul de réduction des dégâts, il faut d’abord que je vous explique comment va être calculé
    la réduction.
    Pour faire simple, tout les objets avec une priorité égale à 0 vont additionner leur ratio, puis la réduction sera calculée de la façon suivante :

    reduction = damage * totalRatio;
    //Ainsi :
    damage -= damage * totalRatio;

    Je vous rappelle que totalRatio est l’addition de tout les ratios de priorité 0.
    Le code est fait de façon à ce que le ratio total ne dépasse pas 1, on ne peut pas infliger des dégâts négatifs.
    Le processus est répété pour toutes les priorités dans l’ordre croissant, le ratio est remis à 0 entre chaque priorité.
    Si durant le processus, les dégâts sont réduits de telle sorte qu’ils deviennent nuls les éléments d’armure suivants ne réduiront pas les dégâts et ne seront
    donc pas endommagés. Donc les pièces d’armure avec la priorité la plus haute seront endommagés en dernières.
    La réduction des dégâts d’une pièce d’armure ne peux pas être supérieur à la variable max que vous rentrez dans les paramètres du constructeur d’AmorProperties
    Ainsi :

    • priority : permet de définir l’ordre de réduction des dégâts
    • ratio : ratio de réduction des dégâts (entre 0 et 1)
    • max : réduction maximum des dégâts par la pièce d’armure (en demi-coeur)
      Grâce à la fonction getProperties on va pouvoir faire pleins de trucs, ici je vais réduire les dégâts de noyade seulement avec le casque,
      les dégâts de chute seulement avec les bottes et sinon je réduirai avec l’armure entière.
    @Override
    public ArmorProperties getProperties(EntityLivingBase entity, ItemStack armor, DamageSource source, double damage, int slot) {
    if(source == DamageSource.drown) {
    return slot == 3 ? new ArmorProperties(0, 0.2, 10) : new ArmorProperties(0, 0, 0);
    }
    if(source == DamageSource.fall) {
    return slot == 0 ? new ArmorProperties(0, 0.5, 10) : new ArmorProperties(0, 0, 0);
    }
    switch(slot) {
    case 3:
    return new ArmorProperties(1, 0.05, 10);
    case 2:
    return new ArmorProperties(0, 0.2, 15);
    case 1:
    return new ArmorProperties(0, 0.3, 18);
    case 0:
    return new ArmorProperties(1, 0.04, 6);
    default:
    return new ArmorProperties(0, 0, 0);
    }
    }

    Les possibilités sont nombreuses, comme nous venons de le voir une pièce de l’armure peut être très resistante à une certaine source
    de dégât et moins à une autre. Si l’entité est dans le nether, l’armure peut protéger contre les dégâts de feu, mais si l’entité est dans l’overworld
    l’armure ne protège plus contre les dégâts de feu.
    Les résistances que vous définissez ici annulent celles données par le matériau.

    La seconde fonction permet de définir le nombre le demi-plastron à affiché, je ne vais pas passer une heure dessus :

    @Override
    public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) {
    switch(slot) {
    case 0:
    return 4; //Deux plastrons
    case 1:
    return 6; //Trois plastrons
    case 2:
    return 7; //Trois plastrons et demi
    case 3:
    return 3; //Un plastron et demi
    default:
    return 0;
    }
    }

    La dernière est appelée pour endommager l’armure, ici je vais décider d’endommager l’armure de seulement la moitié des dégâts qu’elle absorbe

    @Override
    public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) {
    stack.damageItem(damage / 2, entity);
    if(stack.getItemDamage() >= stack.getMaxDamage()) {
    stack.stackSize--;
    }
    }

    On a donc en classe finale :

    public class TutorielArmor extends ItemArmor implements ISpecialArmor {
    public static final ArmorMaterial material = EnumHelper.addArmorMaterial("armortuto", ModTutoriel.MODID + ":armortuto", 500, new int[]{4, 6, 7, 3}, 17, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F);
    static {
    material.customCraftingMaterial = Items.APPLE;
    }
    public TutorielArmor(EntityEquipmentSlot equipmentSlotIn) {
    super(material, 0, equipmentSlotIn);
    }
    @Override
    public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
    if(source == DamageSource.drown) {
    return slot == 3 ? new ArmorProperties(0, 0.2, 10) : new ArmorProperties(0, 0, 0);
    }
    if(source == DamageSource.fall) {
    return slot == 0 ? new ArmorProperties(0, 0.5, 10) : new ArmorProperties(0, 0, 0);
    }
    switch(slot) {
    case 3:
    return new ArmorProperties(1, 0.05, 10);
    case 2:
    return new ArmorProperties(0, 0.2, 15);
    case 1:
    return new ArmorProperties(0, 0.3, 18);
    case 0:
    return new ArmorProperties(1, 0.04, 6);
    default:
    return new ArmorProperties(0, 0, 0);
    }
    }
    @Override
    public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) {
    switch(slot) {
    case 0:
    return 4; //Deux plastrons
    case 1:
    return 6; //Trois plastrons
    case 2:
    return 7; //Trois plastrons et demi
    case 3:
    return 3; //Un plastron et demi
    default:
    return 0;
    }
    }
    @Override
    public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) {
    stack.damageItem(damage / 2, entity);
    if(stack.getItemDamage() >= stack.getMaxDamage()) {
    stack.stackSize--;
    }
    }
    }

    Résultat

    Voici le rendu en jeu :

    Voir le commit sur GitHub

    1 réponse Dernière réponse Répondre Citer 0
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 26 juin 2016, 21:57

      Plus besoin de la fonction getArmorTexture en 1.9.4 ?!?

      1 réponse Dernière réponse Répondre Citer 0
      • BrokenSwing
        BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 26 juin 2016, 21:59

        Non plus besoin, elle existe toujours mais en faisant comme ça, ça marche

        1 réponse Dernière réponse Répondre Citer 0
        • LeBossMax2
          LeBossMax2 dernière édition par 26 juin 2016, 22:18

          Je crois que tu t’es trompé quand tu montre le classe de l’armure finie (avant le bonus et juste avant “Les textures”), tu a mis " implements ISpecialArmor" alors que tu ne l’utilise pas encore.

          1 réponse Dernière réponse Répondre Citer 0
          • BrokenSwing
            BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 27 juin 2016, 04:12

            Oui t’a raison, je le ferai ce soir là j’ai pas le temps
            EDIT : Je l’ai enlevé, dites si il y a d’autre trucs dans ce genre parce que je pars de la fin du code pour faire le tutoriel, donc il y a des morceaux comme celui-ci qui peuvent se perdre

            1 réponse Dernière réponse Répondre Citer 0
            • L
              Laserflip33 dernière édition par 25 oct. 2016, 14:06

              Salut, merci pour le tuto! J’aimerai que lorsque le joueur porte un pantalon, il lui soit possible de fly en gamemode 0, et quand il retire le pantalon, il ne garde pas le fly.

              J’ai essayé ceci :

              public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack itemStack) 
                  {
                      if (EntityEquipmentSlot.LEGS != null) 
                      {
                          EntityEquipmentSlot legs = EntityEquipmentSlot.LEGS;
                          if (legs.getItem() == TestModItems.PANTALON)
                          {
                              player.fallDistance = 0.0F;
                              player.capabilities.allowFlying = true;
                          }
                          else 
                          {
                              player.capabilities.allowFlying = false;
                              player.capabilities.isFlying = false;
                          }
                      }
                  }

              Qui me semble correct mais j’ai une erreur sur le getItem

              Merci d’avance  😉

              1 réponse Dernière réponse Répondre Citer 0
              • AymericRed
                AymericRed dernière édition par 25 oct. 2016, 16:54

                Quelle est cette erreur, un problème de cast ou la fonction qui n’existe pas ?

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                1 réponse Dernière réponse Répondre Citer 0
                • L
                  Laserflip33 dernière édition par 25 oct. 2016, 16:56

                  @‘AymericRed’:

                  Quelle est cette erreur, un problème de cast ou la fonction qui n’existe pas ?

                  " The method getItem() is undefined for the type EntityEquipmentSlot "

                  1 réponse Dernière réponse Répondre Citer 0
                  • LeBossMax2
                    LeBossMax2 dernière édition par 25 oct. 2016, 17:16

                    @‘Laserflip33’:

                    @‘AymericRed’:

                    Quelle est cette erreur, un problème de cast ou la fonction qui n’existe pas ?

                    " The method getItem() is undefined for the type EntityEquipmentSlot "

                    C’est normal, getItem() n’existe pas sur les EntityEquipmentSlot je pense que tu devrais mettre “itemStack.getItem() == TestModItems.PANTALON” à la place de “legs.getItem() == TestModItems.PANTALON”.
                    Ensuite, “EntityEquipmentSlot.LEGS != null” n’a aucun sens car EntityEquipmentSlot.LEGS n’est jamais null.

                    1 réponse Dernière réponse Répondre Citer 0
                    • L
                      Laserflip33 dernière édition par 25 oct. 2016, 18:31

                      @‘LeBossMax2’:

                      @‘Laserflip33’:

                      @‘AymericRed’:

                      Quelle est cette erreur, un problème de cast ou la fonction qui n’existe pas ?

                      " The method getItem() is undefined for the type EntityEquipmentSlot "

                      C’est normal, getItem() n’existe pas sur les EntityEquipmentSlot je pense que tu devrais mettre “itemStack.getItem() == TestModItems.PANTALON” à la place de “legs.getItem() == TestModItems.PANTALON”.
                      Ensuite, “EntityEquipmentSlot.LEGS != null” n’a aucun sens car EntityEquipmentSlot.LEGS n’est jamais null.

                      Merci. En faisant ça, je ne peux pas fly. J’ai changé onArmorTickUpdate en orArmorTick et je peux désormais fly, mais le soucis c’est que si j’enlève le pantalon du slot je peux tout de même continuer à fly … Mon code ressemble à ça :

                      public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) 
                          {
                              if (itemStack.getItem() == TestModItems.PANTALON)
                              {
                                  player.fallDistance = 0.0F;
                                  player.capabilities.allowFlying = true;
                              }
                              else 
                              {
                                  player.capabilities.allowFlying = false;
                                  player.capabilities.isFlying = false;
                              }
                          }

                      En fait j’aimerai que le joueur ne puisse fly QUE si le pantalon est équipé, pas si il est seulement dans l’inventaire. Et qu’il ne puisse plus fly si le pantalon est déséquipé, bien que présent dans l’inventaire.

                      1 réponse Dernière réponse Répondre Citer 0
                      • AymericRed
                        AymericRed dernière édition par 27 oct. 2016, 10:28

                        Pour désactiver le fly quand le joueur n’a plus d’armure, il faut que tu utilises un évent dupdate comme LivingUpdateEvent.

                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                        1 réponse Dernière réponse Répondre Citer 0
                        • L
                          Laserflip33 dernière édition par 27 oct. 2016, 12:08

                          @‘AymericRed’:

                          Pour désactiver le fly quand le joueur n’a plus d’armure, il faut que tu utilises un évent dupdate comme LivingUpdateEvent.

                          Ok merci 😉

                          1 réponse Dernière réponse Répondre Citer 0
                          • Z
                            zkiller20 dernière édition par 20 janv. 2017, 20:28

                            Bonjour a tous,

                            j’essais de faire la même chose en 1.10.2 mais j’ai le meme soucis, quand ont enlève le chestplate ont vol toujours au lieux de tomber par terre.
                            En plus sur server ont a des Fall Domage quand ont atterri sur le sol mais pas sur le singleplayer.

                            public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
                               {
                                   if (itemStack.getItem() == armorFly.ChestPlate)
                                   {
                                       player.fallDistance = 0.0F;
                                       player.capabilities.allowFlying = true;
                                   }
                            
                                   else
                                   {
                                       player.capabilities.allowFlying = false;
                                       player.capabilities.isFlying = false;
                                   }
                               }
                            

                            Si quelqu’un pourrait m’aider sa serait bien apprécier, je débute en java.

                            1 réponse Dernière réponse Répondre Citer 0
                            • AymericRed
                              AymericRed dernière édition par 20 janv. 2017, 21:12

                              Avec le code que tu as actuellement, le code dans le else n’est jamais exécuté car l’item est toujours égal à celui dans le else, ce qu’il faut que tu fasses c’est regarder si l Item retourné par player.getAmorItemInSlot(1) est le bon (je suis pas sur du tout du nom par contre)

                              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                              1 réponse Dernière réponse Répondre Citer 0
                              • M
                                MissChey dernière édition par 29 mars 2017, 17:53

                                Me revoilà avec mes déboires de débutante qui galère…

                                J’ai suivi le tuto à la lettre, Eclipse ne me signale aucune erreur, et pourtant, quand je lance le jeu, la texture de mon armure sur le joueur ne s’affiche pas  😐

                                Je suis sûre que c’est une petite erreur de rien du tout, mais je cherche depuis des heures, et je ne trouve pas le problème, alors si quelqu’un a une idée, je suis preneuse!

                                Voici le code de la classe de mon armure:

                                package fr.misschey.westworld.items;
                                import fr.misschey.westworld.WestWorld;
                                import net.minecraft.init.SoundEvents;
                                import net.minecraft.inventory.EntityEquipmentSlot;
                                import net.minecraft.item.ItemArmor;
                                import net.minecraftforge.common.util.EnumHelper;
                                public class CowboyArmor extends ItemArmor {
                                public CowboyArmor(EntityEquipmentSlot equipmentSlotIn) {
                                super(material, 0, equipmentSlotIn);
                                }
                                public static final ArmorMaterial material = EnumHelper.addArmorMaterial("cowboy", WestWorld.MODID + ":cowboy", 500, new int[]{3, 6, 8, 3}, 25, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 2.0F);
                                }
                                1 réponse Dernière réponse Répondre Citer 0
                                • M
                                  MissChey dernière édition par 29 mars 2017, 18:01

                                  Me revoilà avec mes déboires de débutante qui galère.

                                  J’ai suivi le tuto à la lettre, Eclipse ne me signale aucune erreur, pourtant, quand je lance le jeu, la texture de mon armure sur le joueur de s’affiche pas…

                                  La texture est au bon endroit, dans le bon dossier, avec le bon nom, pas de problème de majuscule/minuscule… bref, je cherche depuis des heures et je ne vois pas le problème, donc si quelqu’un a une idée, je suis preneuse!

                                  Voici le code de la classe de mon armure:

                                  package fr.misschey.westworld.items;
                                  import fr.misschey.westworld.WestWorld;
                                  import net.minecraft.init.SoundEvents;
                                  import net.minecraft.inventory.EntityEquipmentSlot;
                                  import net.minecraft.item.ItemArmor;
                                  import net.minecraftforge.common.util.EnumHelper;
                                  public class CowboyArmor extends ItemArmor {
                                  public static final ArmorMaterial material = EnumHelper.addArmorMaterial("cowboy", WestWorld.MODID + ":cowboy", 500, new int[]{3, 6, 8, 3}, 25, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 2.0F);
                                  public CowboyArmor(EntityEquipmentSlot equipmentSlotIn) {
                                  super(material, 0, equipmentSlotIn);
                                  }
                                  }

                                  Edit: Je suis en 1.11.2

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 29 mars 2017, 18:04

                                    Est-ce qu’il y a des erreurs dans les logs ?

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • M
                                      MissChey dernière édition par 29 mars 2017, 18:08

                                      Voilà ce qui s’affiche dans la console quand je lance le jeu:

                                      2017-03-29 20:05:52,634 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                                      2017-03-29 20:05:52,636 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                                      [20:05:52] [main/INFO] [GradleStart]: Extra: []
                                      [20:05:52] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Fujitsu/.gradle/caches/minecraft/assets, --assetIndex, 1.11, --accessToken{REDACTED}, --version, 1.11.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
                                      [20:05:52] [main/INFO] [FML]: Forge Mod Loader version 13.20.0.2260 for Minecraft 1.11.2 loading
                                      [20:05:52] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_121, running on Windows 10:x86:10.0, installed at C:\Program Files (x86)\Java\jre1.8.0_121
                                      [20:05:52] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
                                      [20:05:52] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
                                      [20:05:52] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                                      [20:05:52] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                                      [20:05:53] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
                                      [20:05:55] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
                                      [20:05:55] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
                                      2017-03-29 20:05:56,348 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                                      2017-03-29 20:05:56,405 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                                      2017-03-29 20:05:56,407 WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
                                      [20:05:56] [Client thread/INFO]: Setting user: Player171
                                      [20:06:01] [Client thread/WARN]: Skipping bad option: lastServer:
                                      [20:06:01] [Client thread/INFO]: LWJGL Version: 2.9.4
                                      [20:06:03] [Client thread/INFO]: [STDOUT]: –-- Minecraft Crash Report ----
                                      // You're mean.
                                      Time: 3/29/17 8:06 PM
                                      Description: Loading screen debug info
                                      This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR
                                      A detailed walkthrough of the error, its code path and all known details is as follows:
                                      ---------------------------------------------------------------------------------------
                                      -- System Details --
                                      Details:
                                      Minecraft Version: 1.11.2
                                      Operating System: Windows 10 (x86) version 10.0
                                      Java Version: 1.8.0_121, Oracle Corporation
                                      Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
                                      Memory: 940043968 bytes (896 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
                                      JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                                      IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                                      FML:
                                      Loaded coremods (and transformers):
                                      GL info: ' Vendor: 'NVIDIA Corporation' Version: '3.3.0' Renderer: 'GeForce 9300M GS/PCIe/SSE2'
                                      [20:06:03] [Client thread/INFO] [FML]: MinecraftForge v13.20.0.2260 Initialized
                                      [20:06:03] [Client thread/INFO] [FML]: Replaced 232 ore recipes
                                      [20:06:03] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
                                      [20:06:03] [Client thread/INFO] [FML]: Searching C:\Users\Fujitsu\Desktop\Forge1.11\run\mods for mods
                                      [20:06:05] [Client thread/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
                                      [20:06:05] [Client thread/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, westworld] at CLIENT
                                      [20:06:05] [Client thread/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, westworld] at SERVER
                                      [20:06:05] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:WestWorld
                                      [20:06:06] [Client thread/INFO] [FML]: Processing ObjectHolder annotations
                                      [20:06:06] [Client thread/INFO] [FML]: Found 444 ObjectHolder annotations
                                      [20:06:06] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations
                                      [20:06:06] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations
                                      [20:06:06] [Client thread/INFO] [FML]: Applying holder lookups
                                      [20:06:06] [Client thread/INFO] [FML]: Holder lookups applied
                                      [20:06:06] [Client thread/INFO] [FML]: Applying holder lookups
                                      [20:06:06] [Client thread/INFO] [FML]: Holder lookups applied
                                      [20:06:06] [Client thread/INFO] [FML]: Applying holder lookups
                                      [20:06:06] [Client thread/INFO] [FML]: Holder lookups applied
                                      [20:06:06] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
                                      [20:06:06] [Forge Version Check/INFO] [ForgeVersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
                                      [20:06:06] [Client thread/INFO] [FML]: Applying holder lookups
                                      [20:06:06] [Client thread/INFO] [FML]: Holder lookups applied
                                      [20:06:06] [Client thread/INFO] [FML]: Injecting itemstacks
                                      [20:06:06] [Client thread/INFO] [FML]: Itemstack injection complete
                                      [20:06:06] [Forge Version Check/INFO] [ForgeVersionCheck]: [forge] Found status: AHEAD Target: null
                                      [20:06:21] [Sound Library Loader/INFO]: Starting up SoundSystem…
                                      [20:06:21] [Thread-8/INFO]: Initializing LWJGL OpenAL
                                      [20:06:21] [Thread-8/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
                                      [20:06:22] [Thread-8/INFO]: OpenAL initialized.
                                      [20:06:22] [Sound Library Loader/INFO]: Sound engine started
                                      [20:06:27] [Client thread/INFO] [FML]: Max texture size: 8192
                                      [20:06:27] [Client thread/INFO]: Created: 16x16 textures-atlas
                                      [20:06:28] [Client thread/INFO] [FML]: Injecting itemstacks
                                      [20:06:28] [Client thread/INFO] [FML]: Itemstack injection complete
                                      [20:06:28] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 5 mods
                                      [20:06:28] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:WestWorld
                                      [20:06:32] [Client thread/INFO]: SoundSystem shutting down…
                                      [20:06:32] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
                                      [20:06:32] [Sound Library Loader/INFO]: Starting up SoundSystem…
                                      [20:06:32] [Thread-10/INFO]: Initializing LWJGL OpenAL
                                      [20:06:32] [Thread-10/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
                                      [20:06:32] [Thread-10/INFO]: OpenAL initialized.
                                      [20:06:33] [Sound Library Loader/INFO]: Sound engine started
                                      [20:06:37] [Client thread/INFO] [FML]: Max texture size: 8192
                                      [20:06:38] [Client thread/INFO]: Created: 512x512 textures-atlas
                                      [20:06:40] [Client thread/WARN]: Skipping bad option: lastServer:
                                      [20:06:42] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 29 mars 2017, 18:24

                                        Rien concernant la texture.
                                        Étrange. Tu peux envoyer un screenshot de src/main/resources sur eclipse ?

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • M
                                          MissChey dernière édition par robin4002 21 sept. 2018, 20:26 29 mars 2017, 18:36

                                          Quelque part, ça me rassure que ça soit pas un truc énorme et évident que j’aurai pas vu  😛

                                          Voilà:
                                          0_1537561571872_erreur3.jpg

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 1 / 2
                                          1 sur 25
                                          • Premier message
                                            1/25
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB