Обновил сборку ЛаГГов.
Починил компас, надеюсь, другое снова не сломал)
Добавил некоторые элементы из мода Ла-5 от gemgi.
Бонус: освежил кабину ЛаГГ-3РД элементами от поршневых ЛаГГов.
https://drive.google.com/file/d/1tw4...ew?usp=sharing
Про ДМ баков вот что я понял.
Сначала отрабатывается код xxtank, т.к. пришло попадание по колижену xxtank.
(пытаюсь читать приведённый выше код, прошу поправить меня знатоков джавы)
если энергия попадания 0.5 (больше нуля?) с вероятностью меньше 0.45
если бак k имеет состояние 0 (целый)
в отладочный лог "бак k пробит"
присвоить баку k состояние 1 (утечка)
с вероятностью меньше 0.08 или тип снаряда равен 3 (зажигательный?) с вероятностью меньше 0.5
присвоить баку k состояние 4
в отладочный лог топливный бак k повреждён
Тут бак получает урон от попадания, а затем метод RareAction добавляет случайные события.
Код:
public void rareAction(float dt, boolean bMaster)
{
super.rareAction(dt, bMaster);
if(bMaster)
{
for(int i = 0; i < 4; i++)
if(((FlightModelMain) (super.FM)).AS.astateTankStates[i] > 0 && ((FlightModelMain) (super.FM)).AS.astateTankStates[i] < 5 && World.Rnd().nextFloat() < 0.1F)
((FlightModelMain) (super.FM)).AS.repairTank(i);
}
}
Если состояние бака больше 0 и меньше 5 с вероятностью меньше 0.1
починить бак i (сработал протектор)
Про этот код дошло до меня, это не имитация нейтрального газа, попутал немного с другим модом)
Код:
if(paramBoolean)
{
if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.07F)
nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[0] + "0", 0, this);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 1);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 1);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.07F)
nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[1] + "0", 0, this);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.07F)
nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[2] + "0", 0, this);
if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
}
Если состояние бака 0 более 4, с вероятностью 0.07 присвоить какой-то там эффект (типа разнообразие)
Если состояние бака 0 более 4, с вероятностью 0.14 присвоить баку 1 состояние 1 (типа распространение огня)
...
...
...
Подобный код, но для затухания видел у WxTech в моде для Б-17.
https://www.sas1946.com/main/index.p...c,66857.0.html
Надо ещё подумать про всё это.
По И-180.
У него коллизии очень посредственные и кривые, есть дыры и несовпадения с очертаниями фюзеляжа.
Есть бак, стойки шасси, блок цилиндров, картер, маслорадиатор, "оборудование" (вероятно, магнето).