Une sorte de "familié"
-
ah oui Excuse je viens de modifié sa
-
Il faut que tu revois toutes tes conditions : à un moment tu regardes si la fonction est exécutée côté serveur, puis tu mets un “else if” dans lequel tu accèdes à l’inventaire du joueur côté client (à cause de la condition précédente), ça n’a aucun sens.
-
re
Excuse sa fesait longtemps que je suis pas allé sur le codage ^^
bon en gros c’est ce genre de conditions qui géne ?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); }???
-
Celle-ci : (ligne 425)
if (!this.worldObj.isRemote) { if (this.rand.nextInt(3) == 0) { System.out.println("TEST" + this.isTamed()); this.lvl = 2; this.setTamed(); this.isTamed(); System.out.println(lvl); this.setPathToEntity((PathEntity) null); this.setAttackTarget((EntityLivingBase) null); this.aiSit.setSitting(true); 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); } } else if (itemstack != null && itemstack.getItem() == enderdeath.RubisCroquette && this.isTamed() && this.lvl == 2) { System.out.println("GAGNE"); 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); System.out.println("GAGNE"); this.lvl = 3; this.func_152115_b(p_70085_1_.getUniqueID().toString()); this.playTameEffect(true); this.worldObj.setEntityState(this, (byte) 7); this.setTamed(); } else { this.playTameEffect(false); this.worldObj.setEntityState(this, (byte) 6); } if (itemstack != null && itemstack.getItem() == enderdeath.SkinFire && this.isTamed()) { this.Chanchelog(); this.onParticuleFire(); } } } -
Merci je m’y met de suite

-
je reprend le codage j’avais arrête le pc depuis une semaine

sa fait du bien d’étre de retour x) -
Re Donc voilà mon code ma volonté pour le mob c’est un peu modifié le vous laisse voir avec le codage mon problème actuelle
c’est que je veux bloqué à partir du lvl 10 qu’on on peut pas donné la gold croquette et qu’après on donne la rubis croquette pour arrivé au lvl 20 et après ectMon code
http://pastebin.com/FHrvv3F2Ps:
j’ai laissé tombé de modifié la condition toute ce que j’ai fais ses passé à l’échec
:::
Excuse pour les fautes
:::Merci de vos réponse

-
Ligne 338, 339 -> à quoi servent ces variables ?
ligne 417 -> à quoi sert cette méthode et elle droit commencer par une minuscule pour respecter la convention java.
Je suppose que ta gold croquette et rubis croquette sont extends Croquette odnc tu as juste à faire une condition pour chaque, où est le problème ?
-
oui pour les niveau c’est enfin réglé
Merci beaucoup à toi
ensuite j’ai un autre problème voilà comme ce codagepublic 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); } else if (this.lvl == 1) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 1)); System.out.println("Test"); } else if (this.lvl == 3) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 2)); } }mais le problème est la l’entity n’attaque pas correctement (sa ne lui donne pas l’effet de potion)
-
La fonction est bien appelée ?
-
Tu es bien sur que l’entité est tamed ? Car avec tes else if, la potion de sera pas ajouté si l’entité n’est pas tamed.
-
Excuse xD mon entity était pas tamed
bon mais j’ai plusieurs problème quand j’éssaye de faire sa this.getEntityAttribute(SharedMonsterAttributes.attackdamage).setBaseValue(8D); sa crashet
de 2 j’aimerais que quand il monte d’un lvl sa fait une augmentation automatique des pv,vitesse,attaque par exemple ses pv au niveau 1 sont 60 et au niveau 2 70 et au niveau 3 80 sans que je fais ce genre de condition
if (this.lvl == 1) { this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D); } if (this.lvl == 2) { this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(110.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.57D); } if (this.lvl == 3) { this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(120.0D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.589D); }car c’est chiant de faire à chaque fois
Merci de vost réponse

-
De 1) vérifie que ce soit soit après que la fonction entityInit() ait été appelée, soit après super.entityInit() dans la fonction entityInit() de ton entitée (les attributs sont “attribués” dans les superclasses (la classes que tu extends + l’extends de la classe que tu extends + etc) dans leur fonction entityInit();).
De 2) laViePourUnNiveau = laVieDeBase + augmentationParNiveau^leNiveau; qui est la même chose que
laViePourUnNiveau = laVieDeBase + leNiveau * (augmentationParNiveau * augmentationParNiveau); -
Bonjour au faite j’ai laissé tombé le commentaire précédant et j’ai décidé de revenir sur sa
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); } if (this.lvl == 0) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 0)); } if (this.lvl > 1) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 1));} if (this.lvl > 4) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 2));} f (this.lvl > 6) { this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 210, 3));} }le problème c’est que sa marche pour le lvl 1 mais pas les autres donc je dois trouvé un moyen de clear l’éffet de potion quand il est sur le point de monté de lvl ou de faire l’effet de potion est pas infinie
-
Tu as cette méthode pour remove les effets de popo EntityLivingBase#clearActivePotions
-
Merci Plaigon

(Sa fait Plaisir de te revoir
) -
re alors j’essaie une nouvelle méthode
public boolean attackEntityAsMob(Entity p_70652_1_) { int i = this.isTamed() ? 4 : 2; if (this.attackEntityAsMob(player)) { this.worldObj.setEntityState(this, (byte)4); if (this.attackEntityAsMob(p_70652_1_)) { if(this.lvl > 10 && this.attackEntityAsMob(p_70652_1_)) { ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.poison.id, 1000,0)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2000,0)); } if(this.lvl > 40 && this.attackEntityAsMob(p_70652_1_)) { ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.weakness.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.wither.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).setFire(10000); } if(this.lvl > 50 && this.attackEntityAsMob(p_70652_1_)) { this.motionY = 2.0F; ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.weakness.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.wither.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2000,1)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).setFire(10000); } if(this.lvl > 99 && this.attackEntityAsMob(p_70652_1_)) { ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.wither.id, 2000,3)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2000,3)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.hunger.id, 2000,3)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.confusion.id, 500,3)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.blindness.id, 1000,3)); ((net.minecraft.entity.EntityLivingBase) p_70652_1_).addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 2000,3)); this.motionY = 2.0F; ((net.minecraft.entity.EntityLivingBase) p_70652_1_).setFire(10000); } } return true; } return p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); }et elle ne marche pas

Merci de vos réponse

-
Dis nous précisément “ce qui ne marche pas”.
Change le return p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); par true ou false en fonction de ce que tu souhaites. J’imagine que c’est false.
Et puis formates un peu ton code pour nous facilité la lecture, stp
-
@‘Plaigon’:
Dis nous précisément “ce qui ne marche pas”.
Change le return p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); par true ou false en fonction de ce que tu souhaites. J’imagine que c’est false.
Et puis formates un peu ton code pour nous facilité la lecture, stp
En gros ce que je veux faire c’est que par exemple(oui je sais encore des exemples
) c’est que quand il monte le lvl 10 il débloque une sorte de capacité que quand le joueur tape une entity sa lui donne les effet que j’ai mis et pareil pour la suite des niveaux 
Merci de ta réponse rapide

-
Dans ce cas ce n’est pas la méthode attackEntityAsMob dont tu dois te servir, celle-ci n’est appelée que quand une entity frappe une autre. Regarde par-exemple la classe de la cave spider, dans sa méthode attackEntityAsMob, on très bien l’ajout du poison pour l’entity attaquée. Or toi tu veux que quand UN JOUEUR FRAPPE TON ENTITY, celle-ci LUI DONNE DES EFFETS DE POISON, nuance. Donc utilise plutôt la méthode attackEntityFrom(), que tu feras retourner en super.attackEntityFrom