Русский
Параметры предметов
Параметры ножа
Обзор
IMPORTANT
Статус: Поддерживается
Минимальная версия: 1.0
Добавлен класс CUIKnifeParams, добавляющий отображение различных свойств и характеристик ножей в игровом UI (actor_menu)
Файлы ресурсов:
ui/actor_menu_item.xmlui/actor_menu_item_16.xmltext/rus/ui_st_new.xml
Пример использования:
xml
<knife_params x="0" y="0" width="212" height="70">
<!-- Линия разделения параметров ножа -->
<prop_line x="0" y="0" width="212" height="9" stretch="1">
<texture>ui_inGame2_hint_wnd_Properties</texture>
</prop_line>
<!-- Иконка урона -->
<static_damage x="0" y="10" width="14" height="18" stretch="1">
<texture>ui_wp_prop_damage</texture>
</static_damage>
<!-- Иконка удобности-->
<static_handling x="0" y="28" width="14" height="18" stretch="1">
<texture>ui_wp_prop_ergonomics</texture>
</static_handling>
<!-- Иконка дистанции удара -->
<static_dist x="0" y="46" width="14" height="18" stretch="1">
<texture>ui_wp_prop_distantion</texture>
</static_dist>
<!-- Надпись "Урон" -->
<cap_damage x="18" y="12" width="80" height="8">
<text font="letterica16" color="ui_2" align="l">ui_inv_damage</text>
</cap_damage>
<!-- Надпись "Удобность" -->
<cap_handling x="18" y="30" width="80" height="8">
<text font="letterica16" color="ui_2" align="l">ui_inv_handling</text>
</cap_handling>
<!-- Надпись "Дистанция" -->
<cap_dist x="18" y="48" width="80" height="8">
<text font="letterica16" color="ui_2" align="l">ui_inv_dist</text>
</cap_dist>
<!-- Прогресс-бар урона -->
<progress_damage x="104" y="14" width="101" height="9" horz="1">
<progress>
<texture a="150">ui_inGame2_hint_wnd_bar_alfa_line_16</texture>
</progress>
<background>
<texture>ui_inGame2_hint_wnd_bar_16</texture>
</background>
<color_less color="pda_red" />
<color_more color="pda_green"/>
</progress_damage>
<!-- Прогресс-бар удобности -->
<progress_handling x="104" y="32" width="101" height="9" horz="1">
<progress>
<texture a="150">ui_inGame2_hint_wnd_bar_alfa_line_16</texture>
</progress>
<background>
<texture>ui_inGame2_hint_wnd_bar_16</texture>
</background>
<color_less color="pda_red" />
<color_more color="pda_green"/>
</progress_handling>
<!-- Значение первой дистанции удара -->
<value_dist1 x="104" y="48" width="10" height="8">
<text font="letterica16" align="l"/>
</value_dist1>
<!-- Значение второй дистанции удара -->
<value_dist2 x="123" y="48" width="10" height="8">
<text font="letterica16" align="l"/>
</value_dist2>
<!-- Разделитель между значениями дистанции -->
<value_dist_delimiter x="119" y="48" width="1" height="8">
<text font="letterica16" color="ui_2" align="l"/>
</value_dist_delimiter>
<!-- Единицы измерения -->
<meters_name x="137" y="48" width="80" height="8">
<text font="letterica16" color="ui_2" align="l"/>
</meters_name>
</knife_params>Метки и текст на иконках
Обзор
IMPORTANT
Статус: Поддерживается
Минимальная версия: 1.0
На предметы можно добавлять кастомные метки и текст поверх инвентарного предмета
- Установка дополнительной информации (опционально)
ini
item_custom_text = st_text ; Текст
item_custom_text_clr_inv = 100,250,100 ; Цвет текста
item_custom_text_font = graffiti22 ; Шрифт
item_custom_text_offset = -2.0, -2.0 ; Смещения (x, y)- Установка дополнительной иконки (опционально)
ini
item_custom_mark = true
item_custom_mark_offset = -2.0, 0.0
item_custom_mark_size = 10, 10
item_custom_mark_texture = ui_item_count_back
item_custom_mark_clr = 100,250,100Расширенная подсветка предметов
Обзор
IMPORTANT
Статус: Поддерживается
Минимальная версия: 1.3
Установка подсветки зависимых предметов при наведении мыши (поддерживается перечисление через запятую) (опционально)
Пример использования:
ini
[root_item_section]:identity_immunities
highlight_related_sections = related_section_a, related_section_b; секции предметов которые будут подсвечены как зависимые от этого предмета
...
[related_section_a]:identity_immunities
highlight_related_sections = root_item_section; можно добавить обратную подсветку родительского предмета при наведении на дочерний если требуется
...Автоматическая окраска иконок параметров
Автоматическая окраска включается отдельно для каждой строки параметра. Если ни строка, ни её шаблон не задают атрибут colorize, окраска выключена: сохраняются цвета исходной DDS-текстуры и прежнее оформление значений. В штатных XML-конфигах окраска эффектов уже включена через colorize="1"; состояние предмета, число контейнеров и время действия остаются без окраски. Без этой настройки значения артефактов в современном формате серые для полезного эффекта и красные для вредного, в старом текстовом формате — зелёные/красные; значения бустеров остаются серыми.
Настройка поддерживается для параметров артефактов, дополнительных бонусов экипировки и бустеров. Изменяйте соответствующие файлы в gamedata/configs/ui вашей сборки:
af_params.xmlиaf_params_16.xml— артефакты и дополнительные бонусы экипировки;booster_params.xmlиbooster_params_16.xml— бустеры и расходники.
В формате с дочерними узлами caption и value добавьте colorize="1" к узлу value, а не к caption или texture. Например, существующая строка восстановления здоровья артефакта может выглядеть так:
xml
<health_restore_speed x="0" y="0" width="257" height="20">
<caption x="0" y="2" width="257" height="20" complex_mode="0">
<texture>ui_am_propery_05</texture>
<text color="ui_3" font="letterica16" vert_align="c" x="22" y="0"/>
</caption>
<value x="180" y="2" width="30" height="20" magnitude="6600" colorize="1">
<text font="letterica16" vert_align="c"/>
</value>
</health_restore_speed>Сохраняйте размеры, magnitude и единицы измерения из своего XML. Для бустера настройка добавляется аналогично к его value:
xml
<value x="140" y="0" width="30" height="20" magnitude="10000" colorize="1">
<text font="letterica16" vert_align="c"/>
</value>При включённой окраске полезный эффект окрашивает иконку и значение в синий (44, 172, 246), вредный — в красный (210, 50, 50). Цвет подписи caption:text сохраняется из XML. Цвет определяется после применения magnitude; sign_inverse="1" на value меняет оценку полезности, но не знак отображаемого числа. Например, для накопления радиации:
xml
<value x="180" y="2" width="30" height="20" magnitude="1000" sign_inverse="1" colorize="1">
<text font="letterica16" vert_align="c"/>
</value>Здесь отрицательное значение полезно и окрашивается в синий, положительное вредно и окрашивается в красный.
В старом формате static_<имя_параметра> атрибут задаётся непосредственно на строке:
xml
<static_health_restore_speed x="0" y="0" width="257" height="20" complex_mode="1" colorize="1">
<texture>ui_inv_icon_health_restore_speed</texture>
<text font="letterica16" x="20" y="0"/>
</static_health_restore_speed>Для окраски используется альфа-канал иконки: её исходный RGB заменяется цветом эффекта. Подойдут как белые, так и уже цветные DDS-иконки с корректной прозрачностью; перекрашивать атлас не требуется. В формате caption/value узел texture_minus остаётся необязательной альтернативной иконкой для вредного эффекта и совместим с окраской, но для самой окраски не нужен.
Чтобы вернуть прежнее оформление строки, удалите colorize или задайте colorize="0". Добавьте настройку в обе версии XML, если она должна работать в обоих вариантах соотношения сторон. Она не меняет знак чисел и группировку характеристик: встроенные контейнеры по умолчанию отображаются без +, а лишний разделитель внутри характеристик костюма не возвращается.
Общие XML-шаблоны строк
Движок поддерживает общие XML-шаблоны как дополнительную возможность. Штатные af_params.xml и booster_params.xml пока используют обычные строки без template. Чтобы унифицировать собственные конфиги, создайте ui/item_params.xml и его широкоформатную версию ui/item_params_16.xml. В строках задайте ссылку template, а общие размеры, отступы, шрифты и иконки вынесите в param_templates.
Подключение внутри панели:
xml
<af_params x="0" y="0" width="260" height="20">
#include "ui\item_params.xml"
<health_restore_speed template="health_restore_speed">
<value magnitude="6600" colorize="1"/>
</health_restore_speed>
</af_params>Бустер ссылается на ту же строку оформления, но сохраняет свой масштаб:
xml
<boost_health_restore template="health_restore_speed">
<value magnitude="10000" colorize="1"/>
</boost_health_restore>Файл общих шаблонов имеет следующий формат:
xml
<param_templates>
<row x="0" y="0" width="257" height="19">
<caption x="0" y="0" width="18" height="18" stretch="1">
<text font="letterica16" x="22" y="0" vert_align="c" r="170" g="170" b="170"/>
</caption>
<value x="180" y="0" width="30" height="18">
<text font="letterica16" vert_align="c"/>
</value>
</row>
<health_restore_speed template="row">
<caption>
<texture>ui_am_propery_05</texture>
</caption>
</health_restore_speed>
</param_templates>Измените row, чтобы одновременно настроить геометрию и шрифт всех строк. Измените health_restore_speed:caption:texture, чтобы заменить иконку здоровья у артефактов и бустеров. Шаблоны переносимого веса, радиации и защит используются аналогично.
Атрибуты и дочерние узлы самой строки имеют приоритет над шаблоном. Переопределение дочернего узла объединяется с шаблоном: <value magnitude="10000"/> меняет только масштаб и сохраняет общие координаты и шрифт. Можно также локально переопределить caption, texture, text, unit_str, sign_inverse, show_sign и colorize. Такая строка будет отличаться от общего оформления только явно указанными свойствами.
Ссылки ищутся в param_templates текущей панели; наследование ограничено 16 шаблонами. При отсутствующем шаблоне или цикле строка не создаётся, а причина записывается в лог. Старые строки без template поддерживаются. Старый формат static_<параметр> также принимает template: общая иконка берётся из caption:texture, а его расчёт значений и комплексный текст сохраняются.
В штатных конфигурациях colorize="1" указан непосредственно в строках эффектов. В собственном общем шаблоне эту настройку можно вынести в row:value, оставив локальные colorize="0" для абсолютных значений и текстовых эффектов. Дефолт в C++ при отсутствии атрибута остаётся выключенным.
Чтобы окрашивать только иконку, добавьте text_colorize="0" на value. По умолчанию text_colorize наследует значение colorize. Штатные строки additional_weight и boost_max_weight используют эту настройку: положительное число переносимого веса остаётся серым, иконка окрашивается. В старом формате настройка задаётся на узле static_<параметр>.