Effet de potions que si l'armure est complète.



  • Bonjour,
    il y a peu, j'ai suivis le tutoriel sur la création d'une armure en 1.7.10. Les bonus m'ont beaucoup intéressé et je me demandait comment faire pour que l'effet de potion ne soit disponible que si l'armure est complète et si le joueur brûle.
    J'ai déjà commencé pour la première partie (donc la présence de l'armure complète pour l'effet) mais malheureusement je n'ai pas assez de connaissance !
    Voici mon bout de code, placé dans la classe de mon armure :

     public void onArmorTick(World world, EntityPlayer player, ItemStack stack)
     {
    if(stack.getItem() == MineraisPlus.pyriteHelmet && stack.getItem() ==
    MineraisPlus.pyriteChestplate && stack.getItem() == MineraisPlus.pyriteLeggings && stack.getItem() ==
    MineraisPlus.pyriteBoots)
    {
    player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 20, 0));
    }
    }
    

    Pourriez-vous m'aider pour les deux parties ?
    Merci d'avance !


  • Administrateurs

    http://www.minecraftforgefrance.fr/showthread.php?tid=674#bonus2

    Ensuite nous allons compléter la fonction onLivingHurt. Cette fois je fais appliquer mes effets seulement si le joueur à toute l'armure sur lui. On commence par obtenir l'instance des ItemStack de toute l'armure. Ensuite dans une condition, je vérifie à chaque que fois que l'armure n'est pas null et qu'elle correspond à l'item voulu :

    ItemStack boots = event.entityLiving.getEquipmentInSlot(1);
    ItemStack leggings = event.entityLiving.getEquipmentInSlot(2);
    ItemStack chestPlate = event.entityLiving.getEquipmentInSlot(3);
    ItemStack helmet = event.entityLiving.getEquipmentInSlot(4);
    
    if(boots != null && boots.getItem() == ModTutoriel.bootsTuto && leggings != null && leggings.getItem() == ModTutoriel.leggingsTuto && chestPlate != null && chestPlate.getItem() == ModTutoriel.chestPlateTuto && helmet != null && helmet.getItem() == ModTutoriel.helmetTuto)
    {
    // La suite ici
    }
    

    Il faut lire le tutoriel en entier.



  • Je l'ai bien lus en entier et vus cette partie là, mais elle concerne les événements non ? Ou alors faut ajouter

    LivingFallEvent event
    ``` à ```
    public void onArmorTick(World world, EntityPlayer player, ItemStack stack
    ``` ?

  • Administrateurs

    Cela concerne les événements.



  • Donc comment faire pour les utiliser dans onArmorTick ?


  • Administrateurs

    Pourquoi tu veux le faire dans onArmorTick alors que ça revient au même avec l'event ?
    Après tu peux aussi le faire dans onArmorTick, il faut juste remplacer event.entityLiving par player



  • Merci beaucoup ! Tout fonctionne !
    Dernière petite question, si ça ne te dérange pas, est-il possible de désactiver les particules de l'effet ?
    Merci !


  • Administrateurs

    En 1.7 il me semble que non, par contre en 1.8 il y a un boolean en plus dans PotionEffect pour l'affichage des particules.



  • Okay, bon ba tant pis, merci beaucoup !!!