fallout.ru

Погода

Смена погоды

ChangeWeather, "ID Региона", short_ТИП_числ

ChangeWeather, “West Gash”, 4

Функция производит смену погодных условий в выбранном регионе в зависимости от второго параметра. Через определённые промежутки времени происходит автоматическое изменение. Величина таких промежутков, я полагаю, устанавливается в файле конфигурации “Morrowind.ini” в строке ”Hours Between Weather Changes = число”. Также учтите, что должно пройти небольшое время перед тем, как изменения вступят в силу.

Типы погоды:

0Ясно
1Переменная облачность
2Туман
3Тяжёлые грозовые тучи
4Дождь
5Гроза
6Пылевая буря
7Моровая буря

Варианты погодных условий

ModRegion, "ID Региона", ясно_числ, облака_числ, туман_числ, тучи_числ, долждь_числ, гром_числ, пыль_числ, мор_числ

ModRegion, “West Gash”, 10, 20, 10, 5, 5, 40, 10, 0

Функция настраивает возможность появления определённых видов погоды в тех или иных регионах. Учтите, что все значения в сумме должны давать 100.

Определение текущей погоды

GetCurrentWeather (возвращает short)

If ( GetCurrentWeather == 1)
[если облачно]

Функция возвращает число, соответствующее текущему состоянию погодных условий (смотрите таблицу выше).

Пример: Bethesda создала этот скрипт, чтобы заставить вывески развеваться на ветру.

begin OutsideBanner

;этот скрипт, прикрепляемый к вывескам, включает анимации развевающихся флагов, когда дует ветер
;Idle – штиль, Idle2 – лёгкий ветерок, and Idle3 – шторм

short ran

if ( MenuMode == 0 )
            set ran to random 100
            if ( ran < 30 ) ;шанс 30% на то, что флаг сделает что-то новое.
                        ;проверка будущих погодных условий
                        if ( GetCurrentWeather >= 5 ) ;гром, пылевая или моровая бури
                                    LoopGroup, Idle3, 5
                        endif
                        ;последняя вызываемая анимация в этом скрипте будет проиграна
                        if ( ran <= 10 )
                                    PlayGroup, Idle
                        elseif ( GetCurrentWeather < 5 )
                                    PlayGroup, Idle2
                        endif
            endif
endif

end

Вычисление скорости ветра

Недокументировано:

GetWindSpeed (возвращает float)

Я лишь слегка проверил эту функцию. В помещениях она возвращает 0, а на открытых пространствах – число с «плавающей» запятой (то есть типа float). При шторме значение колеблется около 2.