MFF

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

    Une sorte de "familié"

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    90 Messages 8 Publieurs 15.3k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Du-coup au lieu d’avoir une variable tamed du type boolean il faudrait utiliser un int ou un short.
      0 correspondrait à non adopté. 1 pour le premier niveau, etc …
      Après c’est pas compliqué à mettre en place, il faut modifier la fonction interact et adapter en fonction de cette variable.
      Et les fonctions qui demande un boolean il suffit de mettre this.tamed > 0 à la place.

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

        @‘robin4002’:

        Du-coup au lieu d’avoir une variable tamed du type boolean il faudrait utiliser un int ou un short.
        0 correspondrait à non adopté. 1 pour le premier niveau, etc …
        Après c’est pas compliqué à mettre en place, il faut modifier la fonction interact et adapter en fonction de cette variable.
        Et les fonctions qui demande un boolean il suffit de mettre this.tamed > 0 à la place.

        Bonjour robin merci de ta réponse rapide et précise  🙂 
        Mais pour moi sa devait être plus facile j’ai essayé des tas de manniére pour le faire mais n’y arrivant pas je poste ce message et je n’ai pas compris comment faire pour que la variable = adopté ou pas

        Voila ma signature

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

          Poste ton code stp, avec tes nouvelles tentatives et dis nous là où ça coince.

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

            package ed.enderdeath.mod.entity;
            
            import java.util.List;
            import java.util.Random;
            
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            import ed.enderdeath.mod.Food.Baie;
            import ed.enderdeath.mod.common.enderdeath;
            import net.minecraft.block.Block;
            import net.minecraft.block.BlockColored;
            import net.minecraft.block.BlockEnchantmentTable;
            import net.minecraft.entity.Entity;
            import net.minecraft.entity.EntityAgeable;
            import net.minecraft.entity.EntityCreature;
            import net.minecraft.entity.EntityLivingBase;
            import net.minecraft.entity.SharedMonsterAttributes;
            import net.minecraft.entity.ai.EntityAIAttackOnCollide;
            import net.minecraft.entity.ai.EntityAIFollowOwner;
            import net.minecraft.entity.ai.EntityAIHurtByTarget;
            import net.minecraft.entity.ai.EntityAILeapAtTarget;
            import net.minecraft.entity.ai.EntityAILookIdle;
            import net.minecraft.entity.ai.EntityAIMate;
            import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget;
            import net.minecraft.entity.ai.EntityAIOwnerHurtTarget;
            import net.minecraft.entity.ai.EntityAISwimming;
            import net.minecraft.entity.ai.EntityAITargetNonTamed;
            import net.minecraft.entity.ai.EntityAIWander;
            import net.minecraft.entity.ai.EntityAIWatchClosest;
            import net.minecraft.entity.boss.IBossDisplayData;
            import net.minecraft.entity.monster.EntityCreeper;
            import net.minecraft.entity.monster.EntityGhast;
            import net.minecraft.entity.monster.IMob;
            import net.minecraft.entity.passive.EntityAnimal;
            import net.minecraft.entity.passive.EntityChicken;
            import net.minecraft.entity.passive.EntityCow;
            import net.minecraft.entity.passive.EntityHorse;
            import net.minecraft.entity.passive.EntityPig;
            import net.minecraft.entity.passive.EntitySheep;
            import net.minecraft.entity.passive.EntityTameable;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.entity.projectile.EntityArrow;
            import net.minecraft.init.Items;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.nbt.NBTTagCompound;
            import net.minecraft.pathfinding.PathEntity;
            import net.minecraft.util.AxisAlignedBB;
            import net.minecraft.util.DamageSource;
            import net.minecraft.util.MathHelper;
            import net.minecraft.world.World;
            
            public class Familiar extends EntityTameable implements IMob, IBossDisplayData {
            
            private float field_70926_e;
            private float field_70924_f;
            /** true is the wolf is wet else false */
            private boolean isShaking;
            private boolean field_70928_h;
            /**
            * This time increases while wolf is shaking and emitting water particles.
            */
            private float timeWolfIsShaking;
            private float prevTimeWolfIsShaking;
            private int lvl;
            private static final String __OBFID = "CL_00001654";
            private int Tamed = 1;
            private World world;
            private int x;
            private int y;
            private int z;
            private Random random;
            private int short1;
            private double d3;
            private double d4;
            private double d5;
            
            private int k;
            
            public Familiar(World p_i1696_1_) {
            super(p_i1696_1_);
            this.setSize(0.6F, 0.8F);
            this.getNavigator().setAvoidsWater(true);
            this.tasks.addTask(1, new EntityAISwimming(this));
            this.tasks.addTask(2, this.aiSit);
            this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F));
            this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true));
            this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F));
            this.tasks.addTask(6, new EntityAIMate(this, 1.0D));
            this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
            
            this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
            this.tasks.addTask(9, new EntityAILookIdle(this));
            this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this));
            this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this));
            this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true));
            this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false));
            this.Tamed = 0;
            lvl = 1;
            }
            
            protected void applyEntityAttributes() {
            super.applyEntityAttributes();
            this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D);
            
            if (this.isTamed()) {
            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100.0D);
            } else {
            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D);
            }
            }
            
            /**
            * Returns true if the newer Entity AI code should be run
            */
            public boolean isAIEnabled() {
            return true;
            }
            
            /**
            * Sets the active target the Task system uses for tracking
            */
            public void setAttackTarget(EntityLivingBase p_70624_1_) {
            super.setAttackTarget(p_70624_1_);
            
            if (p_70624_1_ == null) {
            this.setAngry(false);
            } else if (!this.isTamed()) {
            this.setAngry(true);
            }
            }
            
            /**
            * main AI tick function, replaces updateEntityActionState
            */
            protected void updateAITick() {
            this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth()));
            }
            
            protected void entityInit() {
            super.entityInit();
            this.dataWatcher.addObject(18, new Float(this.getHealth()));
            this.dataWatcher.addObject(19, new Byte((byte) 0));
            this.dataWatcher.addObject(20, new Byte((byte) BlockColored.func_150032_b(1)));
            }
            
            protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) {
            this.playSound("mob.wolf.step", 0.15F, 1.0F);
            }
            
            /**
            * (abstract) Protected helper method to write subclass entity data to NBT.
            */
            public void writeEntityToNBT(NBTTagCompound p_70014_1_) {
            super.writeEntityToNBT(p_70014_1_);
            p_70014_1_.setBoolean("Angry", this.isAngry());
            p_70014_1_.setByte("CollarColor", (byte) this.getCollarColor());
            }
            
            /**
            * (abstract) Protected helper method to read subclass entity data from NBT.
            */
            public void readEntityFromNBT(NBTTagCompound p_70037_1_) {
            super.readEntityFromNBT(p_70037_1_);
            this.setAngry(p_70037_1_.getBoolean("Angry"));
            
            if (p_70037_1_.hasKey("CollarColor", 99)) {
            this.setCollarColor(p_70037_1_.getByte("CollarColor"));
            }
            }
            
            /**
            * Returns the sound this mob makes while it's alive.
            */
            public void updateEntityActionState() {
            List list = worldObj.getEntitiesWithinAABB(EntityCreature.class,
            AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX + 1, posY + 1, posZ + 1));
            for (int i = 0; i < list.size(); i++) {
            Entity entity = (Entity) list.get(i);
            if (!list.isEmpty()) {
            if (!(entity instanceof EntityPlayer)) {
            this.setTarget(entity);
            }
            }
            }
            super.updateEntityActionState();
            }
            
            /**
            * Returns the volume for the sounds this mob makes.
            */
            protected float getSoundVolume() {
            return 0.4F;
            }
            
            /**
            * Called frequently so the entity can update its state every tick as
            * required. For example, zombies and skeletons use this to react to
            * sunlight and start to burn.
            */
            public void onLivingUpdate() {
            super.onLivingUpdate();
            
            if (!this.worldObj.isRemote && this.isShaking && !this.field_70928_h && !this.hasPath() && this.onGround) {
            this.field_70928_h = true;
            this.timeWolfIsShaking = 0.0F;
            this.prevTimeWolfIsShaking = 0.0F;
            this.worldObj.setEntityState(this, (byte) 8);
            }
            for (k = 0; k < 2; ++k) {
            this.worldObj.spawnParticle("enchantmenttable",
            this.posX + (this.rand.nextDouble() - 0.5D) * (double) this.width,
            this.posY + this.rand.nextDouble() * (double) this.height - 0.25D,
            this.posZ + (this.rand.nextDouble() - 0.5D) * (double) this.width,
            (this.rand.nextDouble() - 0.5D) * 2.0D, -this.rand.nextDouble(),
            (this.rand.nextDouble() - 0.5D) * 2.0D);
            }
            }
            
            public void onUpdate() {
            super.onUpdate();
            this.field_70924_f = this.field_70926_e;
            
            if (this.func_70922_bv()) {
            this.field_70926_e += (1.0F - this.field_70926_e) * 0.4F;
            } else {
            this.field_70926_e += (0.0F - this.field_70926_e) * 0.4F;
            }
            
            if (this.func_70922_bv()) {
            this.numTicksToChaseTarget = 10;
            }
            
            if (this.isWet()) {
            this.isShaking = true;
            this.field_70928_h = false;
            this.timeWolfIsShaking = 0.0F;
            this.prevTimeWolfIsShaking = 0.0F;
            } else if ((this.isShaking || this.field_70928_h) && this.field_70928_h) {
            if (this.timeWolfIsShaking == 0.0F) {
            this.playSound("mob.wolf.shake", this.getSoundVolume(),
            (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
            }
            
            this.prevTimeWolfIsShaking = this.timeWolfIsShaking;
            this.timeWolfIsShaking += 0.05F;
            
            if (this.prevTimeWolfIsShaking >= 2.0F) {
            this.isShaking = false;
            this.field_70928_h = false;
            this.prevTimeWolfIsShaking = 0.0F;
            this.timeWolfIsShaking = 0.0F;
            }
            
            if (this.timeWolfIsShaking > 0.4F) {
            float f = (float) this.boundingBox.minY;
            int i = (int) (MathHelper.sin((this.timeWolfIsShaking - 0.4F) * (float) Math.PI) * 7.0F);
            
            for (int j = 0; j < i; ++j) {
            float f1 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
            float f2 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
            this.worldObj.spawnParticle("splash", this.posX + (double) f1, (double) (f + 0.8F),
            this.posZ + (double) f2, this.motionX, this.motionY, this.motionZ);
            }
            }
            }
            }
            
            @SideOnly(Side.CLIENT)
            public boolean getWolfShaking() {
            return this.isShaking;
            }
            
            @SideOnly(Side.CLIENT)
            public float getShadingWhileShaking(float p_70915_1_) {
            return 0.75F + (this.prevTimeWolfIsShaking + (this.timeWolfIsShaking - this.prevTimeWolfIsShaking) * p_70915_1_)
            / 2.0F * 0.25F;
            }
            
            @SideOnly(Side.CLIENT)
            public float getShakeAngle(float p_70923_1_, float p_70923_2_) {
            float f2 = (this.prevTimeWolfIsShaking + (this.timeWolfIsShaking - this.prevTimeWolfIsShaking) * p_70923_1_
            + p_70923_2_) / 1.8F;
            
            if (f2 < 0.0F) {
            f2 = 0.0F;
            } else if (f2 > 1.0F) {
            f2 = 1.0F;
            }
            
            return MathHelper.sin(f2 * (float) Math.PI) * MathHelper.sin(f2 * (float) Math.PI * 11.0F) * 0.15F
            * (float) Math.PI;
            }
            
            public float getEyeHeight() {
            return this.height * 0.8F;
            }
            
            @SideOnly(Side.CLIENT)
            public float getInterestedAngle(float p_70917_1_) {
            return (this.field_70924_f + (this.field_70926_e - this.field_70924_f) * p_70917_1_) * 0.15F * (float) Math.PI;
            }
            
            /**
            * The speed it takes to move the entityliving's rotationPitch through the
            * faceEntity method. This is only currently use in wolves.
            */
            public int getVerticalFaceSpeed() {
            return this.isSitting() ? 20 : super.getVerticalFaceSpeed();
            }
            
            /**
            * Called when the entity is attacked.
            */
            public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) {
            if (this.isEntityInvulnerable()) {
            return false;
            } else {
            Entity entity = p_70097_1_.getEntity();
            this.aiSit.setSitting(false);
            
            if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) {
            p_70097_2_ = (p_70097_2_ + 1.0F) / 2.0F;
            }
            
            return super.attackEntityFrom(p_70097_1_, p_70097_2_);
            }
            }
            
            public boolean attackEntityAsMob(Entity p_70652_1_) {
            int i = this.isTamed() ? 4 : 2;
            return p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
            }
            
            public int tamed() {
            if (Tamed == 1) {
            this.setTamed(true);
            } else if (Tamed == 0) {
            this.setTamed(false);
            }
            return Tamed;
            
            }
            
            public void setTamed(boolean p_70903_1_) {
            super.setTamed(p_70903_1_);
            
            if (this.isTamed()) {
            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100.0D);
            } else {
            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D);
            }
            }
            
            /**
            * Called when a player interacts with a mob. e.g. gets milk from a cow,
            * gets into the saddle on a pig.
            */
            public boolean interact(EntityPlayer p_70085_1_) {
            ItemStack itemstack = p_70085_1_.inventory.getCurrentItem();
            
            if (this.Tamed > 0 && this.lvl > 0) {
            if (itemstack != null) {
            if (itemstack.getItem() instanceof Baie) {
            Baie itemfood = (Baie) itemstack.getItem();
            
            if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < 20.0F) {
            if (!p_70085_1_.capabilities.isCreativeMode) {
            –itemstack.stackSize;
            }
            
            this.heal((float) itemfood.func_150905_g(itemstack));
            
            if (itemstack.stackSize <= 0) {
            p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem,
            (ItemStack) null);
            }
            
            return true;
            }
            } else if (itemstack.getItem() == Items.dye) {
            int i = BlockColored.func_150032_b(itemstack.getItemDamage());
            
            if (i != this.getCollarColor()) {
            this.setCollarColor(i);
            
            if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize <= 0) {
            p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem,
            (ItemStack) null);
            }
            
            return true;
            }
            }
            }
            
            if (this.func_152114_e(p_70085_1_) && !this.worldObj.isRemote && !this.isBreedingItem(itemstack)) {
            this.aiSit.setSitting(!this.isSitting());
            this.isJumping = false;
            this.setPathToEntity((PathEntity) null);
            this.setTarget((Entity) null);
            this.setAttackTarget((EntityLivingBase) null);
            }
            } else if (itemstack != null && itemstack.getItem() == enderdeath.GoldenCroquette && this.lvl == 1) {
            if (!p_70085_1_.capabilities.isCreativeMode) {
            --itemstack.stackSize;
            }
            
            if (itemstack.stackSize <= 0) {
            p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack) null);
            }
            
            if (!this.worldObj.isRemote) {
            if (this.rand.nextInt(3) == 0) {
            this.Tamed = 1;
            this.setPathToEntity((PathEntity) null);
            this.setAttackTarget((EntityLivingBase) null);
            this.aiSit.setSitting(true);
            this.setHealth(100.0F);
            this.func_152115_b(p_70085_1_.getUniqueID().toString());
            this.playTameEffect(true);
            this.worldObj.setEntityState(this, (byte) 7);
            this.lvl = 2;
            
            } else {
            this.playTameEffect(false);
            this.worldObj.setEntityState(this, (byte) 6);
            }
            } else if (itemstack != null && itemstack.getItem() == enderdeath.RubisCroquette && this.lvl == 2
            && this.Tamed < 0) {
            if (!p_70085_1_.capabilities.isCreativeMode) {
            --itemstack.stackSize;
            }
            
            if (itemstack.stackSize <= 0) {
            p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack) null);
            }
            
            if (!this.worldObj.isRemote) {
            if (this.rand.nextInt(3) == 0) {
            this.Tamed = 1;
            this.setPathToEntity((PathEntity) null);
            this.setAttackTarget((EntityLivingBase) null);
            this.aiSit.setSitting(true);
            this.setHealth(20.0F);
            this.func_152115_b(p_70085_1_.getUniqueID().toString());
            this.playTameEffect(true);
            this.worldObj.setEntityState(this, (byte) 7);
            } else {
            this.playTameEffect(false);
            this.worldObj.setEntityState(this, (byte) 6);
            }
            }
            }
            return true;
            }
            
            return super.interact(p_70085_1_);
            }
            
            @SideOnly(Side.CLIENT)
            public void handleHealthUpdate(byte p_70103_1_) {
            if (p_70103_1_ == 8) {
            this.field_70928_h = true;
            this.timeWolfIsShaking = 0.0F;
            this.prevTimeWolfIsShaking = 0.0F;
            } else {
            super.handleHealthUpdate(p_70103_1_);
            }
            }
            
            @SideOnly(Side.CLIENT)
            public float getTailRotation() {
            return this.isAngry() ? 1.5393804F
            : (this.isTamed()
            ? (0.55F - (20.0F - this.dataWatcher.getWatchableObjectFloat(18)) * 0.02F) * (float) Math.PI
            : ((float) Math.PI / 5F));
            }
            
            /**
            * Checks if the parameter is an item which this animal can be fed to breed
            * it (wheat, carrots or seeds depending on the animal type)
            */
            public boolean isBreedingItem(ItemStack p_70877_1_) {
            return p_70877_1_ == null ? false
            : (!(p_70877_1_.getItem() instanceof Baie) ? false
            : ((Baie) p_70877_1_.getItem()).isWolfsFavoriteMeat());
            }
            
            /**
            * Will return how many at most can spawn in a chunk at once.
            */
            public int getMaxSpawnedInChunk() {
            return 8;
            }
            
            /**
            * Determines whether this wolf is angry or not.
            */
            public boolean isAngry() {
            return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0;
            }
            
            /**
            * Sets whether this wolf is angry or not.
            */
            public void setAngry(boolean p_70916_1_) {
            byte b0 = this.dataWatcher.getWatchableObjectByte(16);
            
            if (p_70916_1_) {
            this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2)));
            } else {
            this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3)));
            }
            }
            
            /**
            * Return this wolf's collar color.
            */
            public int getCollarColor() {
            return this.dataWatcher.getWatchableObjectByte(20) & 15;
            }
            
            /**
            * Set this wolf's collar color.
            */
            public void setCollarColor(int p_82185_1_) {
            this.dataWatcher.updateObject(20, Byte.valueOf((byte) (p_82185_1_ & 15)));
            }
            
            public Familiar createChild(EntityAgeable p_90011_1_) {
            Familiar entitywolf = new Familiar(this.worldObj);
            String s = this.func_152113_b();
            
            if (s != null && s.trim().length() > 0) {
            entitywolf.func_152115_b(s);
            entitywolf.setTamed(false);
            }
            
            return entitywolf;
            }
            
            public void func_70918_i(boolean p_70918_1_) {
            if (p_70918_1_) {
            this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1));
            } else {
            this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0));
            }
            }
            
            /**
            * Returns true if the mob is currently able to mate with the specified mob.
            */
            public boolean canMateWith(EntityAnimal p_70878_1_) {
            if (p_70878_1_ == this) {
            return false;
            } else if (!this.isTamed()) {
            return false;
            } else if (!(p_70878_1_ instanceof Familiar)) {
            return false;
            } else {
            Familiar entitywolf = (Familiar) p_70878_1_;
            return !entitywolf.isTamed() ? false
            : (entitywolf.isSitting() ? false : this.isInLove() && entitywolf.isInLove());
            }
            }
            
            public boolean func_70922_bv() {
            return this.dataWatcher.getWatchableObjectByte(19) == 1;
            }
            
            /**
            * Determines if an entity can be despawned, used on idle far away entities
            */
            protected boolean canDespawn() {
            return !this.isTamed() && this.ticksExisted > 2400;
            }
            
            public boolean func_142018_a(EntityLivingBase p_142018_1_, EntityLivingBase p_142018_2_) {
            if (!(p_142018_1_ instanceof EntityCreeper) && !(p_142018_1_ instanceof EntityGhast)) {
            if (p_142018_1_ instanceof Familiar) {
            Familiar entitywolf = (Familiar) p_142018_1_;
            
            if (entitywolf.isTamed() && entitywolf.getOwner() == p_142018_2_) {
            return false;
            }
            }
            
            return p_142018_1_ instanceof EntityPlayer && p_142018_2_ instanceof EntityPlayer
            && !((EntityPlayer) p_142018_2_).canAttackPlayer((EntityPlayer) p_142018_1_) ? false
            : !(p_142018_1_ instanceof EntityHorse) || !((EntityHorse) p_142018_1_).isTame();
            } else {
            return false;
            }
            }
            }
            
            

            je bloque toujours au méme endroit 😞

            Voila ma signature

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

              private int Tamed = 1;
              Pour le reset à 0 dans le constructeur, utilité ?
              Et pour le reste c’est pas compliqué, genre les conditions qui checkaient avant si tamed était à false, bah tu remplaces par if(this.tamed == 0), sinon, si ça checkait si il était tamed, bah if(this.tamed >= 1), puisque tu as dit qu’il pouvait avoir plusieurs lvl. Je ne reprends que ce qu’a dit robin. Genre dans ta méthode setAttackTarget(blabla), tu changes la condition avec ce que je t’ai dit juste avant, et ça fonctionnera correctement 😉
              Donc pareil pour les getters / setters, change bien le type retourné et le type du paramètre attendu (notamment pour setTamed, int à la place de boolean)

              Et puis j’ai pas tout regardé, car ton code n’est pas formatté, c’est pas agréable à lire, en + du nombre de variables et fonctions qui ne sont pas renommés explicitement. Bref si j’étais toi, je ferai petit à petit, dans l’ajotu des méthodes et diverses fonctionnalités, à la place de faire un gros copié collé ou la pluapart des lignes seront modifiées/retirées 😃

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

                @‘Plaigon’:

                private int Tamed = 1;
                Pour le reset à 0 dans le constructeur, utilité ?
                Et pour le reste c’est pas compliqué, genre les conditions qui checkaient avant si tamed était à false, bah tu remplaces par if(this.tamed == 0), sinon, si ça checkait si il était tamed, bah if(this.tamed >= 1), puisque tu as dit qu’il pouvait avoir plusieurs lvl. Je ne reprends que ce qu’a dit robin. Genre dans ta méthode setAttackTarget(blabla), tu changes la condition avec ce que je t’ai dit juste avant, et ça fonctionnera correctement 😉
                Donc pareil pour les getters / setters, change bien le type retourné et le type du paramètre attendu (notamment pour setTamed, int à la place de boolean)

                Et puis j’ai pas tout regardé, car ton code n’est pas formatté, c’est pas agréable à lire, en + du nombre de variables et fonctions qui ne sont pas renommés explicitement. Bref si j’étais toi, je ferai petit à petit, dans l’ajotu des méthodes et diverses fonctionnalités, à la place de faire un gros copié collé ou la pluapart des lignes seront modifiées/retirées 😃

                Merci de ta réponse Plaigon  😉
                voici ma classe actuellement du familié

                package ed.enderdeath.mod.entity;
                
                import java.util.List;
                import java.util.Random;
                
                import org.lwjgl.Sys;
                
                import cpw.mods.fml.relauncher.Side;
                import cpw.mods.fml.relauncher.SideOnly;
                import ed.enderdeath.mod.Food.Baie;
                import ed.enderdeath.mod.common.enderdeath;
                import net.minecraft.block.Block;
                import net.minecraft.block.BlockColored;
                import net.minecraft.block.BlockEnchantmentTable;
                import net.minecraft.entity.Entity;
                import net.minecraft.entity.EntityAgeable;
                import net.minecraft.entity.EntityCreature;
                import net.minecraft.entity.EntityLivingBase;
                import net.minecraft.entity.SharedMonsterAttributes;
                import net.minecraft.entity.ai.EntityAIAttackOnCollide;
                import net.minecraft.entity.ai.EntityAIFollowOwner;
                import net.minecraft.entity.ai.EntityAIHurtByTarget;
                import net.minecraft.entity.ai.EntityAILeapAtTarget;
                import net.minecraft.entity.ai.EntityAILookIdle;
                import net.minecraft.entity.ai.EntityAIMate;
                import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget;
                import net.minecraft.entity.ai.EntityAIOwnerHurtTarget;
                import net.minecraft.entity.ai.EntityAISwimming;
                import net.minecraft.entity.ai.EntityAITargetNonTamed;
                import net.minecraft.entity.ai.EntityAIWander;
                import net.minecraft.entity.ai.EntityAIWatchClosest;
                import net.minecraft.entity.boss.IBossDisplayData;
                import net.minecraft.entity.monster.EntityCreeper;
                import net.minecraft.entity.monster.EntityGhast;
                import net.minecraft.entity.monster.IMob;
                import net.minecraft.entity.passive.EntityAnimal;
                import net.minecraft.entity.passive.EntityChicken;
                import net.minecraft.entity.passive.EntityCow;
                import net.minecraft.entity.passive.EntityHorse;
                import net.minecraft.entity.passive.EntityPig;
                import net.minecraft.entity.passive.EntitySheep;
                import net.minecraft.entity.passive.EntityTameable;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.entity.projectile.EntityArrow;
                import net.minecraft.init.Items;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.nbt.NBTTagCompound;
                import net.minecraft.pathfinding.PathEntity;
                import net.minecraft.util.AxisAlignedBB;
                import net.minecraft.util.DamageSource;
                import net.minecraft.util.MathHelper;
                import net.minecraft.world.World;
                
                public class Familiar extends EntityTameable implements IMob, IBossDisplayData {
                
                private float field_70926_e;
                private float field_70924_f;
                /** true is the wolf is wet else false */
                private boolean isShaking;
                private boolean field_70928_h;
                /**
                * This time increases while wolf is shaking and emitting water particles.
                */
                private float timeWolfIsShaking;
                private float prevTimeWolfIsShaking;
                private int lvl;
                private static final String __OBFID = "CL_00001654";
                private int Tamed = 1;
                private World world;
                private int x;
                private int y;
                private int z;
                private Random random;
                private int short1;
                private double d3;
                private double d4;
                private double d5;
                
                private int k;
                
                public Familiar(World p_i1696_1_) {
                super(p_i1696_1_);
                this.setSize(0.6F, 0.8F);
                this.getNavigator().setAvoidsWater(true);
                this.tasks.addTask(1, new EntityAISwimming(this));
                this.tasks.addTask(2, this.aiSit);
                this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F));
                this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true));
                this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F));
                this.tasks.addTask(6, new EntityAIMate(this, 1.0D));
                this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
                
                this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
                this.tasks.addTask(9, new EntityAILookIdle(this));
                this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this));
                this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this));
                this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true));
                this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false));
                this.Tamed = 0;
                lvl = 1;
                }
                
                protected void applyEntityAttributes() {
                super.applyEntityAttributes();
                this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D);
                
                if (this.isTamed()) {
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100.0D);
                } else {
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D);
                }
                }
                
                /**
                * Returns true if the newer Entity AI code should be run
                */
                public boolean isAIEnabled() {
                return true;
                }
                
                /**
                * Sets the active target the Task system uses for tracking
                */
                public void setAttackTarget(EntityLivingBase p_70624_1_) {
                super.setAttackTarget(p_70624_1_);
                
                if (p_70624_1_ == null) {
                this.setAngry(false);
                } else if (!this.isTamed()) {
                this.setAngry(true);
                }
                }
                
                /**
                * main AI tick function, replaces updateEntityActionState
                */
                protected void updateAITick() {
                this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth()));
                }
                
                protected void entityInit() {
                super.entityInit();
                this.dataWatcher.addObject(18, new Float(this.getHealth()));
                this.dataWatcher.addObject(19, new Byte((byte) 0));
                this.dataWatcher.addObject(20, new Byte((byte) BlockColored.func_150032_b(1)));
                }
                
                protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) {
                this.playSound("mob.wolf.step", 0.15F, 1.0F);
                }
                
                /**
                * (abstract) Protected helper method to write subclass entity data to NBT.
                */
                public void writeEntityToNBT(NBTTagCompound p_70014_1_) {
                super.writeEntityToNBT(p_70014_1_);
                p_70014_1_.setBoolean("Angry", this.isAngry());
                p_70014_1_.setByte("CollarColor", (byte) this.getCollarColor());
                }
                
                /**
                * (abstract) Protected helper method to read subclass entity data from NBT.
                */
                public void readEntityFromNBT(NBTTagCompound p_70037_1_) {
                super.readEntityFromNBT(p_70037_1_);
                this.setAngry(p_70037_1_.getBoolean("Angry"));
                
                if (p_70037_1_.hasKey("CollarColor", 99)) {
                this.setCollarColor(p_70037_1_.getByte("CollarColor"));
                }
                }
                
                /**
                * Returns the sound this mob makes while it's alive.
                */
                public void updateEntityActionState() {
                List list = worldObj.getEntitiesWithinAABB(EntityCreature.class,
                AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX + 1, posY + 1, posZ + 1));
                for (int i = 0; i < list.size(); i++) {
                Entity entity = (Entity) list.get(i);
                if (!list.isEmpty()) {
                if (!(entity instanceof EntityPlayer)) {
                this.setTarget(entity);
                }
                }
                }
                super.updateEntityActionState();
                }
                
                /**
                * Returns the volume for the sounds this mob makes.
                */
                protected float getSoundVolume() {
                return 0.4F;
                }
                
                /**
                * Called frequently so the entity can update its state every tick as
                * required. For example, zombies and skeletons use this to react to
                * sunlight and start to burn.
                */
                public void onLivingUpdate() {
                super.onLivingUpdate();
                
                if (!this.worldObj.isRemote && this.isShaking && !this.field_70928_h && !this.hasPath() && this.onGround) {
                this.field_70928_h = true;
                this.timeWolfIsShaking = 0.0F;
                this.prevTimeWolfIsShaking = 0.0F;
                this.worldObj.setEntityState(this, (byte) 8);
                }
                for (k = 0; k < 2; ++k) {
                this.worldObj.spawnParticle("enchantmenttable",
                this.posX + (this.rand.nextDouble() - 0.5D) * (double) this.width,
                this.posY + this.rand.nextDouble() * (double) this.height - 0.25D,
                this.posZ + (this.rand.nextDouble() - 0.5D) * (double) this.width,
                (this.rand.nextDouble() - 0.5D) * 2.0D, -this.rand.nextDouble(),
                (this.rand.nextDouble() - 0.5D) * 2.0D);
                }
                }
                
                public void onUpdate() {
                super.onUpdate();
                this.field_70924_f = this.field_70926_e;
                System.out.println("Ligne lvl" + lvl);
                System.out.println("Tamed" + Tamed);
                if (this.func_70922_bv()) {
                this.field_70926_e += (1.0F - this.field_70926_e) * 0.4F;
                } else {
                this.field_70926_e += (0.0F - this.field_70926_e) * 0.4F;
                }
                
                if (this.func_70922_bv()) {
                this.numTicksToChaseTarget = 10;
                }
                
                if (this.isWet()) {
                this.isShaking = true;
                this.field_70928_h = false;
                this.timeWolfIsShaking = 0.0F;
                this.prevTimeWolfIsShaking = 0.0F;
                } else if ((this.isShaking || this.field_70928_h) && this.field_70928_h) {
                if (this.timeWolfIsShaking == 0.0F) {
                this.playSound("mob.wolf.shake", this.getSoundVolume(),
                (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
                }
                
                this.prevTimeWolfIsShaking = this.timeWolfIsShaking;
                this.timeWolfIsShaking += 0.05F;
                
                if (this.prevTimeWolfIsShaking >= 2.0F) {
                this.isShaking = false;
                this.field_70928_h = false;
                this.prevTimeWolfIsShaking = 0.0F;
                this.timeWolfIsShaking = 0.0F;
                }
                
                if (this.timeWolfIsShaking > 0.4F) {
                float f = (float) this.boundingBox.minY;
                int i = (int) (MathHelper.sin((this.timeWolfIsShaking - 0.4F) * (float) Math.PI) * 7.0F);
                
                for (int j = 0; j < i; ++j) {
                float f1 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
                float f2 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width * 0.5F;
                this.worldObj.spawnParticle("splash", this.posX + (double) f1, (double) (f + 0.8F),
                this.posZ + (double) f2, this.motionX, this.motionY, this.motionZ);
                }
                }
                }
                }
                
                @SideOnly(Side.CLIENT)
                public boolean getWolfShaking() {
                return this.isShaking;
                }
                
                @SideOnly(Side.CLIENT)
                public float getShadingWhileShaking(float p_70915_1_) {
                return 0.75F + (this.prevTimeWolfIsShaking + (this.timeWolfIsShaking - this.prevTimeWolfIsShaking) * p_70915_1_)
                / 2.0F * 0.25F;
                }
                
                @SideOnly(Side.CLIENT)
                public float getShakeAngle(float p_70923_1_, float p_70923_2_) {
                float f2 = (this.prevTimeWolfIsShaking + (this.timeWolfIsShaking - this.prevTimeWolfIsShaking) * p_70923_1_
                + p_70923_2_) / 1.8F;
                
                if (f2 < 0.0F) {
                f2 = 0.0F;
                } else if (f2 > 1.0F) {
                f2 = 1.0F;
                }
                
                return MathHelper.sin(f2 * (float) Math.PI) * MathHelper.sin(f2 * (float) Math.PI * 11.0F) * 0.15F
                * (float) Math.PI;
                }
                
                public float getEyeHeight() {
                return this.height * 0.8F;
                }
                
                @SideOnly(Side.CLIENT)
                public float getInterestedAngle(float p_70917_1_) {
                return (this.field_70924_f + (this.field_70926_e - this.field_70924_f) * p_70917_1_) * 0.15F * (float) Math.PI;
                }
                
                /**
                * The speed it takes to move the entityliving's rotationPitch through the
                * faceEntity method. This is only currently use in wolves.
                */
                public int getVerticalFaceSpeed() {
                return this.isSitting() ? 20 : super.getVerticalFaceSpeed();
                }
                
                /**
                * Called when the entity is attacked.
                */
                public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) {
                if (this.isEntityInvulnerable()) {
                return false;
                } else {
                Entity entity = p_70097_1_.getEntity();
                this.aiSit.setSitting(false);
                
                if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) {
                p_70097_2_ = (p_70097_2_ + 1.0F) / 2.0F;
                }
                
                return super.attackEntityFrom(p_70097_1_, p_70097_2_);
                }
                }
                
                public boolean attackEntityAsMob(Entity p_70652_1_) {
                int i = this.isTamed() ? 4 : 2;
                return p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
                }
                
                public int tamed() {
                if (Tamed == 1) {
                this.setTamed(true);
                } else if (Tamed == 0) {
                this.setTamed(false);
                }
                return Tamed;
                
                }
                
                public void setTamed(boolean p_70903_1_) {
                super.setTamed(p_70903_1_);
                
                if (this.isTamed()) {
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100.0D);
                } else {
                this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D);
                }
                }
                
                /**
                * Called when a player interacts with a mob. e.g. gets milk from a cow,
                * gets into the saddle on a pig.
                */
                public boolean interact(EntityPlayer p_70085_1_) {
                ItemStack itemstack = p_70085_1_.inventory.getCurrentItem();
                
                if (this.Tamed > 0 && this.lvl > 0) {
                if (itemstack != null) {
                if (itemstack.getItem() instanceof Baie) {
                Baie itemfood = (Baie) itemstack.getItem();
                
                if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < 20.0F) {
                if (!p_70085_1_.capabilities.isCreativeMode) {
                –itemstack.stackSize;
                }
                
                this.heal((float) itemfood.func_150905_g(itemstack));
                
                if (itemstack.stackSize <= 0) {
                p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem,
                (ItemStack) null);
                }
                
                return true;
                }
                } else if (itemstack.getItem() == Items.dye) {
                int i = BlockColored.func_150032_b(itemstack.getItemDamage());
                
                if (i != this.getCollarColor()) {
                this.setCollarColor(i);
                
                if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize <= 0) {
                p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem,
                (ItemStack) null);
                }
                
                return true;
                }
                }
                }
                
                if (this.func_152114_e(p_70085_1_) && !this.worldObj.isRemote && !this.isBreedingItem(itemstack)) {
                this.aiSit.setSitting(!this.isSitting());
                this.isJumping = false;
                this.setPathToEntity((PathEntity) null);
                this.setTarget((Entity) null);
                this.setAttackTarget((EntityLivingBase) null);
                }
                } else if (itemstack != null && itemstack.getItem() == enderdeath.GoldenCroquette && this.lvl >= 1) {
                if (!p_70085_1_.capabilities.isCreativeMode) {
                --itemstack.stackSize;
                }
                
                if (itemstack.stackSize <= 0) {
                p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack) null);
                }
                
                if (!this.worldObj.isRemote) {
                if (this.rand.nextInt(3) == 0) {
                this.Tamed = 1;
                if (this.Tamed >= 1)
                ;
                this.setPathToEntity((PathEntity) null);
                this.setAttackTarget((EntityLivingBase) null);
                this.aiSit.setSitting(true);
                this.setHealth(100.0F);
                this.func_152115_b(p_70085_1_.getUniqueID().toString());
                this.playTameEffect(true);
                this.worldObj.setEntityState(this, (byte) 7);
                this.lvl = 2;
                
                } else {
                this.playTameEffect(false);
                this.worldObj.setEntityState(this, (byte) 6);
                }
                } else if (itemstack != null && itemstack.getItem() == enderdeath.RubisCroquette && this.lvl >= 2
                && this.Tamed >= 1) {
                if (!p_70085_1_.capabilities.isCreativeMode) {
                --itemstack.stackSize;
                }
                
                if (itemstack.stackSize <= 0) {
                p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack) null);
                }
                
                if (!this.worldObj.isRemote) {
                if (this.rand.nextInt(3) == 0) {
                
                this.setPathToEntity((PathEntity) null);
                this.setAttackTarget((EntityLivingBase) null);
                this.aiSit.setSitting(true);
                this.setHealth(20.0F);
                this.func_152115_b(p_70085_1_.getUniqueID().toString());
                this.playTameEffect(true);
                this.worldObj.setEntityState(this, (byte) 7);
                } else {
                this.playTameEffect(false);
                this.worldObj.setEntityState(this, (byte) 6);
                }
                }
                }
                return true;
                }
                
                return super.interact(p_70085_1_);
                }
                
                @SideOnly(Side.CLIENT)
                public void handleHealthUpdate(byte p_70103_1_) {
                if (p_70103_1_ == 8) {
                this.field_70928_h = true;
                this.timeWolfIsShaking = 0.0F;
                this.prevTimeWolfIsShaking = 0.0F;
                } else {
                super.handleHealthUpdate(p_70103_1_);
                }
                }
                
                @SideOnly(Side.CLIENT)
                public float getTailRotation() {
                return this.isAngry() ? 1.5393804F
                : (this.isTamed()
                ? (0.55F - (20.0F - this.dataWatcher.getWatchableObjectFloat(18)) * 0.02F) * (float) Math.PI
                : ((float) Math.PI / 5F));
                }
                
                /**
                * Checks if the parameter is an item which this animal can be fed to breed
                * it (wheat, carrots or seeds depending on the animal type)
                */
                public boolean isBreedingItem(ItemStack p_70877_1_) {
                return p_70877_1_ == null ? false
                : (!(p_70877_1_.getItem() instanceof Baie) ? false
                : ((Baie) p_70877_1_.getItem()).isWolfsFavoriteMeat());
                }
                
                /**
                * Will return how many at most can spawn in a chunk at once.
                */
                public int getMaxSpawnedInChunk() {
                return 8;
                }
                
                /**
                * Determines whether this wolf is angry or not.
                */
                public boolean isAngry() {
                return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0;
                }
                
                /**
                * Sets whether this wolf is angry or not.
                */
                public void setAngry(boolean p_70916_1_) {
                byte b0 = this.dataWatcher.getWatchableObjectByte(16);
                
                if (p_70916_1_) {
                this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2)));
                } else {
                this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3)));
                }
                }
                
                /**
                * Return this wolf's collar color.
                */
                public int getCollarColor() {
                return this.dataWatcher.getWatchableObjectByte(20) & 15;
                }
                
                /**
                * Set this wolf's collar color.
                */
                public void setCollarColor(int p_82185_1_) {
                this.dataWatcher.updateObject(20, Byte.valueOf((byte) (p_82185_1_ & 15)));
                }
                
                public Familiar createChild(EntityAgeable p_90011_1_) {
                Familiar entitywolf = new Familiar(this.worldObj);
                String s = this.func_152113_b();
                
                if (s != null && s.trim().length() > 0) {
                entitywolf.func_152115_b(s);
                if (this.Tamed >= 1)
                ;
                }
                
                return entitywolf;
                }
                
                public void func_70918_i(boolean p_70918_1_) {
                if (p_70918_1_) {
                this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1));
                } else {
                this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0));
                }
                }
                
                /**
                * Returns true if the mob is currently able to mate with the specified mob.
                */
                public boolean canMateWith(EntityAnimal p_70878_1_) {
                if (p_70878_1_ == this) {
                return false;
                } else if (!this.isTamed()) {
                return false;
                } else if (!(p_70878_1_ instanceof Familiar)) {
                return false;
                } else {
                Familiar entitywolf = (Familiar) p_70878_1_;
                return !entitywolf.isTamed() ? false
                : (entitywolf.isSitting() ? false : this.isInLove() && entitywolf.isInLove());
                }
                }
                
                public boolean func_70922_bv() {
                return this.dataWatcher.getWatchableObjectByte(19) == 1;
                }
                
                /**
                * Determines if an entity can be despawned, used on idle far away entities
                */
                protected boolean canDespawn() {
                return !this.isTamed() && this.ticksExisted > 2400;
                }
                
                public boolean func_142018_a(EntityLivingBase p_142018_1_, EntityLivingBase p_142018_2_) {
                if (!(p_142018_1_ instanceof EntityCreeper) && !(p_142018_1_ instanceof EntityGhast)) {
                if (p_142018_1_ instanceof Familiar) {
                Familiar entitywolf = (Familiar) p_142018_1_;
                
                if (entitywolf.isTamed() && entitywolf.getOwner() == p_142018_2_) {
                return false;
                }
                }
                
                return p_142018_1_ instanceof EntityPlayer && p_142018_2_ instanceof EntityPlayer
                && !((EntityPlayer) p_142018_2_).canAttackPlayer((EntityPlayer) p_142018_1_) ? false
                : !(p_142018_1_ instanceof EntityHorse) || !((EntityHorse) p_142018_1_).isTame();
                } else {
                return false;
                }
                }
                }
                
                

                paste bin avec le ctrl + shif - f 
                http://pastebin.com/KXP9CrYU

                Voila ma signature

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

                  ma nouvelle classe actuelle 
                  http://pastebin.com/BTPu6vyL
                  j’arrive toujours pas  😢

                  Voila ma signature

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

                    “j’arrive toujours pas” -> plus de précision sur le problème ?

                    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
                    • leo01418L Hors-ligne
                      leo01418
                      dernière édition par

                      @‘SCAREX’:

                      “j’arrive toujours pas” -> plus de précision sur le problème ?

                      Excuse-moi x)
                      Voilà j’ai toujours le même problème, l’entity ne peut pas passé le lvl suivant 
                      j’ai éssayé ce que ma dit robin et plaigon mais j’ai éssayé beaucoup de tentative mais sa na pas réussi.

                      ma classe
                      :::
                      http://pastebin.com/5EiYuWQg
                      :::

                      Merci de votre aide  😉

                      Voila ma signature

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

                        C’est quoi le level suivant ?

                        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
                        • leo01418L Hors-ligne
                          leo01418
                          dernière édition par

                          @‘SCAREX’:

                          C’est quoi le level suivant ?

                          le lvl suivant c’est quand tu lui donne la rubis croquette

                          Voila ma signature

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

                            Et tu en est à où ? Tu n’arrives pas à l’apprivoiser ou tu n’arrives pas à lui donner une nouvelle IA ou une nouvelle texture ou je ne sais quoi ?

                            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
                            • leo01418L Hors-ligne
                              leo01418
                              dernière édition par

                              @‘SCAREX’:

                              Et tu en est à où ? Tu n’arrives pas à l’apprivoiser ou tu n’arrives pas à lui donner une nouvelle IA ou une nouvelle texture ou je ne sais quoi ?

                              j’en suis à faire "[font=Ubuntu, sans-serifque quand tu fait clique droit dessus avec un item spécial sa change c’est caractéristique  mais avec des “lvl” donc faire que je peux lui donné cette objet sa lui change ses caractéristique(comme le loup,le premier la gold croquette marche) ]
                              [font=Ubuntu, sans-serifexemple= tu lui donne aprés la gold croquette tu lui donne la rubis croquette et après la saphir croquette ect et à chaque fois sa lui améliore c’est stats
                              ]

                              Voila ma signature

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

                                Et bien tu mets une variable lvl dans l’entité et tu l’incrémentes à chaque niveau et en fonction du niveau tu regardes quel item il faut

                                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
                                • leo01418L Hors-ligne
                                  leo01418
                                  dernière édition par

                                  comme sa

                                  else if (itemstack != null && itemstack.getItem() == enderdeath.RubisCroquette && this.Tamed == 2 && this.lvl == 2)
                                  ``` ?

                                  Voila ma signature

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

                                    this.isTamed() au lieu de this.Tamed == 2, et je pense que c’est bon

                                    PS : pense à respecter la convention java

                                    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
                                    • leo01418L Hors-ligne
                                      leo01418
                                      dernière édition par

                                      @‘SCAREX’:

                                      this.isTamed() au lieu de this.Tamed == 2, et je pense que c’est bon

                                      PS : pense à respecter la convention java

                                      sa ne marche pas je pense que ses la solution mais je crois que ma classe est assez mal foutue car quand j’active la méthode vérification il affiche sa  
                                      [20:57:14] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.entity.Familiar:VERIFICATION:323]: Ligne lvl1
                                      [20:57:14] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.entity.Familiar:VERIFICATION:324]: Tamed0
                                      [20:57:14] [Server thread/INFO] [STDOUT]: [ed.enderdeath.mod.entity.Familiar:VERIFICATION:323]: Ligne lvl2
                                      [20:57:14] [Server thread/INFO] [STDOUT]: [ed.enderdeath.mod.entity.Familiar:VERIFICATION:324]: Tamed1

                                      Voila ma signature

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

                                        Envoi la classe entière, sinon sans ça je peux rien faire

                                        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
                                        • leo01418L Hors-ligne
                                          leo01418
                                          dernière édition par

                                          Merci
                                          Je l’envoyerais quand je serais sur le pc 😛

                                          Voila ma signature

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

                                            http://pastebin.com/3LWfxq7W
                                            voici ma classe alors j’ai touché à des chose 🙂

                                            Voila ma signature

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB