Прикрпленая модель к игрокам (рюкзак)

Версия Minecraft
1.7.10
98
1
Хочу сделать, что бы при входе на сервер у всех игроков была прикреплена модель рюкзака к спине (делаю dayz). Эту модель нельзя было снять, и другие игроки ее тоже видят. Если вам не тяжело, можете кинуть готовый код?
 
timaxa007 написал(а):

А у меня работает.

Папку model в assets нужно создавать?
Код:
   private static final ResourceLocation texture = new ResourceLocation("dayz:textures/gui/vidgets.png");
    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("dayz:textures/gui/backpack.obj"));
 
Kbac написал(а):
Код:
    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("dayz:textures/gui/backpack.obj"));
В assets нужно создать или найти папку "dayz",
затем создать или найти папку "textures",
затем создать или найти папку "gui",
затем перекинуть файл "backpack.obj",


Kbac написал(а):
Можешь тогда кинуть src.
Нет (ибо там очень много когда).
 
timaxa007 написал(а):
Kbac написал(а):
Код:
    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("dayz:textures/gui/backpack.obj"));
В assets нужно создать или найти папку "dayz",
затем создать или найти папку "textures",
затем создать или найти папку "gui",
затем перекинуть файл "backpack.obj",


Kbac написал(а):
Можешь тогда кинуть src.
Нет (ибо там очень много когда).


Попытался сделать заново, теперь при регистрации такая ошибка:
 

Вложения

  • ошибка.png
    ошибка.png
    4.3 KB · Просмотры: 10
Подробнее... http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%D0%BC%D0%B8
Если короче, то можно попробовать так:
Код:
@SideOnly(Side.CLIENT)
@Mod.EventHandler
public void preInit(cpw.mods.fml.common.event.FMLPreInitializationEvent event) {
	MinecraftForge.EVENT_BUS.register(new EventsForgeClient());
}
В главном классе.
 
timaxa007 написал(а):
Подробнее... http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%D0%BC%D0%B8
Если короче, то можно попробовать так:
Код:
@SideOnly(Side.CLIENT)
@Mod.EventHandler
public void preInit(cpw.mods.fml.common.event.FMLPreInitializationEvent event) {
 MinecraftForge.EVENT_BUS.register(new EventsForgeClient());
}
В главном классе.
Мдя, я думал попроще будет :D. Теперь краша нет, но и модели в игре нет.
Вот 2 моих класса.

Код:
import org.lwjgl.opengl.GL11;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;

public class EventsForgeClient {

Minecraft mc = Minecraft.getMinecraft();
private static final ResourceLocation texture = new ResourceLocation("dayz:textures/model/gui/backpack.png");
public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("dayz:textures/model/gui/backpack.obj"));

@SubscribeEvent
public void renderItem(RenderPlayerEvent.Specials.Pre event) {
EntityPlayer player = event.entityPlayer;

double p_x = player.lastTickPosX + (player.posX - player.lastTickPosX);
double p_y = player.lastTickPosY + (player.posY - player.lastTickPosY);
double p_z = player.lastTickPosZ + (player.posZ - player.lastTickPosZ);

double dx = player.posX - p_x;
double dy = player.posY - p_y;
double dz = player.posZ - p_z;

GL11.glPushMatrix();
GL11.glTranslated(dx, dy, dz);

GL11.glTranslatef(0F, 0.125F, 0F);
GL11.glRotatef(180F, 1F, 0F, 0F);

GL11.glTranslatef(
event.renderer.modelBipedMain.bipedBody.rotationPointX * event.partialRenderTick,
event.renderer.modelBipedMain.bipedBody.rotationPointY * event.partialRenderTick,
event.renderer.modelBipedMain.bipedBody.rotationPointZ * event.partialRenderTick);
GL11.glRotatef(event.renderer.modelBipedMain.bipedBody.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F);
GL11.glRotatef(event.renderer.modelBipedMain.bipedBody.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F);
GL11.glRotatef(event.renderer.modelBipedMain.bipedBody.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F);
GL11.glTranslatef(0F, -1.375F, 0F);

mc.renderEngine.bindTexture(texture);
model.renderAll();

GL11.glPopMatrix();
}
}

/второй

import com.mojang.realmsclient.client.Request.Post;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;

@Mod(modid = dayz.modid, version = dayz.version)
public class dayz {
public static final String modid = "Dayz";
public static final String version = "1.0.0";
public class EventsForgeClient {
}

@SideOnly(Side.CLIENT)
@Mod.EventHandler
public void preInit(cpw.mods.fml.common.event.FMLPreInitializationEvent event) {
   MinecraftForge.EVENT_BUS.register(new EventsForgeClient());
}
}
 
Kbac написал(а):
Код:
@Mod(modid = dayz.modid, version = dayz.version)
public class dayz {
public static final String modid = "Dayz";
public static final String version = "1.0.0";
public class EventsForgeClient {
}

@SideOnly(Side.CLIENT)
@Mod.EventHandler
public void preInit(cpw.mods.fml.common.event.FMLPreInitializationEvent event) {
   MinecraftForge.EVENT_BUS.register(new EventsForgeClient());
}
}
Убери из этого класса вот этот код:
Код:
public class EventsForgeClient {
}


Молодец, что решил.
 
timaxa007 написал(а):
Kbac написал(а):
Код:
@Mod(modid = dayz.modid, version = dayz.version)
public class dayz {
public static final String modid = "Dayz";
public static final String version = "1.0.0";
public class EventsForgeClient {
}

@SideOnly(Side.CLIENT)
@Mod.EventHandler
public void preInit(cpw.mods.fml.common.event.FMLPreInitializationEvent event) {
   MinecraftForge.EVENT_BUS.register(new EventsForgeClient());
}
}
Убери из этого класса вот этот код:
Код:
public class EventsForgeClient {
}

Спасибо еще раз. Сам нашел 
[font=Monaco, Consolas, Courier, monospace]public class EventsForgeClient. Я новичок, поэтому во многом туплю.[/font]


timaxa007 написал(а):
Подробнее... http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%D0%BC%D0%B8
Если короче, то можно попробовать так:
А модель будет рендериться ко всем игрокам? Например если на сервер зайти.
 
Назад
Сверху