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

      Nan mais pour voir la vraie collision du joueur, le f3 + B affiche la boite de collision buggée du joueur. Par contre je ne comprends pas pourquoi le joueur ne peut pas aller en dessous d’un bloc 😕

      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

        Il y a smart moving qui change la collision du joueur, tu devrais jeter un coup d’œil à player API : http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1277996-1-7-10-api-player-api

        1 réponse Dernière réponse Répondre Citer 0
        • 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