MFF

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

    Créer un item zoom

    Planifier Épinglé Verrouillé Déplacé Les items
    1.6.x
    35 Messages 10 Publieurs 13.9k 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.
    • Nolan-XXN Hors-ligne
      Nolan-XX
      dernière édition par

      Super tuto qui me sera utile , mais deux questions :

      • comment changer la touche pour zoomer ? car sur mon objet , le RightClick est déjà utilisé
      • Comment afficher une image lors du zoom ? Pour faire un fusil sniper par exemple
      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

        Pour afficher quelque chose, Overlay :
        https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/main/core/ClientProxy.java#L84
        https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/main/client/gui/GuiOverlay.java

        Pour la touche, KeyBindingRegistry, je fais voir pour faire un tutoriel dessus. Et sinon :
        https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/ultimateGraviSuite/keyboard/KeyboardClient.java

        1 réponse Dernière réponse Répondre Citer 0
        • elias54E Hors-ligne
          elias54 Administrateurs
          dernière édition par

          @‘Nolan-XX’:

          • comment changer la touche pour zoomer ? car sur mon objet , le RightClick est déjà utilisé

          Check le lien de robin 🙂

          @‘Nolan-XX’:

          • Comment afficher une image lors du zoom ? Pour faire un fusil sniper par exemple

          C’est le bonus ça ^^ Je le ferais quand j’aurais le temps ! 🙂 Car j’ai un système avancé de l’affichage overlay que celui du lien de robin 🙂

          Mon site | GitHub

          1 réponse Dernière réponse Répondre Citer 0
          • Nolan-XXN Hors-ligne
            Nolan-XX
            dernière édition par

            @‘robin4002’:

            Pour afficher quelque chose, Overlay :
            https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/main/core/ClientProxy.java#L84
            https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/main/client/gui/GuiOverlay.java

            Pour la touche, KeyBindingRegistry, je fais voir pour faire un tutoriel dessus. Et sinon :
            https://github.com/MCNanotech/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/ultimateGraviSuite/keyboard/KeyboardClient.java

            Ne le prends pas mal , mais j’ai rien compris Oo
            De plus , du peu que j’ai compris de ta classe KeyboardClient , c’est pour effectuer une action en appuyant sur une touche quand un certain objet est équipé , et ce n’est pas ce que je veux faire …

            1 réponse Dernière réponse Répondre Citer 0
            • elias54E Hors-ligne
              elias54 Administrateurs
              dernière édition par

              Et bien c’est simple en fait, dans ton tick client handler, tu mets une condition “if(Keyboard.isKeyDown(Keyboard.KEY_Z))”

              à la place du VotreClassePrincipale.zoom 🙂

              Mon site | GitHub

              1 réponse Dernière réponse Répondre Citer 0
              • Nolan-XXN Hors-ligne
                Nolan-XX
                dernière édition par

                @‘elias54’:

                Et bien c’est simple en fait, dans ton tick client handler, tu mets une condition “if(Keyboard.isKeyDown(Keyboard.KEY_Z))”

                à la place du VotreClassePrincipale.zoom 🙂

                Il me dit : KEY_Z cannot be resolved or is not a field

                Et dans la classe de l’objet , je remets if(Keyboard.isKeyDown(Keyboard.KEY_Z)) ?

                1 réponse Dernière réponse Répondre Citer 0
                • elias54E Hors-ligne
                  elias54 Administrateurs
                  dernière édition par

                  Non, dans le tick handler seulement, et as-tu bien importé la bonne classe ? Car il y a deux class Keyboard 😉

                  Mon site | GitHub

                  1 réponse Dernière réponse Répondre Citer 0
                  • Nolan-XXN Hors-ligne
                    Nolan-XX
                    dernière édition par

                    J’ai importé : net.java.games.input.Keyboard;
                    C’était la mauvaise je suppose :s

                    et dans la classe de mon Item je mets quoi du coup ?

                    1 réponse Dernière réponse Répondre Citer 0
                    • elias54E Hors-ligne
                      elias54 Administrateurs
                      dernière édition par

                      Oui c’est la mauvaise. Envoie tes sources en privé je t’arrange le tout 🙂

                      Mon site | GitHub

                      1 réponse Dernière réponse Répondre Citer 0
                      • elias54E Hors-ligne
                        elias54 Administrateurs
                        dernière édition par

                        Je viens d’ajouter le bonus au tuto ! 🙂 Enjoy.

                        Mon site | GitHub

                        1 réponse Dernière réponse Répondre Citer 0
                        • Nolan-XXN Hors-ligne
                          Nolan-XX
                          dernière édition par

                          @‘elias54’:

                          #6. BONUS(6. BONUS)

                          Pour le bonus, pas grand chose… Ah si ! Ajouter un overlay pour donner un petit effet à votre zoom ! 😄

                          Overlay ? C’est quoi ça ? 😮
                          -Ça : http://puu.sh/46id6.png

                          Pour se faire, c’est simple, ajoutez cette ligne tout en haut de votre TickHandler :

                          
                          public static final ResourceLocation zoomOverlay = new ResourceLocation("votreModID", "textures/blur/votreZoomOverlay.png");
                          
                          

                          Comme vous l’aurez compris il s’agit d’une texture que nous allons imposer à l’écran ! 🙂

                          %(#FF0000)[-ATTENTION-
                          La texture de l’overlay doit être en 256x256 ! (si vous faites un téléscope (par exemple), autant vous donner l’overlay : http://puu.sh/46iD2.png Maintenant vous avez un exemple de ce que je veux dire. En effet, la texture semble écrasé, mais in game elle ne le sera pas, car grâce à la méthode que je vais vous montrer, nous allons “étirer” la texture histoire qu’elle ressemble à quelque chose ! 🙂 )]

                          Donc dans votre classe, ajoutez cette méthode :

                          
                          public static void renderTextureOverlay(ResourceLocation s, float f)
                          {
                          Minecraft minecraft = FMLClientHandler.instance().getClient();
                          ScaledResolution scaledresolution = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight);
                          int i = scaledresolution.getScaledWidth();
                          int j = scaledresolution.getScaledHeight();
                          GL11.glEnable(GL11.GL_BLEND);
                          GL11.glDisable(GL11.GL_DEPTH_TEST);
                          GL11.glDepthMask(false);
                          GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                          GL11.glColor4f(1.0F, 1.0F, 1.0F, f);
                          GL11.glDisable(GL11.GL_ALPHA_TEST);
                          minecraft.func_110434_K().func_110577_a(s);
                          Tessellator tessellator = Tessellator.instance;
                          tessellator.startDrawingQuads();
                          tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D);
                          tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D);
                          tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D);
                          tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D);
                          tessellator.draw();
                          GL11.glDepthMask(true);
                          GL11.glEnable(GL11.GL_DEPTH_TEST);
                          GL11.glEnable(GL11.GL_ALPHA_TEST);
                          GL11.glColor4f(1.0F, 1.0F, 1.0F, f);
                          }
                          
                          

                          On a presque fini ! Nous avons préparé ce dont nous avons besoin. 🙂

                          Créez une nouvelle condition en dessous de :

                          
                          if (type.equals(EnumSet.of(TickType.CLIENT)))
                          {
                          }
                          
                          

                          Elle est exactement la même, juste à remplacer CLIENT par RENDER, donc comme ceci :

                          
                          if (type.equals(EnumSet.of(TickType.RENDER)))
                          {
                          }
                          
                          

                          Et dans cette condition nous allons ajouter encore une AUTRE condition qui va appeler la méthode que nous avons faite ci dessus ! 😄

                          
                          if(VotreClassePrincipale.zoom && minecraft.gameSettings.thirdPersonView == 0 && minecraft.currentScreen == null)
                          {
                          renderTextureOverlay(zoomOverlay, 1.0F);
                          }
                          
                          

                          C’est tout ?!
                          -Oui, déjà fini ^^

                          Voilà ce à quoi votre classe TickHandler devrait ressembler :

                          
                          public class TickClientHandler implements ITickHandler
                          {
                          public static final ResourceLocation zoomOverlay = new ResourceLocation("votreModID", "textures/blur/votreZoomOverlay.png"); //256x256 la texture je vous le rappel ! :D
                          
                          @Override
                          public void tickStart(EnumSet <ticktype>type, Object... tickData) {
                          }
                          
                          @Override
                          public void tickEnd(EnumSet <ticktype>type, Object... tickData)
                          {
                          final Minecraft minecraft = FMLClientHandler.instance().getClient();
                          final EntityPlayerSP player = minecraft.thePlayer;
                          if (type.equals(EnumSet.of(TickType.CLIENT)))
                          {
                          if(VotreClassePrincipale.zoom)
                          {
                          if(minecraft.gameSettings.thirdPersonView == 0 && minecraft.currentScreen == null)
                          {
                          zoom(6F);
                          }
                          }else {
                          zoom(1.0F);
                          }
                          }
                          if (type.equals(EnumSet.of(TickType.RENDER)))
                          {
                          if(VotreClassePrincipale.zoom && minecraft.gameSettings.thirdPersonView == 0 && minecraft.currentScreen == null)
                          {
                          renderTextureOverlay(zoomOverlay, 1.0F);
                          }
                          }
                          }
                          
                          public static void renderTextureOverlay(ResourceLocation s, float f)
                          {
                          Minecraft minecraft = FMLClientHandler.instance().getClient();
                          ScaledResolution scaledresolution = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight);
                          int i = scaledresolution.getScaledWidth();
                          int j = scaledresolution.getScaledHeight();
                          GL11.glEnable(GL11.GL_BLEND);
                          GL11.glDisable(GL11.GL_DEPTH_TEST);
                          GL11.glDepthMask(false);
                          GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                          GL11.glColor4f(1.0F, 1.0F, 1.0F, f);
                          GL11.glDisable(GL11.GL_ALPHA_TEST);
                          minecraft.func_110434_K().func_110577_a(s);
                          Tessellator tessellator = Tessellator.instance;
                          tessellator.startDrawingQuads();
                          tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D);
                          tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D);
                          tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D);
                          tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D);
                          tessellator.draw();
                          GL11.glDepthMask(true);
                          GL11.glEnable(GL11.GL_DEPTH_TEST);
                          GL11.glEnable(GL11.GL_ALPHA_TEST);
                          GL11.glColor4f(1.0F, 1.0F, 1.0F, f);
                          }
                          
                          @Override
                          public EnumSet <ticktype>ticks() {
                          // TODO Auto-generated method stub
                          return EnumSet.of(TickType.RENDER, TickType.CLIENT);
                          }
                          
                          public static void zoom(float value)
                          {
                          ObfuscationReflectionHelper.setPrivateValue(EntityRenderer.class, FMLClientHandler.instance().getClient().entityRenderer, value, "cameraZoom");
                          }
                          
                          @Override
                          public String getLabel() {
                          return "TickClientHandler";
                          }
                          
                          }
                          
                          ```</ticktype></ticktype></ticktype>
                          

                          Le public ```java
                          static final ResourceLocation zoomOverlay = new ResourceLocation(“votreModID”, “textures/blur/votreZoomOverlay.png”);

                          et le ```java
                          minecraft.func_110434_K().func_110577_a(s);
                          ``` et```java
                          public static void renderTextureOverlay(ResourceLocation s, float f)
                          ``` sont soulignés en rouge , je suppose qu'ils n'existent pas en 1.5.2 , donc par quoi les remplacer ?
                          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

                            Oui les resourceLocation c’est en 1.6, en 1.5 c’est entre chose, la même chose que pour les TileEntitySpecialRender il me semble.

                            1 réponse Dernière réponse Répondre Citer 0
                            • elias54E Hors-ligne
                              elias54 Administrateurs
                              dernière édition par

                              en 1.5.2, vire la ligne public static final ResourceLocation et remplace le ResourceLocation du void par String.

                              Ensuite, tu auras une ligne en erreur dans la méthode, remplace la par minecraft.bindTexture(“laTextureEtSonChemin.png”)

                              Mon site | GitHub

                              1 réponse Dernière réponse Répondre Citer 0
                              • Nolan-XXN Hors-ligne
                                Nolan-XX
                                dernière édition par

                                @‘robin4002’:

                                Oui les resourceLocation c’est en 1.6, en 1.5 c’est **autre **chose, la même chose que pour les TileEntitySpecialRender il me semble.

                                Et je dois faire quoi du coup ?
                                Tu sais , je n’ai pas ton niveau …

                                @‘elias54’:

                                en 1.5.2, vire la ligne public static final ResourceLocation et remplace le ResourceLocation du void par String.

                                Ensuite, tu auras une ligne en erreur dans la méthode, remplace la par minecraft.bindTexture(“laTextureEtSonChemin.png”)

                                J’ai toujours une erreur a bindTexture

                                1 réponse Dernière réponse Répondre Citer 0
                                • elias54E Hors-ligne
                                  elias54 Administrateurs
                                  dernière édition par

                                  mh…
                                  renderengine ou quelque chose comme ça… je sais que c’est minecraft.QUELQUECHOSE.bindTexture…

                                  Mon site | GitHub

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

                                    Salut d’abord très bien comme tuto mais j’ai un problème , j’ai une erreur à cette ligne

                                    minecraft.getTextureManager().bindTexture(s);

                                    Tu aurait une idée si je la suprime sa marche mais j’ai l’image ou il y a toute leS image genre la. Barre de vie , les cœur pourrait tu m’aider

                                    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 robin4002

                                      minecraft.func_110434_K().func_110577_a(s); pour les anciennes version de forge.
                                      Les tutoriels ont été mis à jour pour les nouvelles mapping de mcp : https://www.minecraftforgefrance.fr/topic/166/mise-à-jour-de-tous-les-tutoriels-vers-les-nouvelles-mappings
                                      Il est mieux d’utiliser une version de forge supérieur à 849.

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

                                        @‘robin4002’:

                                        minecraft.func_110434_K().func_110577_a(s); pour les anciennes version de forge.
                                        Les tutoriels ont été mis à jour pour les nouvelles mapping de mcp : http://www.minecraftforgefrance.fr/showthread.php?tid=188
                                        Il est mieux d’utiliser une version de forge supérieur à 849.

                                        j’ai remit a jour le forge mais quand je met la ligne:

                                        mc.getTextureManager().bindTexture(resourcelocation)
                                        

                                        j’ai toujours une erreur a “mc” et a “resourcelocation”

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

                                          Fais un screen de ce que te propose Eclipse, car là on peut pas savoir d’où viennent les erreurs.

                                          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                                            voila désoler du temps je ne pouvait pas utiliser mon pc voici les deux erreur et les proposition de éclipse

                                            https://dl.dropboxusercontent.com/u/81327380/Sans titre2.png

                                            https://dl.dropboxusercontent.com/u/81327380/Sans titre.png

                                            c’est du dropbox je ne sais pas ou mettre mes image a part sur dropbox

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB