Créer un item zoom
-
Corrigé !

-
Marche parfaitement en 1.7.10 également

Yeah , ce tuto est génial j’ai même édité le code pour avoir un Overlay voici le code pour les intéressé

JE SUIS EN 1.7.10 ( Je ne sais pas si ca marche en 1.8 )
public static final ResourceLocation zoomOverlay = new ResourceLocation("dinocraft", "textures/blur/zoom.png"); public static void renderTextureOverlay(ResourceLocation s, float f) { Minecraft minecraft = FMLClientHandler.instance().getClient(); ScaledResolution scaledresolution = new ScaledResolution(minecraft, 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.getTextureManager().bindTexture(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); } @SubscribeEvent public void onRenderExperienceBar(RenderGameOverlayEvent event) { if(ItemRegister.zoom) { if(Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) { zoom(6.0D); //c'est déjà pas mal, mais libre à vous de jongler sur la valeur if(ItemRegister.zoom && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && Minecraft.getMinecraft().currentScreen == null) { renderTextureOverlay(zoomOverlay, 1.0F); } } } else { zoom(1.0D); //par défaut, le zoom de la caméra est à 1.0D } } public static void zoom(double zoomValue) { ObfuscationReflectionHelper.setPrivateValue(EntityRenderer.class, Minecraft.getMinecraft().entityRenderer, zoomValue, "cameraZoom", "field_78503_V"); } } -
Nope ! En 1.8 il y a le Tessellator qui devient WorldRenderer (enfin, il faut appeler WorldRenderer VIA tessellator)
like that :
Tessellator tessellator = Tessellator.getInstance(); WorldRenderer worldrenderer = tessellator.getWorldRenderer(); worldrenderer.startDrawingQuads();etc…
-
Salut, le code fonctionne très bien seul problème c’est que quand on quitte l’item en question dans l’inventaire, si on a pas refait de clic droit ça reste en zoom…. Comment on peut faire ?
-
C’est à dire ?
-
Il veut dire que lorsque tu fait un click droit avec l’item il zoom mais lorsque tu change le slot de l’inventaire ca reste en zoom , il voudrais savoir comment faire pour que lorsqu’on change de slot ( donc on est plus sur l’item zoom ) ca dézoom

-
@‘QuantumSheep’:
Salut, le code fonctionne très bien seul problème c’est que quand on quitte l’item en question dans l’inventaire, si on a pas refait de clic droit ça reste en zoom…. Comment on peut faire ?
Pour enlever le zoom lors du switch d’item, il suffit d’ajouter une condition :
ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); if(itemstack != null && itemstack.getItem() == VotreClassePrincipale.votreItem && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) { zoom(6.0D); //c'est déjà pas mal, mais libre à vous de jongler sur la valeur } }else{ zoom(1.0D); //par défaut, le zoom de la caméra est à 1.0D } -
Hum, j’ai dû mal comprendre pour la condition mais switch d’item n’enlève pas le zoom.
:::
public class TickClientHandlerEvent { @SubscribeEvent public void onRenderExperienceBar(RenderGameOverlayEvent event) { if(ModPg2.zoom) { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); if(itemstack != null && itemstack.getItem() == ModPg2.itemZoom && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) { zoom(6.0D); } }else{ zoom(1.0D); } } public static void zoom(double zoomValue) { ObfuscationReflectionHelper.setPrivateValue(EntityRenderer.class, Minecraft.getMinecraft().entityRenderer, zoomValue, "cameraZoom", "field_78503_V"); } }:::
Edit: Oui, mal compris, une erreur de condition
-
J’avais commencé par ce tuto pour mes snipers.
Au final le mieux pour moi a été de passer par les tag nbt de mes armes.
Sinon le zoom est mal pris en compte je trouve: Afficher un GUI si le zoom est activé devient un réel problème si le joueur drop l’arme (oui c’est une éventualité)Donc faîtes bien attention aux utilisations de vos items avant d’opter pour l’une ou l’autre solution
-
Bonsoir, à tous.
J’ai suivi le tuto et j’ai plusieurs problèmes

J’ai enregistré l’item dans ma classe principal comme tout les autres items, donc j’ai mis la texture et quand je met la texture j’obtient un crash :c
Et lorsque la texture n’est pas correct ou n’est pas mise pas de crash de plus, j’ai voulut faire que lorsqu’on switch d’item sa remet la vue normal mais sa ne marche pas non plus je suis en 1.7.10 :c -
Yo, faudrait ton code et tes logs stp de maniere a mieux cerné le probleme
-
Classe Principal : https://pastebin.com/1kdV9Cv7
Classe de l’item : https://pastebin.com/1QEZbGDV
TickClientHandlerEvent : https://pastebin.com/D92X8epY
L’erreur a l’ajout de la texture dans la classe principal : https://pastebin.com/yrvejYAh -
Bonjour qu’elle partit de code change en 1.12.2 car je n’ai pas d’erreur et pourtant quand je fait un click droit rien ne ce passe ^^ Merci pour votre aide
-
@n0tfound_404 J’ai un problème similaire, mais de mon côté, le jeu semble vouloir zoomer et décharge quelques chunks qui ne seraient pas visibles une fois le zoom effectué (normal), mais sans ajuster ma vue…
-
R robin4002 a fait référence à ce sujet sur
-
R robin4002 a fait référence à ce sujet sur
-
R robin4002 a fait référence à ce sujet sur
