1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

[MCP] Grimper une échelle

Discussion dans 'Aide à la création de mod' créé par Squizz, 28 Jan 2015.

  1. Squizz

    Squizz Nouveau

    Inscrit:
    6 Déc 2014
    Messages:
    9
    Points:
    10
    Sexe:
    Homme
    Bonjour,
    J'ai créer un mod et à la fin, en voulant créer mon échelle en obsidienne, je me rend compte qu'en plein jeu, je ne peux pas la grimper, j'ai chercher une solution dans net.minecraft.block/BlockLadder.java mais en vain :( Je pensais que cela marchait comme une échelle, alors j'ai modifier deux classes :

    Block.java :
    Code (cpp):
    blockRegistry.addObject(182, "obsidian_ladder", (new BlockLadder()).setHardness(1.5F).setStepSound(soundTypeLadder).setBlockName("ObsidianLadder").setBlockTextureName("obsidian_ladder"));
    Blocks.java :
    Code (cpp):
    public static final Block obsidian_ladder = (Block)Block.blockRegistry.getObject("obsidian_ladder");
    Et donc je ne trouve pas la solution..
    Merci d'avance ! :)
     
  2. Nolan-XX

    Nolan-XX Modérateur
    Staff

    Inscrit:
    29 Déc 2012
    Messages:
    10 234
    Points:
    304
    Sexe:
    Homme
    Il ne faut pas modifier les classes de bases

    En suite, as-tu fait un extends de ton échelle sur celle de base ?
     
  3. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Sans forge si

    Pour les échelles il n'y a pas que du code dans le code de l'échelle elle-même, regarde du côté du joueur il doit aussi avoir un truc.

    Édit : apparemment c'est dans EntityLivingBase, il y a une fonction nommé isOnLadder
     
    • J'approuve J'approuve x 1
  4. Squizz

    Squizz Nouveau

    Inscrit:
    6 Déc 2014
    Messages:
    9
    Points:
    10
    Sexe:
    Homme
    Tout d'abord, merci de ta réponse rapide :)
    Oui j'ai la fonction ici présente :
    Code (cpp):
        /**
         * returns true if this entity is by a ladder, false otherwise
         */

        public boolean isOnLadder()
        {
            int var1 = MathHelper.floor_double(this.posX);
            int var2 = MathHelper.floor_double(this.boundingBox.minY);
            int var3 = MathHelper.floor_double(this.posZ);
            Block var4 = this.worldObj.getBlock(var1, var2, var3);
            return var4 == Blocks.ladder || var4 == Blocks.vine;
        }
    J'ai donc essayer de rajouter ça :
    Code (cpp):
            Block var5 = this.worldObj.getBlock(var1, var2, var3);
            return var5 == Blocks.obsidian_lader || var5 == Blocks.vine;
    Mais j'ai une erreur, je n'y arrive vraiment pas sur ce coup :/

    Edit : J'ai trouver ou était mon erreur ^^' Il fallait juste rajouter :
    Code (cpp):
    || var4 == Blocks.obsidian_ladder;

    à

            return var4 == Blocks.ladder || var4 == Blocks.vine;
    Merci !
     
    #4 Squizz, 28 Jan 2015
    Dernière édition: 28 Jan 2015

Partager cette page