perromercenary00 Posted January 3, 2019 Posted January 3, 2019 goog days i have a trouble and a broken english im doing some code to make guns in minecraft but i have this trouble i have a basic gun is this moment i make it shoot for rounds every time i press rigthclick one bullet every 256 milliseconds the gun works the shoot animation runs but notice than most of the times there was no sound effect and the code is not execute and no damage is cause to the target entity // ########################################################### public boolean disparo(ItemStack stack, World world, Entity entity) { if (world.isRemote) { //entity.world.playSound(null, entity.getPosition(), sonidos.pistola75nf_disparo, SoundCategory.PLAYERS, 2.0F,1.0F); return true; } if (!world.isRemote) { if (this.ammunition > 0) { entity.world.playSound(null, entity.getPosition(), sonidos.pistola75nf_disparo, SoundCategory.PLAYERS,2.0F, 1.0F); // this class do all the math necessary to calculate the bullet trajectory and return the affected entities objetoobjetivo objetivo = new objetoobjetivo(world, entity, 20, 1); if (objetivo.getHayEntidades()) { //there is afected entities ? ArrayList<Entity> entidades = objetivo.getEntidades(); Entity targetEntity = entidades.get(0); boolean isheadshoot = false; float dice = rollsAd100dice(); //random float number from 0.0F to 100 boolean iscritico = (dice < this.critico) ? true : false; dice = rollsAd100dice(); boolean iselemental = (dice < this.echange) ? true : false; for (int e = 0; e < entidades.size(); e++) { if (targetEntity != null && targetEntity instanceof EntityLivingBase) { EntityLivingBase livingtarget = (EntityLivingBase) targetEntity; isheadshoot = objetivo.isheadshoot(livingtarget); float hp = livingtarget.getHealth(); float maxhp = livingtarget.getMaxHealth(); float pain = (iscritico) ? (this.damage * 1.5F) : this.damage; pain = (isheadshoot) ? (pain * 1.5F) : pain; hp -= pain; hp =(hp < 0.0F)? 0.0F : hp ; livingtarget.setHealth(hp); //shows mesage on the player screen chat.chatm(entity, "#" + this.getTic() + " headshoot=" + isheadshoot + " iscritico=" + iscritico + " hp=" + livingtarget.getHealth()+"/"+maxhp); } } } } this.ammunition--; this.ammunition = (this.ammunition < 1) ? 0 : this.ammunition; return true; } return false; } soo i disable the sound before the shoot code and now its runs perfect if (!world.isRemote) { if (this.ammunition > 0) { // entity.world.playSound(null, entity.getPosition(), sonidos.pistola75nf_disparo, SoundCategory.PLAYERS,2.0F, 1.0F); also notice than the sound dont'n works when i execute this client side entity.world.playSound(null, entity.getPosition(), sonidos.pistola75nf_disparo, SoundCategory.PLAYERS,2.0F, 1.0F); when i play the sound for the bullet shoot its most of the times fucks up server side is not like totally crashig the virtual server but it stalls and run no more code until next tic soo i must wrong using sounds is this the right way to play a sound ?? and why is not working client side entity.world.playSound(null, entity.getPosition(), sonidos.pistola75nf_disparo, SoundCategory.PLAYERS,2.0F, 1.0F); Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.