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

    Résolu Augmenter les dégats des flèches par rapport aux arcs

    1.7.x
    1.7.10
    3
    6
    904
    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.
    • LavaPower
      LavaPower dernière édition par

      Bonjour, je souhaite augmenter les dégâts fait par les flèches normales suivant l’arc que le joueur a.

      J’ai donc fait ce code :
      :::

      @SubscribeEvent
         public void onEntityJoin(LivingHurtEvent event)
         {
             if(event.source.isProjectile())
             {
                 if(event.source.getSourceOfDamage() != null && event.source.getSourceOfDamage() instanceof EntityPlayer)
                 {
                     EntityPlayer shooter = (EntityPlayer)event.source.getSourceOfDamage();
                     System.out.println("Touché");
                     if(shooter.inventory.hasItem(ItemMod.Androrium_Bow))
                     {
                         event.ammount += 4;
                     }
                     if(shooter.inventory.hasItem(ItemMod.Axinite_Bow))
                     {
                         event.ammount += 3;
                     }
                     if(shooter.inventory.hasItem(ItemMod.Mangano_Bow))
                     {
                         event.ammount += 2;
                     }
                     if(shooter.inventory.hasItem(ItemMod.Natrolite_Bow))
                     {
                         event.ammount += 1;
                     }
                 }
             }
      

      :::

      Cependant, le System.out.println n’est jamais appelé donc l’augmentation des dégâts ne peut pas avoir lieu

      Pouvez-vous m’aider ?

      Github : http://github.com/LavaPower

      1 réponse Dernière réponse Répondre Citer 0
      • Deleted
        Deleted dernière édition par

        Salut, essaie de mettre des println pour voir où MC arrete de lire ton code.

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

          ❗ Note: instanceof null renvoie false. Donc ton instanceof sert déjà de null check, tu peux le retirer.

          1 réponse Dernière réponse Répondre Citer 0
          • LavaPower
            LavaPower dernière édition par

            En utilisant plusieurs System.out.println, j’ai remarqué que la condition if(event.source.getSourceOfDamage() instanceof EntityPlayer) n’était jamais sur True.
            Je suppose qu’au lieu de retourner le joueur qui a tiré la flèche, elle retourne la flèche mais alors, comment avoir le tireur de celle-ci ?

            EDIT : C’est confirmé car System.out.println(event.source.getSourceOfDamage().getClass()); me retourne class net.minecraft.entity.projectile.EntityArrow

            Github : http://github.com/LavaPower

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              Normalement les dégâts de flèche sont du type IndirectDamageSource et dans cette classe il y a une fonction du genre getIndirectSource qui te permet d’avoir le joueur.

              1 réponse Dernière réponse Répondre Citer 0
              • LavaPower
                LavaPower dernière édition par

                Je suis passé par un autre moyen :

                • Je récupère la flèche avec le event.source.getSourceOfDamage() dans  une variable arrow
                • Je récupère le joueur avec arrow.shootingEntity
                • Je vérifie s’il tiens mon arc moddé, si oui, j’augmente les dégats (event.ammount)

                Merci quand même

                Github : http://github.com/LavaPower

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB