Its a bug in dedi. As Workaround i use in my penalty script:
Code:
private void DoDamageToAirplane(AiAircraft aircraft)
{
if (!aircraft.IsAirborne())
{
// plane on ground Undercarriage cut off
aircraft.cutLimb(part.LimbNames.WingL0);
aircraft.cutLimb(part.LimbNames.WingL1);
aircraft.cutLimb(part.LimbNames.WingL2);
aircraft.cutLimb(part.LimbNames.WingL3);
aircraft.cutLimb(part.LimbNames.WingL4);
aircraft.cutLimb(part.LimbNames.WingL5);
aircraft.cutLimb(part.LimbNames.WingL6);
aircraft.cutLimb(part.LimbNames.WingL7);
aircraft.cutLimb(part.LimbNames.WingR0);
aircraft.cutLimb(part.LimbNames.WingR1);
aircraft.cutLimb(part.LimbNames.WingR2);
aircraft.cutLimb(part.LimbNames.WingR3);
aircraft.cutLimb(part.LimbNames.WingR4);
aircraft.cutLimb(part.LimbNames.WingR5);
aircraft.cutLimb(part.LimbNames.WingR6);
aircraft.cutLimb(part.LimbNames.WingR7);
}
else
{
// plane in Air Tail cut off
aircraft.cutLimb(part.LimbNames.Tail0);
aircraft.cutLimb(part.LimbNames.Tail1);
aircraft.cutLimb(part.LimbNames.Tail2);
aircraft.cutLimb(part.LimbNames.Tail3);
aircraft.cutLimb(part.LimbNames.Tail4);
aircraft.cutLimb(part.LimbNames.Tail5);
aircraft.cutLimb(part.LimbNames.Tail6);
aircraft.cutLimb(part.LimbNames.Tail7);
}
}
Its not the best solution but it works on dedi, sometimes you get a index out of bound error in console, it depends on aircrafttype you use, not figuered out at the moment

, normaly you must test every aircraft which parts could be damaged, but its not a critical error.
At the moment i working on a script, which remove and add planes (on the fly) to the birthplaces, so its no longer nessesary to damage 'overused' planes. But in the moment its in a early stage.