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






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

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

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

Начало здесь

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

Я нашел решение - прямой доступ к текущей записи инвентаря! То, что вчера казалось невозможным, сегодня реализуется парой строчек кода!

Скрипт CB_PlayerAlias_Script я откатил до предыдущего состояния, проще говоря, отредактировал, убрав обработку по нажатию клавиш. И создал новый скрипт.


Для решения текущей задачи, я создал скрипт CB_PlayerQuest_Script в нашем квесте CB_Player.













Изображение
Звучит скрипт так. Определиться когда открыто меню инвентаря. Если нужное меню открыто, ожидать нажатия клавиши (в данном случае Back Space). И если такая клавиша нажата, получить FormID текущей записи, по которой определить объект и отправить его в соответствующее хранилище.

Новый скрипт


Не забываем заполнить свойства скрипта.











Изображение

Сохраняем результат работы.
Тестирование в игре показало отличную скорость реакции на нажатие клавиши и стабильную работу.

А теперь вернемся и закончим предыдущий шаг - фильтрование объектов в категории Разное. Мы повесили скрипт на хранилище "-Все разное", он работает - сортирует объекты по нужным хранилищам, но у нас нет доступа к этим хранилищам. Вот его и сделаем сейчас!


Меня устраивал метод доступа к хранилищам через меню, и хотя я стараюсь избегать частого его использования, все же воспользуюсь им и сейчас.
В окне Object Window выбираем категорию Message, и в таблице справа, жмем ПКМ и выбираем пункт New.




Изображение
Я создал три объекта Message, для отображения трех групп кнопок, иначе они не поместятся на экране.




Изображение

Изображение

Изображение


Наверное, проводятся какие-то работы на сайте, потому что блог лишен всех кнопок управления форматированием, а открытие и закрытие черновика "ломает" уже готовый (форматированный текст). Но я все же продолжу - не хочу терять время...

Меню будет вызываться из двух "режимов". Первый, когда инвентарь закрыт, нажатие кнопки Back Space откроет начальное меню, из которого, по цепочке, можно получить доступ ко всем кнопкам, и вызвать любое хранилище. Второй, когда инвентарь открыт, нажатие на репозиторий "-Все разное" откроет третью часть меню, для доступа к разному.
Для оптимизации, чтобы не использовать одинаковый вызов меню в двух скриптах одного квеста, я вызываю функцию из скрипта квеста.

Ниже представлены измененные скрипты псевдонима и квеста.

Скрипт псевдонима


Скрипт квеста



В результате, мы имеем полноценный мод, предоставляющий бездонные хранилища для всех категорий объектов, с простым и удобным доступом. И хотя еще не реализована автосортировка, но простота и скорость добавления объектов "напрямую", по нажатию кнопки, без открытия хранилища, компенсирует ее отсутствие!

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

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




Пиши статьи)))) я уже говорила))) есть же скрытый раздел в статьях для работы админов.