Цитата:
Сообщение от tvister
..............
Всплыли очередные вопросы и непонятности. Почему то огнем зениток не повреждаются крылья, причем прицельным огнем истребителя их таки повредить можно. Не понятно куда должны быть направлены векторы направления огня из бензобаков и дыма из поврежденного двигателя. Странно, но бензобак может загореться при внешне не поврежденном крыле...  Пока повреждения выглядят вот так:
|
Скажу, что знаю.
Зенитки имеют поувер тип 1 - это осколочный снаряд.
Возможно крылья имеют "излишнюю твёрдость".
Таки есть

- я глянул в класс.
Попытаемся исправить.
Можно повреждения рулевых поверхностей передрать из Ки-43.
Код:
if(s.startsWith("xxlock"))
{
debuggunnery("Lock Construction: Hit..");
if(s.startsWith("xxlockr") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
{
debuggunnery("Lock Construction: Rudder1 Lock Shot Off..");
nextDMGLevels(3, 2, "Rudder1_D" + chunkDamageVisible("Rudder1"), shot.initiator);
}
if(s.startsWith("xxlockvl") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
{
debuggunnery("Lock Construction: VatorL Lock Shot Off..");
nextDMGLevels(3, 2, "VatorL_D" + chunkDamageVisible("VatorL"), shot.initiator);
}
if(s.startsWith("xxlockvr") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
{
debuggunnery("Lock Construction: VatorR Lock Shot Off..");
nextDMGLevels(3, 2, "VatorR_D" + chunkDamageVisible("VatorR"), shot.initiator);
}
if(s.startsWith("xxlockal") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
{
debuggunnery("Lock Construction: AroneL Lock Shot Off..");
nextDMGLevels(3, 2, "AroneL_D" + chunkDamageVisible("AroneL"), shot.initiator);
}
if(s.startsWith("xxlockar") && getEnergyPastArmor(5.5F * World.Rnd().nextFloat(1.0F, 1.5F), shot) > 0.0F)
{
debuggunnery("Lock Construction: AroneR Lock Shot Off..");
nextDMGLevels(3, 2, "AroneR_D" + chunkDamageVisible("AroneR"), shot.initiator);
}
return;
}
Уменьшив шот до 2.5
Или же в "родных" в классе уменьшить шот - с 3.5 до 1.75(2.1).
Код:
if ((string.endsWith("ri1") || string.endsWith("ri2")
|| string.endsWith("ri3") || string.endsWith("ri4"))
&& chunkDamageVisible("WingRIn") > 2
&& getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
1.2F),
Есть ли в планере эти точки: ri1, ri3, ri1?
Если нет - то повреждения лучше оставить стандартные - типа как в Хаябусе.
Это по конструкции.
-------------------------------
По баку: в принципе уменьшение шот для крыльев должен помочь.
Но видел на разных тга делаю кучу маленьких точек от пуль.
Внизу картинки от Кулховена биплана.
Можно перерысовать повреждения на скине дамаж, насверлив
мелких дылок в районе бака.
Как движок Ила включает сами повреждения в 3до - тут я не спец.
Но включить горения баков с протектором и без можно кодом.
Вот код из дефолтного класса Райдена - с ним бак ещё и взрываеться.
Код:
if(s.startsWith("xxoil"))
{
if(getEnergyPastArmor(0.25F, shot) > 0.0F && World.Rnd().nextFloat() < 0.125F)
{
FM.AS.hitOil(shot.initiator, 0);
getEnergyPastArmor(0.22F, shot);
debuggunnery("Engine Module: Oil Tank Pierced..");
}
return;
}
if(s.startsWith("xxtank"))
{
int j = s.charAt(6) - 49;
if(getEnergyPastArmor(0.8F, shot) > 0.0F && World.Rnd().nextFloat() < 0.45F)
{
if(FM.AS.astateTankStates[j] == 0)
{
debuggunnery("Fuel Tank (" + j + "): Pierced..");
FM.AS.hitTank(shot.initiator, j, 2);
FM.AS.doSetTankState(shot.initiator, j, 2);
}
if(World.Rnd().nextFloat() < 0.01F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.4F)
{
FM.AS.hitTank(shot.initiator, j, 4);
debuggunnery("Fuel Tank (" + j + "): Hit..");
}
}
return;
}
Только нужно заменить в коде букву j на i.
Утечка масла стандартная для джапанских самолётов.
Можно переставить/забронировать цыфры.
Код:
if(getEnergyPastArmor(0.5F, shot) > 0.0F && World.Rnd().nextFloat() < 0.25F)
Можно/нужно пробовать - только тэст покажет как будет более правильно.