Цитата:
Сообщение от 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