Как услышать войс в демке CS2
Войс в демке CS2 через tv_listen_voice_indices: в каких демках есть голос, как работает маска слотов и как выделить одного игрока или сторону.
Голос в демке Counter-Strike 2 выключен, пока вы его не включите, а команда, которая его включает, - tv_listen_voice_indices - принимает число, а не просто "вкл". Об этом числе и речь. От него зависит, слышите вы всех, одну сторону или одного игрока.
Коротко: чтобы слышать всех, введите
tv_listen_voice_indices -1иtv_listen_voice_indices_h -1. Для конкретных игроков впишите в первую команду сумму значений битов их слотов, а_hоставьте на0. Чтобы не считать, загрузите демку в калькулятор войса для демок CS2, отметьте нужных игроков и скопируйте.
Шаг 1 - Возьмите демку, в которой реально есть голос
В демках матчмейкинга Valve и Premier нет голосовых данных, так что включать там нечего.2 Голос есть в демках FACEIT, ESEA и других серверов с SourceTV, а демки FACEIT скачиваются в формате .dem.zst. В статье разбор демки FACEIT объясняется, какой из двух файлов открывать и почему демка с комьюнити-сервера тоже может оказаться без звука.
Шаг 2 - Найдите слот игрока
Если вам нужны все, переходите к шагу 4. Чтобы выбрать конкретных игроков, нужны их слоты, а слоты никак не подписаны. Переберите их в консоли:
spec_player 1
spec_player 2
spec_player 3
и запомните, на каком появляется нужный игрок. Если загрузить демку в калькулятор, он прочитает всю таблицу слотов сразу и поставит рядом с каждым ник и команду - та же информация, только без кликов.
Шаг 3 - Превратите слот в число
Каждый слот стоит вдвое больше предыдущего, и вы складываете те, что вам нужны:
| Слот | Значение бита |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 4 |
| 4 | 8 |
| 5 | 16 |
| 6 | 32 |
Один игрок - это просто значение его слота: слот 3 - это 4. Несколько игроков - сумма: слоты 1, 3 и 4 дают 1 + 4 + 8 = 13. Наш конвертер систем счисления посчитает это из двоичной записи, если вам удобнее видеть биты.
Шаг 4 - Вставьте команды
Для всех обе половины получают -1:
tv_listen_voice_indices -1
tv_listen_voice_indices_h -1
Для конкретных игроков маска слотов идёт в первую команду, а _h остаётся на 0:
tv_listen_voice_indices 4
tv_listen_voice_indices_h 0
Строка с _h - не опечатка и не копия. Эти две переменные - младшая и старшая половины одного 64-битного битового поля: первая отвечает за слоты игроков с 0 по 31, вторая за слоты с 32 по 63.1 В 5v5 никто не сидит в слоте 32, так что при маске для конкретных игроков _h включать некого, а 0 просто сбрасывает то, что там осталось с начала сессии. -1 - исключение: оно заполняет все биты обеих половин, поэтому стоит в обеих строках.
Шаг 5 - Запустите демку
Вы услышите выбранных игроков, а если ставили -1, то всех. Обе переменные возвращаются к 0, когда CS2 закрывается, так что следующая сессия снова начнётся без звука; вот и всё объяснение фразы "вчера же работало".
Как услышать целую команду
Сложите слоты этой стороны и используйте сумму. В калькуляторе войса для этого есть кнопки Все T и Все CT - то, что нужно для нарезки хайлайтов или для разбора коллов одной команды посреди раунда без перекрёстной болтовни.
Если вместо этого вы пользуетесь алиасами voice_ct и voice_t из CS Demo Manager, учтите, что они привязаны к стартовой стороне каждого игрока, а не к той, за которую он играет сейчас.3 После смены сторон они означают противоположное тому, что вы имели в виду.
Выбрать пятёрку соперников - уже другая задача, потому что их голоса может не быть в файле: в статье как услышать вражескую команду в демке разобрано, что должен был разрешить сервер, чтобы он там оказался.
Почему число перестаёт работать
Слоты берутся из порядка сущностей игроков, записанного в демке. Это не порядок в таблице счёта, и у него нет причин совпадать в двух матчах с теми же десятью людьми. Внутри одной демки слоты фиксированы - файл каждый раз воспроизводится одинаково, - но сама маска не переносится. Собирайте её для каждой демки.
Что и говорит в пользу того, чтобы не собирать её вручную вообще: загрузите демку один раз в калькулятор войса для демок CS2, отметьте игрока, скопируйте две строки.
Если демка с FACEIT, есть путь ещё короче, а в статье как достать войс из демки матча FACEIT разобрано, какой из двух файлов, оставшихся после матча, вам нужен.
Когда с голосом разобрались, остаётся одна статья расходов при разборе демки - перемотка к нужному моменту. Если у вас тик, а не таймкод, в статье как перевести тик во время разобраны деление, путаница кадров и тиков, из-за которой чаще всего промахиваются, и порядок аргументов demo_gototick.
Источники
Каждое число в этой статье подтверждено источником ниже. Утверждения, которые не удалось подтвердить, убраны, а не смягчены.
- Рецензируемый источникb0ink
The verbatim convar descriptions, that tv_listen_voice_indices is a bitfield of player slots 0 to 31 and tv_listen_voice_indices_h the high 32 bits covering slots 32 to 63, and that both default to none.
- Рецензируемый источникAkiVer
That Valve matchmaking demos contain no voice audio data at all.
- ПервоисточникCS Demo Manager
The voice_ct and voice_t aliases, and that they refer to each player's starting side rather than their current one.
Темы
Инструменты из статьи
- Калькулятор войса для демок CS2 - Слушайте нужных игроков в демке CS2 или FACEIT - загрузите демку, игроки подставятся сами, а вы получите команды tv_listen_voice_indices.
- CS2 Demo Tick Calculator - Convert a CS2 demo tick to a timestamp and back, and copy the demo_gototick command that jumps there.
- SteamID Converter - Convert between SteamID64, STEAM_0:Y:Z, SteamID3 [U:1:W], account ID and profile URL.
Новые инструменты на почту
Новые инструменты и иногда подробный разбор, примерно раз в месяц. Без спама, адрес никому не передаем, отписка в один клик.