Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скрипты Morrowind.doc
Скачиваний:
91
Добавлен:
29.10.2018
Размер:
2.81 Mб
Скачать

Фазы лун

Необходимо для любого потенциального мода про оборотней.

[no fix] GetMasserPhase (returns short)

[no fix] GetSecundaPhase (returns short)

If (GetMasserPhase == 4)

[активировать оборотня]

endif

Примечание: В файле справки синтаксис данной функции описан как GetSecundusPhase, тем не менее, верный вариант указан выше — GetSecundaPhase. Также стоит заметить, что обе функции возвращают значение фаз лун для последнего экстерьера, где вы были (Информация с форумов / Elim).

Я только быстро протестировал их, но они работают.

Обе функции возвращают тип short с этими значениями:

0 = MOON_PHASE_NEW (это по умолчанию /новая луна/)

1 = MOON_PHASE_WAXING_CRESCENT or MOON_PHASE_WANING_CRESCENT (первая четверть):

2 = MOON_PHASE_WAXING_HALF or MOON_PHASE_WANING_HALF (половина):

3 = MOON_PHASE_WAXING_GIBBOUS or MOON_PHASE_WANING_GIBBOUS (третья четверть):

4 = MOON_PHASE_FULL (полная луна)

Погода Изменение погоды

[no fix] ChangeWeather, "RegionID", short_Type_Enum

ChangeWeather, “West Gash”, 4

Эта функция изменяет погоду в указанном регионе на тип TypeEnum, и это изменение произойдет через время указанное, видимо, в Morrowind.ini в разделе Weather, например42: Hours Between Weather Changes=20

Значения TypeEnum для погоды:

0

Ясно

1

Облачно

2

Туман

3

Пасмурно

4

Дождь

5

Гроза

6

Пепел

7

Мор43

Изменение установок погоды для региона

[no fix] ModRegion, "RegionID", clear_enum, cloudy_enum, foggy_enum, overcast_enum, rain_enum, thunder_enum, ash_enum, blight_enum

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

Изменяет шансы появления разных типов погоды для региона RegionID. Используется, чтобы убирать или добавлять определенные виды погоды навсегда. При сумме значений больше 100, можно получить странные результаты.

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

[no fix] GetCurrentWeather (returns short)

If ( GetCurrentWeather == 1)

;[Делать что-то, если облачно]

endif

Возвращает TypeEnum из таблицы выше.

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

begin OutsideBanner

;это скрипт для вывески снаружи,

;который анимирует ее на ветру.

;Idle – нет ветра, Idle2 – легкий бриз, и 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

Определение скорости ветра

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

[no fix] GetWindSpeed (returns float)

Я только быстро протестировал эту функцию. Она возвращает 0 в интерьерах и float снаружи (который может сильно изменяться, при пасмурной погоде равняется где-то двум) (Спасибо XPCagey за то, что нашел ее)