MFF

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

    Encore problème onUpdate

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    104 Messages 8 Publieurs 18.1k 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.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      if(!world.isRemote && ClientProxy.keyBindSortG2.isPressed() && stack.getTagCompound().getInteger(“timer”) >= 1)

      traduction -> si on est côté serveur et que la touche bindSortG2 est appuyée côté client…

      Ton code ne peut pas fonctionner, tu demande que ce soit côté serveur et côté client, fais du ménage dans ton code et après je t’aiderai car sinon c’est impossible

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

        @‘SCAREX’:

        if(!world.isRemote && ClientProxy.keyBindSortG2.isPressed() && stack.getTagCompound().getInteger(“timer”) >= 1)

        traduction -> si on est côté serveur et que la touche bindSortG2 est appuyée côté client…

        Ton code ne peut pas fonctionner, tu demande que ce soit côté serveur et côté client, fais du ménage dans ton code et après je t’aiderai car sinon c’est impossible

        Comment je peux faire pour ne avoir le conflit client serveur avec un !worldremote et un keybinpressed ? un packet ?

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

          Oui, un packet (comme pour l’arc et la flèche qui doit s’enflammer).

          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’:

            Oui, un packet (comme pour l’arc et la flèche qui doit s’enflammer).

            ok mais je dois mettre quoi cette fois si? un String ?
            Et si vous avez un peu plus de détails je suis prenneur

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

              Ça dépend de ce qu’il y dans le if (je n’ai pas le temps de regarder là surtout que tapatalk n’aime pas les balises codes).

              Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

              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

                D’acc j’attends ta réponse merci 🙂

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

                  Tu envoies déjà un packet qui est censé lancer la flèche, or elle doit forcément être explosive donc tu as juste à faire ```java
                  entityarrow.getEntityData().setBoolean(“isExplosive”, true);

                  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 envoies déjà un packet qui est censé lancer la flèche, or elle doit forcément être explosive donc tu as juste à faire ```java
                    entityarrow.getEntityData().setBoolean(“isExplosive”, true);

                    Ouaip je vais faire ça ok ^^ un switch case serrait bien pour les différentes flèches ?
                    Merci en tout cas 🙂

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

                      Oui un switch serait bien 🙂

                      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’:

                        Oui un switch serait bien 🙂

                        Ok donc c’est bon!

                        J’ai ça comme code du coup:

                        
                         if(ClientProxy.keyBindSortG2.isPressed() && stack.getTagCompound().getInteger("timer") >= 20 * 20)
                                   {
                                    LegacyMod.network.sendToServer(new PacketArrow(f * 2.0F, 1));
                                    System.out.println("flèche explosive");
                                    stack.getTagCompound().setInteger("timer", 0);
                                   }
                        
                                   if (ClientProxy.keyBindSortG1.isPressed())
                                   {
                                    LegacyMod.network.sendToServer(new PacketArrow(f * 2.0F, 3));
                                    System.out.println("flèche en feu");
                                    stack.getTagCompound().setInteger("timer2", 0);
                                   }
                                   if (player.isSneaking() && !world.isRemote)
                                   {
                                  System.out.println("5 flèches");
                                LegacyMod.network.sendToServer(new PacketArrow(2.0F, 2));
                        
                                    stack.getTagCompound().setInteger("timer3", 0);
                        
                                   }else if(!world.isRemote)
                                   {
                                    world.spawnEntityInWorld(entityarrow);
                                    System.out.println("flèche normale");
                                   }
                               }
                        

                        ça marche mais ça me lance a chaque fois 2 flèches exemple: flèche en feu et flèche normale sauf pour la flèche normale et les 5 flèches alors que mon packet et bien enregistrer côté serveur du coup faut a chaque if mettre !world.isremote mais y’a un conflit avec le keybinding comment je peux faire ??

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

                          File ta classe PacketArrow et l’endroit de ta classe principale où tu l’enregistres.

                          Et puis c’est normal que plusieurs flèches différentes soienr envoyées alors que tu n’en souhaites qu’une seul, regarde un peu toutes tes conditions. Y’a plein de if à la suite, donc normal que tout ton code s’enchaîne à la lecture du code. Remplace les par des else if, si tu ne veux qu’une seule par type ne soit envoyée.

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

                            @‘Plaigon’:

                            File ta classe PacketArrow et l’endroit de ta classe principale où tu l’enregistres.

                            Et puis c’est normal que plusieurs flèches différentes soienr envoyées alors que tu n’en souhaites qu’une seul, regarde un peu toutes tes conditions. Y’a plein de if à la suite, donc normal que tout ton code s’enchaîne à la lecture du code. Remplace les par des else if, si tu ne veux qu’une seule par type ne soit envoyée.

                            Tien:
                            J’ai mis des else if c’est pareil
                            Classe principale:

                            
                            network = NetworkRegistry.INSTANCE.newSimpleChannel("lc:");
                            network.registerMessage(PacketClassesGUI.Handler.class, PacketClassesGUI.class, 0, Side.SERVER);
                            network.registerMessage(PacketGuerrier.Handler.class, PacketGuerrier.class, 1, Side.SERVER);
                            network.registerMessage(PacketArrow.Handler.class, PacketArrow.class, 2, Side.SERVER);
                            network.registerMessage(PacketTitle.Handler.class, PacketTitle.class, 3, Side.CLIENT);
                            

                            PacketArrow:

                            
                            package net.legacymod.packets;
                            
                            import io.netty.buffer.ByteBuf;
                            import net.minecraft.entity.player.EntityPlayer;
                            import net.minecraft.entity.projectile.EntityArrow;
                            import net.minecraft.util.Vec3;
                            import cpw.mods.fml.common.network.simpleimpl.IMessage;
                            import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
                            import cpw.mods.fml.common.network.simpleimpl.MessageContext;
                            
                            public class PacketArrow implements IMessage{
                            
                            private float f1;
                            private static int i;
                            
                                public PacketArrow(){ 
                            
                                }
                            
                                public PacketArrow(float f, int i) {
                                this.f1 = f;
                                this.i = i;
                                }
                            
                                @Override
                                public void fromBytes(ByteBuf buf) {
                                f1 = buf.readFloat();
                                i = buf.readInt();
                                }
                            
                                @Override
                                public void toBytes(ByteBuf buf) {
                                buf.writeFloat(f1);
                                buf.writeInt(i);
                                }
                            
                                public static class Handler implements IMessageHandler <packetarrow, imessage="">{
                            
                                    @Override
                                    public IMessage onMessage(PacketArrow message, MessageContext ctx) {
                                    EntityArrow entityarrow = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, message.f1 + message.i);
                                    EntityArrow entityarrow2 = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, message.f1 + message.i);
                                    EntityArrow entityarrow3 = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, message.f1 + message.i);
                                    EntityArrow entityarrow4 = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, message.f1 + message.i);
                                    EntityArrow entityarrow5 = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, message.f1 + message.i);
                                    switch(i)
                                    {
                                    case 1:
                                    {
                                    entityarrow.getEntityData().setBoolean("isExplosive", true);
                                    ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow);
                                    break;
                                    }
                                    case 2:
                                    {
                                    ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow);
                                        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow2);
                                        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow3);
                                        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow4);
                                        ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow5);
                            
                                        Vec3 look = ctx.getServerHandler().playerEntity.getLookVec();
                            
                                        entityarrow.setPosition(
                                        ctx.getServerHandler().playerEntity.posX + look.xCoord,
                                        ctx.getServerHandler().playerEntity.posY + 1 + look.yCoord,
                                        ctx.getServerHandler().playerEntity.posZ + look.zCoord);
                            
                                        entityarrow2.setPosition(
                                        ctx.getServerHandler().playerEntity.posX + 1 + look.xCoord,
                                        ctx.getServerHandler().playerEntity.posY + 1 + look.yCoord,
                                        ctx.getServerHandler().playerEntity.posZ + look.zCoord);
                            
                                        entityarrow3.setPosition(
                                        ctx.getServerHandler().playerEntity.posX + look.xCoord,
                                        ctx.getServerHandler().playerEntity.posY + 1 + look.yCoord,
                                        ctx.getServerHandler().playerEntity.posZ + 1 + look.zCoord);
                            
                                        entityarrow4.setPosition(
                                        ctx.getServerHandler().playerEntity.posX - 1 + look.xCoord,
                                        ctx.getServerHandler().playerEntity.posY + 1 + look.yCoord,
                                        ctx.getServerHandler().playerEntity.posZ + look.zCoord);
                            
                                        entityarrow5.setPosition(
                                        ctx.getServerHandler().playerEntity.posX + look.xCoord,
                                        ctx.getServerHandler().playerEntity.posY + 1 + look.yCoord,
                                        ctx.getServerHandler().playerEntity.posZ - 1 + look.zCoord);
                                        break;
                                    }
                                    case 3:
                                    {
                                    ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow);
                                        entityarrow.setFire(2 * 5);
                                        break;
                                    }
                                    default:
                                    break;
                                    }
                            
                                    return null;
                                    }
                                }
                            
                            }
                            
                            

                            edit:
                            Help?</packetarrow,>

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

                              Personne ne sait ?

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

                                Tu ne dois pas avoir de variables statiques dans ton paquet. Et pourquoi invoquer pleins de constructeurs s’ils ne sont pas tous utilisés ?

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

                                  @‘SCAREX’:

                                  Tu ne dois pas avoir de variables statiques dans ton paquet. Et pourquoi invoquer pleins de constructeurs s’ils ne sont pas tous utilisés ?

                                  Pas sa mon problème, c’est que j’ai un problème avec le !world.remote et le ClientProxy.keybind … j’ai un conflit client / serveur.
                                  Du coup on m’a dis de faire un packet pour le keybind

                                  Mais je dois mettre quoi dans se packet ? juste le ClientProxy.key… dans la fonction onmessagage ?

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

                                    @‘floriangabet’:

                                    @‘SCAREX’:

                                    Tu ne dois pas avoir de variables statiques dans ton paquet. Et pourquoi invoquer pleins de constructeurs s’ils ne sont pas tous utilisés ?

                                    Pas sa mon problème, c’est que j’ai un problème avec le !world.remote et le ClientProxy.keybind … j’ai un conflit client / serveur.
                                    Du coup on m’a dis de faire un packet pour le keybind

                                    Mais je dois mettre quoi dans se packet ? juste le ClientProxy.key… dans la fonction onmessagage ?

                                    C’est à dire ? tu essaies de faire quoi ?

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

                                      @‘floriangabet’:

                                      @‘SCAREX’:

                                      Tu ne dois pas avoir de variables statiques dans ton paquet. Et pourquoi invoquer pleins de constructeurs s’ils ne sont pas tous utilisés ?

                                      Pas sa mon problème, c’est que j’ai un problème avec le !world.remote et le ClientProxy.keybind … j’ai un conflit client / serveur.
                                      Du coup on m’a dis de faire un packet pour le keybind

                                      Mais je dois mettre quoi dans se packet ? juste le ClientProxy.key… dans la fonction onmessagage ?

                                      Il y a plusieurs problèmes :
                                       D’abord, dans ton packet, la variable “i” est static or elle ne doit pas l’être.
                                       Ensuite dans la class de ton item, la ou tu vérifie sur quelle touche on click pour ensuite envoyer une flèche : il faut utiliser des “else if” au lieux de “if” car sinon, si plusieurs conditions sont validés, alors ça invoque plusieurs flèches. De plus, il ne faut pas mettre “&& !world.isRemote” car tu vérifie les touches coté client. (au passage, il manque quelques vérifications de timer)

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

                                        @‘LeBossMax2’:

                                        @‘floriangabet’:

                                        @‘SCAREX’:

                                        Tu ne dois pas avoir de variables statiques dans ton paquet. Et pourquoi invoquer pleins de constructeurs s’ils ne sont pas tous utilisés ?

                                        Pas sa mon problème, c’est que j’ai un problème avec le !world.remote et le ClientProxy.keybind … j’ai un conflit client / serveur.
                                        Du coup on m’a dis de faire un packet pour le keybind

                                        Mais je dois mettre quoi dans se packet ? juste le ClientProxy.key… dans la fonction onmessagage ?

                                        Il y a plusieurs problèmes :
                                         D’abord, dans ton packet, la variable “i” est static or elle ne doit pas l’être.
                                         Ensuite dans la class de ton item, la ou tu vérifie sur quelle touche on click pour ensuite envoyer une flèche : il faut utiliser des “else if” au lieux de “if” car sinon, si plusieurs conditions sont validés, alors ça invoque plusieurs flèches. De plus, il ne faut pas mettre “&& !world.isRemote” car tu vérifie les touches coté client. (au passage, il manque quelques vérifications de timer)

                                        Salut,
                                        Alors pour le i ok pour les else if c’est fait et si je met pas les && !world.isRemote sa me lance deux flèches une normale et une en feu (pour le sort de feu) et cela a chaque sort sauf pour les 5 flèches car c’est pas avec l’action d’un touche donc pas côté client .

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

                                          Oups, j’avais pas pensais à ça… Je pence que le plus simple ce serais d’envoyer aussi la flèche normal et les 5 flèches avec le packet des flèches en mettant bien des “world.isRemote” pour que le serveur ne s’envoie pas des packet à lui même.

                                          Edit : tu devrais aussi gérer les timer coté serveur dans le “onMessage” du packet.

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

                                            Je crois que tu n’as toujours pas compris c’est sûrement de ma faute on me dit de pas assez détailler et ils ont raison alors je vais essayer de t’expliquer.

                                            En gros se que je cherche à faire tu as du comprendre ça au moins x):

                                            • Différente flèches sur le même arc activable avec différente touches avec un timer pour ne pas spam les sorts.

                                            Mon problème:

                                            • En gros le soucis c’est que vus que la flèche doit êtres lancé côté serveur et que j’active mes sorts avec des touches côté client tu comprends bien que serveur et client n’est pas trop compatible…
                                            • Du coup moi se que je veux c’est donc lancé la flèche côté serveur et en même temps pouvoir activé le sort avec une touche (on m’a dit que c’était possible avec un packet, mais je vois pas du tout quoi mettre dedans appart juste le Clientproxy.ketbind… dans la fonction onMesssage j’ai pas essayer perso) .

                                            Quand tu dis: tu devrais aussi gérer les timer coté serveur dans le “onMessage” du packet.

                                            Tu parle des temps de recharge de mes sort logiquement si oui je peux faire comment pour les timers avec des int timer ? ensuite if (timer > 0) timer–; un truc du genre ?

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB