Non résolu Déclencher un tir d'arme à feu/recharge sans animation joueur
-
Bonjour, je suis actuellement en train de m’entrainer au modding forge en 1.12.2 (même si la version commence a daté c’est vrai) et je développe un mod qui aura pour objectif de rajouter des armes diverses ainsi peut être à l’avenir des véhicules(mais ne précipitons pas les choses).
Voila après avoir longuement étudié les classe de l’arc et des flèches j’ai moi même mis au point mon système d’ajout d’arme custom qui marche très bien même si on peut encore y ajouter deux trois optimisations et features. Seulement pour tirer avec mes armes j’ai opté pour une vérifications de tous les events où le clic gauche était appeler pour ainsi l’intercepté et envoyer mon paquet de tir au server. Mais ce système est plutôt précaire et peut optimisé je n’ai absolument pas la main mise dessus, par exemple j’aimerais que le joueur ne joue pas d’animation de clic gauche quand il tien mon arme pour ainsi pouvoir l’animer moi même. J’ai aussi le même problème avec la touche “R” de recharge qui lance elle aussi une animation inopiné.
Voila j’ai (enfin) fini de parler je vous montre les events déclencheurs:
//recharge @SideOnly(Side.CLIENT) public void performKeys() { if(INSTANCE.getKeyByIndex(1).isPressed()) R6Network.NETWORK.sendToServer(new ReloadGunPacket()); }
@SubscribeEvent public void playerShoot(PlayerInteractEvent.LeftClickBlock event) { if(event.getEntityPlayer().getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemWeapon){ event.setCanceled(true); R6Network.NETWORK.sendToServer(new PlayerShootPacket()); } } @SubscribeEvent public void leftClickEmpty(PlayerInteractEvent.LeftClickEmpty event) { if(event.getEntityPlayer().getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemWeapon){ R6Network.NETWORK.sendToServer(new PlayerShootPacket()); } } @SubscribeEvent @SideOnly(Side.CLIENT) public void onMouseDown(InputEvent.MouseInputEvent event) { if(Minecraft.getMinecraft().player.getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemWeapon){ if(Minecraft.getMinecraft().gameSettings.keyBindAttack.isPressed()) { R6Network.NETWORK.sendToServer(new PlayerShootPacket()); } } } @SubscribeEvent @SideOnly(Side.CLIENT) public void onKeyDown(InputEvent.KeyInputEvent event) { R6Keys.INSTANCE.performKeys(); }
Et voila alors si vous avez ne serait-ce qu’une tout petite piste j’en serais ravie.
Merci
PS: Si j’ai omis de préciser des informations importantes n’hésitez pas a me le faire savoir.
-
tu va trouver ton bonheur avec ce mods en codes source :https://github.com/CAS-ual-TY/GunCus