Перейти к контенту
7.9

2D HUD Viewer... (по русски :) )

Рекомендуемые сообщения

Инструмент для управления 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

всё легко

Ссылка на комментарий

новая ссылка: _http://narod.ru/disk/25198658001/2DHUDViewer(vA1).zip.html

всё легко

Ссылка на комментарий

Было бы замечательно, если бы ещё хоть видео приложил или скриншоты :)

Я так понял это развитие идей Просмоторщика документов?

Очень полезно для сюжетных модификаций, особенно в ЧН/ЗП, где вырезали заметки и энциклопедию.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Вторая альфа 2DHUD Viewer-а.

Ссылка  (4КБ)

! Для Сталкер ТЧ 10006
! Для работы требуется xRay Extentions не ниже r13.

Из нововведений:
1. Убран "уникальный" кейлогер - заменён на xRay Extentions - теперь всё управляется кнопками мыши и одной клавишей.
2. Кроме предметов в слотах, 2DHUD теперь может быть у внешних объектов (как движимых, так и недвижимых).
Остальное более-менее по старому.
С docviewer-ом совместим.

Кому интересно - предлагаю попробовать "сбацать" чего-нибудь; какой-нибудь полезный девайс, или ещё чего похитрее - то-же можно... Документации как всегда ... мало :)  но там и не сложно.


Полностью рабочая демо-сборка для ТЧ 10006.
========================================


Что вложено:
1. 2DHUD Viewer версия A2
2. три предмета (один внешний) на его основе: 2-а "Позиционер"-а и "Фотография в бумажке".
3. xRay Extentions r20
4. и даже сейв с демо-предметами в инвентаре.

Ссылка  (2,3МБ)
 

Изменено пользователем ColR_iT
  • Спасибо 1
  • Нравится 1

всё легко

Ссылка на комментарий
Гость
Эта тема закрыта для публикации сообщений.
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...