Creation d'un mob simple (En Rédaction 85%)

Et voila, comme vous l'attendiez, un tutoriel pour apprendre à mettre un pseudo sur le mob. Ce tutoriel est assez cours. ;)

1. Dans votre fichier d'ENTITY, rajoutez ce qui est en vert :

__________________________________
package net.minecraft.src;

import java.util.List;

import net.minecraft.client.Minecraft;

import org.w3c.dom.Entity;

public class EntityMob extends EntityLiving
{

public String npcName;

public EntityMob(World world)
{
super(world);
texture = "/mod/texture.png";
moveSpeed = 5.0F;
health = 20;
npcName = "Naito [Mineur]";
}
public EntityMob(World world, double d, double d1, double d2, float f)
{
this(world);
setPosition(d, d1 + 1.0F, d2);
motionX = 0.0D;
motionY = 0.0D;
motionZ = 0.0D;
prevPosX = d;
prevPosY = d1;
prevPosZ = d2;
}

public void writeEntityToNBT(NBTTagCompound nbttagcompound)
{
super.writeEntityToNBT(nbttagcompound);
}

public void readEntityFromNBT(NBTTagCompound nbttagcompound)
{
super.readEntityFromNBT(nbttagcompound);
}

protected int getDropItemId()
{
{
return Item.porkCooked.shiftedIndex;
}
}

public int getMaxHealth()
{
return 0;
}
}
______________________________

2. Dans le fichier RENDER de votre mob, pareil ajoutez ces lignes et lettre ;) :

__________________________________
package net.minecraft.src;
import org.lwjgl.opengl.GL11;

public class RenderMob extends RenderBiped (ou Quadruped, sa marche aussi)
{
protected void preRenderScale(EntityNaito entity, float f)
{
GL11.glScalef(1.0F, 1.0F, 1.0F);
}
public RenderNaito(ModelNaito modelbiped, float f)
{
super(modelbiped, f);
modelBipedMain = modelbiped;
}

public void renderMobA(EntityNaito entity, double d, double d1, double d2, float f, float f1)
{
super.doRenderLiving(entity, d, d1, d2, f, f1);

if(entity.npcName.length() > 0 && entity.npcName != "")
{
renderLivingLabel(entity, entity.npcName, d, d1, d2, 64);
}
}
public void doRenderLiving(EntityMob entityliving, double d, double d1, double d2,
float f, float f1)
{
super.doRenderLiving((EntityMob) entityliving, d, d1, d2, f, f1);
}

public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
{
renderNaitoA((EntityMob)entity, d, d1, d2, f, f1);
}

protected void preRenderCallback(EntityLiving entityliving, float f)
{
preRenderScale((EntityMob)entityliving, f);
}
}
____________________

Examinons les ajouts dans le code Render:

if(entity.npcName.length() > 0 && entity.npcName != "")
{
renderLivingLabel(entity, entity.npcName, d, d1, d2, 64);
}

Ce "if" permet de dire au fichier render que le mob sera comme un "joueur NPC Multi"

A = Cette lettre s'ajoute comme indiqué dans le code, elle sert aussi à forcer le mob à avoir un pseudo sur la tête.

Examinons les ajouts dans le code ENTITY ;) :

public String npcName; = Cette constante déclare le type "npcName"

-

npcName = "Tralala";

Comme son nom l'indique, c'est le type qui va ajouter le pseudo au dessus du mob, j'ai mis "Tralala", donc "Tralala" sera affiché au dessus de sa tête :)

Voili, voilou :) Et je montrerai aussi comment créer un projectile pour compléter une partie du tuto ;)
 
Hey salut à tous et à toutes. On se retrouve pour un petit tutoriel sur: COMMENT FAIRE SPAWNER DES PARTICULES !

On commence avec cette ligne que je vais détailler, je la présente comme ça, puis je montrerai un exemple après ;):

worldObj.spawnParticle("NOM DE LA PARTICULE (Voir plus bas pour la liste des particules)", double posX, double posY, double posZ, double red, double green, double blue);

worldObj = Indiquant par quoi commence la ligne, donc provenant de "World".
spawnParticle = Comme indiqué; dit à worldObj d'appeler la fonction spawnParticle.
"NOM DE LA PARTICULE" = C'est dit :) Je vous donnerai la liste de TOUTES les particules ;)
double pos X,Y,Z = La position ou le spawn des particule aura lieu. ;)
double red, green, blue = Niveau de densités de basculation de couleurs vers rouge, vert et bleu. Vous pouvez laisser 0.0D pour la particule ORIGINAL. ;)

Et maintenant, comme promis... UNE LIGNE EXEMPLE ;) :

worldObj.spawnParticle("reddust", posX, posY, posZ, 0.0D, 1.0D, 0.0D);

Et voilà la liste de TOUTES les particules ;):

largesmoke (Grande fumées)
portal (Regardez le portail du nether et vous comprendrez ;))
reddust (Particule de redstone)
largeexplode (Grosse explosion)
explode (Le creeper par exemple ;))
largeexplosion (Quand vous faites joujou avec la TNT ;))
note (Ah notre bon vieux NoteBlock :D)
bubble (Vive le plongeon)
flame (Particules de feu, comme un MonsterSpawner ;))
crit (Ça, c'est les particules de COUPS CRITIQUES ;))
smoke (Fumée normales, comme les torches)
heart (Les fameux coeurs qui apparaissent quand vous adoptez un loup ou donnez du blé aux autre animaux)
splash (Faite un gros splash dans l'eau et TADAM :))
snowballpoof (Lorsqu'une SNOWBALL est éclatée)
suspended (Ca j'ai jamais testé, donc à vous de découvrir :()
depthsuspend
townaura
magicCrit (Coups critiques magique apparament ... :o)
mobSpell (No comment...)
spell (Particules de sorts ;))
instantSpell (Je pense que c'est pareil...)
enchantmenttable (Les fameuses particules quand vous mettez pleins de bibliothèque au tour d'une table d'enchantement :))
lava (Particules de lave :))
footstep (Lorsqu'un bloc est cassé :))
cloud (Des sois disant "Particules de nuages" O_O)
dripLava (...)
dripWater (...)
snowshovel (Quand vous ramassez de la neige avec une pelle)
slime (BOn bah pas la pêne de vous expliquer, je pense que vous savez ce que ça va faire :))
iconcrack_ (Rien compris :()
tilecrack_ (idem :o)

Comme vous avez pu le voir, il y a certaines particules que je ne connais pas :(

Et pour un petit bonus, je vous montre la méthode à utiliser sur une entité, vu que le tuto est consacré pour la création de mobs ;) :
public void onDeath(){
worldObj.spawnParticle("Votre_PARTICULE_ICI", posX, posY, posZ, 0.0D, 0.0D, 0.0D);
super.onDeath(); //en gros, les particules vont spawner quand le mob sera mort :)
}
 
posX, double posY, double posZ, double red, double green, double blue);

Ce n'est pas totalement vrai, les trois derniers arguments peuvent aussi être l'accélération que vous voulez donner à vos particules ;)

largesmoke (Grande fumées)
portal (Regardez le portail du nether et vous comprendrez ;))
reddust (Particule de redstone)
largeexplode (Grosse explosion)
explode (Le creeper par exemple ;))
largeexplosion (Quand vous faites joujou avec la TNT ;))
note (Ah notre bon vieux NoteBlock :D)
bubble (Vive le plongeon)
flame (Particules de feu, comme un MonsterSpawner ;))
crit (Ça, c'est les particules de COUPS CRITIQUES ;))
smoke (Fumée normales, comme les torches)
heart (Les fameux coeurs qui apparaissent quand vous adoptez un loup ou donnez du blé aux autre animaux)
splash (Faite un gros splash dans l'eau et TADAM :))
snowballpoof (Lorsqu'une SNOWBALL est éclatée)
suspended (Ca j'ai jamais testé, donc à vous de découvrir :()
depthsuspend
townaura
magicCrit (Coups critiques magique apparament ... :eek:)
mobSpell (No comment...)
spell (Particules de sorts ;))
instantSpell (Je pense que c'est pareil...)
enchantmenttable (Les fameuses particules quand vous mettez pleins de bibliothèque au tour d'une table d'enchantement :))
lava (Particules de lave :))
footstep (Lorsqu'un bloc est cassé :))
cloud (Des sois disant "Particules de nuages" O_O)
dripLava (...)
dripWater (...)
snowshovel (Quand vous ramassez de la neige avec une pelle)
slime (BOn bah pas la pêne de vous expliquer, je pense que vous savez ce que ça va faire :))
iconcrack_ (Rien compris :()
tilecrack_ (idem :eek:)

suspended = particules qui spawnent sous le niveau 0
iconcrack_unNombre = bouts d'un items ( ID = unNombre) à spawner
tilecrack_unNombre = bouts d'un block ( ID = unNombre) à spawner
 
Désolé du double post :

Mais ca peut être aussi les couleurs des particules ;) enfaîte c'est les deux xD
 
Bonjour , Je souhaite créer mes mobs ayant suivie vos Tutorial je sais créer des Humains ainsi que des Cochon

Mais là je fait un Mobs totalement personnaliser et je ne sais pas comment faire le Render

Pourriez vous m'aider car Mon mob unique ressemble a un Humain là :s

Merci d'avance.
 
Désoler du double post Mais c'est pour
Zer0w117 : Pour Les rendre Agressif voici les commande a mettre dans Entity"Tonmob"

N'ouble pas "Private int angerLevel;" doit être en dessous du "}" Sinon une Erreur Apparaitra


public Entity"Tonmob "(World world)
{
super(world);
texture = "/mod/tonmob.png";
//En dessous définie combien de coeur il vous prendra ainsi que ça vitesse de déplacement
attackStrength = 4;
angerLevel = 1;
moveSpeed = 2.0F;
//Ceci est la vie de votre mob.
health = 40;
}
private int angerLevel;
 
Je ne comprend pas, j'ai suivit scrupuleusement le tuto, avec des difficulté.
Mais le mob ne spawn pas naturellemnt, est de forme humaine, ne loot pas d'item.

Je crois avoir compris. On est obligé de faire avec modloader?
 
Non, tu peux le faire sans ModLoader ;)

Mais il faudra éditer plusieurs fichier:

BiomeGenBase
EntityList
RenderManager :)
 
Ok merci. Mais je fais comment... :rolleyes:
Je vais cherché un peu, mais de l'aide ne serai pas de refus.