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

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

[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