MFF

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

    RenderGameOverlay juste pour un joueur.

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.8.9
    22 Messages 2 Publieurs 4.4k 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.
    • GabsG Hors-ligne
      Gabs
      dernière édition par

      @‘robin4002’:

      Plutôt comme ça :

      
      @SubscribeEvent
         public void onTimerPrison(TickEvent.WorldTickEvent event)
         {
             for (Map.Entry <uuid, date="">entry : ServerProxy.map2.entrySet())
             {
                 Date date = entry.getValue();
                 System.out.println((date.getTime() - new Date().getTime()) / 1000);
                 if((date.getTime() - new Date().getTime()) / 1000 == 0)
                 {
                     System.out.println("stop");
                     Entity entity = MinecraftServer.getServer().getEntityFromUuid(entry.getKey());
                     if(entity instanceof EntityPlayer)
                     {
                         ((EntityPlayer)entity).addChatMessage(new ChatComponentText("Votre temps de prison est fini."));
                     }
                     ServerProxy.map2.remove(entry.getKey());
                 }
             }
         }
      

      ça évite une condition useless (comme tu es en train de parcourir la map, ServerProxy.map2.containsKey(entry.getKey()) sera toujours true, et je t’ai déjà dit que la variable base qui se trouve dans la classe batonP ne devrait pas exister).

      Pour ton deuxième code, ça ne fonctionnera pas sur un serveur car ServerProxy.map2 est serveur side only.
      Il faudrait à la connexion d’une entité lui envoyer via un paquet le temps qu’il lui reste en prison s’il est en prison et faire le calcule côté client (ou envoyer régulièrement le temps qu’il lui reste en prison).</uuid,>

      Donc si j’ai bien compris:

      Je fais un packet client, je l’envoi a la connexion du joueur, avec dedans le temps qu’il lui reste en prison si il est en prison et faire le calcul côté client.

      Pour savoir si il est en prison ou non j’ai pensé faire un boolean dans le packet c’est le mieux à faire ou non?

      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

        Dans l’event de login tu as juste à check if(ServerProxy.map2.containsKey(event.player.getGameProfile.getId()))
        Et si c’est true tu envoies le paquet.

        Ensuite à l’arriver du paquet tu mets la valeur dans une variable qui peut être static (dans ta classe d’event par exemple) et qui est client seulement.
        Et pour finir dans l’event RenderGameOverlay tu l’affiches si elle ne vaut pas 0 (et toutes les secondes tu la diminue de 1 du-coup).

        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