Armes et munitions



  • Bonjour,

    J'ai un petit problème, je vient de développer une armes avec des munitions et quand je tire avec l'arme, j'ai une erreur console que je ne comprend pas vraiment :

    Caused by: java.lang.NoSuchMethodException: fr.askip.combinecity.entity.Bullet.<init>(net.minecraft.world.World)
    at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_161]
    at java.lang.Class.getConstructor(Unknown Source) ~[?:1.8.0_161]
    at net.minecraftforge.fml.common.network.internal.EntitySpawnHandler.spawnEntity(EntitySpawnHandler.java:96) ~[EntitySpawnHandler.class:?]
    at net.minecraftforge.fml.common.network.internal.EntitySpawnHandler.process(EntitySpawnHandler.java:73) ~[EntitySpawnHandler.class:?]
    at net.minecraftforge.fml.common.network.internal.EntitySpawnHandler.access$000(EntitySpawnHandler.java:48) ~[EntitySpawnHandler.class:?]
    at net.minecraftforge.fml.common.network.internal.EntitySpawnHandler$1.run(EntitySpawnHandler.java:63) ~[EntitySpawnHandler$1.class:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_161]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_161]
    at net.minecraft.util.Util.runTask(Util.java:28) ~[Util.class:?]
    … 15 more
    

    Je sais que c'est dans la classe Bullet donc je vous la file :

    public class Bullet extends EntityFireball {
    
    public int damage = 0;
    
    public Bullet(World worldIn, EntityLivingBase shooter, double accelX, double accelY, double accelZ, int damage) {
    super(worldIn, shooter, accelX, accelY, accelZ);
    this.damage = damage;
    double d0 = (double) MathHelper.sqrt_double(accelX * accelX + accelY * accelY + accelZ * accelZ);
    this.accelerationX = accelX * 40 / d0 * 0.1D;
    this.accelerationY = accelY * 40 / d0 * 0.1D;
    this.accelerationZ = accelZ * 40 / d0 * 0.1D;
    this.setSize(0.15F, 0.15F);
    }
    
    @Override
    protected void onImpact(RayTraceResult result) {
    if (!this.worldObj.isRemote) {
    if (result.entityHit != null && this.shootingEntity != null) {
    result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.shootingEntity), damage);
    this.applyEnchantments(this.shootingEntity, result.entityHit);
    }
    if (result.typeOfHit == RayTraceResult.Type.BLOCK && this.shootingEntity != null) {
    System.out.println("");
    if (this.shootingEntity.worldObj.rand.nextInt(2) == 0) {
    Main.network.sendToAllAround(new PacketSounds(84),
    new NetworkRegistry.TargetPoint(shootingEntity.dimension, shootingEntity.posX,
    shootingEntity.posY, shootingEntity.posZ, 10));
    }
    }
    this.setDead();
    }
    }
    
    }
    

    Merci d'avance :)</init>


  • Administrateurs

    Salut,
    Les entités ont besoin d'un constructeur avec juste world comme argument, il est utilisé pour faire spawn l'entité sur le world client lorsqu'il reçoit un paquet de spawn d'entité.