Animation de spawn et de mort d'une entité
-
Primo, ton mob ne pourra jamais être commandé par une véritable IA, tant que le getter EntityLivingBase#isAIEnabled, ne retournera pas true, or de base il est à false, faut donc que tu réécris la méthode.
Deuxièmement pour faire spawn tes éclairs, c’est la méthode World#addWeatherEffect, côté common, et non la méthode spawnEntityInWorld…
Troisèmement il ne faut pas appeler stopSounds, car ça stoppe normalement tous les sons, mais la méthode stopSound(ISound)
Et finalement debug toute ta méthode onDeathUpdate, pour voir ce qui et ce qui ne va pas…Si j’ai bien compris ce que tu souhaitais, à savoir diminuer la posY de ton mob lors de sa mort…Donc il faut mieux appeler un setPosition dans le onDeathUpdate.EDIT = j’ai oublié plusieurs choses importantes…
1)Tu dois forcément appelé un setDead à la fin de ton onDeathUpdate, sinon ton mob sera toujours considéré comme vivant…
2)Aère davantage ton code, c’est difficile à lire
3)Utilise tes notions en Java pour optimiser certaines choses, telle qu’un boucle while ou for, au choix, pour tous tes spawn de EntityLightingBolt, car là c’est un peu un gros bloc répétitif…Ou alors tu fais un switch à la limite, ça passerait même mieux
4)Et sais-tu que ton spawn final de particule au tick 383 est un peu inutile et à mon avis inobservable, du fait qu’il n’apparaîtra que durant un vingtième de tick ?? Après si je me souviens bien tu peux modifier la vélocité de ta particule sur les 3 axes grâce aux 3 derniers paramètres integer du spawnParticle, mais comme tu as mis 0 aux 3, ça m’étonnerait qu’elle reste très longtemps en l’air…Après encore une fois à toi de debug et de voir ce qu’il en est si tu mets tel ou tel chiffre.A mon avis y’a encore plein d’autres choses à dire, mais je laisserais les autres compléter

-
@‘Plaigon’:
Primo, ton mob ne pourra jamais être commandé par une véritable IA, tant que le getter EntityLivingBase#isAIEnabled, ne retournera pas true, or de base il est à false, faut donc que tu réécris la méthode.
Deuxièmement pour faire spawn tes éclairs, c’est la méthode World#addWeatherEffect, côté common, et non la méthode spawnEntityInWorld…
Troisèmement il ne faut pas appeler stopSounds, car ça stoppe normalement tous les sons, mais la méthode stopSound(ISound)
Et finalement debug toute ta méthode onDeathUpdate, pour voir ce qui et ce qui ne va pas…Si j’ai bien compris ce que tu souhaitais, à savoir diminuer la posY de ton mob lors de sa mort…Donc il faut mieux appeler un setPosition dans le onDeathUpdate.-
je ne comprend pas ce que tu veut que je fasse ?
-
a quoi bon faire ça si l’autre marche ?
-
le setposition ne marche pas aussi et quand j’utilise EXACTEMENT les même effet que l’enderdragon tout marche sauf ça
-
pour le reste je vais y travailler, par contre le spawn particle marche biens comme ça et elles apparaissent pendant plus de 20 ticks
EDIT: pour le set dead l’XP n’apparaît plus lors de la mort, je dois faire un spawnEntity ?
-
-
Oui pour l’XP, l’enderdragon procède ainsi.
Ok donc oublie ce que j’ai dis pour le spawnParticle, j’ai dû me tromper.
Si le setPosition te paraît trop difficile, tu peux sinon te servir des motions. Incrémente la variable motionY avec de petits nombres, tels que 0.01 et regarde ce qui se passe
Les motions peuvent très bien remplacés le setPosition, en revanche je crois qu’ils doivent être uniquement gérés côté serveur, à revérifier@‘jbamine’:
- a quoi bon faire ça si l’autre marche ?
Pas compris…
Idem pour ta première réplique
Au passage, tu ferais mieux de renommer ton topic car là ce n’est plus vraiment représentatif du soucis actuel, et on s’éloigne de + en + du problème initial. Si de futurs moddeurs passent sur le forum et ont les mêmes erreurs avec le onDeathUpdate, ça m’étonnerait qu’il puissent trouver ce sujet
-
@‘Plaigon’:
@‘jbamine’:
- a quoi bon faire ça si l’autre marche ?
Pas compris…
Idem pour ta première répliquea quoi bon faire le weathereffect si le spawnentity marche,
pour la premierre réplique je ne vois pas ce que tu me demande de faire exactement
ensuite pour le stopsound je sais, ce que je veut savoir en revanche c’est comment l’executer que du coter client
-
if(this.worldObj.isRemote)
T’arrives quand même à voir les éclairs ?!
-
@‘Plaigon’:
if(this.worldObj.isRemote)
T’arrives quand même à voir les éclairs ?!
oui je vois ce que tu veut dire sauf que je sais pas comment mais en mettant if(this.worldObj.isRemote) ça fait double éclair, autrement dis l’inverse de ce que c’est censé faire XD
par contre le plus important pour l’instant c’est le stopsound, et j’y arrive vraiment pas

-
J’ai rien compris xD
-
@‘Plaigon’:
J’ai rien compris xD
a quoi?
-
A ce que tu as dit précédemment.
-
@‘Plaigon’:
A ce que tu as dit précédemment.
Il a dis que avec le[font=Ubuntu, sans-serif if(this.worldObj.isRemote) il y a deux éclairs qui spawn.]
-
@‘Plaigon’:
A ce que tu as dit précédemment.
en bref ça marche pas avec this.worldObj.isRemote et sans sa marche
par contre je préfèrerais que tu m’aide pour le Minecraft.getMinecraft().getSoundHandler().stopSound(“pandamod:song”); pour faire en sorte que ça stope le sound pandamod:song et que du coté client
EDIT j’ai réessayé les éclair avec this.worldObj.isRemote et ça change rien par rapport a avant
-
stopSound, doit recevoir comme argument un objet de type ISound, non un String. Donc à partir de là, tu sais tout de suite que ton code ne marchera pas.
-
@‘Plaigon’:
stopSound, doit recevoir comme argument un objet de type ISound, non un String. Donc à partir de là, tu sais tout de suite que ton code ne marchera pas.
ça je m’en doute ce que je voudrais, ce serais de le passer en clientSide pour éviter de crash en serveur
-
if(this.worldObj.isRemote).
Sa doit être au moins la 3ème que je te le dis u_U
-
@‘Plaigon’:
if(this.worldObj.isRemote).
Sa doit être au moins la 3ème que je te le dis u_U
ah désolé sinon du coup pour le tp j’y arrive toujours pas peut un porte la méthode
-
Avec du code ça serait mieux

-
@‘Plaigon’:
Avec du code ça serait mieux

???
-
File nous ta classe qu’on y voit + claire.
-
bon j’ai réussi tout seul et ça marche