MFF

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

    Ailes,Monture,item qui permet de spawn une entity,MultiTool

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    41 Messages 7 Publieurs 6.6k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Pourquoi faire compliqué quand on peut faire simple x)

      
      @SubscribeEvent
      public void livingEntity(LivingUpdateEvent event)
      {
      if (event.entityLiving instanceof EntityPlayer)
      {
      EntityPlayer player = (EntityPlayer)event.entityLiving;
      if((player.getCurrentArmor(0) || player.getCurrentArmor(1) || player.getCurrentArmor(2) || player.getCurrentArmor(3)) && (player.getCurrentArmor(0).getItem() == TaClasseMod.tonCasque || player.getCurrentArmor(0).getItem() == TaClasseMod.tonPlastron || player.getCurrentArmor(0).getItem() == TaClasseMod.tesJambieres || player.getCurrentArmor(0).getItem() == TaClasseMod.tesBottes))
      player.capabilities.isFlying = true;
      else
      player.capabilities.isFlying = false;
      }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • DylemD Hors-ligne
        Dylem
        dernière édition par

        @‘Plaigon’:

        Pourquoi faire compliqué quand on peut faire simple x)

        
        @SubscribeEvent
        public void livingEntity(LivingUpdateEvent event)
        {
        if (event.entityLiving instanceof EntityPlayer)
        {
        EntityPlayer player = (EntityPlayer)event.entityLiving;
        if((player.getCurrentArmor(0) || player.getCurrentArmor(1) || player.getCurrentArmor(2) || player.getCurrentArmor(3)) && (player.getCurrentArmor(0).getItem() == TaClasseMod.tonCasque || player.getCurrentArmor(0).getItem() == TaClasseMod.tonPlastron || player.getCurrentArmor(0).getItem() == TaClasseMod.tesJambieres || player.getCurrentArmor(0).getItem() == TaClasseMod.tesBottes))
        player.capabilities.isFlying = true;
        else
        player.capabilities.isFlying = false;
                         }
               }
        
        

        Je crois que tu n’as pas compris son problème… Il veut voler seulement 5 secondes (et en quoi c’est plus simple d’écrire 10 lignes au lieu de 2 ? x)

        [size=smallJe peut toujours volé à l’infini]

        Essaie de cast dans un booléen différent, je testerai ce soir si je fais pas de soirée

        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

          Le formatteur de mff a fait plein de retour a la ligne, chez moi sa n en fait pas autant.
          Apres si il veut juste 5 sec a lui d adapter son code avec la variable world.getTotalWorldTime()
          Et puis @Dylem, essaie au moins d adapter ton code avec getTotalWorldTime(), sinon il devra enregistrer la var counter dans les tags de l item, ce qui au final ne sera pas une solution + facile…

          1 réponse Dernière réponse Répondre Citer 0
          • DylemD Hors-ligne
            Dylem
            dernière édition par

            Bon, j’ai la réponse au sujet, en tout cas chez moi ça marche (avec une pomme, donc rajoute une condition si l’armure est portée) , mets ce code dans ta classe qui gère les évènements:

            
            private long temp;
            
            @SubscribeEvent
            public void fly(LivingUpdateEvent e) {
                if(e.entity instanceof EntityPlayer) {
                    EntityPlayer player = (EntityPlayer)e.entity;
                    player.capabilities.allowFlying = player.inventory.hasItem(Items.apple) && this.temp > 0;
                    this.temp = !player.inventory.hasItem(Items.apple) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                    if(!player.capabilities.allowFlying)
                        player.capabilities.isFlying = false
                }
            }
            
            

            @Plaigon J’ai pas utilisé le getTotalWorldTime() car je sais pas comment il marche, il me semble que c’est relatif au temps de minecraft ? Dans tous les cas ça fonctionnera mieux en utilisant une clock basique 🙂

            Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

            1 réponse Dernière réponse Répondre Citer 0
            • leo01418L Hors-ligne
              leo01418
              dernière édition par

              private long temp;
              
              @SubscribeEvent
              public void fly(LivingUpdateEvent e) {
              if(this.armorType == 1)
              {
                 if(e.entity instanceof EntityPlayer) {
                     EntityPlayer player = (EntityPlayer)e.entity;
                     player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.FeatherChestplate) && this.temp > 0;
                     this.temp = !player.inventory.hasItem(enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                     if(!player.capabilities.allowFlying)
                         player.capabilities.isFlying = false;
                 }
              }
              }
              
              

              comme sa ???

              Voila ma signature

              1 réponse Dernière réponse Répondre Citer 0
              • DylemD Hors-ligne
                Dylem
                dernière édition par

                @‘leo01418’:

                private long temp;
                
                @SubscribeEvent
                public void fly(LivingUpdateEvent e) {
                if(this.armorType == 1)
                {
                   if(e.entity instanceof EntityPlayer) {
                       EntityPlayer player = (EntityPlayer)e.entity;
                       player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.FeatherChestplate) && this.temp > 0;
                       this.temp = !player.inventory.hasItem(enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                       if(!player.capabilities.allowFlying)
                           player.capabilities.isFlying = false;
                   }
                }
                }
                 
                

                comme sa ???

                non, this ne fonctionnera pas ici. Tu es bien dans ta classe qui enregistre tes évènements ?

                Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                1 réponse Dernière réponse Répondre Citer 0
                • leo01418L Hors-ligne
                  leo01418
                  dernière édition par

                  Nn j’ai mis sa dans ma classe de l’armure

                  Voila ma signature

                  1 réponse Dernière réponse Répondre Citer 0
                  • DylemD Hors-ligne
                    Dylem
                    dernière édition par

                    @‘leo01418’:

                    Nn j’avais mis sa dans ma classe de l’armure

                    Le code pour toi c’est ça :

                    
                    private long temp;
                    
                    @SubscribeEvent
                    public void fly(LivingUpdateEvent e) {
                        if(e.entity instanceof EntityPlayer) {
                            EntityPlayer player = (EntityPlayer)e.entity;
                            this.temp = !(player.inventory.armorInventory[1].getItem() == enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                            player.capabilities.allowFlying = this.temp > 0;
                            if(!player.capabilities.allowFlying)
                                player.capabilities.isFlying = false;
                        }
                    }
                    
                    

                    Cependant tu dois le mettre dans une classe qui enregistre tes évènements, y’a pleins de tutos pour ça.

                    Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                    1 réponse Dernière réponse Répondre Citer 0
                    • leo01418L Hors-ligne
                      leo01418
                      dernière édition par

                      j’ai mis sa ```java
                      private long temp;

                      @SubscribeEvent
                      public void fly(LivingUpdateEvent e) {
                          if(e.entity instanceof EntityPlayer) {
                              EntityPlayer player = (EntityPlayer)e.entity;
                              player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.FeatherChestplate) && this.temp > 0;
                              this.temp = !player.inventory.hasItem(enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                              if(!player.capabilities.allowFlying)
                                  player.capabilities.isFlying = false;
                          }
                      }

                      
                      Sa marche mais j'arrive pas à revolé

                      Voila ma signature

                      1 réponse Dernière réponse Répondre Citer 0
                      • DylemD Hors-ligne
                        Dylem
                        dernière édition par

                        essaie de jeter l’item et de le reprendre et la tu pourras revoler, c’est pas ce que tu voulais ?

                        PS: Je vais pas te faire tout ton code à chaque fois, essaie de suivre un tuto java

                        Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                        1 réponse Dernière réponse Répondre Citer 0
                        • leo01418L Hors-ligne
                          leo01418
                          dernière édition par

                          Au faite je peux volé quand je met le plastron et que je l’enlevé je peux volé un certain temps,le codage sert à rechargé le temps de vol?

                          Ps:Excuse-Moi j’essaierais de me débrouillé tout seul

                          Voila ma signature

                          1 réponse Dernière réponse Répondre Citer 0
                          • Snowy_1803S Hors-ligne
                            Snowy_1803
                            dernière édition par

                            N’oublie pas le player.sendPlayerAbilities()

                            Moddeur 1.8

                            Développeur Java

                            1 réponse Dernière réponse Répondre Citer 0
                            • DylemD Hors-ligne
                              Dylem
                              dernière édition par

                              @‘Snowy_1803’:

                              N’oublie pas le player.sendPlayerAbilities()

                              chez moi ça marche sans.

                              [size=smallAu faite je peux volé quand je met le plastron et que je l’enlevé je peux volé un certain temps,le codage sert à rechargé le temps de vol?]

                              Si t’as copié mon dernier code normalement quand tu l’enlèves tu tombes, mais il faut que tu vérifies que l’ItemStack est pas null dans la première condition ternaire.

                              Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                              1 réponse Dernière réponse Répondre Citer 0
                              • leo01418L Hors-ligne
                                leo01418
                                dernière édition par

                                Au faite quand je met le plastron je peux volé une fois et ensuite je peux l’avoir pendant 10 minutes je peux pas revolée donc je dois enlevée le plastron le remettre et la je n’arrive plus à revolé et je dois enlevé le plastron pour revolé et j’ai mis sa dans ma classe d’évent

                                Voila ma signature

                                1 réponse Dernière réponse Répondre Citer 0
                                • DylemD Hors-ligne
                                  Dylem
                                  dernière édition par

                                  @‘leo01418’:

                                  Au faite quand je met le plastron je peux volé une fois et ensuite je peux l’avoir pendant 10 minutes je peux pas revolée donc je dois enlevée le plastron le remettre et la je n’arrive plus à revolé et je dois enlevé le plastron pour revoler

                                  Oui, c’est ce que le code fait. Si tu veux qu’après 5 autres secondes tu puisse revoler y’a pas grand chose à changer, je te laisse le deviner par toi-même je suis au taff la.

                                  Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • leo01418L Hors-ligne
                                    leo01418
                                    dernière édition par

                                    Ok Excuse x)

                                    Voila ma signature

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

                                      Le problème avec le code de @Dylem, c’est que la variable temp est commune à tous les joueurs. Essaie ton code en multi, tu verras que tous les joueurs partagent la même valeur. Essaie soit d’adapter ton code sans utiliser de variable, soit de te servir de world.getTotalWorldTime() (genre if (world.getTotalWorldTime % 5 * 20 == 0)) ou encore soit d’enregistrer ta variable temp dans les tags du joueur.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • leo01418L Hors-ligne
                                        leo01418
                                        dernière édition par

                                        Oui j’ai testé et tout les joueur partage la même  valeur
                                        Mais je ne vois pas comme faire

                                        Voila ma signature

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • leo01418L Hors-ligne
                                          leo01418
                                          dernière édition par

                                          Comme Sa

                                          private long temp;
                                          private World world;
                                          
                                          @SubscribeEvent
                                          public void fly(LivingUpdateEvent e) {
                                             if(e.entity instanceof EntityPlayer) 
                                             { 
                                              if(world.getTotalWorldTime() % 5 * 20 == 0);
                                          {
                                           EntityPlayer player = (EntityPlayer)e.entity;
                                                 player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.StickFly) && this.temp > 0;
                                                 this.temp = !player.inventory.hasItem(enderdeath.StickFly) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
                                          if(!player.capabilities.allowFlying)
                                                  player.capabilities.isFlying = false;
                                          
                                          }
                                          
                                             }
                                          }
                                          

                                          Voila ma signature

                                          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

                                            -> tag nbt.
                                            Et non, pas comme ça, la world est null, tu vas te manger un npe.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB