3D оружие.(Новичок)

Уже целый месяц маюсь на счёт 3д пушек.
Очень нужен этот мод,но не могу найти как, и не могу найти кто бы мог сделать.
Кодер я начинающий могу только айтемы, да блоки пилить.Прошу либо показать как это сделать либо сделайте для меня.
 
annalifegame написал(а):
но поизучай GL11.
Угу, OpenGL 1.1 сейчас изучать САМОЕ ТО.
YpKjidJ.png
 
Dovakin написал(а):
До,конешно. Какую?
Код:
public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player) 
    {
          if(!world.isRemote) 
          {
              
               Vec3 movingobjectposition = player.getLookVec();
               EntityBullet entity = new EntityBullet(world, player, 1.0D, 1.0D, 1.0D);
               entity.isInRangeToRenderDist(10.0D);
               entity.setPosition(entity.posX + movingobjectposition.xCoord * 1.0D, entity.posY+1 + movingobjectposition.yCoord * 1.0D, entity.posZ + movingobjectposition.zCoord * 1.0D);
               entity.accelerationX = movingobjectposition.xCoord + scatterXZ() / scatter;
               entity.accelerationY = movingobjectposition.yCoord + scatterY() / scatter;
               entity.accelerationZ = movingobjectposition.zCoord + scatterXZ() / scatter;
               entity.BulletDamage = bulletDemage;
               entity.BulletSpeed = bulletSpeed;
               
               world.spawnEntityInWorld(entity);
          } 
        return item;
    }
    
    private double scatterXZ()
    {
        double returnD = 0;
        Random r = new Random();    
        int i = r.nextInt(100);
        int i2 = r.nextInt(10);
        
        if (i < 30) {returnD = 0.1;}
        else if (i >= 30 && i < 90) {returnD = 0.07;} 
        else if (i >= 90) {returnD = 0.05;} 
        else {returnD = 0;}
        
        if (i2 < 5){returnD *= -1;}
        
        return returnD;
    }
    
    private double scatterY()
    {
        double returnD = 0;
        Random r = new Random();    
        int i = r.nextInt(100);
        int i2 = r.nextInt(10);
        
        if (i < 30) {returnD = 0.1;}
        else if (i >= 30 && i < 90) {returnD = 0.07;} 
        else if (i >= 90) {returnD = 0.05;} 
        else {returnD = 0;}
        
        if (i2 < 5){returnD *= -1;}
        
        return returnD;
    }
 
Навесы,поломки,раскраска(типа ксго). А возможность заряжать разными пулями. А учёт различных факторов на выстрел? А то что пуля падает/пробивает+ещё 1000 возможных вещей? 
Для майнкрафта сойдёт. Ещё отдачу добавь
 
Dovakin написал(а):
Навесы,поломки,раскраска(типа ксго). А возможность заряжать разными пулями. А учёт различных факторов на выстрел? А то что пуля падает/пробивает+ещё 1000 возможных вещей? 
Для майнкрафта сойдёт. Ещё отдачу добавь
Ты экстрасенс. У меня будет ССТ (Состояние оружия), поломки (А точнее заедания, если сст слишком низкое), раскраски... Это я вряд-ли смогу реализовать.
Пробивание пули - легко.
А ещё у меня энергетическое оружие для IC2 будет ^_^
И я ещё не решил, выкладывать-ли это в паб.
 
Проибивание это не ломание брони. Храни в нбт,смотри во фланс. Можно взять что-то. Может ещё умножение урона добавить(в голову например). Это так,идейка. Можешь эту идейку во флансе найти
 
Dovakin написал(а):
Проибивание это не ломание брони. Храни в нбт,смотри во фланс. Можно взять что-то. Может ещё умножение урона добавить(в голову например). Это так,идейка. Можешь эту идейку во флансе найти
Я и так знаю как это сделать, кроме 3D моделей...
А пробивание, это пробивание блоков... Делается за ~10 минут, и то, с учётом задержек, так-как не знаю, проникает-ли ентити через блок.
[merge_posts_bbcode]Добавлено: 10.02.2015 22:19:37[/merge_posts_bbcode]

Dovakin написал(а):
Проибивание это не ломание брони. Храни в нбт,смотри во фланс. Можно взять что-то. Может ещё умножение урона добавить(в голову например). Это так,идейка. Можешь эту идейку во флансе найти
Слушай, а может тему сделать, где детально описать идею мода, может кто и поможет?)
 
Сделай. Это типа фоллаута,да? Или я ошибся(просто сст как раз из него). Хочешь,создавай тему,я не против
 
Dovakin написал(а):
Сделай. Это типа фоллаута,да? Или я ошибся(просто сст как раз из него). Хочешь,создавай тему,я не против
Да, несколько фишек из Fallout new vegas
Я вот думаю, просто, напишу идею, а идея это основа мода, а если потом не захочу в паблик сливать...
Ну ты понял ход мыслей)
 
Люди вы от темы отклонились! Вас попросили помочь с 3D моделью айтема.Зачем флудить?

Вообщем, в модели итема пишешь в конструктор:
Код:
MinecraftForgeClient.registerItemRenderer(this, new Test());

Затем создаёшь этот класс Test

Код:
public class Test implements IItemRenderer {

    private final TestModel model;
    private final ResourceLocation LOC = new ResourceLocation(Links.MODID, "textures/models/texture.png");
    
    
    public Test() {
        model = new TestModel();
    }
    
    @Override
    public boolean handleRenderType(ItemStack item, ItemRenderType type) {
        
        return true;
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
            ItemRendererHelper helper) {
        
        return false;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
        
        //Вот здесь пишешь рендер детали (положение, угол наклона и т.д.)
        GL11.glPushMatrix();
        
        Minecraft.getMinecraft().renderEngine.bindTexture(LOC);
        model.rend(0.0625F);
        
        
        GL11.glPopMatrix();
        
    }

}
 И свою модель в Течне:
Код:
public class TestModel extends ModelBase
{
  //fields
    ModelRenderer Shape1;
  
  public TestModel()
  {
    textureWidth = 64;
    textureHeight = 32;
    
      Shape1 = new ModelRenderer(this, 0, 0);
      Shape1.addBox(0F, 0F, 0F, 1, 9, 1);
      Shape1.setRotationPoint(0F, 15F, 0F);
      Shape1.setTextureSize(64, 32);
      Shape1.mirror = true;
      setRotation(Shape1, 0F, 0F, 0F);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5,entity);
    Shape1.render(f5);
  }
  
  public void rend(float f5){
      Shape1.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity ent)
  {
    super.setRotationAngles(f, f1, f2, f3, f4, f5,ent);
  }

}

Как в моём примере (и в учебнике кстати тоже) изменяешь метод setRotationAngles, добавив Entity, и создаёшь класс rend а в него копируешь шейпы.

Если что-то не так, думаю, форумчане меня поправят
 
Во-первых, 
Код:
MinecraftForgeClient.registerItemRenderer(this, new Test());
Пишется не в конструкторе модели. Пишется оно в клиент прокси  и пишется:
Код:
MinecraftForgeClient.registerItemRenderer(твой_итем, new Test());
 
У меня например твой вариант не прокатил, т.к. я в конструктор предмета передавал аргумент (материал). А в айтеме прописав this можно этого избежать.
 
Назад
Сверху