Цитата:
Сообщение от Dimas1999
.............................
Так же выкладываю очередную альфу, здесь всё, что готово на данный час.
https://drive.google.com/file/d/1f_C...usp=share_link
...............
Основные изменения:
По возможности заменены меши без коллизий на меши с коллизиями, где нет возможности, коллизии вписаны вручную. Теперь у самолётов должны быть разнообразные поломки.
........................
Так же пока смотрел модели и код вот что вспомнил. Вроде у линейки Яков нет визуального дымления маслорадиатора при его повреждении. В 3д есть его коллизии, к коде тоже что-то есть. Есть идея на потом попробовать реализовать это по образцу других самолётов.
|
Спасибо Большое за труд!
У меня в основном классе Яков есть код для радиатора и более "правильный" код для баков.
Код:
if(s.startsWith("xxeng1oil"))
{
((FlightModelMain) (super.FM)).AS.hitOil(shot.initiator, 0);
Aircraft.debugprintln(this, "*** Engine Module: Oil Radiator Hit..");
} else
if(s.endsWith("feed"))
{
if(getEnergyPastArmor(3.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F && ((FlightModelMain) (super.FM)).EI.engines[0].getPowerOutput() > 0.7F)
{
((FlightModelMain) (super.FM)).AS.hitEngine(shot.initiator, 0, 100);
Aircraft.debugprintln(this, "*** Engine Module: Pressurized Fuel Line Pierced, Fuel Flamed..");
}
} else
if(s.startsWith("xxoiltank"))
{
if(getEnergyPastArmor(0.25F, shot) > 0.0F && World.Rnd().nextFloat() < 0.125F)
{
((FlightModelMain) (super.FM)).AS.hitOil(shot.initiator, 0);
getEnergyPastArmor(0.22F, shot);
debuggunnery("Engine Module: Oil Tank Pierced..");
}
return;
}
if(s.startsWith("xxtank"))
{
int k = s.charAt(6) - 49;
if(getEnergyPastArmor(2.2F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
{
if(((FlightModelMain) (super.FM)).AS.astateTankStates[k] == 0)
{
debuggunnery("Fuel Tank (" + k + "): Pierced..");
((FlightModelMain) (super.FM)).AS.hitTank(shot.initiator, k, 1);
((FlightModelMain) (super.FM)).AS.doSetTankState(shot.initiator, k, 1);
}
if(World.Rnd().nextFloat() < 0.01F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
{
((FlightModelMain) (super.FM)).AS.hitTank(shot.initiator, k, 4);
debuggunnery("Fuel Tank (" + k + "): Hit..");
}
}
return;
}