[1.7.10] - Как адекватно изменить модель игроку?

tox1cozZ

aka Agravaine
8,455
598
2,892
Есть свои данные IExtendedEntityProperties, нужно относительно их менять модель игроку.Как это лучше всего сделать?
P.S Зарегал свой рендер игрока(совместимость не волнует), дописал в doRender вот такое:
Код:
public void doRender(AbstractClientPlayer player, double x, double y, double z, float yaw, float pitch){
        MorasPlayer morasPlayer = MorasPlayer.forPlayer(player);
        if(morasPlayer.isRaceSelected()){
            mainModel = getRaceModel(morasPlayer.getRace(), morasPlayer.getGender(), morasPlayer.isMale());
            modelBipedMain = (ModelBiped)mainModel;
        }
        
        super.doRender(player, x, y, z, yaw, pitch);
Модель, вроде, меняется. В одиночке все нормально.
Но когда на сервере смотрю на другого игрока, то мне присвается его моделька и из-за этого не видно руку(от 1-го лица).
Вобщем, посоветуйте.
 

svk

1,185
2
Но когда на сервере смотрю на другого игрока, то мне присвается его моделька и из-за этого не видно руку(от 1-го лица).
Вобщем, посоветуйте.
Не совсем понял что ты имел ввиду. У тебя все модели игроков одинаковые, а надо, что-бы были разные или что?
[merge_posts_bbcode]Добавлено: 20.10.2015 00:39:28[/merge_posts_bbcode]

Помню была где-то огромнейшая тема, где чел менял модель игрока на рептилоида...
 

svk

1,185
2
Agravaine написал(а):
Да, у каждого должна быть разная модель, которая зависит от расы.
Ну, тогда стоит найти ту тему.
У меня взгляд лишь на скин падает, у каждого игрока ведь он разный...
 
78
3
10
Код:
AbstractClientPlayer

От него наследуется как твоя тушка, так и тушка другого игрока в твоем клиенте.
Где-то ты пишешь в статическое поле сначала себя, а потом по коду и чужую тушку.
Перетряхни все статики.
 
435
1
svk написал(а):
Помню была где-то огромнейшая тема, где чел менял модель игрока на рептилоида...
Моя тема была. [1.6.4]Проблемы с рендером
[merge_posts_bbcode]Добавлено: 20.10.2015 22:47:59[/merge_posts_bbcode]

Решил так - юзал RP Api, брал класс рендера модели.
 
317
10
Agravaine написал(а):
Скин я тоже меняю. И он отлично работает.
Если можно, сможешь, пожалуйста, поделиться кодом? 
P.S все кто думают что это мне надо для рас, КС проекта, СТАЛКЕР проекта и Т.Д - отвечу, мне код нужен для изменение скина без использования оптифайна и т.д. Я буду качать скин в временную папку и рендерить его. Но проблемма та, что у меня даже нет идей как его можно менять. Заранее спасибо.
 

CumingSoon

Местный стендапер
1,634
12
269
А ты качай в постоянную папку и записывай чексумму, а если скин изменится, то изменится и чексумма, поэтому перекачивай.
[merge_posts_bbcode]Добавлено: 22.10.2015 20:18:32[/merge_posts_bbcode]

Посмотри как в 1.7.10 это сделано
 
317
10
CoomingSoon написал(а):
А ты качай в постоянную папку и записывай чексумму, а если скин изменится, то изменится и чексумма, поэтому перекачивай.
[merge_posts_bbcode]Добавлено: 22.10.2015 20:18:32[/merge_posts_bbcode]

Посмотри как в 1.7.10 это сделано
Я сделал изменение скина. Но ест пару багов и я не знаю как их зафиксить. 
Я в эвенте RenderPlayerEvent.Pre меняю скин. Все успешно вроде как. Но есть баг: Скин руки не меняется. Он меняется как но я нажму F5 и прогружу сам скин, тогда когда я обратно вернусь в обычный режим, скин руки уже поменялся. В эвенте RenderHandEvent не нашел код что бы тоже менять скин.
 

CumingSoon

Местный стендапер
1,634
12
269
Давай код, пошаманю. Да и вообще, что мешает использовать этот великолепный туториал? http://forum.mcmodding.ru/viewtopic.php?id=2429
 
435
1
Yarik написал(а):
CoomingSoon написал(а):
А ты качай в постоянную папку и записывай чексумму, а если скин изменится, то изменится и чексумма, поэтому перекачивай.
[merge_posts_bbcode]Добавлено: 22.10.2015 20:18:32[/merge_posts_bbcode]

Посмотри как в 1.7.10 это сделано
Я сделал изменение скина. Но ест пару багов и я не знаю как их зафиксить. 
Я в эвенте RenderPlayerEvent.Pre меняю скин. Все успешно вроде как. Но есть баг: Скин руки не меняется. Он меняется как но я нажму F5 и прогружу сам скин, тогда когда я обратно вернусь в обычный режим, скин руки уже поменялся. В эвенте RenderHandEvent не нашел код что бы тоже менять скин.
Если 1.7.10, то есть хороший эвент.
 
317
10
MrCreppo написал(а):
Yarik написал(а):
CoomingSoon написал(а):
А ты качай в постоянную папку и записывай чексумму, а если скин изменится, то изменится и чексумма, поэтому перекачивай.
[merge_posts_bbcode]Добавлено: 22.10.2015 20:18:32[/merge_posts_bbcode]

Посмотри как в 1.7.10 это сделано
Я сделал изменение скина. Но ест пару багов и я не знаю как их зафиксить. 
Я в эвенте RenderPlayerEvent.Pre меняю скин. Все успешно вроде как. Но есть баг: Скин руки не меняется. Он меняется как но я нажму F5 и прогружу сам скин, тогда когда я обратно вернусь в обычный режим, скин руки уже поменялся. В эвенте RenderHandEvent не нашел код что бы тоже менять скин.
Если 1.7.10, то есть хороший эвент.
1.7.10. Руку сам пофиксил. А вот с черным фоном плаща + белым фоном плаща не смог пофиксить.
P.S Если у игрока нет плаща - он белый; Если у игрока есть плащ - он черный;
 

CumingSoon

Местный стендапер
1,634
12
269
Код дай в любом случае, интересно попробовать.
 
317
10
public HashMap renderedCape = new HashMap();
public static String capeurl = "http://сайт.ru/lk/files/cloaks/%s.png";
public static ResourceLocation getCloak(String name) {
ResourceLocation cloak = new ResourceLocation("patchcloaks/" + StringUtils.stripControlCodes(name));
TextureManager var2 = Minecraft.getMinecraft().getTextureManager();
ITextureObject var3 = var2.getTexture(cloak);
if(var3 == null) {
ThreadDownloadImageData var31 = new ThreadDownloadImageData((File)null, String.format(capeurl, new Object[]{StringUtils.stripControlCodes(name)}), (ResourceLocation)null, new ImageBufferDownload());
var2.loadTexture(cloak, (ITextureObject)var31);
}

return cloak;
}



@SubscribeEvent
public void onRenderPlayer(RenderPlayerEvent.Pre event) {
EntityPlayer entity = event.entityPlayer;
String name = entity.getCommandSenderName();


// if(((AbstractClientPlayer)entity).func_152122_n()) {
if(!this.renderedCape.containsKey(name)) {
ResourceLocation cape = getCloak(name);
((AbstractClientPlayer)entity).func_152121_a(Type.CAPE, cape);
this.renderedCape.put(name, cape);
} else {
((AbstractClientPlayer)entity).func_152121_a(Type.CAPE, (ResourceLocation)this.renderedCape.get(name));
}
// }
}
 

CumingSoon

Местный стендапер
1,634
12
269
У меня вообще плаща нет
Код:
public HashMap renderedCape = new HashMap();
    public static String capeurl = "";

    public static ResourceLocation getCloak(String name) {
        ResourceLocation cloak = new ResourceLocation("patchcloaks/" + StringUtils.stripControlCodes(name));
        TextureManager var2 = Minecraft.getMinecraft().getTextureManager();
        ITextureObject var3 = var2.getTexture(cloak);
        if (var3 == null) {
            ThreadDownloadImageData var31 = new ThreadDownloadImageData((File) null, String.format(capeurl, new Object[]{StringUtils.stripControlCodes(name)}), (ResourceLocation) null, new ImageBufferDownload());
            var2.loadTexture(cloak, (ITextureObject) var31);
        }
        return cloak;
    }

    @SubscribeEvent
    public void onRenderPlayer(RenderPlayerEvent.Pre event) {
        EntityPlayer entity = event.entityPlayer;
        String name = entity.getCommandSenderName();

        if (!this.renderedCape.containsKey(name)) {
            ResourceLocation cape = getCloak(name);
            ((AbstractClientPlayer) entity).func_152121_a(Type.SKIN, cape);
            this.renderedCape.put(name, cape);
        } else {
            ((AbstractClientPlayer) entity).func_152121_a(Type.SKIN, (ResourceLocation) this.renderedCape.get(name));
        }
    }
Сильно твой не менял. Так что мешает сделать php скрипты?
 
317
10
Много причин есть. И кстати, поможешь с forge 1.5.2?
У меня выдает ошибку на линуксе, типа не может разархивировать scala-library.jar
 
Сверху