MFF

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

    Changer la boite de collision du joueur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    23 Messages 7 Publieurs 6.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.
    • ZakZ Hors-ligne
      Zak
      dernière édition par

      Je veux bien utiliser la PlayerAPI mais bon, si c’est juste pour modifier la caméra… 😕

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

        J’ai trouvé l’utilité du eyeHeight, il sert juste à savoir si ta tête est dans un bloc ou pas, je ne peux toujours pas passer en dessous du bloc 😕

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

          Donc j’ai trouvé ce qui ne va pas, en fait je ne peux pas passer en dessous d’un bloc à cause d’une condition dans NetHandlerPlayServer méthode processPlayer :

          
          if (flag && (flag1 || !flag2) && !this.playerEntity.isPlayerSleeping() && !this.playerEntity.noClip)
          {
          this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, f1, f2);
          return;
          }
          
          

          ligne 394.
          Il faut donc que je patche la méthode avec de l’ASM.

          
          private static int returns = 0;
          
          private static void patchMethod(MethodNode mn) {
          
          System.out.println("\tPatching method processPlayer in NetHandlerPlayServer");
          InsnList newList = new InsnList();
          
          Iterator <abstractinsnnode>it = mn.instructions.iterator();
          while (it.hasNext()) {
          AbstractInsnNode insn = it.next();
          newList.add(insn);
          if (insn.getOpcode() == Opcodes.RETURN) {
          returns++;
          }
          if(returns == 10){
          newList.remove(insn.getPrevious());
          newList.remove(insn);
          newList.add(new VarInsnNode(Opcodes.ALOAD, 0));
          newList.add(new MethodInsnNode(Opcodes.INVOKESTATIC, "fr/zak/cubesedge/coremod/Patch", "processPlayerPatch"
          , "(L" + className + ";)V"));
          }
          }
          newList.add(new InsnNode(Opcodes.RETURN));
          mn.instructions = newList;
          }
          
          

          et puis ça me fait un crash :

          
          java.lang.VerifyError: Expecting a stackmap frame at branch target 1374
          Exception Details:
          Location:
          net/minecraft/network/NetHandlerPlayServer.processPlayer(Lnet/minecraft/network/play/client/C03PacketPlayer;)V @1321: ifeq
          Reason:
          Expected stackmap frame at this location.
          Bytecode:
          0000000: 2ab4 0054 2ab4 005e b400 d4b6 00d8 4d2a
          0000010: 04b5 006b 2ab4 005e b400 db9a 061d 2ab4
          0000020: 0052 9a00 342b b600 e12a b400 e367 4a2b
          0000030: b600 e62a b400 e897 9a00 1e29 296b 1400
          0000040: e998 9c00 142b b600 ed2a b400 ef97 9a00
          0000050: 082a 04b5 0052 2ab4 0052 9905 b62a b400
          0000060: 5eb4 00f5 c600 d32a b400 5eb4 00f9 380b
          0000070: 2ab4 005e b400 fc38 0c2a b400 5eb4 00f5
          0000080: b601 012a b400 5eb4 0104 3905 2ab4 005e
          0000090: b401 0739 072a b400 5eb4 010a 3909 2bb6
          00000a0: 010d 9900 0f2b b601 1038 0b2b b601 1338
          00000b0: 0c2a b400 5e2b b601 16b5 0119 2ab4 005e
          00000c0: b601 1c2a b400 5e0b b501 1f2a b400 5e18
          00000d0: 0518 0718 0917 0b17 0cb6 0123 2ab4 005e
          00000e0: b400 f5c6 000d 2ab4 005e b400 f5b6 0101
          00000f0: 2ab4 0052 9a00 04b1 2ab4 0054 b601 272a
          0000100: b400 5eb6 012d 2ab4 0052 9900 242a 2ab4
          0000110: 005e b401 04b5 00e8 2a2a b400 5eb4 0107
          0000120: b500 e32a 2ab4 005e b401 0ab5 00ef 2c2a
          0000130: b400 5eb6 0131 b12a b400 5eb6 0134 9900
          0000140: 342a b400 5eb6 011c 2ab4 005e 2ab4 00e8
          0000150: 2ab4 00e3 2ab4 00ef 2ab4 005e b400 f92a
          0000160: b400 5eb4 00fc b601 232c 2ab4 005e b601
          0000170: 31b1 2ab4 005e b401 074a 2a2a b400 5eb4
          0000180: 0104 b500 e82a 2ab4 005e b401 07b5 00e3
          0000190: 2a2a b400 5eb4 010a b500 ef2a b400 5eb4
          00001a0: 0104 3905 2ab4 005e b401 0739 072a b400
          00001b0: 5eb4 010a 3909 2ab4 005e b400 f938 0b2a
          00001c0: b400 5eb4 00fc 380c 2bb6 0137 9900 1e2b
          00001d0: b600 e114 0138 979a 0013 2bb6 013c 1401
          00001e0: 3897 9a00 082b 03b6 0140 2bb6 0137 9900
          00001f0: 8f2b b600 e639 052b b600 e139 072b b600
          0000200: ed39 092b b601 3c2b b600 e167 390d 2ab4
          0000210: 005e b601 349a 0044 180d 1401 4197 9d00
          0000220: 0c18 0d14 0143 989c 0032 2a13 0146 b601
          0000230: 48b2 014a bb01 4c59 b701 4d2a b400 5eb6
          0000240: 0151 b601 5513 0157 b601 5518 0db6 015a
          0000250: b601 5db9 0162 0200 b12b b600 e6b8 0168
          0000260: 1401 6997 9d00 112b b600 edb8 0168 1401
          0000270: 6997 9e00 0b2a 1301 6cb6 0148 b12b b601
          0000280: 0d99 000f 2bb6 0110 380b 2bb6 0113 380c
          0000290: 2ab4 005e b601 1c2a b400 5e0b b501 1f2a
          00002a0: b400 5e2a b400 e82a b400 e32a b400 ef17
          00002b0: 0b17 0cb6 0123 2ab4 0052 9a00 04b1 1805
          00002c0: 2ab4 005e b401 0467 390d 1807 2ab4 005e
          00002d0: b401 0767 390f 1809 2ab4 005e b401 0a67
          00002e0: 3911 180d b801 682a b400 5eb4 016f b801
          00002f0: 68b8 0173 3913 180f b801 682a b400 5eb4
          0000300: 0176 b801 68b8 0173 3915 1811 b801 682a
          0000310: b400 5eb4 0179 b801 68b8 0173 3917 1813
          0000320: 1813 6b18 1518 156b 6318 1718 176b 6339
          0000330: 1918 1914 017a 979e 00a4 2ab4 0054 b601
          0000340: 7e99 0017 2ab4 0054 b601 812a b400 5eb6
          0000350: 0151 b601 879a 0086 b201 4abb 014c 59b7
          0000360: 014d 2ab4 005e b601 51b6 0155 1301 89b6
          0000370: 0155 180d b601 5a13 018b b601 5518 0fb6
          0000380: 015a 1301 8bb6 0155 1811 b601 5a13 018d
          0000390: b601 5518 13b6 015a 1301 8fb6 0155 1815
          00003a0: b601 5a13 018f b601 5518 17b6 015a 1301
          00003b0: 91b6 0155 b601 5db9 0162 0200 2a2a b400
          00003c0: e82a b400 e32a b400 ef2a b400 5eb4 00f9
          00003d0: 2ab4 005e b400 fcb6 0194 b113 0195 381b
          00003e0: 2c2a b400 5e2a b400 5eb4 0199 b601 9f17
          00003f0: 1b8d 171b 8d17 1b8d b601 a3b6 01a7 b901
          0000400: ac01 0036 1c2a b400 5eb4 0119 9900 182b
          0000410: b601 169a 0011 180f 0e97 9e00 0a2a b400
          0000420: 5eb6 01af 2ab4 0052 9a00 04b1 2ab4 005e
          0000430: 180d 180f 1811 b601 b32a b400 5e2b b601
          0000440: 16b5 0119 2ab4 005e 180d 180f 1811 b601
          0000450: b618 0f39 1d18 052a b400 5eb4 0104 6739
          0000460: 0d18 072a b400 5eb4 0107 6739 0f18 0f14
          0000470: 01b7 979d 000c 180f 1401 b998 9c00 060e
          0000480: 390f 1809 2ab4 005e b401 0a67 3911 180d
          0000490: 180d 6b18 0f18 0f6b 6318 1118 116b 6339
          00004a0: 1903 361f 1819 1401 bb97 9e00 3f2a b400
          00004b0: 5eb6 0134 9a00 352a b400 5eb4 01c0 b601
          00004c0: c59a 0028 0436 1fb2 014a bb01 4c59 b701
          00004d0: 4d2a b400 5eb6 0151 b601 5513 01c7 b601
          00004e0: 55b6 015d b901 6202 002a b400 529a 0004
          00004f0: b12a b400 5e18 0518 0718 0917 0b17 0cb6
          0000500: 0123 2c2a b400 5e2a b400 5eb4 0199 b601
          0000510: 9f17 1b8d 171b 8d17 1b8d b601 a3b6 01a7
          0000520: b901 ac01 0036 2015 1c99 0035 151f 9a00
          0000530: 0815 209a 002b 2ab4 005e b601 349a 0021
          0000540: 2ab4 005e b401 ca9a 0017 2a2a b400 e82a
          0000550: b400 e32a b400 ef17 0b17 0cb6 0194 2a2a
          0000560: b400 5e2a b601 9f2a 8d2a 8d2a 8d2a 0e2a
          0000570: 0e2a 3a21 2a2a b400 542a 9a00 592a b400
          0000580: 5e2a b601 c52a 2c2a b601 ce2a 2a2a b401
          0000590: d22a 9a00 412a 2a14 01d3 2a9b 003d 2a2a
          00005a0: 592a 042a b501 d62a 2ab4 01d6 2aa4 002b
          00005b0: 2a2a bb01 4c2a b701 4d2a b400 5e2a b601
          00005c0: 552a b601 552a b901 6202 002a 2a13 01d8
          00005d0: 2a2a b12a 03b5 01d6 2ab4 0052 9a00 04b1
          00005e0: 2ab4 005e 2bb6 0116 b501 192a b400 54b6
          00005f0: 0127 2ab4 005e b601 2d2a b400 5e2a b400
          0000600: 5eb4 0107 2967 2bb6 0116 b601 dca7 002b
          0000610: 2ab4 006d 1014 709a 0021 2a2a b400 e82a
          0000620: b400 e32a b400 ef2a b400 5eb4 00f9 2ab4
          0000630: 005e b400 fcb6 0194 b1b1
          Stackmap Table:
          append_frame(@86,Object[#241])
          full_frame(@177,{Object[#2],Object[#221],Object[#241],Top,Top,Double,Double,Double,Float,Float},{})
          same_frame(@240)
          same_frame(@248)
          same_frame(@302)
          full_frame(@311,{Object[#2],Object[#221],Object[#241]},{})
          same_frame(@370)
          full_frame(@490,{Object[#2],Object[#221],Object[#241],Double,Double,Double,Double,Float,Float},{})
          append_frame(@554,Double)
          same_frame(@601)
          same_frame(@629)
          chop_frame(@637,1)
          same_frame(@656)
          same_frame(@702)
          full_frame(@856,{Object[#2],Object[#221],Object[#241],Double,Double,Double,Double,Float,Float,Double,Double,Double,Double,Double,Double,Double},{})
          same_frame_extended(@987)
          append_frame(@1060,Float,Integer)
          same_frame(@1068)
          append_frame(@1151,Double)
          same_frame(@1154)
          append_frame(@1257,Integer)
          same_frame(@1265)
          append_frame(@1334,Integer)
          same_frame(@1375)
          append_frame(@1491,Object[#411])
          same_frame(@1496)
          same_frame(@1504)
          full_frame(@1552,{Object[#2],Object[#221],Object[#241]},{})
          same_frame(@1592)
          
          at cpw.mods.fml.common.network.handshake.NetworkDispatcher.serverInitiateHandshake(NetworkDispatcher.java:143) ~[NetworkDispatcher.class:?]
          at cpw.mods.fml.common.network.handshake.FMLHandshakeServerState$1.accept(FMLHandshakeServerState.java:21) ~[FMLHandshakeServerState$1.class:?]
          at cpw.mods.fml.common.network.handshake.FMLHandshakeServerState$1.accept(FMLHandshakeServerState.java:15) ~[FMLHandshakeServerState$1.class:?]
          at cpw.mods.fml.common.network.handshake.HandshakeMessageHandler.userEventTriggered(HandshakeMessageHandler.java:40) ~[HandshakeMessageHandler.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeUserEventTriggered(DefaultChannelHandlerContext.java:308) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireUserEventTriggered(DefaultChannelHandlerContext.java:294) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.ChannelInboundHandlerAdapter.userEventTriggered(ChannelInboundHandlerAdapter.java:108) [ChannelInboundHandlerAdapter.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeUserEventTriggered(DefaultChannelHandlerContext.java:308) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireUserEventTriggered(DefaultChannelHandlerContext.java:294) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.ChannelInboundHandlerAdapter.userEventTriggered(ChannelInboundHandlerAdapter.java:108) [ChannelInboundHandlerAdapter.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeUserEventTriggered(DefaultChannelHandlerContext.java:308) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireUserEventTriggered(DefaultChannelHandlerContext.java:294) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireUserEventTriggered(DefaultChannelPipeline.java:779) [DefaultChannelPipeline.class:?]
          at cpw.mods.fml.common.network.handshake.NetworkDispatcher.handlerAdded(NetworkDispatcher.java:132) [NetworkDispatcher.class:?]
          at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:484) [DefaultChannelPipeline.class:?]
          at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:44) [DefaultChannelPipeline.class:?]
          at io.netty.channel.DefaultChannelPipeline$3.run(DefaultChannelPipeline.java:474) [DefaultChannelPipeline$3.class:?]
          at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354) [SingleThreadEventExecutor.class:?]
          at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:348) [NioEventLoop.class:?]
          at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
          at java.lang.Thread.run(Unknown Source) [?:1.8.0_05]
          
          

          C’est sans doute car j’ai pas supprimé les “fload” (opcode) de lastTickPosX, etc.
          Lorsque je fais newList.remove(insn.getPrevious().getPrevious()); ça me fait une nullpointerexception : insn.getPrevious().getPrevious() est null.
          Il est impossible d’obtenir l’AbstractInsnNode précédent du précédent.
          Je ne peux pas supprimer pas le numéro d’index, je ne vois pas du tout comment faire D:</abstractinsnnode>

          1 réponse Dernière réponse Répondre Citer 0
          • Superloup10S Hors-ligne
            Superloup10 Modérateurs
            dernière édition par

            Essaye de patcher la classe directement (cf : http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571568-tutorial-1-6-2-changing-vanilla-without-editing )

            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

              Je préfère utiliser l’ASM, patcher la classe entière pète la compabilité, désolé, sinon je peux patcher la méthode, mais lorsque je supprime tout et que j’appelle ma fonction ça me met Duplicate local variable ‘d4’ ou je ne sais plus trop quoi.

              1 réponse Dernière réponse Répondre Citer 0
              • Superloup10S Hors-ligne
                Superloup10 Modérateurs
                dernière édition par

                Tu peux t’inspirer de Morph sinon.

                Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 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

                  @‘Zak’:

                  Je préfère utiliser l’ASM, patcher la classe entière pète la compabilité, désolé, sinon je peux patcher la méthode, mais lorsque je supprime tout et que j’appelle ma fonction ça me met Duplicate local variable ‘d4’ ou je ne sais plus trop quoi.

                  Dans les deux cas l’ASM détruit la compatibilité avec n’importe quel mod qui modifie la même classe.

                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpokJ Hors-ligne
                    jglrxavpok Modérateurs
                    dernière édition par

                    @‘robin4002’:

                    @‘Zak’:

                    Je préfère utiliser l’ASM, patcher la classe entière pète la compabilité, désolé, sinon je peux patcher la méthode, mais lorsque je supprime tout et que j’appelle ma fonction ça me met Duplicate local variable ‘d4’ ou je ne sais plus trop quoi.

                    Dans les deux cas l’ASM détruit la compatibilité avec n’importe quel mod qui modifie la même classe.

                    Tout dépend si le patch a été faif intelligement 😉

                    Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                      Oui l’ASM détruit la compatibilité, si l’autre mod modifie la même fonction de la même classe et que je patche toute la fonction, si je me retrouve bien dans les instructions et que j’ajoute intelligemment mes Insn, je risque d’avoir encore moins de chance de péter la compatibilité.

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

                        Yop j’ai décider de patcher complètement la méthode et puis voilà, j’ai réussi à faire ce que je voulais !
                        Merci beaucoup pour l’aide !

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB