# Использование поиска

Этот неофициальный справочник Star Conflict охватывает штатные файлы
Hub 1.99.0.167293. Он помогает определить предмет и найти его файл или поле
базы данных. Он не подключается к игровому серверу, не изменяет базу данных
и не обещает возможность выдачи предмета. Пакеты конфигурации сообщества могут
изменять содержимое вашего сервера.

## Найти корабль: Nebula GS

1. Откройте `site/index.html`. Выберите язык **Русский**, оставьте охват
   **Предметы учётной записи** и введите `Nebula GS`. Поиск принимает оба
   языка, отображаемые названия и внутренние коды.
2. Выберите строку корабля с названием нужного варианта. Откройте её щелчком
   или клавишами Tab и Enter. Проверьте тип `ship` и `defName`
   `Ship_Race1_S_T4_Glass`: одних названий может быть недостаточно.
3. Нажмите кнопку копирования `defName`. Если при открытии с диска буфер
   обмена недоступен, появится выделенное текстовое поле: нажмите Ctrl+C
   (Command+C в macOS).
4. Прочитайте или скопируйте `defined_in`:
   `star conflict\data\gamedata\def\ex\ship.lua:26711`. В библиотеке Steam
   откройте `steamapps\common\star conflict\data\gamedata\def\ex\ship.lua`
   в текстовом редакторе и перейдите к строке 26711. Номер учитывает все
   физические строки штатного файла, включая комментарии и пустые строки.
5. Прочитайте **Где встречается в файлах игры**. **Изменять здесь** — исходное
   определение для правки. **Сгенерированная серверная копия** в `cloud\data`
   перезаписывается `prepare_shared`; не изменяйте её вручную. **Используется**
   перечисляет предметы и таблицы, ссылающиеся на корабль, с указанием роли,
   например пресеты, использующие его как корабль. Проверьте их перед
   переименованием или удалением предмета.
6. Прочитайте **Где может храниться в базе данных**. Для корабля это
   `cosmosim_<WinUser>.accounts.vessels[].defName`; каждый корабль также
   получает ID экземпляра `vid` из коллекции `counters`. В таком пути `[]`
   означает элементы списка, где `defName` хранит код определения.
   Замените `<WinUser>` именем пользователя Windows локального сервера
   или используйте настроенное оператором имя базы данных. Скобки — условное
   обозначение, а не часть имени поля MongoDB. Проверьте наличие предмета
   по собственной резервной копии.

## Поиск, фильтры и ссылки

Текст сопоставляется с названиями, различающими варианты отображаемыми названиями
и `defName` без учёта регистра, включая кириллицу. Число сопоставляется с целым
`storeItemId`, `storeId` или `atlasId`, а не с частью более длинного ID.
Это три отдельные системы нумерации: одинаковые числа в разных столбцах
не обязательно обозначают один предмет. Фильтры типа и статуса названия
сужают те же результаты. Переключатель EN/RU меняет интерфейс и отображаемые
названия; поиск остаётся доступен на обоих языках.

Сначала показано не более 200 результатов. **Показать ещё 200** расширяет
список; счётчик всегда показывает общее количество совпадений. На узком экране
прокручивайте таблицу по горизонтали. Tab переводит фокус между элементами
управления; стрелки перемещают между кнопками предметов; Enter открывает
сведения, Escape закрывает. Скопируйте адрес вместе с частью `#`, чтобы
сохранить запрос, фильтры, язык и выбранный предмет. Файловый адрес работает
на вашем компьютере; другим пользователям передавайте часть с `#` после
адреса размещённого сайта.

Выберите **Все определения**, чтобы включить внутренние записи и записи
с неустановленной областью. Этот больший индекс загружается только по запросу.
Сведения загружаются по типу предмета. Для ID `224` изучите и
`Ship_Race3_L_T5_Mole`, и `Ship_Race2_L_T5_Protozan`. Каждый предупреждает
о совместном использовании ID и перечисляет другие определения с тем же
значением. Перед выбором ищите среди всех определений; используйте
**kind + defName**, а не первое совпадение ID.

## Значение статусов названия

| Статус | Как понимать |
|---|---|
| `exact` | В таблице текстов есть ключ, прямо совпадающий с кодом определения. |
| `own_field` | Собственное определение предмета указывает на текстовый ключ, записанный в одном из его полей. |
| `prefixed` | Известный шаблон добавляет префикс к коду определения для поиска текстового ключа. |
| `category` | Общий подтип объединяет родственные предметы и задаёт общее название. Для различения вариантов учитывайте технологический уровень, модификацию и ранги в отображаемом названии. |
| `derived` | Мы составили название из связанного идентифицирующего текста. Это наше составление, а не цитата игрового названия этого предмета. |
| `none` | Название не найдено. Ищите по `defName` или ID; вместо названия отображается код. |

Те же статусы сопровождают описания. Пустое описание может означать отсутствие
подходящего источника, превышение предела в 200 символов или художественный
текст (включая совпадения с ним). Текст пропускается целиком, а не обрезается.
В `Raises ... by $projectile_speed_mul$%.` часть `$...$` — необработанная
подстановка: игра заполняет её из определения. Эта выгрузка не предоставляет
значение. Пустое значение никогда не является оценкой нуля.

## Ограничения базы данных и диагностики

`[]` означает каждый элемент списка. `<>` обозначает наблюдавшийся числовой
слот во вложенном поле; подставьте слот своей записи. `iid` — ссылка на
экземпляр предмета внутри учётной записи, `vid` — на экземпляр корабля.
Они не определяют запись каталога: не вставляйте в них ID магазина.
`atlasId` относится к другой системе нумерации; упакованные слова атласа
не расшифрованы, поэтому нельзя считать каждое число в них ID предмета.
Сид-чип в `autogenItems[]` — экземпляр `{iid, upgradeLevel, rollData, exp}`,
созданный сервером; это не инструкция по правке.

Область `account` означает классификацию как предмета учётной записи,
а не разрешение или доказательство безопасности выдачи. `npc_or_internal`
означает внутреннее использование / NPC; `unknown` — классификация не установлена.
Раздел базы данных показывает, где могут храниться предметы этого типа;
строка «наблюдалось в образце базы данных» — лишь дополнительное подтверждение,
а её отсутствие ничего не доказывает.

Диагностические признаки — служебные коды, полученные при чтении определений.
Признак `no_name` может сохраниться, даже если название найдено другим правилом.
Словарь перечисляет все фактические типы и признаки. Названия записей вне
учётных записей менее подробны; всегда проверяйте их коды и статусы.

Названия и описания предметов © Gaijin Entertainment / Targem Games;
приведены в виде кратких цитат для идентификации. Неофициальный проект сообщества,
не связанный с Gaijin или Targem и не одобренный ими. Наша работа: CC0-1.0.
Авторы: jacek-mar / Hystrix. Штатные файлы, Hub 1.99.0.167293.

Исследование: [Неофициальный Star Conflict Server - Under the Hood](https://github.com/jacek-mar/sc-server-under-the-hood).
