[Touche] Faire s'asseoir le joueur



  • Bonjour !

    Presque tout est dans le titre je cherche à savoir comment faire en sorte que lorsque j'appuie sur une touche le joueur s'assoie au niveau du sol.

    Mais le problème c'est qu'avec Forge je ne sais pas si c'est possible ! (Je pense qu'avec un event oui, mais il faut pas toucher au ModelBiped ?)

    Si quelqu'un à la solution je la prend volontier !

    Cordialement

    -ZeAmateis-



  • Hm, ce que tu peux faire :

    Quand le joueur X presse la touche pour être assis, tu spawn une entité sur le joueur X, sur la quelle il se mets assis ( Il y a une méthode pour faire asseoir les entités normalement ). Tu fais en sorte que ton entité ne puisse pas rester en vie plus de 2-3 ticks sans être montée par le joueur. Comme ça quand le joueur appuie sur SHIFT pour se relever, l'entité meurt peu après.



  • Est-ce que cela risque de ne pas bugger ? genre l'entité ne meurt pas malgrès le .setDeath ?



  • je ne pense pas



  • @'ZeAmateis':

    Est-ce que cela risque de ne pas bugger ? genre l'entité ne meurt pas malgrès le .setDeath ?

    J'en doute, si tu mets bien le truc qui gère la mort dans le onUpdate de l'entity, aucun soucis


  • Administrateurs

    On fait comme ça dans FFMT lib pour le bloc sitable, aucun problème.
    Faut mettre le noClip sur true pour pas que l'entité bouge.
    https://github.com/FFMT/FFMT-libs/blob/master/common/fr/minecraftforgefrance/ffmtlibs/block/EntityBlockSittable.java#L17



  • Je suis d'accord pour un block mais pour que le joueur s'assoie partout ?



  • @'Gugu42':

    Quand le joueur X presse la touche pour être assis, tu spawn une entité sur le joueur X, sur la quelle il se mets assis ( Il y a une méthode pour faire asseoir les entités normalement ). Tu fais en sorte que ton entité ne puisse pas rester en vie plus de 2-3 ticks sans être montée par le joueur. Comme ça quand le joueur appuie sur SHIFT pour se relever, l'entité meurt peu après.

    Même principe que le block, sauf que tu agis quand la touche est pressée.



  • Nickel ! Merci de vos info' j'ai réussi !



  • Juste je re-up le sujet car j'arrive pas à faire l'event pour faire s'asseoir le player

    J'ai fait ça mais ça marche pas ou pas bien

    if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL))
    {
    EntityPlayer player = (EntityPlayer)event.entityLiving;
    EntityBlockSittable var2 = new EntityBlockSittable(event.entityLiving.worldObj, player, 1, 1, 1);
    if (event.entityLiving.riddenByEntity == null || event.entityLiving.riddenByEntity == event.entityLiving)
    {
    event.entityLiving.mountEntity(var2);
    
    }
    }
    

    Si il faut que je ré-ouvre un sujet je le ferais biensûr


    Edit: J'ai perdu la fonction que j'avais fait après une corruption


  • Administrateurs

    event.entityLiving.worldObj.spawnEntityInWorld(var2);
    Mais ça va faire crasher en serveur, car Keyboard n'existe pas côté serveur.
    Il faut envoyer un paquet si le joueur appuie sur la touche et faire spawner l'entité côté serveur.



  • Oki merci bien !


Log in to reply