A la recherche du mob parfait !



  • Bonjour MinecraftForgeFrance je vient de m'inscrir afin de recevoir de l'aide pour mon mod et aujourd'hui afin de compacté tous en un seul suejt j'ai décidé de parlé de l'amélioration de mon mob.
    I.Les Mouvements
    Alors dans cette partie deux erreurs s'imposent la premiere est que j'aimerais que mon mob se déplace sur l'axe y de haut en bas pour sa j'ai mis ceci dans mon render

    protected void PopoCorpseTransformation(EntityPopo par1EntityPopo, float par2, float par3, float par4)
    {
    System.out.println("Swag");
    float TransY = par1EntityPopo.YMovement / 100F;
    GL11.glTranslatef(0.0F, 0.4F - TransY, 0.0F);
    }
    
    protected void CorpseTransformation(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
    {
    this.PopoCorpseTransformation((EntityPopo)par1EntityLivingBase, par2, par3, par4);
    }
    

    Et pour YMovement j'ai mis ceci dans mon Entity

    /**
    * Called to update the entity's position/logic.
    */
    public void onUpdate()
    {
    super.onUpdate();
    
    if(MovementUP = true)
    {
    YMovement++;
    }
    else
    {
    YMovement–;
    }
    
    if(YMovement > 80)
    {
    MovementUP = false;
    YMovement = 0;
    }
    else if(YMovement < 0)
    {
    MovementUP = true;
    YMovement = 5;
    }
    }
    

    Mais voila sa ne marche pas très bien ^^ enfete il se déplace bien mais le problème est que sa ne s'actualise pas donc par exemple il reste à 0.5 block du sol mais ne bouge pas
    La deuxième "erreur" est que j'aimerais récupé l'info quand le mob est immobile donc j'ai mis sa

    if(this.posX == this.prevPosX || this.posZ == this.prevPosZ)
    {
    isMovement = false;
    }
    else
    {
    isMovement = true;
    }
    

    Sa marche mais bon des fois sa a des bug assez bizarre comme des freez.
    II.L'Ia
    Alors la j'ai aussi deux bug lié
    Je voudrais enfete que le mob une fois attaqué m'attaque puis que des qu'il a - de 30% de vie il part alros j'ai mis ceci

    this.tasks.addTask(1, new EntityAISwimming(this));
    this.tasks.addTask(3, new EntityEscape(this, EntityPlayer.class, 6.0F, 1.0D));
    this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, false));
    this.tasks.addTask(5, new EntityAIWander(this, 0.8D));
    this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
    this.tasks.addTask(6, new EntityAILookIdle(this));
    this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false));
    

    EntityEscape Est une class crée qui est exactement la même que entity avoid du creeper pour qu'il s'éloigne du chat mais le problème est que sa marchait très bien puis plus rien sans rien changé...
    ET le deuxième est que pendant qu'il fuyait mais sa c'était avant, il partait en diagonal mais etais orienté tout droit donc il se déplacait sur le coté et c'était très bizarre voila ^^


  • Administrateurs

    Quand le mob est immobile c'est le boolean hasAttacked ou la fonction isMovementCeased (un truc comme ça).



  • isMovementCeased je l'ai testé mais visiblement sa n'a pas marché!


Log in to reply