7.9 174 Опубликовано 15 Сентября 2011 Инструмент для управления 2D интерфейсом предметов которые можно поместить в слот и активировать. Например: аутентичные документы, электронные устройства, (даже) артефакты... в общем, любые предметы которые требуется дать рассмотреть и применить Игроку. Пока, сделано так "что-бы было". Требуется рефакторинг алгоритма, кода, отвязка от ui_custom_msgs.xml, и не только - наверняка ещё, что-нибудь можно сделать более правильно, но вроде работает. Специального демо не делал, но приложил два мода для иллюстрации, на них всё отлаживалось. _http://narod.ru/disk/25179149001/2DHUDViewer(a1).7z.html С точки зрения сценария и геймплея, 2D Viewer предназначен для работы метафор ("осмотр" объектов "в руках") и ("совершение" действий с объектом "в руках"), но может (и предназначен) не только для этого... --- Описание. При активации объекта во 2 или 3 слоте, на экран выводится изображение, работают скрипты, добавляя на изображение динамические детали. Таким образом 2D HUD Viewer показывает "вид объекта" - страницу. С текущей страницы можно переключиться на другую страницу или вызвать сопоставленный ей скрипт, например - скриптовое окно. Количество страниц не ограничено. Управляется всё - четырьмя клавишами: - активация/деактивация объекта в слоте - клавиша 2 или 3; - смена страниц вперёд - клавиша "6"; - смена страниц назад - клавиша "5"; - вызов скриптового окна - клавиша "4". При просмотре страниц движение ГГ не блокируется. При активации скриптовых окон движение ГГ будет заблокировано. 1. Скопировать файлы. 2. Отредактировать файлы: - в "system.ltx", в конце всех "#include..." добавить строку: #include "misc\d2hud.ltx" - в "ui_custom_msgs.xml", в самом начале, после открывающего тега добавить две строки: #include "ui\ui_custom_msgs_2dhud.xml" - в файл "bind_stalker.script" в функцию "actor_binder:update()" в самом конце, перед закрывающим "end", добавить строку: d2hud.update() 1. Для объектов имеющих 2DHUD создана дополнительная секция параметров "d2hud"; 2. У предметов имеющих 2DHUD, есть "образы" и "скрипты" для отображения видов объекта на экране; 3. Образы - это графические файлы в формате "dds", которые, должны находиться в папке "textures\d2hud" и иметь имена совпадающие с именем секции соответствующего предмета. 4. Скрипты - это все скрипты в одном файле, который, должен находиться в папке "scripts" и иметь имя совпадающее с именем секции соответствующего предмета. --- Как сделать 2DHUD объекту. 1. сделать статические образы видов объекта (фото, графика, рисунки...) ; 2. дать им общее осмысленное имя; 3. у каждого образа, в конце имени, через подчёркивание, добавить номер шага просмотра. Например так: спецобъект_1, спецобъект_2 и т.д. Здесь: "спецобъект" - это общая часть имени, а то, что через подчёркиание - "порядок в просмотре". 4. положить образы в папку "textures\docs"; 5. Написать скрипты страниц для вывода динамической информации... 6. Дать файлу скриптов имя ТОЧНО такое как общая часть имён у сделанных текстур. 7. Создать секцию объекта с именем ТОЧНО таким как общая часть имён у сделанных текстур, добавить несколько специальных параметров в конфиг, настроить нужные параметры. --- Настройка параметров 2DHUD-a: ;указание на то, что у объекта есть 2DHUD d2hud = true ;положение и размер на экране, количество страниц pages = ... - количество страниц просмотра: pos_x = ... - координата X верхнего левого угла pos_y = ... - координата Y верхнего левого угла d_x = ... - размер по X d_y = ... - размер по Y ;указание на то, что для объекта используется только одно статическое изображение для всех страниц monoimage = true/false ;папка с изображенями img_path = ... - если "auto", то папка textures\d2hud Динамические элементы страниц - (пока) должны быть описаны в файле "ui_custom_msgs.xml". --- Как организовывать скрипты для страниц объекта с 2DHUD-ом. 1. Внутри файла скриптов обязательно должны быть четыре функции: on(), off(), update(), menu(). 2. Функция on() - функция инициализации динамических элементов. Скрипт d2hud вызывает её при создании новой страници. При вызове передёт ей номер страницы просмотра. Функция должна вернуть число 1 если страницу нужно обновлять, если нет - nil. 3. Функция off() - функция деинициализации динамических элементов. Скрипт d2hud вызывает её при уничтожении текущей страници. При вызове передёт ей номер страницы для уничтожения. 4. Функция update() - функция обновления динамических элементов текущей страницы. Скрипт d2hud вызывает её синхронно с движковым апдейтом bind_stalker.update(). При вызове передёт ей номер страницы для апдейта. 5. Функция menu() - функция вызова произвольного скрипта, Скрипт d2hud вызывает её при нажатии клавиши "4". При вызове передёт ей номер текущей страницы. --- Пример структуры файла для объекта с 3 страницами, у которого, например, не требуется обновления 2 страницы: Файл "object_with_2dhud.script" function update(page) if page == 1 then ... elseif page == 3 then ... end end function menu(page) if page == 1 then ... elseif page == 2 then ... elseif page == 3 then ... end end function on(page) if page == 1 then ... return 1 elseif page == 2 then ... return nil elseif page == 3 then ... return 1 end end function off(page) if page == 1 then ... elseif page == 2 then ... elseif page == 3 then ... end end 2 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 15 Сентября 2011 новая ссылка: _http://narod.ru/disk/25198658001/2DHUDViewer(vA1).zip.html всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 9 Марта 2013 (изменено) Вторая альфа 2DHUD Viewer-а.Ссылка (4КБ)! Для Сталкер ТЧ 10006! Для работы требуется xRay Extentions не ниже r13.Из нововведений:1. Убран "уникальный" кейлогер - заменён на xRay Extentions - теперь всё управляется кнопками мыши и одной клавишей.2. Кроме предметов в слотах, 2DHUD теперь может быть у внешних объектов (как движимых, так и недвижимых).Остальное более-менее по старому.С docviewer-ом совместим.Кому интересно - предлагаю попробовать "сбацать" чего-нибудь; какой-нибудь полезный девайс, или ещё чего похитрее - то-же можно... Документации как всегда ... мало но там и не сложно.Полностью рабочая демо-сборка для ТЧ 10006.======================================== Что вложено:1. 2DHUD Viewer версия A22. три предмета (один внешний) на его основе: 2-а "Позиционер"-а и "Фотография в бумажке".3. xRay Extentions r204. и даже сейв с демо-предметами в инвентаре.Ссылка (2,3МБ) Изменено 11 Марта 2013 пользователем ColR_iT 1 1 всё легко Поделиться этим сообщением Ссылка на сообщение