Перейти к содержимому






* * * * * 1 голосов

Репозитории II: разработка, часть 5

Написано Umbakano Jr, 12 июня 2013 · 574 просмотры

Начало здесь

Что ни говори, а когда не пишешь блог, работа над модом проходит гораздо быстрее! С другой стороны, ведение блога разработки дисциплинирует "творческие порывы" , заставляя использовать более оптимальный код и меньше "мусорить"...

Понадобились сутки, чтобы в корне переделать систему вызова хранилищ. Теперь она основывается не на системе меню, а на ... говорящем активаторе! Да, да, это такой активатор который позволяет использовать диалоги с "не НПС"! Я приспособил его для отображения и запуска списка репозиториев. В результате, я получил быстрый и простой доступ к любому репозиторию. Да, и визуально, это более элегантное решение!

Изображение

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

В окне Object Window, в разделе Actors, найдите категорию Talking Activator. В таблице справа, создайте новый объект, или используйте уже имеющийся как шаблон. Для наших целей не важно какой вид и какую модель будет использовать этот активатор, мы будет активировать его удаленно. Внесите уникальное имя, это обязательно и название активатора, оно будет отображаться на экране.

Изображение

Перетащите этот объект в ячейку, в моем случае это CB_Cell. Если вы не используете собственных ячеек и не желаете "затрагивать" ванильные, можно обращаться к активатору напрямую, в скрипте, создавая его object reference, с помощью функции PlaceAtMe(). Но я рекомендую, все же, разместить объект в ячейке, это более эффективно с точки зрения производительности, и оптимально с точки зрения более короткого кода! На этом, говорящий активатор готов к использованию.

Создайте квест стартующий с игрой, флажок Start Game Enabled, остальные флажки снимите, установите высокий приоритет (более 80) и сохраните его, закрыв. Заново откройте, теперь появились дополнительные вкладки, переключитесь на Player Dialoge и заполните таблицы, как показано на рисунке:

Изображение

В нижней части вкладки, в окне End впишите команду активации нужного контейнера. Чтобы присвоить этому фрагменту свойство (Property), первоначально скомпилируйте скрипт с любым комментом и закройте окно. Вновь откройте, будет доступен ввод свойств для скрипта. Введите и заполните свойство для контейнера, раскомментируйте и отредактируйте код. Скомпилируйте и закройте окно.

Изображение


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

Чтобы сработал этот диалог и отобразился список нашего меню, удаленно активируем Talking Activator. Эту функцию я "повесил" на нажатие кнопки в скрипте квеста.
CB_TalkingActivator.Activate(GetPlayer())
Вот и все, меню в виде диалога готово, остался последний штрих.


Чтобы наш диалог сразу отображался в игре, необходимо создать SEQ-файл!
Самый простой способ его создания, не требующий ручного ввода, использовать TES5Edit. Загрузите в эту программу мод, найдите его и выделите название, важно стоять именно на названии мода, тогда в контекстном меню, в пункте Разное, появится пункт Создать SEQ-файл. Само создание происходит мгновенно и в нужную папку (Data\SEQ), с правильным названием (в моем случае, Collector bags II.seq).



Продолжение здесь




Мод - продукт творчества! Платный мод - товар, а создание товара  - это уже работа! Кто променяет творчество на работу?

А как вы думаете? Моды когда-нибудь будут платными?