Une histoire de Side pour un système de "recul" d'arme
-
@Override public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { if(!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); } int timer = stack.getTagCompound().getInteger("timer"); int playerRecoil = stack.getTagCompound().getInteger("playerRecoil"); int antiRecoil = stack.getTagCompound().getInteger("antiRecoil"); if(timer > 0) { stack.getTagCompound().setInteger("timer", timer - 1); } if(playerRecoil > 0) { playerRecoil *= 0.8F; Minecraft.getMinecraft().thePlayer.rotationPitch -= playerRecoil; antiRecoil += playerRecoil; Minecraft.getMinecraft().thePlayer.rotationPitch += antiRecoil * 0.2F; antiRecoil *= 0.8F; stack.getTagCompound().setInteger("playerRecoil", playerRecoil); stack.getTagCompound().setInteger("antiRecoil", antiRecoil); } }
Quand le joueur tire, l’integer playerRecoil passe à, par exemple, 30 et l’update se charge d’en faire un mouvement fluide.
Seulement ce qui est côté client provoque un crashDu coup j’ai tenté de mettre:
if(entity.worldObj.isRemote && playerRecoil > 0)
Bon déjà je ne sais pas si ça résout le problème de crash j’ai pas testé, ce que j’ai pu constaté c’est que du coup le joueur regarde en l’air un max jusqu’à pouvoir reprendre contrôle de l’axe vertical.
Je me dis que ma solution n’est pas la bonne et là j’ai franchement du mal à cerner tout ça. -
Salut, remplaces Minecraft.getMinecraft().thePlayer par entity ?
-
Houla, ça sent le surmenage. Je teste mais c’est tellement évident x]
Je fais 36choses à la fois et du coup je ne me laisse plus le temps de réfléchir.