Показать сообщение отдельно
Старый 02.05.2018, 05:23   #24
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Цитата:
Сообщение от tvister Посмотреть сообщение
Планы то есть, а вот удастся ли справиться хоть с одним проектом не знаю. Вот "Ида" на этапе текстурирования, проблемы есть но они решаемы. Следующий вопрос-импорт, смею предположить, что и с импортом можно справиться. А потом самое интересное, работа с явой, создание слота. Вот где задача, В яве то я совсем не разбираюсь...
А автожир Камова меня всегда интересовал.
Можно сделать так:
взять 3До похожего крафта - допустим D3A - или подобного на САС найти - и обозвать при конвертации в Ил все меши своего крафта так же. Потом в классе в разделе Хит-Бон просто немного поправить цыфирь повреждений под "крепость" своего самолётика. Если уж возникнут какие сложности - то "дзвоны у дзвоны" - я попробую поправить циферки. Там в обще сложного мало. Единственная сложность - это что бы названия мешей фюзеля-крыльев и хвоста ложились на код. Для правильного горения при пробитии нужно что бы были в наличии масло-бак - xxoiltank, масло-радиатор - xxeng1oil, баки с топливом - xxtank1, xxtank2, xxtank3.
Крепость/бронирование и длительность утечки легко вставить - этих кодов дофигища - только подставляй цыфры для длительности эффектов.
То же самое и с мотором:
вот простые повреждения для МС-200
Код:
if(s.startsWith("xxeng1"))
            {
                if(s.endsWith("prop") && getEnergyPastArmor(0.28F, shot) > 0.0F && World.Rnd().nextFloat() < 0.5F)
                    FM.EI.engines[0].setKillPropAngleDevice(shot.initiator);
                if(s.endsWith("case"))
                {
                    if(getEnergyPastArmor(0.28F, shot) > 0.0F)
                    {
                        if(World.Rnd().nextFloat() < shot.power / 140000F)
                        {
                            FM.AS.setEngineStuck(shot.initiator, 0);
                            debugprintln(this, "*** Engine Crank Case Hit - Engine Stucks..");
                        }
                        if(World.Rnd().nextFloat() < shot.power / 85000F)
                        {
                            FM.AS.hitEngine(shot.initiator, 0, 2);
                            debugprintln(this, "*** Engine Crank Case Hit - Engine Damaged..");
                        }
                    } else
                    if(World.Rnd().nextFloat() < 0.01F)
                    {
                        FM.EI.engines[0].setCyliderKnockOut(shot.initiator, 1);
                    } else
                    {
                        FM.EI.engines[0].setReadyness(shot.initiator, FM.EI.engines[0].getReadyness() - 0.002F);
                        debugprintln(this, "*** Engine Crank Case Hit - Readyness Reduced to " + FM.EI.engines[0].getReadyness() + "..");
                    }
                    getEnergyPastArmor(12F, shot);
                }
                if(s.endsWith("cyl1"))
                {
                    if(getEnergyPastArmor(6.85F, shot) > 0.0F && World.Rnd().nextFloat() < FM.EI.engines[0].getCylindersRatio() * 0.75F)
                    {
                        FM.EI.engines[0].setCyliderKnockOut(shot.initiator, World.Rnd().nextInt(1, (int)(shot.power / 22000F)));
                        debugprintln(this, "*** Engine Cylinders Hit, " + FM.EI.engines[0].getCylindersOperable() + "/" + FM.EI.engines[0].getCylinders() + " Left..");
                        if(World.Rnd().nextFloat() < shot.power / 48000F)
                        {
                            FM.AS.hitEngine(shot.initiator, 0, 2);
                            debugprintln(this, "*** Engine Cylinders Hit - Engine Fires..");
                        }
                    }
                    getEnergyPastArmor(28F, shot);
                }
                if(s.endsWith("supc"))
                {
                    if(getEnergyPastArmor(0.05F, shot) > 0.0F)
                        FM.EI.engines[0].setKillCompressor(shot.initiator);
                    getEnergyPastArmor(3.0F, shot);
                }
тут повреждения пропеллера, топливной системы, пробития цилиндра и повреждения компрессора, который за мотором, поэтому по идее повреждаеться последним - хотя, конечно, куда попадут.
Сложность есть небольшая с уборкой шасси, если таковы двигаются, но и этих кодов тьма тьмуща. Они писаны почти все по одному лекалу, там только цыфры поворота мешей вписуються., но эти цыфри берут скорее всего из 3ДМакса. Тут я точно не знаю.
Я как то смотрел класс от Лакоты с запасного - так та ни одного лишнего символа - класс идеальный. Чувствуеться. что человек "рубит фишку" в джаве.
Такие мысли.
----------------------------------------
П.С.
В Ил очень нужна вменяемая 3До Ла-5ФН с "оздобленням" всех баков, радиатора и т.п.

Последний раз редактировалось Vasya; 02.05.2018 в 05:26.
Vasya вне форума   Ответить с цитированием