MFF

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

    Récupérer une variable lorsqu'un joueur tape un block

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.x
    4 Messages 2 Publieurs 1.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.
    • P Hors-ligne
      Portuar
      dernière édition par

      Bonjour alors aujourd’hui je vient encore une fois vous demander votre aide car en effet je cherche un moyen afin de récupérer un variable quand le joueur est entrain de casser un block par exemple :

      
         public void onBlockIsTaped(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
      {
      tickBreak++;
      }
      

      Ceci n’existe pas ^^’ malheureusement la seul fonction que j’ai trouver est celle ci

      /**
          * Called when the block is clicked by a player. Args: x, y, z, entityPlayer
          */
         public void onBlockClicked(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer) {}
      

      mais le problème est que lorsque qu on est en jeux la fonction s’actualise que lorsque le joueur tape une fois sur le block…

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

        Je ne crois pas que ce soit possible, mais je vais voir si 'y a un moyen détourné de le faire ;)___
        J’ai trouvé un moyen de le faire 😄
        Il n’existe ni event pour cela, ni méthode sans devoir changer le code source, ce qui n’est pas une bonne idée…
        Mais l’on peut ajouter un IWorldAccess à l’objet World que l’on veut surveiller 😉

        @ForgeSubscribe
        public void load(WorldEvent.Load event)
        {
        event.world.addWorldAccess(new IWorldAccess()
        {
        @Override
        public void markBlockForUpdate(int i, int j, int k){}
        
        @Override
        public void markBlockForRenderUpdate(int i, int j, int k){}
        
        @Override
        public void markBlockRangeForRenderUpdate(int i, int j, int k, int l, int i1, int j1){}
        
        @Override
        public void playSound(String s, double d0, double d1, double d2, float f, float f1){}
        
        @Override
        public void playSoundToNearExcept(EntityPlayer entityplayer, String s, double d0, double d1, double d2, float f, float f1){}
        
        @Override
        public void spawnParticle(String s, double d0, double d1, double d2, double d3, double d4, double d5){}
        
        @Override
        public void onEntityCreate(Entity entity){}
        
        @Override
        public void onEntityDestroy(Entity entity){}
        
        @Override
        public void playRecord(String s, int i, int j, int k){}
        
        @Override
        public void broadcastSound(int i, int j, int k, int l, int i1){}
        
        @Override
        public void playAuxSFX(EntityPlayer entityplayer, int i, int j, int k, int l, int i1){}
        
        @Override
        public void destroyBlockPartially(int id, int x, int y, int z, int state)
        {
        if(y >= 0 && state >= 0)
        {
        System.out.println("Block hit at ("+x+";"+y+";"+z+"), EntityID hitting: "+id+", State: "+state);
        }
        }
        
        });
        }
        

        J’espère que ça pourra t’aider 😉

        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
        • P Hors-ligne
          Portuar
          dernière édition par

          Merci beaucoup je ne comprend juste pas ce qu’est la variable state et ou doit on mettre l’iworldacces…

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

            La variable state (de -1 à 10) indique où en est le joueur dans la démolition du bloc
            Et IWorldAccess pour pouvoir être prévenu quand le bloc est abîmé (parce que je vois pas d’autres moyens xD aussi)

            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
            • 1 / 1
            • Premier message
              Dernier message
            Design by Woryk
            ContactMentions Légales

            MINECRAFT FORGE FRANCE © 2024

            Powered by NodeBB