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

Изменение значения Hello

Get/Mod/SetHello

Это изменяет ВСЕ копии актера. Информация из хелпа: Hello определяет дистанцию, при которой актер остановится, повернется к игроку и скажет привет. Это значение (по умолчанию 30) умножается на iGreetDistanceMultiplier (по умолчанию 7). Также при hello 30, расстояние будет равно 10 футам (210 ед).

Полезные диалоговые переменные

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

Они проверяются использую условие Not Local как описано в хелпе:

Nolore

Блокирует большинство общих диалогов

NoIdle

Блокирует голоса Idle, используется для вампиров

NoFlee

Блокирует голоса flee, используется для вампиров

NoHello

Блокирует голоса Hello, используется для вампиров

Условие истинно, если игрок не имеет переменной. В отличие от большинства условий "Not", этой не важно, во что вы установили переменную. И в диалоге она (переменная) должна сравниваться с 0, и сама быть равной 0. Это может быть странно. Вот таблица, которая показывает как это работает:

Not Local

Переменная существует

Значение

Подходит?

(в диалоге)

(да/нет)

(в скрипте)

(говорящий это скажет)

= 0

Нет

Не доступно

Да

= 0

Да

0

Нет

= 0

Да

5

Да

= 1

Нет

Не доступно

Да

= -3

Да

-3

Нет

Изменяем и проверяем Навыки, Атрибуты и другие характеристики Get, Set, and Mod Stats – общие замечания

GetStat (returns float)

SetStat, var_float

ModStat, var_float

Set floatvar to ( Player -> GetHealth )

Player -> SetWillpower, 20

Player -> ModHealth, floatvar

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

Функция GetStat возвращает значение типа float, содержащее текущее значение параметра (Stat) (Не максимальное или базовое “естественное” значение параметра для игрока, а его текущее значение, используемое в игре, например, оно может быть усилено магией или уменьшено проклятием).

Функция SetStat устанавливает заданное базовое и текущее значение параметра.

Функция ModStat добавляет (положительные значения добавляются к текущему значению параметра, отрицательные значения вычитаются) заданное значение сразу к базовому и текущему значению параметра (Stat). Функция ModStat не может устанавливать атрибут больше его лимита (100), тогда как SetStat может.

Примечание: Это может быть неверно для таких необычных характеристик как сопротивления, которые могут быть отрицательными или превосходить 100.

Существует так много вещей, которые можно сделать, используя эти функции, что не очень полезно приводить пример. Посмотрите скрипт Marksman Toggle в разделе Советов и Трюков в качестве хорошего примера. Скрипт, приведенный в «Воскрешение мертвого актера» ниже также использует ModHealth, как и многие другие.

Эти команды имеют тысячи способов применения. Они могут использоваться в проклятиях, специальных предметах, благословениях, для сбора информации о силе и слабости игрока, для изменения установок ИИ (делаем NPC агрессивным, после того как игрок его оскорбил, NPC не разговаривает с вами ночью и т.д.) Также можно изменять навыки владения оружием и броней, чтобы NPC переключался между разными их видами.

В 8-ой редакции многие эти функции были отсортированы в соответствующие разделы (то есть по магии, бою и т.д.)