Une sorte de "familié"
-
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, stpEn 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
-
1- Tu as simplement besoin d’un item, ensuite tu modifie la méthode interact pour ajouter le UUID du joueur à partir du nom de l’item
2- Tu modifies la méthode interact qui va changer une valeur dans ton entité (si tu n’as besoin de qu’une valeur un booléen suffit) et ensuite tu accèdes à cette valeur dans le rendu
3- Normalement une fois sur 2 il s’assoit et une fois sur 2 il se lève et peut marcher comme un chien, sinon c’est qu’il y a un problème dans ton code -
J’ai trouvé un bug dans le familiar si une personne donne une croquette il devient le propriétaire du familiar et faudra que dés que le joueur donne la première croquette au familiar il soit le propriétaire à vit
Merci de vos réponse
Ps:je cherche comment des tuto sur les nbt -
J’ai pas compris, peux-tu reformuler ?
Tu parles de tuto sur les nbt ? Alors ça tombe bien, car j’ai commencé hier aprêm, la rédaction d’un tuto super complet avec plein d’illustrations et d’exemples sur les Datawatchers & les NBTTagCompound. En plus il y a de fortes chances que je fasse une vidéo, donc soit patient, je devrai l’avoir fini ce week end, ou en début de semaine prochaine MAXI
-
Pour empêcher ton familier d’être réadopté, si tu enregistres le propriétaire dans une variable, tu as juste à faire un if(lepropprio == null) au dessus de ce que tu as mis pour l’attribution du propriéraire.
Si tu as un problème, rajoute aussi le code de ton entité pour qu’on sache comment tu lui attribue un propriétaire. -
@‘Plaigon’:
J’ai pas compris, peux-tu reformuler ?
Tu parles de tuto sur les nbt ? Alors ça tombe bien, car j’ai commencé hier aprêm, la rédaction d’un tuto super complet avec plein d’illustrations et d’exemples sur les Datawatchers & les NBTTagCompound. En plus il y a de fortes chances que je fasse une vidéo, donc soit patient, je devrai l’avoir fini ce week end, ou en début de semaine prochaine MAXI
Bon re merci de vos réponse
ma classe actuelle
http://pastebin.com/azNZAKMe
la classe de mon render
http://pastebin.com/AfBssRS0Je tient à précisé que ce que j’ai fait pour le skin est du n’importe quoi O_o
Après pour le bug du familiar pour l’évité de re étre adopté alors quelle est déjà j’ai fait sa mais je sais pas si sa marchePs:Merci Plaigon j’ai hâte pour le tuto
Edit: Excusé pour les fautes