October 11, 20196 yr 49 minutes ago, Differentiation said: No, the arrow doesn't do anything if the hit entity is the shooter. I didn't find anything with flown ticks affecting hit entities. Is it possible to post your code?
October 11, 20196 yr Author 17 minutes ago, poopoodice said: Is it possible to post your code? public class EntityRayBullet extends EntityThrowable { private static final DataParameter<Float> GRAVITY = EntityDataManager.createKey(EntityRayBullet.class, DataSerializers.FLOAT); public ResourceLocation getTexture() { return DinocraftEntities.RAY_BULLET_TEXTURE; } public EntityRayBullet(World world) { super(world); } public EntityRayBullet(World world, EntityLivingBase shooter) { super(world, shooter); } public EntityRayBullet(EntityLivingBase shooter, float gravity) { super(shooter.world, shooter); this.dataManager.set(GRAVITY, gravity); } @Override protected void entityInit() { super.entityInit(); this.dataManager.register(GRAVITY, 0.0F); } private void kill() { if (this.thrower != null && this.thrower instanceof EntityLiving) { DinocraftEntity.getEntity(this.thrower).setShootingTick(0); } this.setDead(); } @SideOnly(Side.CLIENT) @Override public void handleStatusUpdate(byte id) { if (id == 3) { this.world.playSound(this.posX, this.posY, this.posZ, DinocraftSoundEvents.CRACK, SoundCategory.NEUTRAL, 1.0F, rand.nextFloat() + 1.0F, false); for (int i = 0; i < 16; ++i) { this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, this.posX, this.posY, this.posZ, Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); } } } @Override protected void onImpact(RayTraceResult result) { switch (result.typeOfHit) { case BLOCK: { Block block = this.world.getBlockState(result.getBlockPos()).getBlock(); if (block instanceof BlockBush || block instanceof BlockReed || block instanceof BlockVine) { return; } else { if (!this.world.isRemote) { this.kill(); } this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, result.getBlockPos().getX(), result.getBlockPos().getY(), result.getBlockPos().getZ(), Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); } break; } case ENTITY: { if (!this.world.isRemote && result.entityHit != null && result.entityHit instanceof EntityLivingBase && result.entityHit != this.getThrower()) { EntityLivingBase thrower = this.getThrower(); result.entityHit.attackEntityFrom(thrower != null ? thrower instanceof EntityPlayer ? DamageSource.causeThrownDamage(this, thrower) : DamageSource.causeMobDamage(thrower) : DamageSource.GENERIC, result.entityHit.isNonBoss() ? this.rand.nextFloat() + 4.5F : this.rand.nextFloat() + 0.5F); this.world.playSound(null, result.entityHit.getPosition(), DinocraftSoundEvents.HIT, SoundCategory.NEUTRAL, 1.0F, rand.nextFloat() + 1.0F); this.kill(); } else { return; } this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, result.entityHit.posX, result.entityHit.posY, result.entityHit.posZ, Math.random() * 0.2 - 0.1, Math.random() * 0.25, Math.random() * 0.2 - 0.1, Item.getIdFromItem(DinocraftItems.RAY_BULLET)); break; } default: break; } if (!this.world.isRemote) { this.world.setEntityState(this, (byte) 3); this.kill(); } } @Override public void onUpdate() { if (this.ticksExisted > 200) { this.setDead(); } if (this.isInWater()) { this.motionY -= 0.005D; this.motionX *= 0.95D; this.motionZ *= 0.95D; } super.onUpdate(); } @Override protected float getGravityVelocity() { return this.dataManager.get(GRAVITY); } }
October 11, 20196 yr 8 hours ago, poopoodice said: No, I don't think so, because those variables were declared in the onUpdate method. Yeah that's what I was trying to say. Rewrite the onUpdate() and remove those things shouldn't be too hard, and there must be something you don't want in it as well. Edited October 11, 20196 yr by poopoodice
October 11, 20196 yr Author 6 hours ago, diesieben07 said: EntityThrowable does the same thing, but with 2 ticks. So I'm just not gonna call the parent method in onUpdate and copy from EntityThrowable excluding the part with the tick delay and then I'll update the thread status.
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.