Détecter le nombres de cliques/seconde
-
package fr.Mosca421.Arthania.View; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import fr.Mosca421.Arthania.Arthania; import io.netty.buffer.ByteBuf; public class View implements IMessage { private String text; public View() { } public View(String text) { this.text = text; } @Override public void fromBytes(ByteBuf buf) { text = ByteBufUtils.readUTF8String(buf); } @Override public void toBytes(ByteBuf buf) { ByteBufUtils.writeUTF8String(buf, text); } public static class Handler implements IMessageHandler <view, imessage="">{ @Override public IMessage onMessage(View message, MessageContext ctx) { System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName())); Arthania.networkWrapper.sendToServer(new View("View")); Arthania.networkWrapper.sendTo(new SomeMessage(), somePlayer); return null; // no response in this case } } }
Alors la je vais pas vous mentir je vois plus quoi faire quand j’ai ça pour vous dire j’ai une erreur que je sais meme pas comment régler
J’aime pas du tout se systeme de packets =/</view,> -
Ou est le problème ?
-
Partout ou que j’aille ya des problème
Je ne vois pas ou mettre le code de aymeric qui est avant je bloque la -
Lequel ?
-
voir se que vois un joueur
-
C’est à dire ? Quel est le but ?
-
Le joueurs espion espionne un autre joueur (permet de surveiller un joueur sans avoir a bouger (que les admin ça se fait quand tu apuille sur la touche u ouvre gui tu met le pseudo du gars a voir et ça te met dans lui en gros
-
Pour ça il faut être côté client et avoir un accès à une interface ICamera et appeler la fonction isBoundingBoxInFrustum avec comme paramètre la bounding box du joueur
-
Ok bon je vois ça demain mais faudrait que des personnes patiente m’aide
-
Demain aprem ou soir j’explique clairement ou chaque code va, si quelqu’un le fait pas avant.
Mais déjà un indice, dans ton packet il ne te faut pas un String à envoyer mais un int qui contiendra lid du joueur dans le monde.EDIT : pas besoin de packet, le code dans mon post suivant.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
Alors explication claire :
Il fait que dans ta classe d’event tu créées une fonction comme ça qui sera appelée lorsque tu appuies sur une touche.@SubscribeEvent public void keyPressed(InputEvent.KeyInputEvent event) { int code = Keyboard.getEventKey(); String key = String.valueOf(Keyboard.getEventCharacter()); }
Je te laisse faire pour vérifier si key est bien égal à “u”.
Et maintenant que j’y réfléchi, il n’y a pas besoin de packets, il faut récupérer “la chose” que le joueur pointe avec la souris (rien/block/entitée) comme ça :Minecraft.getMinecraft().objectMouseOver ```, puis vérifier si ce n'est pas égal à null, puis faire ```java if(objectMouseOver.entityHit instanceof EntityPlayerSP) ``` pour savoir si c'est un joueur qui est pointé, et là tu fais ```java Minecraft.getMinecraft().setRenderViewEntity(objectMouseOver.entityHit); ```Je fais exprès de ne pas te donner tout le code qui est simple, pour te laisser faire une partie du travail, mais si tu as du mal je te le donnerai.
-
Okey la key je connais mais j’ai fais ça
http://prntscr.com/bf3gdi
Petite erreur (encore) The method setRenderViewEntity(Entity) is undefined for the type Minecraft -
Il y a une ouverture de parenthèse en trop.
-
Merci robin juste que j’avais test un truc et que j’ai screen sans la voir xD regarde mon poste en haut ya l’erreur ecrite
-
6 pages pour une fonctionnalité qui ne sert a rien
Le nombre de clic est une donnée cliente, un anti-cheat se trouve toujours coté serveur.
Tu n’a aucun moyen fiable de contrôler le nombre de clics côté client.
En revanche, tu peux mettre en place un timeout entre 2 actions coté serveur. Comme ça le client pourra bombarder de clics, la fonctionnalité demandée sera en cooldown. -
mais eu On se calme certaine question dans se poste peuvent etre utiles
-
J’ai pas trop compris si tu as toujours l’erreur, mais retire la ( juste après setRenderViewEntity.
Et @Blackout, justement, la solution que j’ai donnée avec le NetHandlerPlayServer custom contrôle les clic envoyés par packet au serveur, donc le client ne peut pas l’éviter. -
Oui j’ai l’erreur sans la deuxieme (
-
Tu as l’erreur “The method … undefined for …” si tu enlèves la parenthèse en trop ? Essayes de faire ctrl + click sur setRenderViewEntity (avec la ( en trop d’enlevée).
-
La ( c’est une parenthèse