Цитата Сообщение от tim32 Посмотреть сообщение
naryv, Можно ли дописать в скрипт штраф за превышение скорости во время старта, при прохождении стартовых ворот ? К примеру, от 300 до 310 км\ч штраф 2 сек, а выше 310 дисквалификация. В принципе, в правилах этот штраф предусмотрен.
да, пожалуйста :
в описании переменных добавить
Код:
public class Mission : AMission
{
    double penaltyH = 2.0;          // пенальти(с) за пролёт выше границы
    double penaltyRoll = 2.0;       // пенальти(с) за пролёт с неправильным креном
    double penaltySmoke = 2.0; // пенальти(с) за не включенный дым
    double penaltyCollision = 6.0;          // пенальти(с) за сбитый пилон
    double penaltyAerobatics = 6.0; // пенальти(с) за не выполнение пилотажных эл-тов    
    double hPenaltyLimit = 20.0;    // лимит высоты - выше - пенальти
    double rollPenaltyLimit = 10.0; // лимит крена  - выше - пенальти
    double hMin = 8.0;              // нижняя граница - ниже - дисквалификация
    double hMax = 23.0;             // верхняя граница - выше ворота не засчитываются
    double startSpeedLimit = 300.0; // предельная скорость в стартовых воротах (км/ч) , выше - пенальти
    double startSpeedLimitDisq = 310.0; // предельная скорость в стартовых воротах (км/ч) , выше - дисквалификация
    double penaltySGSpeedLimit = 2.0;          // пенальти(с) за превышение скорости в стартовых воротах
в проверке ворот (public void checkGatePassed() // проверка прохождения ворот) заменяем проверку прохождения стартовых ворот -
Код:
if (gatesList[nextGate].type == GateType.startGate)         // если это стартовые или финишные ворота - заполняем соответствующие переменные
                {
                    double speed = playerPlane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1) * 3.6;
                    if (speed > startSpeedLimitDisq) // если превысили скорость startSpeedLimitDisq - дисквалификация
                    {
                        GamePlay.gpHUDLogCenter(null, "Disqualification ! Start gate speed:{0} is too hi!", new object[] { (playerPlane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1) * 3.6).ToString("f2") }, 30);
                        InitRace();
                        return;
                    }
                    if (speed > startSpeedLimit) // если превысили скорость - startSpeedLimit пенальти
                    {
                        GamePlay.gpLogServer(null, "Start Gate Speed Limitation penalty :{0}s, speed:{1}", new object[] { penaltySGSpeedLimit.ToString("f1"), speed.ToString("f1") });
                        penaltyTotal += penaltySGSpeedLimit;
                        penalty += penaltySGSpeedLimit;
                    }
                    startTime = triggerTime; 
                    
                }