Mob custom qui meurt en spawnant
-
Ah effectivement… Mais non. J’ai essayé d’enlever toute la fonction, ça n’a rien changé. J’ai changé à UNDEAD, rien non plus.
Comme il n’y a pas d’attribut autre que UNDEAD et ARTHROPOD, j’ai supposé qu’il fallait UNDEFINED pour avoir ni l’un ni l’autre. -
PS : lorsque j’enlève la ligne ```java
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(maxHealth);De plus si je quitte le monde avec ces mobs, puis que je remet cette ligne le problème revient mais les mobs existants restent. -
C’est bizarre… Fait des System.out.println(maxHealth); un peu partout. Si ton entité meurt en spawnant c’est que max Health est égal à 0. Comment tu as enregistré ton entité ?
-
@‘Aerath’:
Je prépare d’autres mobs donc je vais ajouter deux constructeurs à cette classe qui permettront de faire :
… = new CustomMob(world, 0.7D, 1.0D, 1.0D, 20.0D, “Aerath44”);
ou
… = new CustomMob(world, 0.7D, 1.0D, 1.0D, 20.0D);Sauf que ce n’est pas possible.
-
Et pourquoi ? Bien entendu, je dois les enregistrer une par une mais à par ça je vois pas le problème.
Zak : depuis la fonction Init : j’appelle la fonction suivante placée dans mon proxy commun :
public void registerEntities() { EntityRegistry.registerGlobalEntityID(CustomMob.class, "template_Mob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(CustomMob.class, "template_mob", 420, Sanctumine.instance, 40, 1, true); }Quand à l’idée de logger la vie, ça n’as rien donné :
System.out.println(this.getMaxHealth() + “nom pour se repérer”);
me retourne 0.0 que ce soit dans le constructeur ou dans applyEntityAttributes(). -
Heu 420 ça m’a pas l’air bon, essaye avec une autre id plus faible ( < 255)
-
Les ID des mobs apparemment je viens de vérifier : pas de limite…
Mais en ce qui concerne tes fields dans ta classe, ils retournent bien 0.0D … le système d’Attributes de mojang ne semble pas aimer. -
Elias pourrait-tu m’expliquer en quoi le fait d’utiliser des fields et/ou un constructeur comme je l’ai suggéré poserait problème ? J’ai dû passer à coté d’un truc important ^^’
-
Ah en effet, elias a raison. Tu pourra jamais faire ça :
@‘Aerath’:Je prépare d’autres mobs donc je vais ajouter deux constructeurs à cette classe qui permettront de faire :
… = new CustomMob(world, 0.7D, 1.0D, 1.0D, 20.0D, “Aerath44”);
ou
… = new CustomMob(world, 0.7D, 1.0D, 1.0D, 20.0D);Pour la simple est bonne raison que dans ton code, tu n’aura jamais à spécifier le constructeur du mob. Pour le faire spawner (que ce soit via un œuf ou le spawn naturel) minecraft utilise le constructeur qui contient juste word, donc tes variables n’auront pas la bonne valeur ce qui explique les problèmes rencontrés.
-
Je vois… Dommage. Je teste ça dès que possible.
Effectivement, l’utilisation de fields dans les fonctions .setAttribute() ne fonctionne pas… Comme ne cessait de me le répéter Elias >_<
Merci pour votre patience à tous