Цитата Сообщение от Geniok Посмотреть сообщение
Накидал тут скриптик против вулчеров.
Возможно есть косяки. Выглядит пока так:
[...]
Можно попробовать брать список дромов из AMission.GamePlay.gpAirports(), позиции и радиусы там есть. Кстати, в классе Point3d есть метод для вычисления расстояния - distance.

Может всё-таки стоит вешать обработку на событие OnAircraftDamaged()? А то можно будет безнаказанно дырявить стоящие самолёты, если не задевать пилота.

--- Добавлено ---

Цитата Сообщение от -atas- Посмотреть сообщение

А уменьшить не получится? Например:

При превышении количества истребителей на 10% - задержка 30 секунд, на 20% - минута, на 30% - 3 минуты, на 40% - 10 минут. Все сразу подравняется, т.к. настоящему мастеру все равно на чем летать (да и Е-файт на спите возможен, это не Ишак).
Несложно. Поменять кусок скрипта, заведующий банами на такой:

Код:
        if (totalFighters < 10)
        {
            // Если истребителей мало убираем все баны
            SetDictValue(banUntil, p, 0.0);
        }
        else if (playerArmyPercent > 58.33) // Превышение на 40%
        {

            if (ban == 0.0)
            { 
                // Блокируем на 10 минут
                SetDictValue(banUntil, p, Time.currentReal() + 10*60.0);
            }
        }
        else if (playerArmyPercent > 56.52) // Превышение на 30%
        {

            if (ban == 0.0)
            { 
                // Блокируем на 3 минуты
                SetDictValue(banUntil, p, Time.currentReal() + 3*60.0);
            }
        }
        else if (playerArmyPercent > 54.54) // Превышение на 20%
        {

            if (ban == 0.0)
            { 
                // Блокируем на 1 минуту
                SetDictValue(banUntil, p, Time.currentReal() + 60.0);
            }
        }
        else if (playerArmyPercent > 52.38) // Превышение на 10%
        {
            if (ban == 0.0)
            { // Устанавливаем бан только для незабаненого игрока.
                SetDictValue(banUntil, p, Time.currentReal() + 30.0); // Блокируем на 30 секунд
            }
        }
        else
        {
            // Разблокируем
            SetDictValue(banUntil, p, 0);
        }
Код, конечно, не красивый. Надо будет все эти времена свести в массив... Но работать будет.