Цитата:
Сообщение от Shakh
P.S. В виде мелкого самовосхваления - недавно сел на полосу без руля высоты (выбили при отходе), опять же за счёт закрылков и газа,разворачивался рулём направления и элеронами,сел на выпущенные шасси,погнул винт и типа "повредил двигатель",но не скапотировал. 
|
Мы этим в он лайне занимаемся повседневно практически в каждом вылете на иле чапаем без того или иного органа управления, ато и без пары.)))
Присоеденяйтесь))
Цитата:
Сообщение от yt2
По ил-2 демадж:
Обработчик повреждений общий для всех Илов.
За повреждение всех тяг сразу отвечает код в секции
коллиженов "xxcontrols"
case 2: // '\002'
if(getEnergyPastArmor(1.1F, shot) > 0.0F)
{
debuggunnery("Controls: Control Column Hit, Controls Destroyed..");
FM.AS.setControlsDamage(shot.initiator, 2);
FM.AS.setControlsDamage(shot.initiator, 1);
FM.AS.setControlsDamage(shot.initiator, 0);
}
break;
Циферка 1.1 - это порог энергии (кинетической) снаряда попавшего в коллижен "xxcontrols...2" при превышении которого происходит полное повреждение управления. Никаких рандомов - попал снаряд в эту точку и при этом обладает необходимой мощностью - прощай управление...
Вообще код демаджей "просто так" править не нужно, только если есть
ошибки. Т.к. это влияет на игровой баланс.
|
Я смотрю вы особо ничего не меняли кроме знака <=
case 2: // '\002'
if(getEnergyPastArmor(1.1F, shot)
<= 0.0F)
break;
debuggunnery("Controls: Control Column Hit, Controls Destroyed..");
if(World.Rnd().nextFloat() < 0.5F)
((FlightModelMain) (super.FM)).AS.setControlsDamage(shot.initiator, 2);
if(World.Rnd().nextFloat() < 0.5F)
((FlightModelMain) (super.FM)).AS.setControlsDamage(shot.initiator, 1);
if(World.Rnd().nextFloat() < 0.5F)
((FlightModelMain) (super.FM)).AS.setControlsDamage(shot.initiator, 0);
break;