MFF

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

    Notification basée sur les achievements

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    9 Messages 5 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.
    • AmaA En ligne
      Ama
      dernière édition par

      Hello à tous !

      Je viens vous demande un brin d’herbe car j’aimerais un système de notifications comme celle des achiements, seulement, j’ai beau chercher, je ne sais pas où s’affiche le petit rectangle à l’écran, quel gui gère ça, rien dans le GuiIngame qui gère barre de faim et de vie, ainsi que rien de parlant dans GuiAchievement, donc si jamais quelqu’un à réussi un système de notification tel que celui des achievement, je suis prenneur ! Car je creuse mais je trouve rien 😕

      Merci de votre aide !
                                                 ZeAmateis

      Si je t'ai filé un coup de main n'oublie pas le + / -
      Par contre évite les demandes d'aides en MP, tu sera sympa'

      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

      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

        Salut,
        Il faut tout faire via l’event RenderOverLayerEvent. C’est juste une petite image à draw, pas grand chose de compliqué.

        1 réponse Dernière réponse Répondre Citer 0
        • MajorSquirrelM Hors-ligne
          MajorSquirrel
          dernière édition par

          Bonjour bonjour,

          Je te conseille de jeter un coup d’oeil à la classe GuiAchievement ! Celle-ci te montre comment construire la petite fenêtre en haut à gauche ainsi que l’update de sa position (le fait qu’elle rentre et ressorte)

          Pour l’afficher après je crois que c’est player.triggerAchievement(ton_achievement_instance);

          Je viens de faire des tests de mon côté et je n’ai pas réussi à refaire ce que j’avais fait la dernière fois, à savoir bien maîtriser tous les éléments de la notification, je reviendrai vers toi si j’y arrive. 🙂

          1 réponse Dernière réponse Répondre Citer 0
          • AmaA En ligne
            Ama
            dernière édition par

            Merci des infos, je cherche à faire un système bien à part de celui des achievement donc par de trigger pour ma part 😉

            Si je t'ai filé un coup de main n'oublie pas le + / -
            Par contre évite les demandes d'aides en MP, tu sera sympa'

            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

            1 réponse Dernière réponse Répondre Citer 0
            • AmaA En ligne
              Ama
              dernière édition par

              Voilà j’ai maintenant une classe potable pour mes notifications, seulement je ne vois pas comment l’afficher à l’écran 😕

              :::

              
              import org.lwjgl.opengl.GL11;
              
              import cpw.mods.fml.client.FMLClientHandler;
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import net.minecraft.client.Minecraft;
              import net.minecraft.client.gui.Gui;
              import net.minecraft.client.gui.ScaledResolution;
              import net.minecraft.client.resources.I18n;
              import net.minecraft.stats.Achievement;
              import net.minecraft.util.ResourceLocation;
              
              @SideOnly(Side.CLIENT)
              public class GuiLinkNotifications extends Gui {
              private static final ResourceLocation widget = new ResourceLocation("textures/gui/achievement/achievement_background.png");
              private Minecraft mc;
              private int width;
              private int height;
              private String notificationTitle;
              private String notificationDescription;
              private long notificationTime;
              private boolean permanentNotification;
              
              public GuiLinkNotifications() {
              this.mc = FMLClientHandler.instance().getClient();
              }
              
              public void displayAchievement(String title, String description) {
              this.notificationTitle = I18n.format(title, new Object[0]);
              this.notificationDescription = description;
              this.notificationTime = Minecraft.getSystemTime();
              this.permanentNotification = false;
              }
              
              public void displayUnformattedAchievement(Achievement achievement) {
              this.notificationTitle = achievement.func_150951_e().getUnformattedText();
              this.notificationDescription = achievement.getDescription();
              this.notificationTime = Minecraft.getSystemTime() + 2500L;
              this.permanentNotification = true;
              }
              
              private void updateAchievementWindowScale() {
              GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
              GL11.glMatrixMode(GL11.GL_PROJECTION);
              GL11.glLoadIdentity();
              GL11.glMatrixMode(GL11.GL_MODELVIEW);
              GL11.glLoadIdentity();
              this.width = this.mc.displayWidth;
              this.height = this.mc.displayHeight;
              ScaledResolution scaledresolution = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
              this.width = scaledresolution.getScaledWidth();
              this.height = scaledresolution.getScaledHeight();
              GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
              GL11.glMatrixMode(GL11.GL_PROJECTION);
              GL11.glLoadIdentity();
              GL11.glOrtho(0.0D, (double) this.width, (double) this.height, 0.0D, 1000.0D, 3000.0D);
              GL11.glMatrixMode(GL11.GL_MODELVIEW);
              GL11.glLoadIdentity();
              GL11.glTranslatef(0.0F, 0.0F, -2000.0F);
              }
              
              public void updateAchievementWindow() {
              if (this.notificationTime != 0L && Minecraft.getMinecraft().thePlayer != null) {
              double d0 = (double) (Minecraft.getSystemTime() - this.notificationTime) / 3000.0D;
              
              if (!this.permanentNotification) {
              if (d0 < 0.0D || d0 > 1.0D) {
              this.notificationTime = 0L;
              return;
              }
              } else if (d0 > 0.5D) {
              d0 = 0.5D;
              }
              
              this.updateAchievementWindowScale();
              GL11.glDisable(GL11.GL_DEPTH_TEST);
              GL11.glDepthMask(false);
              double d1 = d0 * 2.0D;
              
              if (d1 > 1.0D) {
              d1 = 2.0D - d1;
              }
              
              d1 *= 4.0D;
              d1 = 1.0D - d1;
              
              if (d1 < 0.0D) {
              d1 = 0.0D;
              }
              
              d1 *= d1;
              d1 *= d1;
              int i = this.width - 160;
              int j = 0 - (int) (d1 * 36.0D);
              GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
              GL11.glEnable(GL11.GL_TEXTURE_2D);
              this.mc.getTextureManager().bindTexture(widget);
              GL11.glDisable(GL11.GL_LIGHTING);
              this.drawTexturedModalRect(i, j, 96, 202, 160, 32);
              
              if (this.permanentNotification) {
              this.mc.fontRenderer.drawSplitString(this.notificationDescription, i + 30, j + 7, 120, -1);
              } else {
              this.mc.fontRenderer.drawString(this.notificationTitle, i + 30, j + 7, -256);
              this.mc.fontRenderer.drawString(this.notificationDescription, i + 30, j + 18, -1);
              }
              
              // RenderHelper.enableGUIStandardItemLighting();
              // GL11.glDisable(GL11.GL_LIGHTING);
              // GL11.glEnable(GL12.GL_RESCALE_NORMAL);
              // GL11.glEnable(GL11.GL_COLOR_MATERIAL);
              // GL11.glEnable(GL11.GL_LIGHTING);
              // this.renderItem.renderItemAndEffectIntoGUI(this.mc.fontRenderer,
              // this.mc.getTextureManager(), this.theAchievement.theItemStack, i
              // + 8, j + 8);
              // GL11.glDisable(GL11.GL_LIGHTING);
              // GL11.glDepthMask(true);
              // GL11.glEnable(GL11.GL_DEPTH_TEST);
              }
              }
              
              public void clearAchievements() {
              this.notificationTime = 0L;
              }
              }
              

              :::

              Edit: voici mon event qui ne fonctionne pas, normal, mais je vois pas comment faire 😢

              @SubscribeEvent
              public void onDisplayNotification(RenderGameOverlayEvent.Pre event) {

              GuiLinkNotifications guiNotification = new GuiLinkNotifications();
              guiNotification.displayAchievement(“test”, “description”);
              guiNotification.updateAchievementWindow();
              }

              Si je t'ai filé un coup de main n'oublie pas le + / -
              Par contre évite les demandes d'aides en MP, tu sera sympa'

              La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

              Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

              1 réponse Dernière réponse Répondre Citer 0
              • AymericRedA Hors-ligne
                AymericRed
                dernière édition par

                Utile un RenderOverLayerEvent comme l’a dit robin.

                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
                • AmaA En ligne
                  Ama
                  dernière édition par

                  Oui j’ai édit mon message mais même comme ça ça ne m’aide pas

                  Si je t'ai filé un coup de main n'oublie pas le + / -
                  Par contre évite les demandes d'aides en MP, tu sera sympa'

                  La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                  Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREXS Hors-ligne
                    SCAREX
                    dernière édition par

                    Il faut crée une instance du Gui quelque part et dans le RenderGameOverlayEvent appelé la fonction draw du Gui

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    1 réponse Dernière réponse Répondre Citer 0
                    • AmaA En ligne
                      Ama
                      dernière édition par

                      Ouaip problème résolu, merci all

                      Si je t'ai filé un coup de main n'oublie pas le + / -
                      Par contre évite les demandes d'aides en MP, tu sera sympa'

                      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                      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