• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu TagNBT non actualisé dans un overlay

    1.7.x
    1.7.10
    2
    3
    703
    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.
    • Folgansky
      Folgansky Correcteurs dernière édition par

      Plop les gens,

      J’ai un integer qui ne s’actualise pas. La valeur augmente après avoir tué certaines entités (donc un autre event) mais ce qui me fait venir c’est que j’ai voulu afficher la somme totale des kills effectués par un joueur mais je n’arrive visiblement pas à la récupérer dans mon second event

      @SubscribeEvent
          public void renderInfos(RenderGameOverlayEvent event)
          {
              int size = 0;
              int c =  event.resolution.getScaledWidth() /2 - 80;
              int b =  event.resolution.getScaledHeight() - 60;
              EntityPlayer player = Minecraft.getMinecraft().thePlayer;
              InventoryPlayer inv = player.inventory;
              ItemStack itemstack = player.getCurrentEquippedItem();
              int killR0 = player.getEntityData().getInteger("killR0");  //Somme totale des kills (j'ai vérifié, dans l'autre event la valeur augmente)
              if(event.type == RenderGameOverlayEvent.ElementType.TEXT && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && Minecraft.getMinecraft().currentScreen == null)
              {
                  Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(EnumChatFormatting.GOLD + "Kills: " + killR0, c - 10, b - 10, 0); //La valeur reste à 0
              }
      
      1 réponse Dernière réponse Répondre Citer 0
      • AymericRed
        AymericRed dernière édition par

        Quel est l’event où tu augmentes cet integer ? Car il est possible que ce soit un évènement serveur, ce qui fait que la valeur de “killR0” ne sera jamais envoyée au client, il faudra soit : utiliser les data watcher du joueur qui permettent de stocker un nombre donné d’informations et de les synchroniser automatiquement si la valeur change, ou créer un packet custom pour transmettre cet chiffre. Utiliser les datawatcher serait plus simple je pense, mais est-ce que tu veux que cet int soit sauvegardé quand on quitte/charge la map ? Dans ce cas il te faudrait un extended entity properties (il y a un tuto sur le forum).

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • Folgansky
          Folgansky Correcteurs dernière édition par

          Ah oui il faut absolument que cet int soit sauvegardé en effet, ce sont les nombres de kills de chaque mob.
          Je vais de ce pas regarder le tuto et voir ce que je peux en faire. J’avais déjà regardé mais sans me dire que c’était essentiel, je pensais que le getInteger était enregistré dans le playerData toussah toussah

          ps: En effet, l’event qui permet d’incrémenter le int est seulement côté serveur

          1 réponse Dernière réponse Répondre Citer 0
          • 1 / 1
          • Premier message
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB