Créer un mob basique
-
@‘isador34’:
Essaie de remplacer SharedMonsterAttributes par SharedCreatureAttributes
Non ça me dit SharedCreatureAttributes cannot be resolved to a variable. J’ai aucun choix d’import… :s
Merci pour l’aide ! -
Ton mob extend à quoi jimkick3v
-
@‘elias54’:
Ton mob extend à quoi jimkick3v
Il extends EntityMob, ce qui d’ailleurs est peut-être le problème après réflexion… Sauf que dans le code j’ai pas trouvé EntityCreature ou EntityPassive…
-
public Entity getEntityToAttack() { return null; }Il existe aussi la fonction pour que le mob target une cible :
public void setTarget(Entity par1Entity){ } -
@‘Patatoufet’:
public Entity getEntityToAttack() { return null; }Il existe aussi la fonction pour que le mob target une cible :
public void setTarget(Entity par1Entity){ }Merci à tous pour l’aide mais j’ai trouvé la solution ! Merci elias pour m’avoir ouvert l’oeil ! Suffisait de faire extends EntityCreature, de l’importer, et d’enlever les 2 lignes suivantes :
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(6D);
this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValu?e(1D);Pour la simple et bonne raison qu’elles ne sont pas utiles à une entité qui n’attaque pas

J’ai fait le test sans les enlever, et le mob ne voulait pas spawner, donc enlever ces 2 lignes était primordial…
Quoique après réflexion, peut-être que la ligne qui set le knockback resistance peut rester, des tests seraient à faire…Merci à tous !
N.B. Si quelqu’un a la solution pour le faire apparaître dans un biome spécifique, j’apprécierais
J’ai regardé dans le code EntityHorse, puisque en théorie il n’apparaissent que dans les plaines, mais j’ai pas trouvé… -
EntityRegistry.addSpawn(entityClass, weightedProb, min, max, typeOfCreature, biomes);
-
@‘jimkick3v’:
J’ai regardé dans le code EntityHorse, puisque en théorie il n’apparaissent que dans les plaines, mais j’ai pas trouvé…
M’étonnerait qu’ils aient un biome spécifique… Je viens d’aller en solo et ils spawn par groupe en plein désert… ^^
-
Bonjour.
Tout d’abord, merci pour ce tutoriel. J’aurais une ou deux questions basiques.
Je chercher un moyen de contrôler le nombre de drops du monstre… pour avoir une valeur fixe (et non pas seulement entre 0 et 2 comme semble fonctionner la fonction getDropItem() ). J’ai regardé du coté de dropFewItems, mais je n’ai abouti à rien et tenté de rajouter ceci dans la classe de mon mob au niveau du constructeur :this.dropItem(monmod.monobjet, 5);Mais cela ne change absolument rien… J’obtiens toujours une valeur aléatoire inférieure à ce nombre.
Faut-il jouer avec l’event onLivingDrops de Forge ?
Et une autre petite question, est-il possible de faire dropper deux items différents à un même mob ?Merci pour le coup de main !
-
Dans la classe de ton entité, ajoute :
public void dropFewItems(boolean b, int looting) { this.dropItem(ClassePrincipale.item, quantity); }public void dropFewItems(boolean b, int looting) { this.dropItem(ClassePrincipale.item, quantity); this.dropItem(ClassePrincipale.item2, quantity); this.dropItem(ClassePrincipale.item3, quantity); }Pour plusieurs items. (et this.dropItem(Item.getItemFromBlock(ClassePrincipale.bloc), quantity); pour un bloc)
-
Arf… j’avais les deux bonnes pistes mais pas agencées comme il faut. Merci, ça fonctionne nickel !
-
Question ici aussi… Est-il possible que la vitesse d’un monstre diffère selon le monde ?
Je m’explique.
Je me suis créer un serveur test en créatif. Et tout d’un coup, la vitesse du mob que j’ai créer à diminuer à un lancement (elle est passée à 0.10000000149011612 quand je lui fais écrire) mais je n’avais fait aucune modif dans le code… Comme je n’avais pas précisé la vitesse du monstre pour la laisser de base, j’ai essayé de la remettre, mais même résultat…
Du coup je me suis fait un autre monde en créa et là le mob marche nickel, la vitesse et nickel même si je ne la précise pas. Et avec un code identique.
Est-ce que ça vient simplement de mon pc qui lag sur un monde (je code avec un pc portable par forcément très puissant) ? Ou alors d’un autre truc que je ne contrôle pas ? -
Ça vient des attributs des mobs. Je sais pas trop comment expliquer ça, je vais prendre comme exemple la vie. Il y a un attribut pour la vie maximum et la vie réel du mob. Ces deux valeurs sont enregistrés dans le tag nbt du mob. Donc si dans le code tu change l’attribut de la vie, (que tu mets plus par exemple) une fois que tu ira en jeu, si tu recharge un monde ou tu avais déjà fait spawner un mob, ça vie sera comme avant car il va prendre la vie maximum qui se trouve dans son attribue de la vie maximum. Par contre si tu en fais spawner un nouveau, lui aura la nouvelle valeur.
C’est la même chose pour la vitesse.Donc si tu veux faire une vitesse maximum en fonction du monde, il suffit de changer l’attribut de la vitesse en fonction de :
this.worldObj.provider.dimensionId
Cette int te donne l’id du monde.
Normalement ça devrait fonctionner, par contre si un mob travers le portail, ça vitesse ne changera pas, il gardera celle qu’il avait dans le monde où il a spawner. Si tu veux changer ça, il faudrait changer son attribut de la vitesse dans la fonction onLivingUpdate (ou un truc comme ça, je ne connais pas par cœurs les fonctions des mobs). -
Bah en fait à la base je cherchais pas du tout à faire des valeurs différentes, j’ai créer un autre monde pour voir si c’était le mob ou si c’était le monde.
Je me demandait juste pourquoi, dans un même monde, la vitesse de mon monstre a changer entre deux démarrage. Sachant que sans rien modifier, maintenant, il a retrouvé la vitesse “par défaut” d’un mob… Je me dis que c’était peut-être du à un lag pour tel ou telle raison sur le serveur local de ce monde, bref. C’est un phénomène qui ne m’étais encore jamais arrivé.
Merci pour les explications en tout cas !
-
Surement un lag oui, regarde avec la commande /forge tps.
Si tu as 20, c’est bon, sinon c’est que ça lag. -
alors voila super tuto mais il m’est apparue un probleme avec les couleurs des oeufs ils me mettent que je deoit rajouter un float pour les couleurs et quèant je le fais c est le point .getRGB() qui ne marche pas
ouvez vous m aider svp -
Tu peux nous donner l’import que tu as utilisé pour Color.
-
oui c est : import com.sun.prism.paint.Color;
-
Voilà pourquoi cela ne fonctionne pas. Change l’import par Java.util.quelquechose.Color.
-
voila j ai trouver pour importer mais ca ne marche toujours pas voici mes class:
1er la class principal
2eme la classe Render
3eme la class du mob
4eme la classe Clientproxy -
Classe principale il te manque proxy.registerRender(); dans la fonction init.
Et tu as des { } qui ne servent à rien dans la fonction init.
