MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

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

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    6 Messages 3 Publieurs 996 Vues 1 Watching
    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.
    • LavaPowerL Hors-ligne
      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
      • DeletedD Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • LavaPowerL Hors-ligne
            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
            • robin4002R Hors-ligne
              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
              • LavaPowerL Hors-ligne
                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
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB