Тема: И-180
Показать сообщение отдельно
Старый 09.06.2018, 19:27   #74
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,311
Вопрос

Цитата:
Сообщение от deSAD Посмотреть сообщение
Именно его название и выделено в "дереве" слева


© Google
Да, Спасибо!
Я уже разглядел меш и убедился.
Там в меше нет м-гун-дамп для пулемётов - это непорядок.
Я дописал в хиере коллизии:
Код:
[Barrel_D0]
Mesh Barrel_D0
Parent CF_D0
Attaching 1 0 0 0 1 0 0 0 1 0 0 0
CollisionObject .xxmgun01
CollisionObject .xxmgun02
CollisionObject .xxmgun03
CollisionObject .xxmgun04
Код в клас такой приделал:
Код:
if(s.startsWith("xxmgun01"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 01 Disabled..");
                    FM.AS.setJamBullets(0, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun02"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 02 Disabled..");
                    FM.AS.setJamBullets(0, 1);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun03"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 01 Disabled..");
                    FM.AS.setJamBullets(0, 0);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                return;
            }
            if(s.startsWith("xxmgun04"))
            {
                if(getEnergyPastArmor(0.75F, shot) > 0.0F)
                {
                    debuggunnery("Armament: Machine Gun 02 Disabled..");
                    FM.AS.setJamBullets(0, 1);
                    getEnergyPastArmor(World.Rnd().nextFloat(0.5F, 23.325F), shot);
                }
                }
                return;
            } else
            {
                return;
            }
        }
По идее должно работать.
Для шасси дописал единички - ф1 - так положено в поздних патчах.
Код:
public static void moveGear(HierMesh hiermesh, float f, float f1, float f2)
    {
        hiermesh.chunkSetAngles("GearC2_D0", 0.0F, 0.0F, -80F * f);
        hiermesh.chunkSetAngles("GearL0_D0", 0.0F, -88F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR0_D0", 0.0F, 88F * f1, 0.0F);
        hiermesh.chunkSetAngles("GearL2_D0", 33F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR2_D0", -33F * f1, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -63F * f, 0.0F);
        hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 63F * f1, 0.0F);
        hiermesh.chunkSetAngles("GearL4_D0", 25F * f, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearR4_D0", -25F * f1, 0.0F, 0.0F);
        hiermesh.chunkSetAngles("GearL5_D0", 0.0F, 0.0F, -90F * f);
        hiermesh.chunkSetAngles("GearR5_D0", 0.0F, 0.0F, -90F * f1);
    }

    protected void moveGear(float f, float f1, float f2)
    {
        moveGear(hierMesh(), f, f1, f2);
    }
Но проблеммы с Ишаком остались - он зависает на малой высоте, да и вообще - фпс падает, потому как есть неустранимые ошибки в чём то.
В миссии лог растёт за 15 минут до 42 мб. Херня, короче.
Вот основное ругательство лога:
Код:
java.lang.NullPointerException
	at com.maddox.il2.fm.Gear.ground(Gear.java:356)
	at com.maddox.il2.fm.Gear.ground(Gear.java:235)
	at com.maddox.il2.fm.RealFlightModel.update(RealFlightModel.java:1232)
	at com.maddox.il2.fm.FlightModelMain.tick(FlightModelMain.java:805)
	at com.maddox.il2.engine.Interpolators.tick(Interpolators.java:222)
	at com.maddox.il2.engine.Actor.interpolateTick(Actor.java:434)
	at com.maddox.il2.engine.InterpolateAdapter.msgTimeOut(InterpolateAdapter.java:174)
	at com.maddox.rts.MsgTimeOut.invokeListener(MsgTimeOut.java:73)
	at com.maddox.rts.Message._send(Message.java:1217)
	at com.maddox.rts.Message.sendToObject(Message.java:1191)
	at com.maddox.rts.Message.sendTo(Message.java:1134)
	at com.maddox.rts.Message.trySend(Message.java:1115)
	at com.maddox.rts.Time.loopMessages(Time.java:252)
	at com.maddox.rts.RTSConf.loopMsgs(RTSConf.java:101)
	at com.maddox.il2.game.MainWin3D.loopApp(MainWin3D.java:131)
	at com.maddox.il2.game.Main.exec(Main.java:439)
	at com.maddox.il2.game.GameWin3D.main(GameWin3D.java:235)
Interpolators destroying in invoked method 'tick' 
com.maddox.il2.engine.ActorException: Interpolators destroying in invoked method 'tick' 
	at com.maddox.il2.engine.Interpolators.destroy(Interpolators.java:263)
	at com.maddox.il2.engine.Actor.destroy(Actor.java:777)
	at com.maddox.il2.engine.ActorMesh.destroy(ActorMesh.java:49)
	at com.maddox.il2.engine.ActorHMesh.destroy(ActorHMesh.java:66)
	at com.maddox.il2.objects.sounds.SndAircraft.destroy(SndAircraft.java:398)
	at com.maddox.il2.objects.air.NetAircraft.destroy(NetAircraft.java:1879)
	at com.maddox.il2.objects.air.Aircraft.destroy(Aircraft.java:2337)
	at com.maddox.il2.objects.air.AircraftLH.destroy(AircraftLH.java:84)
	at com.maddox.il2.engine.Engine.destroyListGameActors(Engine.java:152)
	at com.maddox.il2.engine.InterpolateAdapter.resetGameClear(InterpolateAdapter.java:240)
	at com.maddox.il2.engine.Engine.resetGameClear(Engine.java:192)
	at com.maddox.il2.game.Main.resetGameClear(Main.java:84)
	at com.maddox.il2.game.Main3D.resetGameClear(Main3D.java:1144)
	at com.maddox.il2.game.Main.resetGame(Main.java:96)
	at com.maddox.il2.game.Mission.clear(Mission.java:415)
	at com.maddox.il2.game.Mission.destroy(Mission.java:371)
Кто, граммотный - подскажите пожалуйста (!!!) в чём дело?!
// У меня есть подозрение на команду пилота:
Код:
if(s.startsWith("xpilot1a") || s.startsWith("xhead1"))
        {
            byte byte0 = 0;
            int i;
            if(s.endsWith("a"))
            {
                byte0 = 1;
                i = s.charAt(6) - 49;
            } else
            if(s.endsWith("b"))
            {
                byte0 = 2;
                i = s.charAt(6) - 49;
            } else
            {
                i = s.charAt(5) - 49;
            }
            hitFlesh(i, shot, byte0);
        }
    }
Может я по неумению не так вписал название меша пилота? Там их два (меша) в 3До кокпита. //
Вопрос по пилоту снят.
---------------------------------
Исправленный мод И-180НЬЮ в архиве в посте № 62 :
http://forum.aviaskins.com/showpost....7&postcount=62
Поправленный хиер-хим для планера нужно вкинуть в папку по адресу:
E:\Program Files\IL-2 Complete Edition\MODS\I_180-NEW\3do\plane\I-180
Вложения
Тип файла: rar hier.rar (1.2 Кб, 472 просмотров)

Последний раз редактировалось Vasya; 09.06.2018 в 21:36.
Vasya вне форума   Ответить с цитированием