MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème avec les SharedMonsterAttributes

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    3 Messages 2 Publieurs 808 Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • D Hors-ligne
      Degraduck
      dernière édition par

      Bonjour alors voilà je voudrais faire des SharedMonsterAttributes variable sauf que je n’y parviens pas, je m’explique j’ai fais un random archi et je voudrai que si ce random est entre 1 et 5 alors on applique un SharedMonsterAttributes et si il est entre 6 et le maximum géré par ma config Config.chanceArchi.

      Saur que si mon montre est un archi entre 1 et 5 et bien cela ne change rien son SharedMonsterAttributes ne s’applique pas.

      Ma classe:

      package com.degraduck.minefus.entity.mobs;
      
      import java.util.Random;
      
      import com.degraduck.minefus.Config;
      
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.SharedMonsterAttributes;
      import net.minecraft.entity.monster.EntityMob;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.entity.projectile.EntityArrow;
      import net.minecraft.util.DamageSource;
      import net.minecraft.world.World;
      
      public class EntityBouftou extends EntityMob {
      
      private int niveau;
      private double vie;
      private boolean angry = false;
      private int archi;
      
      public EntityBouftou(World world) {
      super(world);
      
      this.vie = this.getHealth();
      this.setSize(1, 0.5F);
      
      this.archi =   0 + (int)(Math.random() * ((Config.chanceArchi - 0) + 1));
      
      }
      
      public void onUpdate()
      {
      
      if(archi > 5)
      {
      this.setCustomNameTag("§l§bBouftou Niv. " + this.niveau + " §l§4"+ vie + "§l§4Pv");
      }
      
      else
      {
      this.setCustomNameTag("§l§5Boufdégou le Refoulant Niv. " + this.niveau + " §l§4"+ vie + "  §l§4Pv");
      }
      
      super.onUpdate();
      }
      
      public void applyEntityAttributes()
      {
      this.niveau = (int) Math.round((Config.niveauMaximum - Config.niveauMinimum)*Math.random()) + Config.niveauMinimum;
      super.applyEntityAttributes();
      
      if(archi < 6)
      {
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D + (niveau * 5));
      }
      
      else
      {
      
      this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D + (niveau * 2.25));
      this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(6D + (niveau * 0.5));
      this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0.5D);
      this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
      this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(4D);
      }
      
      }
      
      //Distance de détection de la cible à attaquer
      protected Entity findPlayerToAttack()
      {
      if(isAngry()){
      EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 2D); //1d = distance de detection
      return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null;
      }
      return null;
      }
      
      //Si le mob recoit des dommages il attaque
      public boolean attackEntityFrom(DamageSource source, float degat)
         {
             if (this.isEntityInvulnerable())
             {
                 return false;
             }
             else
             {
                 Entity entity = source.getEntity();
      
                 setAngry(true);
      
                 if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow))
                 {
                  degat = (degat + 1.0F) / 2.0F;
                 }
      
                 return super.attackEntityFrom(source, degat);
             }
         }
      
      private void setAngry(boolean b) {
      this.angry = b;
      
      }
      
      private boolean isAngry() {
      // TODO Auto-generated method stub
      return this.angry;
      }
      
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • SCAREXS Hors-ligne
        SCAREX
        dernière édition par

        Ta méthode est appelée ?

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • D Hors-ligne
          Degraduck
          dernière édition par

          Quand je met un system.out.println dans le if(archi<6) il n’est pas appelé alors que dans le CustomNameTag ça fonctionne. et  les SharedMonsterAttributes dans le else fonctionnent bien.

          EDIT: J’ai trouvé l’erreur mon random archi n’était pas appelé là ou il le fallait.

          1 réponse Dernière réponse Répondre Citer 0
          • 1 / 1
          • Premier message
            Dernier message
          Design by Woryk
          ContactMentions Légales

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB