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