Résolu [SEMI TUTO] Création de mon mob hostile: spawn, attaque etc.
-
Edit: Tout est bon. J’ai baisser sa vitesse, et j’ai fait en sorte qu’il n’y ai que this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true)); dans Protected void. Il ne manque que quatre choses, dont deux très importantes:
1.L’autoriser à pouvoir spawn le jour, et à ce qu’il ne disparaisse pas lorsqu’on s’éloigne trop.
2.Le faire attaquer tous les mobs autres que lui.Moins important: 3.Trouver comment lui rajouter un son. Je vais réfléchir moi même sur cela pour le moment.
4.Lui rajouter une animation de marche, ça je pense que je vais avoir du mal… -
Effectivement c’est byzarre…
Pour le fait qu’il attaque byzarrement, remplace ça :1. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityPlayer.**class**, **true**)); 2. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityVillager.**class**, **true**)); 3. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityIronGolem.**class**, **true**)); 4. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityChicken.**class**, **true**)); 5. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityPig.**class**, **true**)); 6. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityRabbit.**class**, **true**)); 7. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityCow.**class**, **true**)); 8. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityHorse.**class**, **true**)); 9. **this**.targetTasks.addTask(2, **new** EntityAINearestAttackableTarget(**this**, EntityOcelot.**class**, **true**));
par ça :
[font=monospace****this**][font=monospace.][font=monospacetargetTasks][font=monospace.][font=monospaceaddTask][font=monospace(][font=monospace2][font=monospace,][font=monospace ][font=monospace**new**][font=monospace ][font=monospaceEntityAINearestAttackableTarget][font=monospace(][font=monospace**this**][font=monospace,][font=monospace ][font=monospaceEntityPlayer][font=monospace.][font=monospace**class**][font=monospace,][font=monospace ][font=monospace**true**][font=monospace));]** [font=monospace**this**][font=monospace.][font=monospacetargetTasks][font=monospace.][font=monospaceaddTask][font=monospace(3][font=monospace,][font=monospace ][font=monospace**new**][font=monospace ][font=monospaceEntityAINearestAttackableTarget][font=monospace(][font=monospace**this**][font=monospace,][font=monospace ][font=monospaceEntityCreature][font=monospace.][font=monospace**class**][font=monospace,][font=monospace ][font=monospace**true**][font=monospace));]
ça aura le même effet et au moins ils n’entreront pas en conflit.
Pour le spawn, j’aurais pensé que ça aurait marché, je vais continuer à voir ça.
Pour le son, il y a des fonctions comme getDeathSound(), getHurtSound() dans la classe EntityMob que tu peux reprendre.
Pour l’animation de marche, regarde dans ModelBiped (package net.minecraft.client.model) que les jambes sont animées.
-
Et j’aimerai savoir comment faire pour qu’il saute aussi svp
Sinon merci déjà! -
Il ne saute pas déjà ? Parce qu’on est pas censé mettre quelque chose de spécial (du moins je crois pas).
Et si tu as toujours un problème de spawn, mets un System.out.println(“Fonction appelee”); avant le return true; dans ta fonction getCanSpawnHere(), pour savoir si le serveur essaye bien de faire spawn le mob (Joues pendant un petit temps puis regarde la console d’eclipse, si il y a ce message dans la console, ton mob a spawn sinon c’est qu’il essaye même pas de spawn (un bug/il faut changer une des valeurs où tu enregistres le spawn).
-
Du coup j’ai trouvé une autre solution :). Mettre le mob en “Creature”.
Il spawn le jour maintenant. Bon sinon il veut toujours pas manger les autres mobs. Et il ne saute pas, c’est son plus gros problème actuel. -
En fait depuis le début (si j’avais été toi) je n’aurai pas ajouté la moindre AI car de 1) tu n’en pas réellement besoin : simple mob agressif sur toutes les autres entity, exclus les mobs, et de 2) c’est te compliquer la vie et SURTOUT la compréhension du code, étant donné que tu as l’air de débuter. Donc vire toute ta méthode applyEntityAI(). Pour que ton mob puisse donc attaquer un simple extends EntitMob suffira.
Quand à l’EnumCreatureType (je rerends ce que robin avait déjà indiqué), cela n’a rien à voir avec l’agressivité ou non de l’entity, mais sa capacité à pouvoir spawn en fonction de la difficulté sélectionnée de la partie. Laisse donc en monster.
Pour qu’elle puisse attaquer toutes les entity passives, suis tout simplement ce tuto :
http://www.minecraftforgefrance.fr/showthread.php?tid=730Et enfin pour qu’elle puisse sauter, ce tuto :
http://www.minecraftforgefrance.fr/showthread.php?tid=907 -
http://www.minecraftforgefrance.fr/showt…hp?tid=730>C’est non pour attaquer les entités passives mais pour régénérer son mob.
http://www.minecraftforgefrance.fr/showt...hp?tid=907>Je m’étais déjà renseigné cela ne marche qu’en 1.7.2, pas en 1.8.8.
Sinon merci! J’essaierai demain soir pour voir si ça fonctionne! -
Mais c’est le même principe –’
Le système de get les entity aux alentours est ce que je souhaitais que tu regardes à travers ce tuto. Ensuite au lieu de heal tu set comme target.
Ensuite pour le prob de 1.8.8, qu’est-ce qui ne va pas (je n’ai pas mon pc, donc je peux pas adapter le code) ? -
http://www.minecraftforgefrance.fr/showt…=730
Je comprends toujours pas faut m’expliquer.
http://www.minecraftforgefrance.fr/showt...tid=907
Ne marche pas sur la 1.8.8. Avec le mob n’est plus fonctionnel, et ne popera ni naturellement ni avec l’oeuf.
Après modifications il repop de nouveau, mais n’attaque plus, help!Sérieusement, les mobs comme les vaches ou les zombies sautent bien… C’est quoi la commande pour faire comme avec eux?
-
Bah tu modifies le motionY, c’est pas compliqué :3
-
Mon mob n’attaque plus maintenant que j’ai du tout effacer.
Je comprends pas. Qu’est-ce qui fait qu’il n’attaque pas avec ça:
package Entity;import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.monster.EntityIronGolem;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntityPigZombie;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityHorse;
import net.minecraft.entity.passive.EntityOcelot;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.passive.EntityRabbit;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.pathfinding.PathNavigateGround;
import net.minecraft.world.World;public class Entityclass extends EntityMob
{
public Entityclass(World world)
{
super(world);
this.setSize(2, 3);
this.applyEntityAI();
}public void applyEntityAttributes()
{
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(62D);
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(9D);
this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(2D);
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.36D);
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(150D);
}protected void applyEntityAI()
{
this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));
}
} -
[font=Ubuntu, sans-serifprotected void applyEntityAI()] [font=Ubuntu, sans-serif{] [font=Ubuntu, sans-serifthis.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true));] [font=Ubuntu, sans-serif}]
ne set à rien l’entity à un extends EntityMob
Eddit:tu est en 1.8?
-
What?
Rien compris… -
Ce codage te sert à quoi?
1. [font=Ubuntu, sans-serif**protected**] **void** applyEntityAI() 2. [font=Ubuntu, sans-serif{] 3. [font=Ubuntu, sans-serif**this**].targetTasks.addTask(1, **new** EntityAINearestAttackableTarget(**this**, EntityPlayer.**class**, **true**)); 4. [font=Ubuntu, sans-serif}]
-
Ah ce qu’il m’attaque car il ne m’attaque pas. Mais ça change rien. Parce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi.
Il n’attaque pas et ça me saoule. Dîtes moi comment faire s’il vous plait! En un seul message! Tout le monde ici a déjà fait des mobs agressif non? Pourquoi vous ne me dîtes pas directement l’erreur et la correction? Parce que là on s’étend sur 4 pages déjà… -
@‘conquerorguepard’:
Ah ce qu’il m’attaque car il ne m’attaque pas. Mais ça change rien. Parce que Plaigon m’a dit de faire un truc qui a fait quelque chose à mon codage et du coup y’a plus rien qui marche je sais pas pourquoi.
Il n’attaque pas et ça me saoule. Dîtes moi comment faire s’il vous plait! En un seul message! Tout le monde ici a déjà fait des mobs agressif non? Pourquoi vous ne me dîtes pas directement l’erreur et la correction? Parce que là on s’étend sur 4 pages déjà…Déjà ma première question est tu en 1.8?
et de 2 tu à essayé d’enlevéprotected void applyEntityAI() { this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 3, true)); }
et de 3 ce n’est pas grave si le sujet s’étend en 4 ou 18 pages le but de ce sujet est de te faire comprendre ton erreur et que tu ne la recommence plus
-
Oui je suis en 1.8 :).
Et j’ai essayé de l’enlever ça change rien. Il ne m’attaque toujours pas.
Sinon désolé si j’ai pu paraître désagréable. -
Pas grave sa arrive quand on s’énerve sur un mod de 2 excuse je n’ai pas encore touché à la 1.8
Bonne Chance
Sinon tien si sa peux t’aider :
https://www.youtube.com/watch?v=yq2Jir2kIKA -
Plutôt celle-là je pense
https://www.youtube.com/watch?v=xQa5_w9Thb0&nohtml5=FalseMême si je ne l’ai pas regardé x]
-
En réinitialisant tout j’ai réussi à refaire fonctionner le mob. J’en suis maintenant au même point qu’en début d’après midi, avec toujours ce problème de saut. Quelqu’un a t-il une autre idée svp?