Changer la hitbox du joueur



  • Sommaire

    Introduction

    Cette astuce vous permettra de changer la hitbox du joueur pour pouvoir modifier le gameplay du jeu à votre guise !

    Pré-requis

    Vous aurez besoin d'un **EventHandler **(classe qui recense vos events) si vous n'avez ce type de classe
    Pensez à enregistrer l'event dans la fonction init() de votre mod

    Code

    PlayerHelper:

    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.math.AxisAlignedBB;
    
    public class PlayerHelper
    {
        /**
            * Method to set the player hitbox size
            * 
            * @param player
            *            _(EntityPlayer)_ Call the player from event
            * @param width
            *            _(float)_ Define the player width
            * @param height
            *            _(float)_ Define the player height
            * @param eyeHeight
            *            _(float)_ Define the player eyes Y position
            */
        public static void setPlayerSize(EntityPlayer player, float width, float height, float eyeHeight)
        {
            AxisAlignedBB axisalignedbb = player.getEntityBoundingBox();
    
            player.width = width;
            player.height = height;
    
            player.setEntityBoundingBox(new AxisAlignedBB(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ,
                    axisalignedbb.minX + (double) width, axisalignedbb.minY + (double) height,
                    axisalignedbb.minZ + (double) width));
            player.getEntityBoundingBox().setMaxY(axisalignedbb.maxY);
    
            player.eyeHeight = eyeHeight;
        }
    
        /**
            * Method to reset the player hitbox size to default 
    
            * height = 1.8F 
    
            * width = 0.6F 
    
            * eyeHeight = 1.62F
    
            * 
            * @param player
            *            _(EntityPlayer)_ Call the player from event
            */
        public static void resetPlayerSize(EntityPlayer player)
        {
            setPlayerSize(player, 0.6F, 1.8F, player.getDefaultEyeHeight());
        }
    }
    

    Event Handler:

    Dans votre classe créez une méthode pour que nous puissions utiliser le paramètre **TickEvent.PlayerTickEvent **en ajoutant juste avant l'annotation SubscribeEvent

    Faites une condition pour savoir si le joueur est null ou non, utilisez l'argument de la méthode que vous venez de créer et appelez player

    Une fois votre condition créée, utilisez la classe **PlayerHelper **que je vous ai fourni plus haut pour appeler la méthode *setPlayerSize *

    Vous pourrez dès lors renseigner les arguments (joueur, largeur_Hitbox, hauteur_Hitbox, hauteurDesYeux) les trois derniers arguments sont des float

    Si vous souhaitez réinitialiser la taille de votre joueur appelez la méthode resetPlayerSize(joueur)

    Bonus

    En utilisant le super tutoriel de Gugu pour modifier le rendu du joueur, vous pourrez par exemple agrandir ou rétrécir la taille du modèle du joueur !

    Il suffit d'utiliser OpenGL et de modifier le scale et la translation du modèle et le tour est joué !

    Moi j'ai fait un minimoi parce-que le japon.

    Résultat

    And voilà !

    Vous avez réussi à modifier la taille du joueur !


    Ici j'ai repris les arguments de la taille de la poule

    Rédaction :

    Correction :

    Creative Commons
    Ce tutoriel de Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

    retourRetour vers le sommaire des tutoriels


  • Administrateurs

    Pratique pour passer dans les trous d'1 block de hauteur.



  • Ou même des trous 1/2 block avec les dalles ^^

    Edit: je  vois bien cette fonctionnalité pour une élaboration de points faibles, si on tape à cette endroit ça
    fera très mal mais ce n'est pas évident à trouver et encore moins à atteindre .



  • Combiner avec un modèl plus petit ça passe tranquille et oui je suis chinât mais 1.8.9 possible ? Autre methode je suppose ?



  • @'moscaphone421':

    Combiner avec un modèl plus petit ça passe tranquille et oui je suis chinât mais 1.8.9 possible ? Autre methode je suppose ?

    Ça marchera en 1.8.9 normalement, faut test ^^



  • Ajout d'un bonus ! 😄



  • Il manque pas un bout de la phrase ? Et aussi le bout d'un mot !
    "Il suffit d'uliser OpenGL et de modifier le scale et la translation du modèle et le tour"
    (Deuxième ligne du bonus)



  • C'est réglé merci 😄



  • attend mais mais c'est super pour mon mod mais j'ai une question je sais qu'il faut modifié des truc mais lesquelles pour que ça marche en 1.7.10 ?
    ahh ouiiii j'oubliait merci pour ce tuto sympas 😉



  • Bah normalement c'est la même marche à suivre pour la 1.7.10



  • Youpiii



  • @Ama a dit dans Changer la hitbox du joueur :

    events

    Bonjours est ce que tu aurais le codes source car je voudrais apprendre a faire en sorte de ratisser mon perso. merci



  • @Fury Relis bien le topic, je crois que tu as loupé un passage...



  • Ca me donnera de popo de giantisme! 🙂 (mais c'est fixe ou on peut mettre des conditions(ex quand on sneak ca change la hitbox)



  • @Daich_20 Tu peux totalement, mettre des conditions oui.



  • Je vien de voir merci Ama .



  • Bonjour, j'ai un petit probléme avec votre tuto sur la hitbox

    je suis en 1.12.2

    la hitbox est effectivement changer, mais le joueur court tout seul vers l'ouest

    🤔

    J'utilise : setPlayerSize(e.player, 1.2F, 1.2F, 1F);

    En attente d'une réponse, merci d'avance.


Log in to reply