Как открыть демку в доте
Реплеи в Dota 2 — Где сохраняются, как загрузить, как посмотреть и для чего это нужно
+ Содержание
Большинство матчей, проведенных в Dota 2, записываются и сохраняются на серверах игры. Причем получить доступ к их просмотру могут все желающие, у которых имеется номер нужного им матча. Подробнее о том, как просматривать реплеи матчей в Дота 2 и для чего это нужно делать, рассмотрим ниже.
Как загрузить реплей сыгранного матча в Dota 2
Загрузить реплей сыгранного матча в Доте 2 максимально просто и быстро. Сделать это можно всего в одно нажатие на кнопку « Загрузить запись ». Появляется она в течение нескольких минут после отыгранного матча во вкладке « Результаты » (можно перейти через игровой профиль).
После нажатия на эту кнопку начинается автоматическая загрузка. Далее, скачанный файл распаковывается в самой игре. Как только все действия будут завершены, игрок сможет начать просмотр реплея, кликнув по появившейся кнопке « Смотреть запись ».
Как посмотреть реплеи в Dota 2
Как уже было отмечено выше, для включения реплея собственного или чужого матча, необходимо просто загрузить его и нажать на кнопку « Смотреть запись ». После этого загружается реплей, где игрок получает доступ к следующему функционалу:
Помимо этого, отметим, что во время реплея вы можете самостоятельно прокликивать любых героев и крипов. Таким образом, можно смотреть их инвентари, а также текущие характеристики. В целом, система управления записями в Dota 2 довольно обширная и позволяет тщательно анализировать сыгранные матчи.
Куда сохраняются все скачанные реплеи в Dota 2
Все скачанные реплеи в Dota 2 сохраняются в папку с игрой на вашем компьютере. Просматривать их можно в любой момент. Для этого вам понадобится:
После этого загрузится реплей выбранного матча. Далее, вы сможете воспользоваться всеми функциями, которые были разобраны выше. А если захотите закрыть запись, то просто нажмите на крестик в правом верхнем углу экрана.
Как смотреть реплеи матчей других игроков в Dota 2
В Dota 2 можно просматривать не только собственные матчи, но и любых других игроков. Так, например, если нужный игрок находится в вашем списке друзей, то достаточно лишь перейти в его профиль, выбрать матч из списка и загрузить запись. Если же игрока нет у вас в друзьях, то для просмотра реплея вам необходимо узнать номер сыгранного матча.
Найти ID матча можно через различные сторонние сайты, на которых отображается статистика всех игр. Так, например, можно воспользоваться сайтом dotabuff. В этом случае вам понадобится:
После открытия нужного вам матча, в верхней части страницы будет отображаться её номер. Скопируйте его и вернитесь обратно в Dota 2. Далее, выполните следующие действия для включения реплея:
После этого в игре откроется нужный вам матч. Далее, останется лишь загрузить запись и можно будет приступить к просмотру реплея.
Для чего нужно смотреть реплеи в Dota 2
В первую очередь, просмотр реплеев сыгранных матчей необходим для того, чтобы вы могли учиться на своих и чужих ошибках. Для этого достаточно лишь открыть запись, найти нужный момент и проанализировать его в замедленном режиме. Так, вы быстро обнаружите все свои ошибки и сможете не допускать их в будущем. Помимо этого, реплеи дают доступ к следующим возможностям:
Помимо этого, игроки могут придумать и другие способы применения реплеев. Главное, не забывайте о том, как загружать их на свой компьютер и включать просмотр. А если возникнут трудности, то просто воспользуйтесь советами, представленными выше.
Автор гайда: tesar
play demo dota 2
08 Feb 2017 в 23:27
08 Feb 2017 в 23:27 #1
Как посмотреть демку через консоль в доте? через playdemo не включает
08 Feb 2017 в 23:29 #2
А куда ты кинул запись матча?
08 Feb 2017 в 23:30 #3
ну в папке replays
08 Feb 2017 в 23:31 #4
А нужно так:C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota
08 Feb 2017 в 23:31 #5
D:\Steam\steamapps\common\dota 2 beta\dota\replays по такому пути все реплеи лежат же, не?
08 Feb 2017 в 23:33 #6
Просто возьми реплей из папки Replays и выложи как я указал выше и пропиши в консоле и будет тебе счастье.
08 Feb 2017 в 23:34 #7
у меня на диски С нет папки стим
08 Feb 2017 в 23:35 #8
Ну я пример привел)у тебя может быть на другом,но суть одна)
08 Feb 2017 в 23:36 #9
playdemo цифры правильно?
А вот если я был обсом в лобби, можно ли в файлах игры найти как-то реплеи?
08 Feb 2017 в 23:40 #10
Вытащи свой реплей из папки replays и положи в папку Steam\steamapps\common\dota 2 beta\dota
дальше в доте прописываешь «playdemo name» (name название реплея),по идеи когда ты вбиваешь первое слово своего реплея то должно высветиться полное название.
Как посмотреть свою и чужую игру в Dota 2
Сейчас на Youtube пользуются популярностью ролики, снятые с игр, с пабликов профессиональных игроков. Из известных – на ум приходят Dota 2 pro gameplay и top mmr dota 2. Наши парни из Аналитики ошибок – тоже берут игры профессиональных игроков и комментируют игр. Но жаде для себя посмотреть несколько пабликов профессионала – дело полезное. А сделать это – можно, не выходя с игры. И сейчас мы научим вас это делать.
Как посмотреть свою игру в Dota 2
Просмотр своих игр – это очень полезная вещь, для общего поднятия скилла. Вам будет доступна карта полностью, и вы будете видеть свои ошибки и ошибки ваших теммейтов. Т.е., вы проанализируете собственный матч, сделаете выводы, а уже в следующей игре – постараетесь не допускать подобных ошибок, тем более, если вы тренируете какого-то одного персонажа.
Давайте разберем все возможные ситуации, связанные с просмотрами. Итак, если вы хотите просмотреть свои матчи, то вам будет нужно:
Зайти в Dota 2, в главное меню.
Затем нужно кликнуть на свой профиль.
На скрине выше – вы видите выделенный плюсик. Кликнув на него – вы увидите все ваши последние матчи.
Кликаете на любой матч. Внизу будет кнопка загрузить. Загружаете матч, после чего вы сможете его рассмотреть.
Обратите внимание, что под надписью загрузки – имеется номер матча. Запомните данный момент – ниже мы об этом еще расскажем.
Теперь, что касается номера. Если вы не знаете, то загрузить пользовательский матч – невозможно, но посмотреть – пожалуйста. Для этого – запомните номер игры, а после – вбейте его в поисковике и вам выбьет нужную игру. Такая же схема действует и с чужими играми.
Как посмотреть чужую игру в Dota 2
Как мы уже сказали ранее, чтобы посмотреть чужую игру – нужно знать номер матча. А найти его можно на https://ru.dotabuff.com
Вот так выглядит главная страница сайта. Допустим, вы хотите посмотреть матч игрока Liquid – Миракла. Вверху – находим пункт «игроки». Кликаем на него.
Открывается такая вот табличка. Как видите – Миракл первый в списке. Кликаем на его ник.
Так будет выглядеть его профиль на Дотабаффе. Внизу – видим последние матчи. К примеру, выберем последний, где Миракл играет на Бристлбеке. Кликаем на игру.
В верхнем левом углу – вы увидите номер матча. В нашем случае – это турнирная игра против OG под номером 4986461644. Копируем этот номер.
Заходим в Dota 2. Вверху, справа от значка Доты – обратите внимание на строчку. Там 5 пунктов, но вам нужен будет просмотр. Заходите туда. Под этой строчкой – откроется еще 1. Выбираете пункт записи.
После этого – в правом верхнем углу вы увидите поисковик. В него и вставляете номер игры.
И все. Жмете поиск и открывается та самая игра Liquid против OG, кстати, не самая удачная для Миракла.
Если вы хотите посмотреть свой матч – то проблем с этим не возникает вообще, т.к. история игр берется за довольно большой промежуток времени.
Ну а если вы хотите просмотреть чьи-то игры (например, нового тиммейта, чтобы понять, на что он способен в игре и стоит ли его принимать в команду) – то на Дотабаффе забиваете в поиск его никнейм, открываете его профиль, выбираете номера игр, которые вас интересуют, а после – копируете их в просмотры Dota 2 и уже более детально анализируете матч. Именно так и поступают ютуберы, выкладывающие игры профессиональных игроков.
Вот и все загвоздка, дорогие читатели, удачи вам и приятных просмотров.
Как посмотреть демку в доте
Естественно в доте посмотреть реплей нельзя, кому это вообще может понадобиться?
Это архив. Распакуй демку в папку где архивы игры лежат (steamapps\common\dota 2 beta\game\dota)
И потом в консоли playdemo название_демки
ниче не понял. просто вставь в дотатв айди матча и усе.
Это архив. Распакуй демку в папку где архивы игры лежат (steamapps\common\dota 2 beta\game\dota)
И потом в консоли playdemo название_демки
Я кинул в папку replays. Файл называется 4405643261_745856641.dem.bz2
upd. Также кинул в папку dota. Попробовал все варианты. Дота 2 бета, игра всё ещё на стадии разработки
Как посмотреть чужую игру в Dota 2
Вот так выглядит главная страница сайта. Допустим, вы хотите посмотреть матч игрока Liquid – Миракла. Вверху – находим пункт «игроки». Кликаем на него.
Открывается такая вот табличка. Как видите – Миракл первый в списке. Кликаем на его ник.
Так будет выглядеть его профиль на Дотабаффе. Внизу – видим последние матчи. К примеру, выберем последний, где Миракл играет на Бристлбеке. Кликаем на игру.
В верхнем левом углу – вы увидите номер матча. В нашем случае – это турнирная игра против OG под номером 4986461644. Копируем этот номер.
Заходим в Dota 2. Вверху, справа от значка Доты – обратите внимание на строчку. Там 5 пунктов, но вам нужен будет просмотр. Заходите туда. Под этой строчкой – откроется еще 1. Выбираете пункт записи.
После этого – в правом верхнем углу вы увидите поисковик. В него и вставляете номер игры.
И все. Жмете поиск и открывается та самая игра Liquid против OG, кстати, не самая удачная для Миракла.
Если вы хотите посмотреть свой матч – то проблем с этим не возникает вообще, т.к. история игр берется за довольно большой промежуток времени.
Ну а если вы хотите просмотреть чьи-то игры (например, нового тиммейта, чтобы понять, на что он способен в игре и стоит ли его принимать в команду) – то на Дотабаффе забиваете в поиск его никнейм, открываете его профиль, выбираете номера игр, которые вас интересуют, а после – копируете их в просмотры Dota 2 и уже более детально анализируете матч. Именно так и поступают ютуберы, выкладывающие игры профессиональных игроков.
Как скачать свой или чужой реплей в Dota 2
Итак, свою игру вы можете посмотреть в любой момент, всего лишь зайдя на собственный профиль. Справа от аватарки вы увидите, ваши последние игры. Кликните на плюсик, и у вас откроются все ваши игры, начиная с последней.
Все, что вам будет нужно – этой найти нужную игру в списке. Там вы можете непосредственно найти запись, а можете просто взять номер игры (ниже мы расскажем, зачем это нужно).
Что касается игр других игроков, то для того, чтобы скачать реплей, вам нужно знать номер игры. Например, мы хотим посмотреть игру Миракла. Находим его на дотабаффе и видим, что одна из последних его игр была турнирной, против Na`Vi.
Видим номер матча, в левом верхнем углу страницы. Копируем его, после чего заходим в Dota 2, в раздел просмотр. Тут вам понадобится пункт «записи». В правом верхнем углу вы увидите окно поиска.
В окно поиска вы и должны будете вставить номер матча, который хотите скачать. Ну а внизу, над кнопкой играть, вы также увидите «загрузить запись», которую вы и видели в своих играх. Скачиваете игру аналогичным образом и занимаетесь своими делами.
Однако, если вам необходим именно файл с реплеем, то вам нужно будет найти его в корневой папке с игрой. Для этого перейдите по адресу:
C:\\Program Files\Steam\steamapps\common\dota 2 beta\dota\replays
Как посмотреть свою игру в Dota 2
Просмотр своих игр – это очень полезная вещь, для общего поднятия скилла. Вам будет доступна карта полностью, и вы будете видеть свои ошибки и ошибки ваших теммейтов. Т.е., вы проанализируете собственный матч, сделаете выводы, а уже в следующей игре – постараетесь не допускать подобных ошибок, тем более, если вы тренируете какого-то одного персонажа.
Давайте разберем все возможные ситуации, связанные с просмотрами. Итак, если вы хотите просмотреть свои матчи, то вам будет нужно:
Зайти в Dota 2, в главное меню.
Затем нужно кликнуть на свой профиль.
На скрине выше – вы видите выделенный плюсик. Кликнув на него – вы увидите все ваши последние матчи.
Кликаете на любой матч. Внизу будет кнопка загрузить. Загружаете матч, после чего вы сможете его рассмотреть.
Обратите внимание, что под надписью загрузки – имеется номер матча. Запомните данный момент – ниже мы об этом еще расскажем.
Теперь, что касается номера. Если вы не знаете, то загрузить пользовательский матч – невозможно, но посмотреть – пожалуйста. Для этого – запомните номер игры, а после – вбейте его в поисковике и вам выбьет нужную игру. Такая же схема действует и с чужими играми.
Как посмотреть свою и чужую игру в Dota 2
Сейчас на Youtube пользуются популярностью ролики, снятые с игр, с пабликов профессиональных игроков. Из известных – на ум приходят Dota 2 pro gameplay и top mmr dota 2. Наши парни из Аналитики ошибок – тоже берут игры профессиональных игроков и комментируют игр. Но жаде для себя посмотреть несколько пабликов профессионала – дело полезное. А сделать это – можно, не выходя с игры. И сейчас мы научим вас это делать.
Реплеи в Dota 2
В Dota 2 существует возможность смотреть повторы матчей. Такие повторы называют специальным термином «реплей», а посмотреть их можно в клиенте игры.
Для того, чтобы посмотреть свой матч, его нужно скачать. Необходимо перейти в свой профиль и выбрать нужный матч, а затем перейти на его страницу. В правой нижней части экрана вы увидите кнопку скачать реплей — дождитесь, пока загрузится повтор, и можете приступить к просмотру.
Реплеи матчей про-игроков в Dota 2 также можно найти — для этого вам лишь нужно знать ID матча. Как его узнать? Для этого найдите нужного киберспортсмена на Dotabuff, выберите любой матч и вместо его названия будет код из десяти цифр — это и есть ID.
Патруль в Dota 2; Быстрый гайд
Не так давно в Dota 2 появилась функция « Патруль », которая была создана специально для того чтобы игроки могли лично отслеживать различные нарушения в матчах и выдавать свои вердикты. Таким образом, данная система позволяет избавляться от читеров и руинеров. Подробнее же о том, как воспользоваться ей, кому она доступна и что можно получить за участие в патруле, расскажем ниже.
Формат DEM особенно популярен в среде геймеров. Файл DEM отвечает за хранение видеофрагмента какого-либо шутера (например, DOOM, Quake или Counter Strike), созданного в процессе прохождения игры. Генерация файла с расширением DEM возможна как в случае одиночной, так и многопользовательской сетевой игры. Таким образом, любой пользователь может легко поделиться видеозаписью с другом для пересмотра игрового фрагмента.
Важным моментом является то, что воспроизвести видео с файлом DEM возможно только на той игровой платформе, где производилась генерация файла. Другими словами, видеоролик, созданный в Counter Strike, не сможет быть просмотрен в среде Quake или Unreal Tournament.
Программы для открытия DEM файлов
Для воспроизведения файла с расширением DEM следует переместить его в папку, где производилась установка той или иной игры. Далее следует запустить игровое приложение, перейти в окно консоли и ввести в командную строку “viewdemo demoname” (где demoname – имя расширения).
Есть и универсальная программа, способная воспроизвести DEM файл независимо от игровой платформы, где была реализована его генерация.
VirtualDub – средство для просмотра и конвертации формата DEM в традиционные расширения AVI, MP4 или MOV, которые могут быть воспроизведены практически на любом стандартном Windows Media Player.
Среди самых популярных игровых платформ (они же браузеры DEM файлов), можно отметить:
Следует отметить, что DEM файл, сгенерированный на более поздней версии игрового приложения, не сможет быть воспроизведен на более ранней версии игры.
Конвертация DEM в другие форматы
Качественная конвертация DEM видеоролика в форматы AVI, MP4, MOV или FLV возможна с помощью плагина VirtualDub. Функционирует VirtualDub на платформе ОС Windows, неприхотлив к использованию и не требует больших системных ресурсов.
При конвертации DEM файла в другие видео-форматы пользователю предлагается возможность выбрать параметры разрешения, частоты кадров, размерности.
Почему именно DEM и в чем его достоинства?
Несмотря на то, что производитель периодически производит обновление своих игровых платформ, DEM формат не теряет свою популярность. Применение игровых видео повторов уже прочно вошло в традиции любого геймера и имеет множество поклонников по всему свету.
Содержит данные карты с информацией о возвышенностях. Применяется в US Geological Survey.
Чем открыть файл в формате DEM (Digital Elevation Model)
Файл повтора игры, создаваемый различными играми-шутерами от первого лица и наиболее популярной Counter-Strike (поддерживается игровым механизмом Source от Valve). Хранит видео-запись с угла зрения одного персонажа в одиночной или многопользовательской игре. Применяется для того, чтобы делиться повторами игры с другими.
Чтобы воспроизвести файл Counter-Strike DEM в Windows, сперва разместите его в директории инсталляции cstrike. Затем откройте Counter-Strike и консольное окно. В данном окне введите viewdemo demoname, где «demoname» — название файла без расширения «.dem».
Файлы DEM применяются также в Hexen II, Quake и Unreal Tournament. Но воспроизводить файлы можно только в тех играх, в которых они были созданы.
Чем открыть файл в формате DEM (Video Game Demo File)
Почему не получается отправить подарок другу?
Если во время выбора друга, его не получается найти в списке, то на это есть свои причины.
№1. Друг был добавлен недавно
Если игрок добавил нового пользователя в свой список друзей, то для обмена подарками, нужно подождать тридцать календарных дней. Время добавления учитывается. Посмотреть сколько времени друг добавлен в Steam можно следующим способом:
Так что если пользователь совсем недавно был добавлен, то нужно будет подождать месяц.
№2. Заблокирован обмен
Если пользователь не привязан Steam Guard, номер телефона или же выдана блокировка на обмен, то подарки дарить не получится. Если проблема именно в привязке данных, то нужно все это исправить и подождать семь дней.
Блокировку на обмен, она же Красная Табличка, снять не получится. Вещи заблокированы и ничего с ними нельзя сделать. Оспорить это не получится.
№3. Недавно был изменен пароль
Смена пароля также сопровождается блокировкой обмена в целях безопасности. Придется ждать семь календарных дней для того, чтобы сделать кому-то приятное. Делать ничего не нужно. Время все сделает самостоятельно.
Валоранту нужен «патч» с экономикой
Обновление кредита на убийство для SMG и дробовиков сделает экономику Valorant более интересной, введя в игру такое понятие, как анти-эко.
Такой фикс добавит более глубокий уровень стратегии к экономике CS: GO, а также дает командам возможность вернуться в игру, если они смогут преломить ход противостояния с таким баем.
Как посмотреть чью-то игру
Изначально – вам нужно будет найти человека, чью игру вы хотите посмотреть. Например – Миракла. Находите его на DotaBuff – он там будет в топе игроков. Далее – заходите в игру, в пункт – «просмотр».
Там вы сможете найти нужную игру в поиске, вставив туда код игры. Тут же – вы можете посмотреть онлайн-игры. Практически всегда в ТОП попадают про-игроки, так что и отсюда вы вынесете много полезного.
Теперь – просто жмите в игре (или просмотреть игру, если хотите просмотреть матч по коду). И наслаждаетесь игрой профессионала.
Третья попытка — Hollow Knight
Несмотря на неудачу с главными киберспортивными играми, мы не отчаялись и постарались найти достойное применение Steam Link. Вскоре стало ясно, что оно все же есть — с телефона прекрасно можно играть в платформеры и другие аркады. Для эксперимента мы выбрали Hollow Knight.
Если вы не знакомы с игрой, это классический платформер, в котором вам нужно прыгать по этим самым платформам и с помощью одной-единственной атаки рубить полчища врагов. Еще там есть магия, но для теста Steam Link мы решили ограничиться лишь прыжком и рукопашной атакой, собрав на экране оверлей с крестовиной и двумя кнопками.
Стандартные проблемы мобильного гейминга никуда не делись — без тактильной отдачи контролировать героя бывает трудно, да и по кнопке всегда можно ненароком промазать. И все же такие же претензии можно предъявить любому платформеру, выпущенному в App Store. Вот только со Steam Link вы больше не ограничены ресурсами телефона и можете запускать на нем самые «графонистые» из игр.
Как показал наш первый опыт обращения со Steam Link, у программы есть потенциал. Она по-прежнему не оптимизирована для большинства игр (и речь тут не только об управлении — например, в Hollow Knight у нас внезапно отвалился звук). Однако она стабильно работает и действительно позволяет без задержек и лагов выводить на телефон самые разные тайтлы. По слухам, уже 21 марта Valve расскажет о том, как будет далее развиваться сервис. Ждем с нетерпением!
Автоматизация рутины в DotA 2 или читы?
Привет, в этой статье будут рассматриваться легальные способы получить преимущество перед противником с помощью таких простых средств, как NodeJS, Electron и React, при этом обходя бан стороной. На эксперименты меня вдохновила другая статья Визуализация времени возрождения Рошана и желание автоматизировать часть рутины. Стоит заметить что сейчас будут рассматриваться инструменты не модифицирующие каким либо нечестным способом игру — все API открыты, данные получены честным путём, никакого вмешательства в процесс игры не происходит. Под катом будет несколько картинок и немного кода.

Весь исходный код расположен на Github, с ним можно ознакомится, лайкнуть, форкнуть, предложить изменения. Писал его левой пяткой правой ноги, прямо во время игры, поэтому просьба не ругаться сильно за стилистику.
Если честно, то я ничего нового не придумал, уже всё до меня придумали и даже есть готовые приложения, которые примерно тоже самое умеют.
Дальнейшими знаниями можно пользоваться, как во имя добра — делать инструменты для студий аналитики, киберспорта, стримов Twitch, тренировок команд и т.д., так и во имя зла — написания читов, выбор за вами.
Disclaimer: Автор не несёт ответственности за применение вами знаний полученных в данной статье или ущерб в результате их использования. Вся информация здесь изложена только в познавательных целях. Особенно для компаний разрабатывающих MOBA, чтобы помочь им бороться с читерами. И, естественно, автор статьи ботовод, читер и всегда им был.
В итоге созданные инструменты умеют:
Отслеживать игровое время
Воспроизводить звуки до начала важных событий
Отображать текущие показатели золота (GPM)
Отображать статистику по герою из открытого источника OpenDota.com
Отслеживать время возрождения рошана
Собирать данные о любимых героях противника
Какие ещё можно сделать улучшения:
Отображать историю средних показателей противника
Добавить ретроспективный анализ игры по её окончанию
Добавить больше звуковых/визуальных уведомлений
Дать возможность отслеживать «ультимейты»
Добавить больше визуальных данных во время просмотра киберспортивных игр
Добавить подробнейшие руководства прямо во время игры
С чего всё начиналось
У Dota 2 неожиданно есть GSI (Game State Integration), который придумали для интеграции сторонних приложений / оверлеев (наложение картинки поверх игры) и синхронизации этих самых оверлеев с игрой в реальном времени. Это говорит о том, что можно получать состояние игры и дальше что — то с ним делать. Для интеграции с NodeJS есть готовое решение в виде библиотеки. Для работы GSI сервера, в первую очередь, нужно создать файл конфигурации в «Steamsteamappscommondota 2 betagamedotacfg», в этом файле прописываются настройки, например, такие:
После перезапуска игры, подтягиваются новые настройки и запускается сервер GSI, который будет отправлять данные по HTTP на localhost:3001, на котором и поднимается NodeJS сервер:
Собственно, после запускается код слушателя, который как раз и позаимствован из сторонней библиотеки NodeJS
Сервер получения данных об игровом мире готов.
Данные, которые не дают преимущества
Во время рейтингового матча в Dota 2, GSI отдаёт обрезанные данные, из полезного доступно
Прошедшее количество секунд с начала игры
Игровое время в секундах
Пример данных (в игре запущена карта с демо режимом)
Если просматривать реплей или чужую игру, то доступно гораздо больше информации — вся она описана тут. Что-ж, самая важная информация нам уже доступна — GPM, игровое время, Id героя.
После получения информации мы должны с ней что — то поделать, например, отрисовать или предупредить о наступившем моменте в игре.
UI, Оповещения, Electron
Для UI решено было использовать Electron и внутри этого электрона запускать React. Идея заключается в том, чтобы рисовать Electron приложение поверх игры (оверлей). Исходник оверлея можно найти тут, немного задержимся на нём — есть пару особенностей.
Для начала нужно настроить окно, в котором будет всё отображаться:
Сначала у меня не получалось поверх доты что — то вывести, пока не наткнулся на настройку в файле machine_convars.vcfg (Dota 2) под названием «dota_mouse_window_lock», которую нужно выставить в «0», а в самой игре (либо в тех же файлах конфигурации) настроить режим отображения в окне без рамки.
UI написан с использованием React, поэтому решено его было загружать прямо с dev сервера разработки (да, я ленивый):
Если dev сервер не успел загрузиться, то мы попробуем ещё разок через 3 секунды, вот для этого и нужен setTimeout.
Всё, с overlay закончили, теперь UI часть.

Теперь, когда есть все данные на фронте, можно написать хук для звуковых оповещений, что пора бы пойти (за 30 секунд до начала оповещает) забрать руны богатства, появляющиеся на каждой минуте кратной пяти (5, 10, 15, 20 минута):
Запись о последнем воспроизведении (setLastIntervalPlay) нужна чтобы не повторить оповещение случайно дважды.
И вот уже в игре одно преимущество, может быть оно несущественное, но как мне кажется неплохо управляет вниманием команды. Что — ж можно пойти дальше и сделать такую же кнопку возрождения рошана, как из прошлой статьи:
Хук useRoshanSpawn для кнопки
С рошаном всё немного запутаннее, чем с рунами — он может возрождаться в интервале от 9 до 12 минут. То есть у него есть состояния:
Точно мёртв (прошло до 9 минут с момента смерти)
Он жив или мёртв (прошло от 9 до 12 минут с момента смерти)
Он точно жив (прошло свыше 12 минут с момента смерти или это начало игры)
Поэтому у таймера есть три визуальных состояния:
Кнопка — для запуска таймера
Таймер тикает и сообщает о том что роша точно мёртв
Таймер тикает и сообщает о том что роша возможно жив, а возможно мёртв
И одно звуковое оповещение: Рошан будет в состоянии Шредингера через 30 секунд (то есть, и жив, и мёртв одновременно — пока не проверишь, не узнаешь). Также есть возможность сбросить таймер, ведь если мы проверили и узнали, что он жив — то таймер больше не нужен, а нужна кнопка о том чтобы сообщить о новой смерти рошана. Из минусов — иногда забываешь запускать таймер, было бы здорово в будущем это тоже автоматизировать.
Обогащаем данные
Ещё есть информация о том, на каком герое мы играем, поэтому пускай клиент запрашивает бенчмарки с сайта OpenDota.com и отображаем их, чтобы было понятно, на сколько мы отстаём от ритма игры. Я взял перцентиль 99%, то есть мне интересно, с какими показателями отыгрывается 1% лучших игр на том или ином герое.

Вся логика описана в хуке useBenchmark:
Узнаём предпочтения игрока
Было бы здорово получать информацию о том, на каких героях вероятнее всего будет играть противник, чтобы забанить, отобрать, законтрить их у него. Для этого нужно считывать память файл игры: «server_log.txt» и дальше распарсить его регуляркой, найти там ID ваших оппонентов, затем запросить историю игр в OpenDota или Dotabuff. У этого способа есть минусы — если оппоненты сделал свой игровой профиль скрытым в Dota 2, то никакой информации о нём вы не получите. Есть ещё один момент, который я забыл учесть — данные могут быть устаревшими, но в коде это легко исправляется добавлением фильтра по времени.
Attention: код по ссылке может совершить BSoD ваших глаз.
После, будет здорово это тоже вывести, поэтому решено было сделать отдельное React приложение на localhost:3002. Без дизайна выглядит оно совсем по страшному, но это уже был просто спортивный интерес и вообще я им не пользуюсь. В нём есть информация о прошлых десяти играх. Кнопочка «Ban this id», чтобы убирать друзей, с которыми играешь, из этой статистики и ссылка на Dotabuff профиль, если вдруг хочется подробностей.
Это приложение тоже можно было бы красиво оформить в виде Electron оверлея и запускать его на стадии выбора героев, но кажется я слишком много играю в игры и мало уделяю времени действительно полезным вещам 🙂
Что ещё пробовалось:
Пробовался DLL Injection из прошлой статьи и чтение памяти с помощью Rust, но там был большой изъян в том, что все найденные указатели на структуры данных жили до обновления игры, поэтому эта идея была заброшена.
Попытка создать сервис подбора героев на основе ML обучения по выгрузке игр из OpenDota.com или с тех же серверов Valve (провал — хотя мне кажется я просто не сумел правильно приготовить ML часть)
Парсинг Dota 2 реплеев — там не сложно, используется Protobuff и все структуры легко находятся на гитхабе. Вот только что дальше с этим огромным объёмом данных делать?
Вывод: интегрироваться с Dota2 не вызывает труда, можно делать быстрый анализ прямо во время игры, при просмотре киберспортивных игр можно сделать огромное количество красивого оверлея для Twitch стрима, также можно развивать эту тему в сторону ретроспективного анализа из реплеев, что скорее всего будет полезно профессионалам.
Надеюсь вам было интересно почитать про то, как я собрал на коленке читы (на самом деле хороший вопрос — читы это или нет?), да ещё и на JS, если есть орфографические или лексические ошибки, то пишите пожалуйста в ЛС, спасибо за внимание.



































/https://hb.bizmrg.com/cybersportru-media/55/55dff13f776b7e3ea8cdcc0fcc073be9.jpg)
/https://hb.bizmrg.com/cybersportru-media/c6/c66c69f16f4f287038632b2e0f2123cd.jpg)

