Содержание:

В этом материале разберём, как добавлять название, описание, бонусы, примечания (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. Делайте отдельные подстроки только для ключевых порогов.
  3. Проверяйте, что ключи названы ровно (ошибка в идентификаторе — и слот “не наполняется”).

Пользовательские переменные для описания предметов

Идея простая: вы можете задать переменные, чтобы затем вывести их через автоматическую подстановку в ключах.

Логика “конвейера” такая:

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
- для бонусов использовать переменные через +$..., чтобы числа подставлялись автоматически


Быстрый чеклист перед запуском в игре

  1. Имя предмета в ключе совпадает с именем из кода
  2. _Description написан с правильным суффиксом
  3. Для каждого бонуса строка названа как ..._bonus_ИМЯ_ПЕРЕМЕННОЙ
  4. Для автоподстановки использован формат +$armor / +$mana и т.п.
  5. Alt и Lore добавлены ключами _Note0 и _Lore
  6. Не перегружаете подсказку слишком большим числом строк, иначе часть может не отображаться