Résolu Texture
-
Bien salut j’essaye de faire un anti xray texture pack mais ses que je me suis retrouver avec sa avec des recherche
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; import java.io.PrintStream; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) { this.mc = mc; } @SubscribeEvent public void onRenderTick(TickEvent.RenderTickEvent event) { if (event.phase == TickEvent.Phase.START) { checkTexture(); } } private void checkTexture() { if (this.mc.thePlayer != null) { if (hasIllegalTexture()) { System.err.println("texture interdite d�tect� !"); Minecraft.getMinecraft().shutdown(); } } } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r); if (textureObject == null) { textureObject = new SimpleTexture(r); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for (int color : textureData) { int alpha = color >> 24 & 0xFF; if (alpha != 255) { return true; } } } catch (IOException e) { e.printStackTrace(); } return false; } }
mais je sait pas comment l’apeller
-
@‘amigo127’:
Bien salut j’essaye de faire un anti xray texture pack mais ses que je me suis retrouver avec sa avec des recherche
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; import java.io.PrintStream; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) { this.mc = mc; } @SubscribeEvent public void onRenderTick(TickEvent.RenderTickEvent event) { if (event.phase == TickEvent.Phase.START) { checkTexture(); } } private void checkTexture() { if (this.mc.thePlayer != null) { if (hasIllegalTexture()) { System.err.println("texture interdite d�tect� !"); Minecraft.getMinecraft().shutdown(); } } } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r); if (textureObject == null) { textureObject = new SimpleTexture(r); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for (int color : textureData) { int alpha = color >> 24 & 0xFF; if (alpha != 255) { return true; } } } catch (IOException e) { e.printStackTrace(); } return false; } }
mais je sait pas comment l’apeller
c’est à dire?
-
Il faut register levent : FMLCommonHandler.bus().register(new TickHandler());
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
fait comme sa sinon le serveur crash
if (event.getSide().isClient()) {FMLCommonHandler.instance().bus().register(this);
Minecraft mc = Minecraft.getMinecraft();
FMLCommonHandler.instance().bus().register(new TickHandler(mc));}
dans le init -
Non, c’est n’importe quoi de vouloir check les textures à chaque tick
-
non ont contraire ses bien car si une personnes met xray sa va le dtecter et le kick
-
Sauf que ça va ralentir le jeu.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
En effet, une détection toutes les 20 secondes ça serait suffisant et plus propre.
-
Je modifie sa ou car ses un code que j’ai trouvé sur le forum et le les pas compris
-
@‘amigo127’:
Je modifie sa ou car ses un code que j’ai trouvé sur le forum et le les pas compris
La première étape avant toute chose, ce serait de comprendre le code que tu trouves au lieu de l’utiliser bêtement.
Va lire les tutoriels sur les événements.Ensuite même une détection tout les 20 ticks, c’est crade et ça dégradent quand même fortement les performances, pour une sécurité dérisoire car très facilement contournable.
Pourquoi ne pas directement s’attaquer au Render en désactivant la notion d’alpha lors du dessin du bloc ? -
Ok je vais aller lire le tuto des evenement car la sa lag bien
sinon sa marcherais de remplacer tous les blocks de stone du monde en un autre block qui remplace la stone et qui a la meme texture ?
-
Inutile.
Il suffira de faire un pack de ressource custom pour palier à ça.Par contre pourquoi il y a la balise résolu si ce n’est pas résolu ?!?
-
- ba je sait pas xD
- Sa set naze booo les textures packs
3)Je vien de lire le tuto met j’ai pas trouver ou ont get tous les combien de temps sa fait l’action
-
Dans minecraft il y a 20 tick par seconde.
Pour que le code soit moins exécuté il faut faire un petit compteur.Après blackout a donné une bonne alternative, mais plus compliqué à mettre en place.
-
ses dire ?
-
“C’est à dire” ?
Tu crées un compteur que tu vas incrémenter et après il faut faire un modulo pour avoir le temps que tu veux, exemple : (compteur % 2) == 0 va exécuter un tick sur 2
-
@‘robin4002’:
Après blackout a donné une bonne alternative, mais plus compliqué à mettre en place.
Plus compliqué mais plus efficace. On n’a rien sans rien
Quitte a faire de la sécurité, autant faire autre chose qu’un anti-cheat passoire -
Avec le temps qu’il faut pour charger un pack de ressource un check toutes les 20 secondes suffit largement à éjecter le joueur en cas d’utilisation de ce dernier.
Mais en effet ne pas rendre la transparence de certains blocs reste bien mieux.
-
ses quoi la notion alpha d’un bloc ?
-
L’alpha, c’est la quantité de transparence.