[Commande] Masquer le viseur



  • Bonjour à tous !

    Et encore bravo au 512 membres !

    Mais voilà, je m'oppose à un problème en ces beaux jours !

    Je cherche à masquer la croix (le viseur) via une commande, le problème c'est que cette commande s'exécute pour tout le monde, alors que je voudrais que la personne qui l'exécute ai les modifications MAIS que de son côté !

    En gros il faudrait que la commande soit exécuté seulement côté client.

    je vais vous fournir mes classes si vous voyez (mieux que moi) d'où viens le problème

    Classe principale:

    @EventHandler
       public void serverStarting(FMLServerStartingEvent event)
       {
               // Executez au démarrage du serveur
               event.registerServerCommand(new ClientCommands());
       }
    

    ClientCommands:

    package viruz.zeamateis.commands;
    
    import viruz.zeamateis.event.ClientEvent;
    import net.minecraft.command.CommandBase;
    import net.minecraft.command.ICommandSender;
    import net.minecraft.command.WrongUsageException;
    import net.minecraft.util.ChatMessageComponent;
    import net.minecraft.util.EnumChatFormatting;
    
    public class ClientCommands extends CommandBase
    {
    
    @Override
    public String getCommandName()
    {
    return "ViruZ";
    }
    
    @Override
    public String getCommandUsage(ICommandSender icommandsender)
    {
    return "commands.crossHairs.usage";
    }
    
    @Override
    public void processCommand(ICommandSender sender, String[] arguments)
    {
    if(arguments.length <= 0)
    throw new WrongUsageException(this.getCommandUsage(sender));
    if(arguments[0].matches("cross"))
    {
    if(arguments.length == 1)
    {
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.usage").setColor(EnumChatFormatting.RED));
    }
    else if(arguments[1].matches("on"))
    {
    ClientEvent.onOff = false;
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.enable"));
    }
    else if(arguments[1].matches("off"))
    {
    ClientEvent.onOff = true;
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.disable"));
    }
    else if(arguments[1].matches("help"))
    {
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.usage.help").setColor(EnumChatFormatting.BLUE));
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.justType").setColor(EnumChatFormatting.BLUE));
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.on.usage"));
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.off.usage"));
    
    }
    else
    {
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.crossHairs.invalid").setColor(EnumChatFormatting.RED));
    }
    }
    else if(arguments[0].matches("help"))
    {
    sender.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("commands.ViruZ.help"));
    }
    else
    {
    throw new WrongUsageException(this.getCommandUsage(sender));
    }
    }
    }
    

    L'event "RenderGameOverlayEvent.Pre" dans la classe ClientEvent

    :::
    Je ne met pas la fonction qui peut-être utilisée à mauvais escient !
    :::

    Je remercie toutes les personnes qui vont bien vouloir m'aider et m'expliquer le pourquoi du comment 😄


  • Modérateurs

    Va falloir absolument utiliser des paquets là. Sinon le reste à l'air bon.



  • Tu as juste a envoyer un packet normalement.

    Personnellement, je fais ça dans mon mod Ratchet & Clank, mais en vérifiant si le joueur tiens un item qui a une variable indiquant si le crosshair doit être render. Tu peux –peut-être-- utiliser les entity data, et faire un sorte que l'event vérifie que le joueur local possède ou non la boolean indiquant le statut de la commande. Le packet reste le mieux.



  • Bonjour à tous !

    Voilà, je ne cherche plus à savoir comment utiliser la commande pour masquer le curseur !

    Pourquoi ? Je vous explique !

    Un amis m'a rapporté qu'un problème survenait chez CERTAINES personne, pas toutes, qui ce déclenche quand un jeux vidéo quelconque ne possède pas ce qu'on appelle un point fixe à l'écran (le curseur/viseur), et le soucis c'est que des complications arrivent plus ou moins rapidement !

    Maux de têtes, maux de ventre, douleurs, disputes….

    Oui oui ! Des disputes ! Car chez certaines personne cela peut allez très loin !
    Et encore pire si une personne à tendance faire des crises d’épilepsies ! (Minecraft à des textures qui peuvent être très "spéciales")

    Donc voilà !

    Certain diront que c'est n'importe quoi, mais si un maux survient après avoir joué à un jeu sans curseur, posez vous la question !

    Et pour ne prendre aucun risque car certaines personnes sont plus sensible à ça, j'ai enlever la fonction qui permet de désactiver le curseur !

    Merci de votre lecture !



  • moi j'ai déjà jouet sans curseur, je pensais pas que il pouvais autant influencer.



  • Voilà après comme je le dis, ce n'est que chez certaines personnes sensible, moi il ne perturbe pas qu'il y en ai ou pas !

    Mais c'est vraiment cette notion de point fixe en fait, car notre cerveau n'arrive pas à ce concentrer sur un point, nos yeux regarde partout (on ne s'en rend pas compte)



  • @'ZeAmateis':

    Voilà après comme je le dis, ce n'est que chez certaines personnes sensible, moi il ne perturbe pas qu'il y en ai ou pas !

    Mais c'est vraiment cette notion de point fixe en fait, car notre cerveau n'arrive pas à ce concentrer sur un point, nos yeux regarde partout (on ne s'en rend pas compte)

    oui, mais notre cerveau regarde souvent, encore plus dans un jeu comme minecraft vers le centre et il vas surtout se concentrer sur les couleurs rouge… après malheureusement tous se passe dans notre tête (je connais des neuro et le cerveau est le pire bordel sur terre)



  • Oui ^^


  • Administrateurs

    Merci de revenir dans le sujet.


Log in to reply