MFF

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

    Tnt A Plusieurs Nom

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.9.4
    16 Messages 3 Publieurs 2.5k 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

      Peut-être que le name tag supporte le code couleur de MC. Non je n’ai aucune alternative pour débutant, suis celle actuelle, c’est déjà bien !

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

        @‘Plaigon’:

        Peut-être que le name tag supporte le code couleur de MC. Non je n’ai aucune alternative pour débutant, suis celle actuelle, c’est déjà bien !

        Ok merci j’ai finis de le développer et je suis fier pour un début !  😄 😉

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

          Ce que tu as fait ne fonctionnera pas une fois qu’il y aura plusieurs tnt.
          Il faudrait plutôt faire comme ça :

          @SubscribeEvent
          public void TntTag(EntityJoinWorldEvent e) {
          if (e.getEntity() instanceof EntityTNTPrimed) {
          EntityTNTPrimed tnt = (EntityTNTPrimed) e.getEntity();
          tnt.setGlowing(true);
          tnt.setAlwaysRenderNameTag(true);
          }
          }
          
          @SubscribeEvent
          public void tickWorld(TickEvent.WorldTickEvent e) {
          for(Entity entity : e.world.loadedEntityList)
          {
          if(entity instanceof EntityTNTPrimed)
          {
          EntityTNTPrimed tnt = (EntityTNTPrimed) entity;
          tnt.setCustomNameTag(tnt.getFuse()+"");
          }
          }
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • F Hors-ligne
            floflolol
            dernière édition par

            @‘robin4002’:

            Ce que tu as fait ne fonctionnera pas une fois qu’il y aura plusieurs tnt.
            Il faudrait plutôt faire comme ça :

            @SubscribeEvent
            public void TntTag(EntityJoinWorldEvent e) {
            if (e.getEntity() instanceof EntityTNTPrimed) {
            EntityTNTPrimed tnt = (EntityTNTPrimed) e.getEntity();
            tnt.setGlowing(true);
            tnt.setAlwaysRenderNameTag(true);
            }
            }
            
            @SubscribeEvent
            public void tickWorld(TickEvent.WorldTickEvent e) {
            for(Entity entity : e.world.loadedEntityList)
            {
            if(entity instanceof EntityTNTPrimed)
            {
            EntityTNTPrimed tnt = (EntityTNTPrimed) entity;
            tnt.setCustomNameTag(tnt.getFuse()+"");
            }
            }
            }
            

            Je sais merci mais je sais pas si ton systeme est mieux que le mien, car j’ai fais un systeme de liste du coût !

            
            private int tick = 0;
            private int seconde = 0;
            private int maxTick = 20;
            private int maxSeconde = 9;
            
            @SubscribeEvent
                public void TntTag(EntityJoinWorldEvent e){
                    if(e.getEntity() instanceof EntityTNTPrimed && !e.getEntity().world.isRemote){
                    EntityTNTPrimed tnt = (EntityTNTPrimed) e.getEntity();
                    tnt.setGlowing(true);
                    tnt.setAlwaysRenderNameTag(true);
                    tntList.add(tnt);
                    }  
                }
            
            @SubscribeEvent
            public void tickWorld(TickEvent.PlayerTickEvent e){
            if(tntList.size() == 0) return;
            
            EntityTNTPrimed tnt = null;
            tick++;
            onTickSeconde();
            for(int i=0;i<tntlist.size();i++) {<br="">tnt = tntList.get(i);
            if(tnt.getFuse() == 0){
            tntList.remove(i);
            }
            tnt.setCustomNameTag("§"+seconde+tnt.getFuse());
            }
            }
            
            public void onTickSeconde(){
            if(tick >= maxTick){
            tick -= maxTick;
            seconde++;
            }
            
            if(seconde >= maxSeconde){
            seconde -= maxSeconde;
            }
            }
            
            

            Après qu’elle que test visuel la tienne report , merci 😄  (Je l’aurais un jour, je l’aurais) !</tntlist.size();i++)>

            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

              Ta méthode est légèrement plus coûteuse en mémoire comme tu as une array d’éléments qui sont déjà dans une autre array.
              Par contre tu itère sur une liste courte qui ne contient que des EntityTNTPrimed alors que ma méthode itère sur toutes les entités et doit à chaque fois vérifier l’instance de l’entité.

              Ta méthode est donc bien moins gourmande en cpu (surtout quand il y a beaucoup d’autres entités) par rapport à la mienne et je pense que c’est un choix plus pertinent comme mc est principalement limité par le cpu.

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

                @‘robin4002’:

                Ta méthode est légèrement plus coûteuse en mémoire comme tu as une array d’éléments qui sont déjà dans une autre array.
                Par contre tu itère sur une liste courte qui ne contient que des EntityTNTPrimed alors que ma méthode itère sur toutes les entités et doit à chaque fois vérifier l’instance de l’entité.

                Ta méthode est donc bien moins gourmande en cpu (surtout quand il y a beaucoup d’autres entités) par rapport à la mienne et je pense que c’est un choix plus pertinent comme mc est principalement limité par le cpu.

                Du coût c’est bien ou pas ?

                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

                  Tout est dit dans la dernière phrase ^^

                  je pense que c’est un choix plus pertinent comme mc est principalement limité par le cpu.

                  (je parle de ton choix)

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

                    @‘robin4002’:

                    Tout est dit dans la dernière phrase ^^

                    je pense que c’est un choix plus pertinent comme mc est principalement limité par le cpu.

                    (je parle de ton choix)

                    Ok merci de ta réponse !


                    @‘robin4002’:

                    Tout est dit dans la dernière phrase ^^

                    je pense que c’est un choix plus pertinent comme mc est principalement limité par le cpu.

                    (je parle de ton choix)

                    Mais juste, normale que quand j’ajoute 1 tnt dans la liste et se duplique dans la liste ? (C’est Problématique !)

                    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

                      Car l’event EntityJoinWorldEvent est appelé deux fois, une fois en client et une fois en serveur.
                      Ajouter && !e.getEntity().world.isRemote dans la condition devrait régler le problème

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

                        @‘robin4002’:

                        Car l’event EntityJoinWorldEvent est appelé deux fois, une fois en client et une fois en serveur.
                        Ajouter && !e.getEntity().world.isRemote dans la condition devrait régler le problème

                        Merci, 2e question , devrais-je utiliser ma méthode pour renommé les tnt comme ceci ou utiliser un la classe RenderTNTPrimed ?

                        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

                          Tu peux utiliser ta méthode pour faire ça.

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB