Цитата:
Сообщение от 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ФН с "оздобленням" всех баков, радиатора и т.п.