Résolu Changer l'état d'une variable Forge [1.7.10]
-
Bonjour à vous, je souhaite changer l’état d’une variable (private static int debugFPS;).
Je souhaite la passer de private à public et j’ai entendu dire que c’étais possible en passant par gradlew, quelqu’un sait comment faire svp ? -
Ah, il y a " fps" en plus dans le string, il faut le retirer avant de parser:
if(Integer.valueOf(fpsString.substring(0, fpsString.length() - 4)) <= 15) {
-
Salut,
Il faut utiliser un access transformer. -
C’est à dire ? Ou sinon sais tu comment je pourrais récupérer le nombres de fps du joueur ?
-
Minecraft.getDebugFPS();
ca te retourne un integer, soi le nombres de fps afficher avec le F3 -
Il y a un tutoriel de SCAREX sur les AT ici : https://www.minecraftforgefrance.fr/topic/3445/utiliser-les-access-transformer
-
@spyman Je sais bien et je cherche à récupérer ce chiffre pour faire un système de couleur des fps dans le f3, je l’avais déjà fais sous mcp
-
@robin4002 En regardant le tuto j’ai vu que si on utilisais la variable qu’une seule fois il étais plus logique d’utiliser ObfuscationReflectionHelper, le truc c’est que je ne sais pas trop comment m’en servir pour le DebugFPS, as tu un tuto qui explique comme cela fonctionne ? En cherchant sur le site j’ai vu des gens qui avaient des problèmes mais pas de tuto ^^"
-
Tu as juste à utiliser
Minecraft.getMinecraft().getDebugFPS()
pour voir la valeur de la variable, pas besoin de réflexion. -
@robin4002 Il n’y a que
getEntityDebug()
et c’est un String -
@arinonia Tiens autrement ceci fonctionne: Minecraft.getMinecraft().debug.split(“,”, 2)[0]
Ah et également pas besoin de tuto, la méthode getPrivateValue est documentée, les paramètres sont TRÈS explicites. -
@plaigon mc.debug.split(“,”, 2)[0]; c’est un String, je me sert de ça pour afficher les fps justement
-
Ton problème c’est juste d’avoir les fps sous forme d’int ?
Si oui, il te suffit de parser la valeur du string précédent avecInteger.valueOf(string)
-
@robin4002 J’ai fais ça
if(Integer.valueOf(fpsString) <= 15) { this.drawString(mc.fontRenderer, fpsString, 10, 10, 0xFF0000); }else if(Integer.valueOf(fpsString) > 15 && Integer.valueOf(fpsString) <= 30) { this.drawString(mc.fontRenderer, fpsString, 10, 10, 0x40A497); }else if(Integer.valueOf(fpsString) > 30 && Integer.valueOf(fpsString) <=60) { this.drawString(mc.fontRenderer, fpsString, 10, 10, 0x12FE01); }else if(Integer.valueOf(fpsString) > 60) { this.drawString(mc.fontRenderer, fpsString, 10, 10, 0x368230); }
et quand je lance le jeux et que j’appuis sur f3 mon jeux crash à cause d’un
Unexpected error java.lang.NumberFormatException: For input string: "4 fps"
-
Ah, il y a " fps" en plus dans le string, il faut le retirer avant de parser:
if(Integer.valueOf(fpsString.substring(0, fpsString.length() - 4)) <= 15) {
-
@robin4002 a dit dans Changer l'état d'une variable Forge [1.7.10] :
if(Integer.valueOf(fpsString.substring(0, fpsString.length() - 4)) <= 15) {
Oui merci à toi
-
10 mois après je me rends compte que j’étais sacrément con xD et surtout que j’avais oublié de passer en résolu ^^’
Je le passe en résolu x) -
@arinonia Tant fait pas, dans 10 mois tu dira la même chose
-
J’en doute absolument pas x) c’est la progression xD