Тема: Mitsubishi Ki-30
Показать сообщение отдельно
Старый 15.02.2020, 22:02   #4
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,311
Радость

Цитата:
Сообщение от 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)
Можно/нужно пробовать - только тэст покажет как будет более правильно.
Миниатюры
Нажмите на изображение для увеличения
Название: Damage1o.jpg
Просмотров: 317
Размер:	38.0 Кб
ID:	64265   Нажмите на изображение для увеличения
Название: Damage2o.jpg
Просмотров: 331
Размер:	68.3 Кб
ID:	64266  

Последний раз редактировалось Vasya; 15.02.2020 в 22:24. Причина: дописка текста
Vasya вне форума   Ответить с цитированием