Как приписать obj мобу.

705
10
46
Собственно все в теме, кода мне НЕ нужно, мне лишь объяснение, там сам додумаюсь.
Как конкретно это сделать?
 
Ясно, видимо никто помогать не хочет.Делаем броню по туториалу на форуме, заместо модели течне рендерим как обычный предмет.

закрывайте.
 
Develance, времени мало прошло.
Создаёшь класс с унаследованием "ModelBiped", используешь метод (унаследованного класса) "render(...)" и в этом методе ты присваиваешь *.obj модель (как у предмета).
На счёт второго поста я не совсем понял.
 
timaxa007 написал(а):
Develance, времени мало прошло.
Создаёшь класс с унаследованием "ModelBiped", используешь метод (унаследованного класса) "render(...)" и в этом методе ты присваиваешь *.obj модель (как у предмета).
На счёт второго поста я не совсем понял.
Можете в скайпе обьяснить?
 
Итак, есть решение, это пишите в прокси 
Код:
        RenderingRegistry.registerEntityRenderingHandler(EntityHobo.class, new RenderHobo(new ModelHobo(), 2F));
Это ваш энтити(спасибо Дракончику)
Код:
package gta.SanAndreas.ModelPlayer;

import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAILookIdle;
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.player.EntityPlayer;
import net.minecraft.world.World;

public class EntityHobo extends EntityCreature//Еще тут может быть EntityAnimal для пассивного моба, еще есть IAnimal и EntityCreature, но о них позже.
{
    public EntityHobo(World par1World)
    {
        super(par1World);
        this.setSize(0.7F, 1.8F); //Размерчики
        this.setEquipmentDropChance(1, 1.0F); //Шанс дропа экипировки
        this.setCanPickUpLoot(true); //Может подбирать лут
           //AI.... Тут тупо поможет перевод названий классов.
        this.tasks.addTask(1, new EntityAISwimming(this)); //Плавает
        this.tasks.addTask(5, new EntityAIWander(this, 0.8D));//Хрен от вас отстанет
        this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); //Смотрит на вас
        this.tasks.addTask(6, new EntityAILookIdle(this)); //Просто смотрит
        this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); //Подходит
    }

    @Override
    protected void applyEntityAttributes()
    {
        super.applyEntityAttributes();
        this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(10.0D); //Макс хп у моба.
        this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.20000000298023224D);//Скорость передвижения
    }

    @Override
    protected String getLivingSound()
    {
        return "yourmod:MobLiving";//Это обычные звуки, их в yourmod/sound/MobLiving.
    }

    @Override
    protected String getHurtSound()
    {
        return "yourmod:HurtLiving";//Это звуки урона, их туда же.
    }

    @Override
    protected String getDeathSound()
    {
        return "yourmod:DeathLiving";//Типо звуки смерти.
    }

    @Override
    protected float getSoundVolume() //Громкость звуков
    {
        return 0.4F;
    }
}
Это модель 
Код:
package gta.SanAndreas.ModelPlayer;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;

public class ModelHobo extends ModelBase
{
    private static ResourceLocation tex = new ResourceLocation("gtasa", "obj/playermodel/bomj.png");
    private IModelCustom model = AdvancedModelLoader.loadModel("/assets/gtasa/obj/playermodel/bomj.obj");
    
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
      GL11.glPushMatrix();
        GL11.glEnable(3042);
        GL11.glBlendFunc(770, 771);
        GL11.glTranslatef(0F, 0.5F, 0F);
        GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
        GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
        GL11.glScaled(1.0D, 1.0D, 1.0D);
        Minecraft.getMinecraft().renderEngine.bindTexture(tex);
        model.renderAll();
        GL11.glDisable(3042);
        GL11.glPopMatrix();
  }
}
Это рендер
Код:
package gta.SanAndreas.ModelPlayer;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelZombie;
import net.minecraft.client.model.ModelZombieVillager;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.monster.EntityPigZombie;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.util.ResourceLocation;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class RenderHobo extends RenderLiving
{

    private static ResourceLocation tex = new ResourceLocation("gtasa", "obj/ak_47/jirniy1.png");
    public RenderHobo(ModelBase par1ModelBase, float par2)
    {
        super(par1ModelBase, par2);
    }
    @Override
    protected ResourceLocation getEntityTexture(Entity entity) {
        return tex;
    }
}
 
minecraftsrv написал(а):
Лесом сходи, умник. Форум форумом. Слишком много на себя берешь.
Не наглей.
Правило введено для того, чтобы на форуме было максимальное количество решенных проблем. Хотят побеседовать в скайпе - это пожалуйста, посредством лс делятся контактами и в путь. А сюда пусть решение выложат, раз уж вопрос задан.
За тобой оскорбление (как минимум грубое обращение), поэтому пока пред.
 
Назад
Сверху