Une sorte de "familié"
-
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
-
@‘Plaigon’:
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
Ok merci je vais regardé sa

-
'est réglé pour sa et aussi pour l’attaque bon ensuite pour moi c’est les plus dur chose
faire l’item pour que sa lui donne son skin
puis ensuite faire l’item pour la white list c’est à dire que quand tu donne l’item avec un nom sa lui rajoute dans la white list et que si on nomme NO_nomdujoueur sa enléve de la whitelist -
J’ai pas compris personnellement
-
au faite j’aimerais une white list que quand tu nomme l’objet le nom du joueur et que tu donne à l’entity sa le rajoute à la white list mais quand tu met NO_lepseudosdujoueur sa lui enlève de la white list
de 2 j’aimerais faire l’item spéciale qui lui met un skin je vais essaye un truc la je vous diras si sa marche

et de 3 et quand tu fait un clique droit sur lui il ne se tp plus à toi mais peux bougé attaqué etc
-
1- quel objet ? Et comment tu lui donnes ? Et comment tu ajoute un joueur dans la whitelist ?
2- C’est à dire ? Lorsque tu cliques avec un certain item ça change son skin ?
3- Il fait quoi actuellement quand tu fais un clique droit ? -
2- Il faudrait enregistrer le skin choisi dans les NBTTag de l’entity, et dans ensuite côté render de l’entity, dans la méthode getEntityTexture, tu get ses NBT et + précisément, la texture pour rendre la bonne. C’est vraiment pas compliqué, crois moi.
3-Pour cela tu devrais aussi enregistrer un boolean dans les tag de l’entity qui définit si oui ou non il doit se tp à son maître. Et ensuite dans la fonction onLivingUpdate() en fonction de si oui ou non ce boolean return true, tu effectues les téléportations

-
Le mieux pour les nbt, c’est juste de les lires dans la fonction readFromNBT et d’enregistrer la valeur dans une variable de ton entité (au lieu de les lires à chaque update ce qui alourdirait la chose).
Par contre pour que tout soit bien synchro, il faudra utiliser les data watcher, et je ne crois pas que ce soit possible pour les textures (String), ou sinon tu fais une liste de texture et tu leur attribue un id, là ça marcherait via les data watcher, ou encore, sinon tu fais tes propres packets. -
@‘SCAREX’:
1- quel objet ? Et comment tu lui donnes ? Et comment tu ajoute un joueur dans la whitelist ?
2- C’est à dire ? Lorsque tu cliques avec un certain item ça change son skin ?
3- Il fait quoi actuellement quand tu fais un clique droit ?Tout simplement un objet custom, pas en gros je veux que quand tu le nomme avec l’enclume le nom du joueur se que tu donne sa ajoute le joueur à la white list et quand tu le nomme dans une enclume NO_lenomdujoueur et que tu lui donne au familié sa lui enlève de la white list
2 tout à fait
3 il s’assoie comme un chienje vais me renseigné sur les nbt
