- Представьте ситуацию, когда всё “почти” работает
- Где именно лежит локализация в моде
- Какие строки нужны для предмета и способности
- Шаблон для предмета в локализации
- Как правильно указать название предмета или способности
- Как добавить описание предмета в локализации
- Как добавить бонусы предмета
- Как вставлять числа автоматически через переменные из кода
- Какие специальные коды можно использовать для отображения характеристик
- Примечания Alt и история предмета
- Правильная последовательность построения ключей
- Автоматическая локализация через $ и почему это важно
- Таблица примеров ключей и результата
- Ограничения на количество строк в описании способности
- Пользовательские переменные для описания предметов
- Мини-схема “как сделать описание с бонусами и Alt”
- Про “как показывать ХП и ману в цифрах” в Dota
- Частые ошибки и как их избежать
- Короткий итог
- Быстрый чеклист перед запуском в игре
В этом материале разберём, как добавлять название, описание, бонусы, примечания (Alt), историю (Lore) для предметов и способностей. Также поговорим, какие файлы править, как вставлять переменные из кода в локализацию и какие специальные коды позволяют показывать статы в нужном формате.
Представьте ситуацию, когда всё “почти” работает
Вы сделали предмет или способность, всё скрипты и значения на месте. В игре видно картинку, работает механика — но:
- вместо описания пусто или отображается “текст заглушка”
- бонусы написаны криво, без чисел
- Alt показывает ерунду
- на разных языках всё ломается
- иногда подписи “не влезают” и скрываются
Почти всегда это не “поломка способности”, а ошибка в локализации: неправильные ключи или переменные.
Где именно лежит локализация в моде
Обычно описания берутся из файлов вида addon_english.txt / addon_russian.txt в ресурсах мода. Идея такая:
- вы задаёте токены (ключи) в текстовом файле локализации
- игра подставляет их в UI подсказок
Принципиальная схема такая:
папка resources/ваш_мод/
addon_english.txt
addon_russian.txt (или другие языки)
Какие строки нужны для предмета и способности
В локализации обычно используются ключи формата:
Для предмета
Ключи строятся вокруг имени предмета в коде.
Например, если предмет называется:
item_example_item
то базовый префикс будет таким:
DOTA_Tooltip_ability_item_item_example_item
Дальше добавляются вариации:
- название
- описание
- бонусы
- примечания Note0 (Alt)
- история Lore
Шаблон для предмета в локализации
Вот типичный “скелет”, который легко копировать и подставлять своё:
"DOTA_Tooltip_ability_item_item_example_item" "Round crap"
"DOTA_Tooltip_ability_item_item_example_item_Description" "Sheald killer."
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor" "Bonus armor:"
Логика простая и важная:
- после префикса идёт имя предмета
- затем идут суффиксы:
_Description— основное описание_bonus_armor— конкретная строка бонуса_Note0— текст при зажатом Alt_Lore— история предмета
Как правильно указать название предмета или способности
Правило такое:
- Ключ указывает, какому объекту принадлежит текст
- Значение — это то, что увидит игрок
То есть вы создаёте токен, который начинается с правильного префикса, а справа ставите человекочитаемый текст.
Для предмета это чаще всего работает так:
"DOTA_Tooltip_ability_item_ИМЯ_ВАШЕГО_ПРЕДМЕТА" "Название как в игре"
А если делаете способность, то ключи будут начинаться иначе (у конкурентов встречается формат DOTA_Tooltip_Ability_..., но общий смысл одинаков: префикс + идентификатор способности + суффиксы _Description, _Note0, _Lore и т.д.).
Как добавить описание предмета в локализации
Описание кладётся в ключ с суффиксом _Description.
Пример:
"DOTA_Tooltip_ability_item_item_example_item_Description" "Sheald killer."
Смысл: без _Description UI часто не показывает “главный текст” так, как вы ожидаете.
Как добавить бонусы предмета
1) Найдите переменные в AbilitySpecial
В коде предмета (обычно это файл описания способности/механики) есть блок AbilitySpecial с var_type и переменными.
Например:
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"bonus_armor" "2"
}
}
Тут переменная называется bonus_armor.
2) В локализации добавьте строку с тем же именем переменной
То есть ключ должен совпасть по “хвосту”:
- в коде:
bonus_armor - в локализации:
_bonus_armor
Пример:
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor" "Bonus armor:"
Если бонусов много, будет несколько строк:
"..._bonus_agil"
"..._bonus_strange"
"..._bonus_armor"
Как вставлять числа автоматически через переменные из кода
Вот тут самое полезное — автоматическая локализация через специальные маркеры со знаком $.
Вариант с текстом и числами
Если вы хотите, чтобы игра сама подставила число, используют формат вида:
"+$armor""+$mana""+$health"- и другие (см. список ниже)
Пример (по смыслу как в гайде конкурента):
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor" "+$armor"
Тогда игра подставляет актуальное значение бонуса и рисует его как “стат” в подсказке.
Какие специальные коды можно использовать для отображения характеристик
В подсказках часто применяются “встроенные” метки для статов. По материалам конкурентов, встречается такой набор:
+$mana— мана (количество)+$health— здоровье+$armor— броня+$damage— урон+$str— бонусная сила+$int— бонусный интеллект+$agi— бонусная ловкость%+$mana_regen— реген маны в процентах+$hp_regen— регенерация здоровья+$move_speed— скорость передвижения%+$move_speed— скорость передвижения в процентах+$all— ко всем атрибутам+$evasion— шанс к уворотам+$attack— скорость атаки+$spell_resist— сопротивление магииLIFESTEAL— лайфстил
Практический совет: начинайте с 2–3 статов, которые нужны именно вашему предмету. Так проще понять, что подсказка действительно “подхватывает” переменные, а не выводит мусор.
Примечания Alt и история предмета
UI Dota умеет показывать доп. текст при зажатой клавише Alt и отдельную историю.
Примечания Note0
Ключ формата:
"DOTA_Tooltip_Ability_item_ИМЯ_объекта_Note0" "текст"
Например:
"DOTA_Tooltip_Ability_datadriven_skeleton_Note0" "При зажатом альте"
История Lore
Ключ формата:
"DOTA_Tooltip_Ability_item_ИМЯ_объекта_Lore" "История"
Пример:
"DOTA_Tooltip_Ability_datadriven_skeleton_Lore" "Маленькие буквы снизу"
Правильная последовательность построения ключей
Чтобы не запутаться, держите “конструктор” в голове:
| Что вы добавляете | Какой суффикс/часть ключа |
|---|---|
| Название | базовый ключ без _Description и без бонусов |
| Основное описание | _Description |
| Бонусы | _bonus_ИМЯ_ПЕРЕМЕННОЙ |
| Alt примечание | _Note0 |
| Lore история | _Lore |
А главное правило для бонусов:
Имя переменной должно совпасть с тем, что написано в
AbilitySpecial.
Автоматическая локализация через $ и почему это важно
Смысл $ в том, что игра не требует от вас вручную вписывать числа. Вместо этого вы “говорите”:
“вставь значение соответствующей переменной и красиво отобрази его”
По этой причине в конкурирующих примерах используется именно форма "+$armor".
Таблица примеров ключей и результата
| Вы ввели в локализации | Что увидит игрок |
|---|---|
" ..._Description" "..." |
основной текст подсказки |
" ..._bonus_armor" "Bonus armor:" |
подпись без автоподстановки числа |
" ..._bonus_armor" "+$armor" |
автоподстановка значения бонуса и подсветка как стат |
" ..._Note0" "При зажатом альте" |
текст под Alt |
" ..._Lore" "История..." |
история в Lore-секции |
Ограничения на количество строк в описании способности
Практическая проблема из обсуждений: при слишком большом числе строк/вариантов подсказка может не показывать часть текста (резервируется место, но видимых строк меньше ожидаемого).
Почему так бывает:
- UI подсказок имеет ограничение на количество элементов
- строки распределяются по заранее предусмотренным “слотам”
- при превышении лимита часть ключей может просто не попасть в отображение
Что делать, если “строки не видно”
- Уменьшайте число параметров в одной способности: объединяйте похожие варианты в один текст.
- Делайте отдельные подстроки только для ключевых порогов.
- Проверяйте, что ключи названы ровно (ошибка в идентификаторе — и слот “не наполняется”).
Пользовательские переменные для описания предметов
Идея простая: вы можете задать переменные, чтобы затем вывести их через автоматическую подстановку в ключах.
Логика “конвейера” такая:
1) переменная существует в коде/контексте способности
2) вы используете её в локализации в форме, которую понимает система автозначений (через $-механизм)
В обсуждениях также встречался вариант с “кастомной переменной”, логика которого та же: вы подставляете то, что соответствует переменной, но для корректной работы ключ должен быть построен правильно.
Мини-схема “как сделать описание с бонусами и Alt”
flowchart TD
A[Понять имя предмета/способности в коде] --> B[Открыть локализацию addon_english.txt или addon_russian.txt]
B --> C[Добавить ключ с названием]
C --> D[Добавить ключ _Description]
D --> E[В коде AbilitySpecial найти имена переменных bonus_...]
E --> F[В локализации создать строки _bonus_ИМЯ_ПЕРЕМЕННОЙ]
F --> G[В нужных строках использовать +$переменная для авточисел]
G --> H[Добавить Note0 для Alt]
H --> I[Добавить Lore для истории]
Про “как показывать ХП и ману в цифрах” в Dota
По поисковой фразе: «как сделать так чтобы в доте показывалось хп и мана в цифрах» — обычно это делается не правкой локализации, а через настройки отображения/встроенные UI-инструменты или модификации интерфейса.
Но если вопрос именно про ваш собственный мод/описания, важно разделять две вещи:
1) Локализация предметов и способностей отвечает за текст подсказок (описания, бонусы, Alt, Lore).
2) Цифры ХП/МП — это отображение состояния юнитов на экране (UI), и это не “включается” обычными DOTA_Tooltip_....
Поэтому для локализации “цифры ХП/МП” обычно не достигаются, а вот для отображения статов предмета — через коды +$health и +$mana в подсказках, где это нужно.
Частые ошибки и как их избежать
| Ошибка | Как выглядит | Почему так |
|---|---|---|
| Неправильный ключ | название/описание не появляются | префикс или идентификатор не совпал |
| Бонусы не подхватились | “Bonus armor:” без числа | вместо +$armor оставили только текст |
$ не работает |
в подсказке странные символы или пусто | переменная не соответствует ожидаемой системе автоподстановки |
| Alt пустой | Alt ничего не показывает | нет ключа _Note0 или имя объекта не то |
| Lore не появляется | нет истории | нет ключа _Lore |
Короткий итог
Чтобы подсказки в Dota 2 выглядели “как надо”, нужно:
- правильно составить ключи локализации вокруг имени предмета/способности
- добавить _Description, строки _bonus_... и (при необходимости) _Note0 и _Lore
- для бонусов использовать переменные через +$..., чтобы числа подставлялись автоматически
Быстрый чеклист перед запуском в игре
- Имя предмета в ключе совпадает с именем из кода
_Descriptionнаписан с правильным суффиксом- Для каждого бонуса строка названа как
..._bonus_ИМЯ_ПЕРЕМЕННОЙ - Для автоподстановки использован формат
+$armor/+$manaи т.п. - Alt и Lore добавлены ключами
_Note0и_Lore - Не перегружаете подсказку слишком большим числом строк, иначе часть может не отображаться