MFF

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

    Problème onUpdate avec mon arc.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    44 Messages 6 Publieurs 7.2k 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 viens de formater le code et j’ai tout de suite vu le problème :

         @Override// Prob ici
         public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
         {
             if(usingItem != null && usingItem.getItem() == LegacyMod.FlameBow)
                 ;
             {
                 int k = usingItem.getMaxItemUseDuration() - useRemaining;
                 if(k >= 18)
                     return iconArray[2];
                 if(k > 13)
                     return iconArray[1];
                 if(k > 0)
                     return iconArray[0];
             }
             return getIconIndex(stack);
         }
      

      Pourquoi il y a un ; après la condition ? C’est lui qui cause problème.

      1 réponse Dernière réponse Répondre Citer 1
      • GabsG Hors-ligne
        Gabs
        dernière édition par

        @‘robin4002’:

        Je viens de formater le code et j’ai tout de suite vu le problème :

           @Override// Prob ici
           public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
           {
               if(usingItem != null && usingItem.getItem() == LegacyMod.FlameBow)
                   ;
               {
                   int k = usingItem.getMaxItemUseDuration() - useRemaining;
                   if(k >= 18)
                       return iconArray[2];
                   if(k > 13)
                       return iconArray[1];
                   if(k > 0)
                       return iconArray[0];
               }
               return getIconIndex(stack);
           }
        

        Pourquoi il y a un ; après la condition ? C’est lui qui cause problème.

        Whatttt ??? x) j’avais pas vus j’ai dus le mettre sans faire exprès merci 🙂

        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

          Résolu ?

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

            Oui, Juste dernière petit question:
            Je fais ça:

            
                       if (ClientProxy.keyBindSortG1.isPressed() && !world.isRemote)
                       {
                        entityarrow.setFire(1 * 10);
                        world.spawnEntityInWorld(entityarrow);
                        System.out.println("flèches feu");
                       }else if(!world.isRemote){
                        world.spawnEntityInWorld(entityarrow);
                        System.out.println("flèches normale");
                       }
            

            En gros quand je joueur presse une touche et que il tire avec l’arc la flemme est enflammé et sinon c’est une flèches normale.
            Le problème est que je dois appuyer deux fois sur la touche pour la flèches soit enflammer normal?

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

              “!world.isRemote” c’est ça le problème, si tu aurais essayé sur serveur, ça aurait crash, il faut mettre le “world.isRemote” avant le test de la touche car on ne peut pas presser de touche sur serveur (et enlève bien le ! devant). Maintenant, le problème c’est que les flammes n’apparraîtront que côté client.

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                @‘AymericRed’:

                “!world.isRemote” c’est ça le problème, si tu aurais essayé sur serveur, ça aurait crash, il faut mettre le “world.isRemote” avant le test de la touche car on ne peut pas presser de touche sur serveur (et enlève bien le ! devant). Maintenant, le problème c’est que les flammes n’apparraîtront que côté client.

                J’ai fais sa quand j’appuie sur la touche dans la console y’a pas flèche feu et la flèche n’est pas en feu

                
                if (world.isRemote && ClientProxy.keyBindSortG1.isPressed())
                           {
                            entityarrow.setFire(1 * 10);
                            world.spawnEntityInWorld(entityarrow);
                            System.out.println("flèches feu");
                           }
                

                Quand tu dis côté client c’est que le mec qui lance la flèche qui la voit en feu c’est ça?
                Mais après quand la flèche touche l’entity est-ce que elle prend feu et tout le monde le vois ?

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

                  Oui, seul le client la voit en feu et lesautres ne pourront pas le voir. Et si le serveur envoie une update, il est possible (je ne sais pas du tout) qu’elle perde les flammes. Je pense qu’il faudrait un packet.

                  Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                  AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                  Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                  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

                    En effet il faut un paquet, les touches n’existent que côté client et la flèche doit être lancé côté serveur.

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

                      Ok merci de l’info je vais essayer de former le packet vous avez un peu plus d’info concernant le packet?

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

                        @‘floriangabet’:

                        Ok merci de l’info je vais essayer de former le packet vous avez un peu plus d’info concernant le packet?

                        C’est à dire ? C’est à toi de le faire

                        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
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          Le packet devra contenir les valeurs que tu passes au constructeur de la flèche, et lorsque que tu recevras ce packet, tu devras faire spawn la flèche à partir de ces infos.

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                            @‘AymericRed’:

                            contenir les valeurs que tu passes au constructeur de la flèche

                            C’est à dire ?

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

                              Tu devras envoyer les informations de la flèche (vitesse, puissance, direction…) via le packet et instancier puis spawn la flèche à la réception du packet, côté serveur.

                              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                                @‘AymericRed’:

                                Tu devras envoyer les informations de la flèche (vitesse, puissance, direction…) via le packet et instancier puis spawn la flèche à la réception du packet, côté serveur.

                                J’ai fais ça.
                                Je vois pas du tout comment faire pour envoyer les infos .

                                public class PacketFireArrow implements IMessage {
                                
                                //Pour envoyer les infos de la flèche j'utilise des int ?
                                
                                    public PacketFireArrow(){ 
                                
                                    }
                                
                                    public PacketFireArrow(EntityArrow arrow) {
                                
                                    }
                                
                                    @Override
                                    public void fromBytes(ByteBuf buf) {
                                
                                    }
                                
                                    @Override
                                    public void toBytes(ByteBuf buf) {
                                
                                    }
                                
                                    public static class Handler implements IMessageHandler <packetfirearrow, imessage="">{
                                
                                        @Override
                                        public IMessage onMessage(PacketFireArrow message, MessageContext ctx) {
                                        EntityArrow entityarrow = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, 2.0F);
                                        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow);
                                        return null;
                                        }
                                    }
                                ```</packetfirearrow,>
                                1 réponse Dernière réponse Répondre Citer 0
                                • GabsG Hors-ligne
                                  Gabs
                                  dernière édition par

                                  Pour envoyez les infos de la flèche je peux utilisé quoi ?
                                  String , int … ?

                                  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

                                    pour la force, un float.
                                    Et c’est la seule chose que tu as besoin d’envoyer via le paquet.

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

                                      @‘floriangabet’:

                                      Pour envoyez les infos de la flèche je peux utilisé quoi ?
                                      String , int … ?

                                      Pour invoquer la flèche, tu as plusieurs variable récupérer : le World, l’EntityPlayer, la puissance du tir, la position de l’invocation de la flèche et la direction dans laquelle la flèche vas ce diriger.
                                      Pour le joueurs, tu peut l’avoir a partir du MessageContext le monde, les coordonnés d’invocation et la puissance de la flèche, tu peux les avoir à partir du joueur, donc la seul info que tu vas devoir envoyer est la direction de la flèche que tu peux mettre dans deux float.

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

                                        @‘robin4002’:

                                        pour la force, un float.
                                        Et c’est la seule chose que tu as besoin d’envoyer via le paquet.

                                        D’accord,
                                        J’ai former déjà la base de mon packet:

                                        Est-ce que il manque des choses ?

                                        Et dans mon Handler je dois juste faire spawn ma flèche et c’est bon ?

                                        
                                        public class PacketFireArrow implements IMessage {
                                        
                                        private float f;
                                        
                                            public PacketFireArrow(){ 
                                        
                                            }
                                        
                                            public PacketFireArrow(float f) {
                                            this.f = f;
                                            }
                                        
                                            @Override
                                            public void fromBytes(ByteBuf buf) {
                                            f = buf.readFloat();
                                            }
                                        
                                            @Override
                                            public void toBytes(ByteBuf buf) {
                                            buf.writeFloat(f);
                                            }
                                        
                                            public static class Handler implements IMessageHandler <packetfirearrow, imessage="">{
                                        
                                                @Override
                                                public IMessage onMessage(PacketFireArrow message, MessageContext ctx) {
                                                EntityArrow entityarrow = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, 2.0F);
                                                ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow);
                                                return null;
                                                }
                                            }
                                        ```</packetfirearrow,>
                                        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

                                          2.0 tu remplaces par message.f

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

                                            @‘robin4002’:

                                            2.0 tu remplaces par message.f

                                            C’est bon.

                                            Du coup dans ma classe FlameBow j’ai fais sa:

                                            Marche pas.

                                            
                                             if (world.isRemote && ClientProxy.keyBindSortG1.isPressed())
                                                       {
                                                        LegacyMod.network.sendToServer(new PacketFireArrow());
                                                        System.out.println("flèches feu");
                                                       }
                                            
                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB