Содержание:

В Dota 2 лавки выглядят “как будто сами по себе”, но для модов это можно сделать по-другому. В этом материале разберём и базовые игровые “где что находится”, и как в кастомной карте создать кастомный магазин с файлом shops.txt, триггером и категориями предметов.


Боль читателя, который ищет “настройки магазина”

Представьте: вы сделали мод, поставили лавку, а предметы не покупаются, или покупаются не те. Или вы открываете игру и пытаетесь найти “настройки магазина” в интерфейсе, но там видите только общие параметры управления.

Чаще всего проблема одна из трёх:

  1. Вы ищете “настройки магазина” там, где их нет (в обычных настройках Dota 2 их нет как меню лавок).
  2. Для модификации не создан триггер магазина или не назначен правильный class trigger_shop.
  3. Ошибка в shops.txt: не тот путь, не то имя, не те категории, и поэтому игра не подхватывает список item’ов.

Где увидеть настройки магазина в самой Dota 2

В обычной Dota 2 “настройки магазина” — это не отдельный пункт с таблицей товаров. Обычно под этим понимают параметры управления магазином и кнопок покупки.

Как открыть настройки Dota 2

  1. Зайдите в главное меню игры.
  2. Нажмите на шестерёнку (обычно в верхнем левом углу).

После этого будет несколько разделов.

Разделы настроек

  • Управление
  • Настройки
  • Изображение
  • Звук

Для магазина важнее всего раздел Управление. Там можно настроить кнопки, которые отвечают за функции магазина, курьера и интерфейса, а также параметры применения предметов.


Что можно настроить в управлении магазина

В “Управлении” есть выбор типа применения, и это напрямую влияет на предметы и кнопки покупки.

Виды применения в Dota 2

Режим Что происходит простыми словами
Стандартное применение вы выбираете цель мышкой как обычно
Быстрое применение игра применяет “на курсор” без лишних подтверждений
Автоматическое применение действие происходит само, как только можно

Что важно помнить для “быстрого” и “умного”

  • Быстрое применение помогает быстро кидать предметы.
  • Умное применение на себя полезно, когда предмет/заклинание можно применять на героя: вы используете удобный способ выбора (через удержание Alt), и поведение становится логичнее.
  • Иногда режимы ограничивают друг друга, поэтому “умное применение на себя” — частый выбор для комфорта.

Полезные опции интерфейса в расширенных настройках

В расширенных настройках интерфейса/управления есть вещи, которые помогают и в закупке тоже: видимость радиусов, подсказки и т.п.

А вот два параметра, которые часто ищут и включают осознанно:

1) Отключить автоатаку

Опция из расширенных настроек позволяет выключить автоатаку через клавишу отмены.
Это удобно, когда вы точно контролируете героя и не хотите, чтобы он начинал “сам бить”, пока вы кликаете в магазин или по кнопкам предметов.

2) “Только одиночные игроки” в рейтинге

Если включить опцию только одиночные игроки, вы будете реже встречать команды (пати) — значит, в матчах меньше сюрпризов, а закупка и коммуникация проще.


Где на карте находятся лавки в Dota 2

Если ваша цель — не мод, а просто понять механику закупки, то лавки на карте распределены так:

Основная лавка

  • На союзной базе, рядом с фонтаном
  • Там продаётся большинство стандартных товаров

Потайная лавка

  • Рядом с лагерем древних крипов
  • С разных сторон карты это разные точки (рядом с берлогой Рошана для Света и в треугольной зоне около сложной линии для тьмы)

Боковая лавка

  • В лесных углах карты
  • Смысл — купить рядом с линией, не возвращаясь на базу

Как открыть доступ к лавке через консоль

Чтобы открыть окно боковой лавки через консоль:
1. Запустите игру с параметром -console
2. Откройте консоль
3. Введите команду:
- dota_show_sideshop


Что покупают в лавках и какие бывают “магические предметы”

Лавки — это место, где герой приобретает артефакт и расходники. Важно понимать категории:

Примеры по типу

Тип Что это значит
Расходуемые исчезают после использования (например, зелья)
Нерасходуемые остаются у героя весь матч (например, оружие/предметы с характеристиками)

В обычной игре есть разные классы предметов

С точки зрения стратегии вы ориентируетесь на способности героя: что усиливает его лейн, файт, защиту и командную синергию.


Игровые курьеры и их роль в закупке

Когда вы покупаете item в лавке, доставка выполняется курьером. Важно:
- у каждого члена команды есть свой курьер
- курьер становится сильнее с развитием (скорость и выживаемость)
- если курьера убили, он возрождается на базе

Для закупки это означает простую вещь: если курьер задерживается или умирает, вы фактически теряете темп покупки.


Как создать кастомный магазин в Dota 2 моде

Теперь к главному: кастомный магазин в моддинге Dota 2 — это не “меню настроек”, а связка объектов карты + триггер + файл со списком предметов.

Ниже — практическая схема “что сделать по шагам”.


Какие типы магазинов доступны для создания

В кастомном моде для shop type обычно используются только стандартные варианты. В гайдах встречаются три типа:

Shop Type Что означает на практике
Home если вы не в зоне триггера — предмет уходит в тайник (stash), если вы в зоне — в инвентарь
Side нужно быть рядом с магазином, иначе в тайник не положится
Secret тоже нужно быть рядом, и логика тайника не работает как в Home

Схема настройки кастомного магазина

flowchart TD
A[Создать объект dota_shop] --> B[Задать Shop Type]
B --> C[Создать область триггера]
C --> D[Назначить материал trigger]
D --> E[Добавить class trigger_shop]
E --> F[Указать тот же тип магазина]
F --> G[Создать shops.txt]
G --> H[Заполнить категории item]
H --> I[Собрать мод и проверить]

Шаг 1 Создайте объект магазина

  1. Создайте объект dota_shop (в редакторе карты обычно через добавление объекта).
  2. Поставьте его, где хотите (обычно модель магазины задают через World Model).
  3. Назначьте World Model — чтобы магазин выглядел как нужно.
  4. В свойствах найдите поле Shop Type и выберите один из типов: Home / Side / Secret.

Шаг 2 Создайте область триггера для магазина

Чтобы игрок мог покупать, нужна “зона активации”.

  1. Создайте область триггера (block/brush под триггер).
  2. Важно: сделайте её подходящей формы и размеров, чтобы совпадала с моделью магазина по логике.

Шаг 3 Назначьте материал для триггера

На блок триггера нужно поставить правильный материал:
- найдите материал с фильтром по слову trigger
- примените его на созданный блок


Шаг 4 Добавьте class trigger_shop к блоку триггера

На триггер-блок назначается класс:
- добавьте class
- задайте trigger_shop
- и поставьте тип магазина (Home/Side/Secret) так же, как вы задавали у dota_shop

Важно: если вы поставите другой тип, игроки будут покупать “не там” или с другой логикой, чем ожидается.


Где должен располагаться файл shop.txt для кастомного магазина

Ключевой момент: для мода файл со списком лавок обычно называется shops.txt и должен лежать в папке сценариев аддона.

Встречающиеся варианты путей зависят от версии, но общий принцип такой:

  • создаётся папка с scripts внутри аддона
  • файл лежит рядом с другими shop-скриптами
  • название для мода должно совпадать с ожидаемым форматом

В одном из гайдов давали ранний вариант, где путь указывали так:
- dota_ugc\game\dota_addons\ИМЯ_АДДОНА\scripts\shops

Также упоминали, что актуальный путь мог смещаться ближе к:
- dota_ugc\game\dota_addons\ИМЯ_АДДОНА\scripts\addon_...

Но в любом случае правило простое:

важнее всего совпасть с тем, как движок ищет shops.txt в вашем аддоне и совпадает ли название с ожидаемым форматом.


Можно ли создать только один shops.txt на весь мод

В обсуждениях по моддингу встречается практический ответ:
- обычно делают один shops.txt на мод
- это удобнее и снижает риск “не подхватилось”

То есть идея такая: один общий файл с секциями категорий, а триггеры на карте выбирают, какие секции показывают покупателю.


Содержимое shops.txt для разных категорий товаров

Ниже — пример структуры, где у каждой категории свой блок, а внутри задаётся item через item_name-строку (в примере пишут ITEM_NAME как заглушку).

"dota_shops"
{
  "consumables"
  {
    "item"   "ITEM_NAME"
  }

  "attributes"
  {
    "item"   "ITEM_NAME"
  }

  "weapons_armor"
  {
    "item"   "ITEM_NAME"
  }

  "misc"
  {
    "item"   "ITEM_NAME"
  }

  "basics"
  {
    "item"   "ITEM_NAME"
  }

  "support"
  {
    "item"   "ITEM_NAME"
  }

  "magics"
  {
    "item"   "ITEM_NAME"
  }

  "defense"
  {
    "item"   "ITEM_NAME"
  }

  "weapons"
  {
    "item"   "ITEM_NAME"
  }

  "artifacts"
  {
    "item"   "ITEM_NAME"
  }

  "sideshop1"
  {
    "item"   "ITEM_NAME"
  }

  "sideshop2"
  {
    "item"   "ITEM_NAME"
  }

  "secretshop"
  {
    "item"   "ITEM_NAME"
  }
}

Как понимать категории в этом файле

  • consumables, attributes, weapons_armor, misc — это группы для разных типов покупки
  • basics, support, magics, defense, weapons — часто выглядят как уровни/линии выбора
  • artifacts — то место, где лежат “вещи поважнее”
  • sideshop1, sideshop2, secretshop — страницы/типы для соответствующих лавок

Как добавить предметы в кастомный магазин

По сути добавление сводится к двум действиям:

  1. Найти правильное имя item (строку item_name для нужного предмета)
  2. Вставить его в нужный блок категории в shops.txt

Проверка обычно такая:
- вы меняете shops.txt
- пересобираете карту/мод
- подходите в зону триггера
- проверяете список покупки


Можно ли создать свои вкладки в магазине Dota 2

По данным из обсуждений и гайдов, на практике “самостоятельно новые вкладки” обычно не получается добавить: доступна логика стандартных вкладок/страниц (например, sideshop1/sideshop2/secretshop и стандартные категории).

Поэтому правильная стратегия такая:
- не пытаться придумать “новую вкладку”
- вместо этого заполнять существующие категории предметами


Как сделать так, чтобы предметы, которых нет в кастомном магазине, отображались в игре

Тут важная идея.

В гайдах подчёркивают, что:
- предметы в Dota 2 “хранятся” в стандартном магазине
- кастомный магазин работает как точка входа в часть каталога
- когда вам “не нужны стандартные вещи”, их могут отключить/убрать из доступности

А что делать, чтобы они отображались? Практически:
- не убирать базовые предметы глобально
- корректно настроить shops.txt так, чтобы игра продолжала видеть нужные item’ы (или чтобы ваш мод не ломал стандартный каталог)

Если в вашем моде исчезают предметы — чаще всего причина в том, что вы переопределили/ограничили витрину так, что стандартные item’ы не попали в доступный набор.


Где в настоящее время должен располагаться файл shops.txt для мода

Так как версии редактора менялись, встречаются разные пути. Но общий “железный” ориентир из гайдов такой:
- файл должен лежать в scripts аддона
- название shops.txt должно совпасть с ожидаемым форматом
- расположение должно соответствовать тому, как мод грузит контент

Если вы видите, что магазин не обновился после правок, почти всегда дело в одном из:
- неправильный путь
- неправильное имя файла
- несоответствие ожидаемому формату секции


Где на практике чаще всего ошибаются

Ниже — мини-чеклист, чтобы не тратить часы на “почему не работает”.

Проблема Как проверить
Предметы не покупаются триггер создан и класс trigger_shop назначен на правильный блок
Покупается не там Shop Type у dota_shop и у триггера совпадает
Список пустой shops.txt не подхватился (путь/название/формат)
Порядок категорий странный проверьте секции вроде sideshop1, sideshop2, secretshop
Не те item’ы перепроверьте строку item и имя ITEM_NAME

Про season, league и series в контексте магазинов

Иногда моды делают под определённые “режимы” или события. В названиях материалов/конфигов вы можете встретить слова вроде season, league, series — но сами по себе они не заменяют dota_shops.
Главное — чтобы в вашем файле корректно были прописаны item-категории и триггеры на карте.


Итог

  • В обычной Dota 2 “настройки магазина” — это настройка управления и поведения предметов, а не отдельное меню товаров.
  • В моде кастомный магазин строится из dota_shop, триггера с материалом trigger, класса trigger_shop и файла shops.txt с секциями категорий и item’ами.
  • Если предметов “нет” или вкладки “не те”, почти всегда виноваты либо путь/формат shops.txt, либо несовпадение Shop Type у магазина и триггера.