Résolu Comment faire pour que les joueurs entende autour de moi le son que j'active
-
bah aider moi alors
-
Pose les bases et essaie par toi même avant.
-
Vous pouvez pas me redirigé vers un tuto car la je vois pas du tous ce que veux dire Julot10085
-
Euh les booleans, c’est juste la base. T’en as vu des centaines quand t’as codé ton mod, je parie. Creuses toi les méninges ou passe faire un tour sur Openclassroom.fr
-
Ce que veux dire Julot c’est que tu fais un key listener, quand la touche est pressé tu passe un boolean a true et quand elle est repressé tu le passe à false comme ça:
boolean = !boolean
et ensuite tu fais jouer le son tant que le boolean est sur true
-
un truc comme ça ? ;
public static void main(String [] args){ boolean runOK=true; while(runOK){ System.out.println("bla bla"); } } }
-
Bah ouais sauf que ta touche doit changer la valeur donc:
runOK = !runOK
mais de ce que je vois, tu n’es pas dans le contexte de Minecraft.
-
WWaa c’est trop l’bordel jlaisse tomber , merci quand meme juste vous pouvez m’aider pour le if(player.openContainer instanceof ContainerPlayer) marche pas
-
Tu veux vérifier si un Gui est ouvert?
Si oui:
if(Minecraft.getMinecraft().currentScreen != null) { Action }
-
Non je veux jouer un son avec une touche j’ai déjà le code de cela mais je veux que on puisse le jouer en ayant l’inventaire ouvert ^^
-
Ah d’accord je n’ai pas vraiment jamais touché à ça, désolé.
-
UP
UP -
où est le problème ?
-
page 4
-
Renvoi toutes tes classes : paquet, handler, la classe où tu envoies ton paquet
-
Packet:
package com.AltisMine.mod; import java.util.Scanner; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.ContainerPlayer; import net.minecraft.world.World; import io.netty.buffer.ByteBuf; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; public class PacketSamu implements IMessage{ private boolean samu; public PacketSamu(){ } public PacketSamu(boolean samu, int x, int y, int z){ this.samu = samu; } @Override public void fromBytes(ByteBuf buf) { this.samu = buf.readBoolean(); } @Override public void toBytes(ByteBuf buf) { buf.writeBoolean(this.samu); } public static class Handler implements IMessageHandler <packetsamu, imessage="">{ @Override public IMessage onMessage(PacketSamu message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; if(player.inventory.hasItem(AltisMineMod.GyroSamu)){ if(player.openContainer instanceof ContainerPlayer){ player.worldObj.playSoundAtEntity(player, "amm:BarrettShoot", 1.0F, 1.0F); } } return null; } } }
[font=Ubuntu, sans-serifenvoies du paquet:]
[font=Ubuntu, sans-serif@SubscribeEvent] [font=Ubuntu, sans-serifpublic void onEvent4(KeyInputEvent event)] [font=Ubuntu, sans-serif{] [font=Ubuntu, sans-serifif(keyBindSamu.isPressed())] [font=Ubuntu, sans-serif{] [font=Ubuntu, sans-serifkeyTestTyped3();] [font=Ubuntu, sans-serif}] [font=Ubuntu, sans-serif}] [font=Ubuntu, sans-serifprivate void keyTestTyped3()] [font=Ubuntu, sans-serif{] [font=Ubuntu, sans-serifEntityPlayer player = Minecraft.getMinecraft().thePlayer;] [font=Ubuntu, sans-serif if(player.inventory.hasItem(AltisMineMod.GyroSamu)){] [font=Ubuntu, sans-serif if(player.openContainer.getInventory() != null){] [font=Ubuntu, sans-serif if(player.openContainer instanceof ContainerPlayer){] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif if(true){] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif AltisMineMod.samu.sendToServer(new PacketSamu());] [font=Ubuntu, sans-serif }] [font=Ubuntu, sans-serif }] [font=Ubuntu, sans-serif }] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif ] [font=Ubuntu, sans-serif }] [font=Ubuntu, sans-serif}] [font=Ubuntu, sans-serif} ] ```</packetsamu,>
-
Bon, normalement ton code marche, sauf que ton code est toujours en bordel : tu mets un booléen dans ton paquet sans l’utiliser et tu utilises le constructeur sans le booléen, le if (true) dans ton ClientProxy est inutile.
-
Mieux comme ça?
Proxy:
@SubscribeEvent public void onEvent4(KeyInputEvent event) { if(keyBindSamu.isPressed()) { keyTestTyped3(); } } private void keyTestTyped3() { AltisMineMod.samu.sendToServer(new PacketSamu()); } }
Paquet:
public static class Handler implements IMessageHandler <packetsamu, imessage="">{ @Override public IMessage onMessage(PacketSamu message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; if(player.inventory.hasItem(AltisMineMod.GyroSamu)){ if(player.openContainer instanceof ContainerPlayer) player.worldObj.playSoundAtEntity(player, "amm:BarrettShoot", 1.0F, 1.0F); } return null; } } }
Ps: Marche toujours pas</packetsamu,>
-
Renvoi toutes tes classes, y’a encore des problèmes
-
Alors
Main:
public static SimpleNetworkWrapper samu; public static SimpleNetworkWrapper police; public static SimpleNetworkWrapper pompier; samu = NetworkRegistry.INSTANCE.newSimpleChannel("amm:"); samu.registerMessage(PacketSamu.Handler.class, PacketSamu.class, 0, Side.SERVER); police = NetworkRegistry.INSTANCE.newSimpleChannel("amm"); police.registerMessage(PacketPolice.Handler2.class, PacketPolice.class, 1, Side.SERVER); pompier = NetworkRegistry.INSTANCE.newSimpleChannel("am"); pompier.registerMessage(PacketPompier.Handler.class, PacketPompier.class, 2, Side.SERVER);
Proxy:
@SubscribeEvent public void onEvent4(KeyInputEvent event) { if(keyBindSamu.isPressed()) { keyTestTyped3(); } } private void keyTestTyped3() { AltisMineMod.samu.sendToServer(new PacketSamu()); } }
Packet:
package com.AltisMine.mod; import java.util.Scanner; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.ContainerPlayer; import net.minecraft.world.World; import io.netty.buffer.ByteBuf; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; public class PacketSamu implements IMessage{ private boolean samu; public PacketSamu(){ } public PacketSamu(boolean samu, int x, int y, int z){ this.samu = samu; } @Override public void fromBytes(ByteBuf buf) { this.samu = buf.readBoolean(); } @Override public void toBytes(ByteBuf buf) { buf.writeBoolean(this.samu); } public static class Handler implements IMessageHandler <packetsamu, imessage="">{ @Override public IMessage onMessage(PacketSamu message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; if(player.inventory.hasItem(AltisMineMod.GyroSamu)){ if(player.openContainer instanceof ContainerPlayer) player.worldObj.playSoundAtEntity(player, "amm:BarrettShoot", 1.0F, 1.0F); } return null; } } } ```</packetsamu,>