Home Random Page


CATEGORIES:

BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism






Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 6 page

 

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

Обе функции возвращают тип 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 для погоды:

Ясно
Облачно
Туман
Пасмурно
Дождь
Гроза
Пепел
Мор[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 за то, что нашел ее)


Средства управления игрока

Игрок спит

[no fix] ShowRestMenu

 

Вызывает меню отдыха и позволяет игроку поспать. Это используется, например, на кроватях в ячейках, где спать запрещено.

 

Пример: Вот стандартный скрипт для кроватей:

begin Bed_Standard

 

;используется для обычных кроватей, на которых игрок может спать

 

if ( MenuMode == 0)

if ( OnActivate == 1 )

ShowRestMenu

endif

endif

 

end

 

 

[no fix] GetPCSleep (returns Boolean/short)

 

if ( GetPCSleep == 0 )

 

Возвращает 1, если игрок спит. Примечание: Меню сна и счетчик во время отдыха считаются как меню, так что будьте осторожны, когда используете эту функцию и MenuMode вместе!

Пример использует совершенно бесполезный предмет, но он показывает возможности функции:

Begin pillowScript

 

short comfy

 

if ( PCVampire == 1 )

return

endif

 

if ( comfy == -1 )

if ( player->GetItemCount "misc_uni_pillow_unique" > 0 )

if ( GetPCSleep == 0 )

set comfy to 0

return

endif

endif

endif

 

 

if ( comfy == 0 )

if ( player->GetItemCount "misc_uni_pillow_unique" > 0 )

if ( GetPCSleep == 1 )

MessageBox "Ваш сон был невероятно сладким на Супер-Удобной Подушке"

set comfy to -1

return

endif

endif

endif

 

 

End pillowScript

 

[no fix] WakeUpPC

 

Заставляет игрока просыпаться до указанного времени. Иногда создает монстра, если игрок спит снаружи. Так происходит всегда, когда игрок спит по часу. (Спасибо Manauser за эту инфу). WakeUpPC прерывает сон, только когда игрок по-настоящему спит, и не влияет на простое прокручивание времени в местах, где сон запрещен (Информация с форумов / Kir).

 

Пример: это часть скрипта "sleepers" от Беседки. Он дает игроку сны о Дагот Уре во время выполнения основного скрипта. Здесь можно увидеть использование и GetPCSleep, и WakeUpPC:

if ( GetPCSleep == 0 )

return

endif

 

Set dream to 0

 

if ( GetPCCell "Balmora" == 1 )

Set dream to 1

endif

 

if ( GetPCCell "Ald-ruhn" == 1 )

Set dream to 2

endif

[…]

if ( dream == 0 )

Set doOnce to 0

;это необходимо, чтобы вы вышли из города, чтобы произошла следущая атака

return

endif

 

AddTopic "тревожные сны"

;добавлем тему, неважно что много-много раз

 

;ПЕРВЫЙ СОН...

 

if ( GetJournalIndex A1_2_AntabolisInformant >= 10 )

if ( GetJournalIndex A1_Dreams < 1 )

WakeUpPC

MessageBox "Вы увидели тревожный сон. Бла-бла-бла", “Ok"

Journal A1_Dreams 1

return

endif

endif

Включение и выключение средств управления и интерфейса

Отключение средств управления

Все эти функции выключают часть интерфейса пользователя и ограничивают действия игрока.

 

[no fix] DisablePlayerControls

Игрок может только смотреть вокруг и использовать главное меню, больше ничего.

 

[no fix] DisablePlayerFighting

[no fix] DisablePlayerMagic

Эти две функции ненадежны согласно информации с форумов: если игрок «достал руки» до того, как они были использованы, то он все равно может использовать оружие и заклинания, а также заклинания и оружие на горячих клавишах также работают. Я не знаю, как это обойти.

 

[no fix] DisablePlayerJumping

[no fix] DisablePlayerLooking

[no fix] DisablePlayerViewSwitch

[no fix] DisableVanityMode

Включение средств управления

После использования одной из выключающих функция, возможности игрока можно восстановить соответствующей включающий функцией.

 

[no fix] EnableLevelUpMenu

[no fix] EnablePlayerControls (Включает меню.)

[no fix] EnablePlayerJumping

[no fix] EnablePlayerFighting

[no fix] EnablePlayerLooking

[no fix] EnablePlayerMagic

[no fix] EnablePlayerViewSwitch

[no fix] EnableRest

[no fix] EnableVanityMode

Проверка статуса средств управления

Все эти функции возвращают 1, если соответствующая отключающая функция была вызвана и активна, и 0, если данное средство управления работает.

 

[no fix] GetPlayerControlsDisabled

[no fix] GetPlayerFightingDisabled

[no fix] GetPlayerJumpingDisabled

[no fix] GetPlayerMagicDisabled

[no fix] GetPlayerLookingDisabled

GetPlayerViewSwitch

(Не работает. Используйте: )

 

[no fix] GetVanityModeDisabled

Переключение в вид от первого и от третьего лица

[no fix] PCGet3rdPerson (returns Boolean/short)

возвращает 1, если игрок использует вид от третьего лица

 

[no fix] PCForce3rdPerson

переключает в вид от третьего лица (может потребоваться время, чтобы завершить анимацию)

 

[no fix] PCForce1stPerson

то же самое, что и выше, но для первого лица

 

(См также команду консоли "ToggleVanityMode" (TVM)).

Функции для меню генерации персонажа

Это недокументированные функции для создания персонажа. Они включат все меню, используемые в создании персонажа и включают такие возможности персонажа, как инвентарь, окно характеристик и карту:

 

Показ меню создания персонажа:

[no fix] EnableBirthMenu
[no fix] EnableClassMenu
[no fix] EnableRaceMenu
[no fix] EnableNameMenu

 

Для них нет команды отключения. Они закрываются, когда вы нажмете ok.

 


Date: 2015-12-17; view: 845


<== previous page | next page ==>
Get/Mod/Set ИИ для Боя: Fight, Flee, Alarm 4 page | enableinventorymenu
doclecture.net - lectures - 2014-2024 year. Copyright infringement or personal data (0.012 sec.)