![]() |
| ![]() |
Управление игровым персонажемСон игрокаShowRestMenu Функция вызывает меню, в котором игрок выбирает продолжительность сна. Она необходима в тех случаях, когда нужно проверить, законно ли спать в какой-либо кровати. Пример: стандартный скрипт кроватей begin Bed_Standard GetPCSleep (возвращает Boolean/short) Функция возвращает 1, когда игрок спит. Учтите, что счетчик времени, который игрок видит во время сна, считается меню, поэтому не используйте в случаях, когда нужно управлять сном игрока, стандартную конструкцию MenuMode. WakeUpPC Заставляет игрока проснутся раньше желаемого времени. Иногда также размещает неподалёку монстра, если игрок спал на улице. Если был прерван сон длительностью равной 1 часу, враждебное существо обязательно появится. Разбудить игрока можно только, когда тот действительно спит, а не просто пережидает пару часов. Пример: отредактированный отрывок длиннющего скрипта “Sleepers” из стандартной игры, отвечающий за появление снов о Дагот Уре и моровой чуме. Он отлично показывает, как работают две последние функции. if ( GetPCSleep == 0 ) Включение и отключение управления игровым персонажемОтключение возможности управленияВсе эти функции позволяют выключить какую-то часть интерфейса игрока, таким образом ограничивая его действия. DisablePlayerControls После вызова этой функции игрок может лишь осматриваться с помощью мышки и открывать опции. Все остальные действия и просмотр игровых меню запрещены. DisablePlayerFighting Функции, по идее, должны отключать возможность сражаться и использовать магию соответственно. Однако, они неэффективны, так как если игрок обнажил оружие или готовится произнести заклинание, он всё ещё может выполнять задуманное. К тому же, функции не ограничивают использование возможностей с помощью «горячих» клавиш. К сожалению, я не знаю действенного решения этой проблемы.
Включение возможности управленияЭти функции существуют в противовес вышеупомянутым. Их стоит использовать, когда Вам нужно вернуть игроку возможность управления своим персонажем.
Проверка состояния управленияВсе эти функции возвращают 1, если соответствующая возможность отключена, и 0, если игрок может ей воспользоваться.
Переключение ракурсаPCGet3rdPerson (возвращает Boolean/short) Функция возвращает 1, когда игрок использует вид от третьего лица. PCForce3rdPerson Функция провоцирует переключение ракурса на вид от третьего лица (возможно, придётся подождать, пока не завершится анимация). PCForce1stPerson То же самое, но с видом от первого лица. Функции меню генерации персонажаЭти недокументированные функции используются в игре для создания игрового персонажа. Одни из них активирует меню выбора класса, расы и т.д. Другие постепенно добавляют стандартные возможности к интерфейсу (магия, инвентарь, карта). Вызов меню генерации персонажа:
Заметьте, что не существует функций, выключающих эти меню. Они автоматически закрываются по нажатию кнопки «ОК». Подключение игровых меню:
К сожалению, эти меню также невозможно отключить, что могло бы быть крайне полезным. Один из вариантов использования этих функций – нечестный способ смены вида и имени в ходе игры. Это, однако, может привести к появлению всякого рода проблем. Например, уровень прокачки иногда может вновь стать равным 1. Также этими инструментами можно воспользоваться для создания более изощрённого способа генерации персонажа. Пример: один из упрощенных вариантов скрипта “CharGen”, который провоцирует быструю последовательную генерацию персонажа, когда он просто выходит из двери. Begin CharGenDoorExit Определение того, открыто ли менюMenuMode Функция возвращает 1, если игрок открыл любое меню (в том числе инвентарь, консоль, таймер сна, окно диалога и, вероятно, многое другое). Обычно она используется для того, чтобы избежать выполнение скриптов, когда это не нужно. Для этого следующая конструкция помещается в самое начало кода: If ( MenuMode == 1 ) Закрытие менюНедокументрованно MenuTest Функция ничего не возвращает, однако, закрывает определённые типы меню. Она никак не влияет на окна диалога, зачарования, алхимии, заклинания и ремонта. if ( OnPCEquip == 1 ) |
![]() |
| ![]() | ||
![]() |