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

Определение и изменение реакции

Get/Mod/SetReputation

Get/Mod/SetDisposition

возможно, все это относится к базовой реакции (которая задается в CS, неизмененной никакими модификаторами)

Функции для оборотней Установка атрибутов оборотня

SetWerewolfAcrobatics

Actor -> SetWerewolfAcrobatics

Эта функция устанавливает атрибуты объекта, как у оборотня. Она устанавливает скиллы и атрибуты в значение fWerewolfxxxx установок геймплея. В большинстве случаев, это означает высокую силу, ловкость, акробатику и 0 для всего остального.

Player -> AddSpell "werewolf vision"

Player -> AddSpell "werewolf regeneration"

Player -> SetWereWolfAcrobatics

Изменение цвета Секунды

[no fix] TurnMoonWhite

[no fix] TurnMoonRed

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

if ( doOnce == 0 )

TurnMoonRed

set doOnce to 1

endif

Определение, скольких убил оборотень

[no fix] GetWerewolfKills (returns short ?)

Это счетчик, сколько NPC было убито оборотнем. Каждый раз, когда убивается NPC, в то время как игрок – оборотень, к этому счетчику добавляется 1. Он сбрасывается, когда игрок превращается в человека.

if ( GetWerewolfKills > 0 )

; код, чтобы игрок не страдал от голода.

endif

Проверка, находится ли существо в форме оборотня

IsWerewolf

If (Actor -> IsWerewolf ]

Эта функция позволяет определить, является оборотнем цель или нет. Она может использоваться на игроке или других Актерах.

if ( Player->IsWerewolf != 1 ) ;НЕ ВЫПОЛНЯТЬ ЕСЛИ ИГРОК НЕ ОБОРОТЕНЬ

return

endif

Превращение в оборотня

BecomeWerewolf

UndoWerewolf

Actor->BecomeWerewolf

Actor->UndoWerewolf

Эти функции превращают объект в оборотня и назад в человека. ВАЖНО: Использование Becomewerewolf и Undowerewolf МОЖЕТ запороть вам игру. Некоторые квесты и переменные целиком зависят от их использования, так что если вы решили использовать их, чтобы поразвлечься… (От WormGod).

if ( OnPCEquip == 1 )

Player->BecomeWereWolf

Set OnPCEquip to 0

Endif

Set timer to ( timer + GetSecondsPassed )

If ( timer > 10 )

Player->UndoWereWolf

Endif

Специальные глобальные переменные для оборотней

[no fix] PCknownWerewolf (is short global)

Глобальная переменная, которая указывает, известен ли игрок как оборотень.

[no fix] PCWerewolf (is short global)

Установлена в 1, если игрок – оборотень. Используется для контроля многих скриптов для оборотней.

[no fix] WerewolfClawMult (is float global)

Усилитель удара когтями. Точная формула неизвестна, см скрипты оборотней.

Текст и Диалог Краткая инструкция по диалогам

Диалоги как искусство в себе не может быть полностью рассмотрено здесь. Однако когда вы будете создавать квесты, вам часто придется смешивать диалоги и скрипты, чтобы контролировать квесты и добиваться определенных эффектов. Так что я приведу небольшое вступление.

Концепция диалогов в Морре

В Морровинде диалоги организованы в базу данных. Эта база структурирована следующим образом:

Верхний уровень:

Различные «подразделения» диалога:

Темы (Topics): Само тематическое слово и отклики для диалогового окна в игре.

Приветствия (Greetings): Текстовые строки, которыми вас приветствуют, когда вы начинаете диалог с актером.

Убеждение (Persuasion): Ответы, которые вы получите для успешной или провальной попытки убеждения.

Журнал (Journal): Записи в журнал.

Голоса (Voices): Звуковые файлы формата .mp3 (и субтитры), которые персонажи "говорят", когда вы проходите мимо, во время удара, во время бегства и т.д.

Подуровень 1:

Каждый из этих подразделений верхнего уровня имеют подуровни, которые я называю топиками – для секции Topics, это обычные "ключевые слова" (темы), на которые актерам есть что сказать. Эти слова будут подсвечены ("гиперссылки") в тексте и перечислены с правой стороны панели диалогового окна. Для Journal это различные заголовки (обычно один на задание). Для Voices это различные категории звуковых ответов, которые "включаются" при определенных игровых условиях и т.д. Для Greetings это просто основные категории приветствий (больной, предложения задания, стандартные и так далее). Вот как Беседка их использует (Информация с форумов / Emma):

  • Greetings 0: NPC встревожен

  • Greetings 1: Квесты (для которых не важно, является ли игрок вампиром, голым, больным, преступником и т.д.)

  • Greetings 2: Игрок вампир/раздет

  • Greetings 3: Предатели Мораг Тонг

  • Greetings 4: Преступления и болезни

  • Greetings 5: Квесты

  • Greetings 6: Фракции

  • Greetings 7: Классы, Конец игры, Рабы

  • Greetings 8: Одежда (общие приветствия на основании одежды игрока)

  • Greetings 9: Места

Для Persuasion это такие вещи, как отказ в услугах или успешная/неуспешная попытка дать взятку.

Подуровень 2:

Для каждого топика может быть еще один или несколько подразделов — это сами отклики. Для Topic и Greetings это ответы актеров на фразу темы. Для Journal это различные записи, описывающие прогресс выполнения задания.

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

Записи идут вместе с условиями, которые можно установить в окне редактора диалогов. В окне тем (topic window), вы найдете список основных условий слева — здесь вы можете определить, какой актер (Actor ID) или их группа (Раса [Race], Класс [Class] и т.д.) должны знать эти отклики. Также есть два условия для игрока (Фракция игрока [PC faction] и ранг [rank]). Справа вы можете установить максимум 6 “свободных” условий, которые могут относиться к актеру, игроку или другим вещам, таким как состояние глобальных переменных — здесь много опций, с которыми вам придется разобраться самим. Это проверка записей журнала, состояние игрока, локальные или глобальные переменные, предметы в инвентаре и много других функций - некоторые эквивалентны скриптовым функциям, некоторые уникальны для диалогов. (см. ниже).

Важная и на первых порах смущающая функция редактора диалогов — фильтр (filter) (в левом нижнем углу). Когда вы выбираете здесь actor ID, вы можете видеть только темы, которые этот актер может знать (как описано выше). Помните, что когда вы создаете новую тему (topic) (возможно специально для этого актера), она не содержит ответов (responses). Таким образом, актер “не знает” ее, и только что созданная тема не появляется! Выберите пустой слот на самом верху, чтобы снова увидеть все темы, создайте ответ для новой темы, чтобы актер ее “узнал” — теперь можете снова включить фильтр, если хотите.