MFF

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

    Enchant, multi texture & doublon

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    17 Messages 3 Publieurs 3.3k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Je ne crois pas qu’on puisse gérer ça. Les achievements sont hardcodé, donc ce n’est pas évidant de faire en sorte qu’un item soit restreint en achievement.

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

        Il est toujours possible de modifier les enums avec l’EnumHelper

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

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

          @‘SCAREX’:

          Il est toujours possible de modifier les enums avec l’EnumHelper

          c’est une piste a explorer, mais j’ai peur que ce soit plus compliquer puisqu’il faut aussi modifier la méthode “canEnchantItem” de l’Enum… Je vais m’y pencher demain moi.

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

            J’up le sujet, car j’ai changé mon problème (plutôt que de créer des nouveau sujet a chaque petit problème ^^')

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

              Il vaut mieux créer un nouveau sujet à chaque fois, comme çà si quelqu’un a le même problème, ce sera plus simple de trouver le sujet.

              Pour les models : regarde dans les logs si le fichier est trouvé.

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

              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

                Les JSON ajoutés avec la fonction getModel doivent être enregistré, je ne connais plus par coeur la fonction, je ne pourrai que te la donner demain soir. (Je suis pas chez moi, je suis sur mon téléphone).

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

                  Alors, sur les log en cours d’exécution, je n’ai pas de message d’erreur indiquant que le fichier est manquant (comme c’étais le cas pour certain autre item).

                  concernant l’enregistrement des fichier .JSON, je l’avais déjà compris. Si j’ai bien compris, il suffit d’enregistrer comme s’il s’agissait d’une autre métadata de l’item

                  
                         Main.proxy.registerItemTexture(this, 0, getUnlocalizedNameAlone(), modid);
                         Main.proxy.registerItemTexture(this, 1, getUnlocalizedNameAlone() + "Using", modid);
                  
                  

                  Le problème est que dans cette ordre, cela fonctionne sans problème pour le modèle par défaut (0), mais pas du tout pour le modèle avec “getModel” (1)

                  En revanche, si j’échange les deux, alors le résultat est inversé. Celui par défaut (0) ne fonctionne pas, en revanche, celui avec “getModel” (1) lui fonctionne ( en utilisant le le modèle enregistrer sur la métadata 1 évidemment ).

                  
                         Main.proxy.registerItemTexture(this, 0, getUnlocalizedNameAlone() + "Using", modid);
                         Main.proxy.registerItemTexture(this, 1, getUnlocalizedNameAlone(), modid);
                  
                  

                  Evidemment, je rappel que les fichier .json sont STRICTEMENT identique, a l’exception du nom

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

                    , getUnlocalizedNameAlone() + “Using” tu disais pas que c’était “_using” ?

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    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

                      C’est cette fonction qu’il te manque
                      :
                      ModelBakery.addVariantName(NHGItems.backStabberKnife, new String[] {NanotechHungerGames.MODID + “:item_back_stabber_normal”, NanotechHungerGames.MODID + “:item_back_stabber_ready”});
                      Premier argument : l’item
                      Deuxième argument : tableau de string avec le nom des JSON.
                      À mettre côté client seulement.

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

                        Il faut mettre cette fonction ou précisément ? J’ai tenter dans clientProxy, mais elle ne semble pas fonctionner, et j’ai tenter dans la classe de mon item comme cela (que j’appelle dans mon constructeur au passage) :

                        @SideOnly(Side.CLIENT)
                        public JScythe multiTexture(String modid)
                        {
                        ModelBakery.addVariantName(this, new String[] {modid + ":" + getUnlocalizedNameAlone(), modid + ":" + getUnlocalizedNameAlone() + "Using"});
                        return this;
                        }
                        

                        Mais cela ne semble pas fonctionné aussi (aucun message d’erreur)

                        EDIT : Autant pour moi, j’avais mal appeler la fonction, j’avais utilisé multiTextue(modid + “:”) mais les “:” étais déjà intégrer ^^"

                        Merci pour la résolution ! 😄

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

                          N’oublie pas la balise résolu.

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

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

                            J’ai hésité a fermer les sujets, puis en ré-ouvrir un, mais au final, j’ai tellement de question en suspense, de chose qui m’échappe sur Forge, qu’au final, j’ai décider d’essayer de faire de se sujet, une sort de FAQ de toute mes questions. Si l’idée ne vous plait pas, n’hésiter pas a le dire, si vraiment, cela s’avères nul, je fermerai le sujet, et en ré-ouvrirai à coté.

                            Maintenant, voila la question actuel :

                            :::
                            Et c’est re partie pour des questions ^^’ Bien dormis au moins ? X)

                            public void onPlayerStoppedUsing(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, int timeLeft)
                            {
                            AxisAlignedBB hitArea;
                            int x = itemStackIn.getMaxItemUseDuration() - timeLeft;
                            if (x > 50)
                            {
                            x = 50;
                            }
                            
                            Double bonus = 1.0D + (x / 25); // 1 + (limite max - temps restant) / tickParSeconde
                            Float damageMultiplier = 0.75F ;
                            
                            rightCombo++;
                            
                            if(playerIn.isSneaking())
                            {
                            hitArea = new AxisAlignedBB(playerIn.posX, playerIn.posY, playerIn.posZ, playerIn.posX + 1.0D, playerIn.posY + 1.0D, playerIn.posZ + 1.0D).expand(bonus, 0.0D, bonus);
                            }
                            else
                            {
                            hitArea = new AxisAlignedBB(playerIn.posX, playerIn.posY + 1.0D, playerIn.posZ, playerIn.posX + 1.0D, playerIn.posY + 2.0D, playerIn.posZ + 1.0D).expand(bonus, 0.0D, bonus);
                            damageMultiplier += 0.5F;
                            }
                            damageMultiplier *= (0.25F + (float) (bonus / 4.0D))*(3.0F/2.0F) * (0.5F/rightCombo + 0.5F);
                            
                            List entityList = playerIn.worldObj.getEntitiesWithinAABBExcludingEntity(playerIn, hitArea);
                            
                            for (int i = 0; i < entityList.size(); i++)
                            {
                            if(entityList.get(i) instanceof EntityLivingBase)
                            {
                            JFunction.dealDamage(playerIn, (EntityLivingBase) entityList.get(i), damageMultiplier, false);
                            }
                            }
                            }
                            
                            

                            Voici ma fonction permettant de gérer mon attaque sur le clic droit.
                            Le problème étant que pour une raison qui m’échappe, la fonction est appeler deux fois à la suite, à chaque fois que je lâche le clic.
                            Les dégâts ne sont bien infliger qu’une fois, le problème étant plus sur la variable combo, qui se retrouve implémenter deux fois trop vite, réduisant les dégât du spam clic bien trop rapidement.

                            Ma question du jour étant : Est ce normal que la fonction s’active deux fois, ou est ce que cela est dus à autre chose (sachant que je n’appelle cette fonction nul part ailleurs)
                            :::

                            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

                              C’est une question de client / serveur. La plupart des méthodes sont appelés une fois en client et une fois en serveur à chaque fois. Donc deux fois au total.
                              Il faut utiliser la condition if(!world.isRemote) pour faire les actions que côté serveur.

                              Petite remarque, dans ton code tu devrais utiliser double et float et non Double et Float. C’est juste un majuscule qui change en apparence, mais float et double sont des primitives alors que Float et Double sont des objets. Et il ne s’exécute pas du tout à la même vitesse.

                              Et oui il est mieux de créer plusieurs discussions de tel sorte que une discussion = un problème.
                              Pour une simple raison, actuellement ta discussion s’appelle “Les petits problèmes à Jodge”. Si quelqu’un a le même problème, jamais il ne viendra voir cette discussion. Et sur google il a aucune chance que cette discussion soit trouvé en tapant “fonction pour obtenir les enchantements d’un item”.
                              À l’inverse avec un titre clair et une discussion par problème on peut trouver beaucoup mieux sur google / avec une recherche sur le fofo.

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

                                Ha ouai, je connaissais pas ^^ Merci pour l’astuce ^^

                                Pour Float ou float, je connais pas la différence de temps d’exécution, donc je te fait confiance ^^

                                Pour la discussion, okay, je clos, le sujet et j’en réouvrirai d’autre ^^

                                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