Показать сообщение отдельно
Старый 15.07.2012, 02:17   #33
CharliDog
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от 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;

Последний раз редактировалось CharliDog; 15.07.2012 в 02:40.
  Ответить с цитированием