8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как начать играть в доту 2 стим

Dota 2 — это многопользовательская командная игра в жанре стратегия в реальном времени с элементами ролевой игры, продолжение известной карты DotA для игры Warcraft 3. В 2009 году компания Valve приняла на работу основного разработчика первой доты — IceFrog, а 13 октября 2010 года игра была анонсирована к выходу в 2011 году. Сейчас игра находится в стадии бета тестирования и чтобы начать играть в доту нужно получить специальное приглашение или купить ключ для игры в специальном магазине за 499 рублей. Так же вы можете попробовать купить ключ в доту с рук, если найдете у кого.

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

1. Создание учетной записи Steam

  • Переходим на сайт Steam в правом верхнем углу нажимаем Войти
  • На следующей странице в «>этом блоке нажимаем Создать аккаунт
  • Заполняем регистрационную форму всеми необходимыми данными и снова под формой жмем на Создать аккаунт
  • При заполнении поля Желаемое имя пользователя уделите ему должное внимание, т.к указанное имя будет постоянно привязано к вам на ресурсе Steam, в самой игре Dota 2 и в других играх.
  • Если все поля заполнены верно, то вас переадресует на главную страницу сайта Steam, а в правом верхнем углу страницы вместо кнопки «войти» будет отображаться ваше имя.

2. Установка программы Steam

После регистрации нужно установить на ваш компьютер саму программу Steam, через которую вы будете играть в доту стим. Для этого на главной странице Steam, в правом верхнем углу кликните на Установить Steam .

Вас переадресует на указанную выше страницу, на которой кликните на зеленую кнопку Install Steam Now , после чего на ваш компьютер будет загружен файл SteamInstall , который и установит Steam на ваш компьютер. Просто следуйте процессу установки, там ничего сложного. Обращаю ваше внимание, что играть в доту можно только в операционной системе Windows , хотя стим можно поставить и на Mac OS.

3. Как сменить язык в Steam

Если вы хотите сменить язык в стиме (а от того, какой язык у вас выбран в программе Steam, зависит какой язык у вас будет в игре Dota 2), то сделать это можно следующим образом. Чтобы поменять английскую версию программы на русскую, в верхнем меню Steam кликните на меню Steam — Settings — Interface и в новом окне вы увидите выбранный язык English, нажимаем на него и выбираем Русский. После этого вам нужно будет перезапустить программу.

4. Установка доты 2

Итак, вы зарегистрировали свой аккаунт в Steam, скачали сам Steam, теперь вам нужно установить доту 2. Чтобы начать играть в доту, в вашем стиме должны быть установлены:

  • Dota 2
  • Dota 2 Test

Кроме самой игры вам так же потребуется так называемый инвайт.

Чтобы запустить установленную игру, заходим в Steam > Библиотека > Dota 2 > Играть . Если это ваш первый запуск, то вам нужно будет выбрать насколько хорошо вы знаете игру:

  • Новичок: вы смутно представляете как играть в игры вроде Dota. В тех играх, где вы будете участвовать, будут доступны только те герои, за которых легче всего начинать игру. Уровни героев будут автоматически балансироваться
  • Игравший: вы неплохо представляете как играть в Dota. Вы можете чего-то не знать, но уже готовы вступить в бой.
  • Опытный: вы регулярно играете в Dota, и вам не нужно ничего объяснять. Выбор этого пункта позволит вам с большой вероятностью избежать игр с ограничением выбора героев и балансировкой их уровней.

  • Записи сообщества
  • Поиск

Читы для Dota 2 (Дота 2) | Скрытое комьюнити запись закреплена

Месяц активности подошел к концу

Мы решили перейти на новую систему учета активности, теперь в группе орудует обновленная версия бота.

Учитывается очень много аспектов вашей активности. За глупый спам, бот сам будет срезать карму. У всех она по стандарту 100%, но стоит вам достичь 50% и вы будете получать в двое меньше баллов активности. Если опуститесь ниже, бот перестает вас учитывать.
Показать полностью.

За хорошие действия вы получаете бонусы к карме, а какие именно останется секретом. У бонуса к карме нет ограничений, если ты будешь хорошим мальчиком, то спокойно за день можешь набивать баллов на дневной ключ.

Старый бот и магазин будут отключены через 2 дня, советую вам потратить все баллы сейчас. Новый магазин подключен, там есть подписки по 1-7-30 дней, а так же система ЛВЛ’ов.

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

Как и обещал эти 5 счастливчиков получают бета-ключи.

Спасибо за ваш актив

Читы для Dota 2 (Дота 2) | Скрытое комьюнити запись закреплена

7500 ММР

Все мы знаем про текущую систему борьбы против бустеров/смурферов у VALVE. Несколько лет комьюнити просило о том, чтобы VALVE решило вопрос «профессиональных» игроков на низких рейтингах. Для таких целей была придумана система Буст-стрика.
Показать полностью.
Эта система определяет игрока, который играет явно лучше текущего рейтинга, и присваивает ему за победу гораздо большее количество MMR. Следовательно игрок быстрее достигает своего рейтинга, и не мешает другим игрокам играться в песочнице.
Эта система так же зачастую зависит от вашего рейтинга (мейн профиля). Да, VALVE оставляет пометки в вашей системе, которые влияют на то, какой рейтинг вы получите или как быстро словите эту буст-систему.

На данный момент есть несколько абузов этой системы. Один из них это привязка и регистрация аккаунта на системах ХАЙ-ПТС игроков. Выполнив этот абуз вы гарантированно получите от калибровки порядка 5к

ммр. А если вы еще сможете показать себя на протяжении всех 100 часов игры, то порог рейтинга может достигать 7500

Тут есть много тонкостей, которые мы берем на себя. Нужно правильно чистить систему, и делать все по нашему гайду, который мы готовы любезно предоставить нашим покупателям. После выполнения, вы получите на руки готовый аккаунт с ВХС скрытым-ммр, который будет соответствовать аккаунту нашего Бустера 9000 ммр.

Мы завершили несколько проверок и нашли самые оптимальные и актуальные методы привязки. Как пример вам аккаунт который показан на скриншоте. Он выставлен у нас в группе, калибровка проделана через эту же систему абуза. Вы можете найти этот профиль в доте и убедиться, что это новый профиль DOTA 2, который с первой калибровки получил 7130 ММР!

На днях выставим аккаунт который был заабужен на 9100 ММР

Мы не знаем на сколько быстро VALVE смогут переработать эту систему, поэтому думаю всем желающим стоит поспешить на этот поезд буста MMR’a, такие фишки сейчас редкость, всего будет продано 50 привязок!

Затем будут уже готовые аккаунты с отыгранным абузом, на них так же нужно будет откатать 100 часов, но цена будет начинаться от 2500 рублей, т.к рейтинг на них будет существенно выше.

В первые дни будет скидка 50%, затем вернем полную стоимость товара, ибо это весьма времязатратная процедура!

Что не так?

Dota 2 если не умирает, то, очевидно, дряхлеет. Процессы ее развития замерли, многие разработчики-ветераны давно покинули проект (практически все, работавшие над оригиналом на Source), а сообщество завязло в обсуждении одних и тех же проблем.

Новый патч показал полнейшее бессилие Valve в работе над Dota 2. Игра стала еще хуже, сложнее и не гостеприимней. В отличие от других игр жанра, каждый патч в Dota 2 превращает карту в совершенно другую игру с иными правилами, причем совершенно внезапно и сразу.

Вместо инноваций – ввод старых механик из мертвых MOBA. Приятная боевая арена превратилась в нечто слишком сложное для массового игрока: тайминги, макро, абузы, отводы. 5 лет назад сложным героем считался персонаж, у которого больше 3 активных скиллов, а то порой и все 5? Держите таланты, новые предметы, слоты под предметы и осколки – теперь способностей станет еще больше.

Хочешь побеждать? Анализируй пики, заранее думай о сборке, иди выбивать лесные предметы, захватывай аванпост, смещайся на другую линию, блокируй крипов или пропусти их, если уверен, что блокирует соперник, изучай передвижения по карте, учи точки вардов, места для смоков и сканов, учись снимать варды, собирать предметы в нужном порядке, перекладывай их вовремя, учись прожимать глиф, ходить по лесу, заходить на хайграунд, собирать руны, сохранять позицию, использовать выкупы.

Мало? Контролируй курьера и носи себе расходники, сходи на Рошана и выполни еще миллион базовых геймплейных требований – невозможно играть без напряжения и концентрации в вечной погоней за эффективностью. И зачем, если мы даже еще героев не рассмотрели, которых в игре больше сотни?

Причем все знание о правилах Dota 2 остается строго в пределах сообщества – Valve упорно не желает создавать удобные гайды, тренировки и обучать новичков. Это невозможно – каждый год игра полностью меняется! И каждый год человек, последний раз игравший месяцев этак пять назад, становится новичком.

В итоге Dota 2: не развивается, а заново пережевывает идеи из уже мертвых игр или старых патчей; блокирует приток новых игроков и отпугивает ветеранов нагруженным геймплеем; каждый патч полностью лишен каких-либо актуальных инноваций, характерных новым играм – нет облегченных режимов, новых механик наград; разработчики игнорируют нужды сообщества, убирают старые функции и забывают про обещания.

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

Популярность

Обе эти игры являются мега-популярными, только каждая в свое время. Тем не менее, какой бы не была популярной Dota Allstars, а эта дисциплина никогда не превышала 100% лидера рынка киберспорта – CS 1.6 (LoL вышел уже позже, и его мы не берем в расчет, ибо его нужно равнять уже с Dota 2).

С Dota 2 все иначе. Valve сразу поступили умно, сделав своей основной рекламой турнир на 1 миллион долларов. В 2011 году это было нечто. О таких призовых дотеры могли только мечтать. Да, Dota 2 понравилась далеко не всем, но за такие бабки можно было «катать» в нее сутками, что, собственно, и случилось.

В итоге «реклама» в виде TI стрельнула более чем. Все профессиональные игроки мира сразу же перешли на нее. Более того, Dota 2 забрала практически всю аудиторию HoN (тот же Нотейл и компания ранних Fnatic) и часть аудитории LoL, являвшегося неоспоримым лидером Moba-игр. И теперь Dota 2 – это одна из знаменитейших киберспортивных дисциплин современности. Dota Allstars о таком даже мечтать не могла, ибо Blizzard не вкладывали в нее ни копейки.

Пожалуй, этого хватит, чтобы вы поняли глобальную разницу между 1 и 2 Дотой. На этом мы с вами прощаемся, всем удачи и до новых встреч.

Как работает система ММР и рангов в Дота 2? В настоящее время нет никакой официальной информации от Valve по этому вопросу, поэтому мы решили провести исследование на эту тему и написать этот гайд. Было решено разделить весь гайд по рейтинговой системе на пять частей. В первой части мы разберёмся в общем понятии ММР и Рангов в Dota 2.

p, blockquote 1,0,0,0,0 —>

Мы не гарантируем точность полученной информации, поскольку она неофициальна и многое может измениться в будущих обновлениях. Мы продолжим изучать рейтинговую систему в Дота 2 и добавлять актуальную информацию. Пишите в комментарии, если найдёте какие-то ошибки касательно ММР-системы!

p, blockquote 2,0,0,0,0 —>

Этот гайд предназначен для начинающих игроков в Dota 2.

p, blockquote 4,0,0,0,0 —>

Что такое ММР в Дота 2?

Давайте начнём изучения мира Рангов и ММР-системы в Дота 2, и найдём ответы на следующие вопросы:

p, blockquote 5,0,1,0,0 —>

  1. Что значит ММР?
  2. Зачем он вообще нужен?
  3. Почему Valve придумала эту систему?

Аббревиатура ММР пришла из английского языка и расшифровывается как Match Making Rating или Рейтинг Соответствия Матчей. Это одна из самых популярных особенностей в Dota 2: ММР – это величина, которая определяет ваш уровень игры и отличает вас от других игроков Дота 2. Минимальное значение этого показателя равно 1, а максимальное ничем не ограниченно.

p, blockquote 6,0,0,0,0 —>

Долгое время, в рейтинговой системе Dota 2 был только показатель ММР, но Valve добавила в игру систему Рангов, чтобы сделать рейтинг более понятным для большинства игроков. Опыт других игр также показывает, что многим игрокам более интересны визуальные элементы, отражающие их уровень игры, чем какие-то цифры.

p, blockquote 7,0,0,0,0 —>

Что такое ELO-рейтинг в онлайн-играх?

Вы могли слышать, что современная рейтинговая система в Dota 2 происходит от рейтинговой системы ELO, которая начала свою история из шахмат.

p, blockquote 8,0,0,0,0 —>

В Dota 2, система ELO носит название ММР: какая-то величина, которая показывает уровень игры отдельно взятого игрока. Valve просто дала системе ELO новое имя: MMR. Однако, многие популярные онлайн-игры всё ещё используют аббревиатуру ELO для обозначения рейтинговой системы, например, League of Legends, Origins и другие.

p, blockquote 9,0,0,0,0 —>

Как ММР влияет на матчи в Dota 2?

Ваш ММР оказывает огромное влияние на качество ваших игр. Главная цель этой системы заключается в подборе игроков, чей уровень игры максимально близок к вашему, поэтому в некоторых играх вы и вправду можете столкнуться с игроками, которые будут играть точно так же, как и вы. Это значит, что некий алгоритм специально подбирает вам тех или иных союзников и соперников, а не случайных игроков, которые вместе с вами нажали на поиск игры.

p, blockquote 10,0,0,0,0 —>

Почему групповой рейтинг может привести к дисбалансу в матчах?

Большинство из вас сталкивалось или столкнётся с ситуацией, когда вы играете с друзьями, ММР которых сильно отличается. В таких случаях поиск игры занимает больше времени, так как алгоритму подбора игроков в Dota 2 приходится искать игроков в куда больших диапазонах для максимальной балансировки будущего матча.

p, blockquote 11,1,0,0,0 —>

Однако, иногда этот алгоритм не справляется с этой задачей, что приводит к сильному дисбалансу. Чаще всего это происходит в тех случаях, когда группа игроков с рейтингом от 2 до 5 тысяч решила сыграть в одном матче. В таких случаях, те игроки, которые играет в одиночку на рейтинге 2к, вынуждены играть против игроков с 5к ММР. Нетрудно догадаться, что очень часто такие игры превращаются в тотальную доминацию одной из сторон, что приводит к крайне негативному опыту у игроков, особенно для новичков. Тем не менее, рейтинговая система всегда обновляется, чтобы однажды добиться идеального баланса.

p, blockquote 12,0,0,0,0 —>

ММР-система нужна только для рейтинговых игр?

p, blockquote 13,0,0,0,0 —>

Многие думают, что ММР-система используется только в рейтинговых матчах, потому что ваш рейтинг отображается на экране только во время игры в рейтинг. Если же вы играете в обычной игре, то рейтинг не отображается. В Dota 2 используются разные значения ММР для подбора игроков, так что рейтинговая система оказывает влияние и на обычные игры, а не только лишь рейтинговые.

p, blockquote 14,0,0,0,0 —>

Одиночный и Групповой ММР

Разделение рейтинга на одиночный и групповой всегда было частью рейтинговой система Dota 2. Эта система частично сохранилась даже после того, как Valve убрало у игроков возможность посмотреть их одиночный и групповой рейтинг.

p, blockquote 15,0,0,0,0 —>

В августе 2019 года, Valve серьёзно изменила рейтинговую систему, сделав отдельный показатель ММР для каждой из пяти позиций в Dota 2.

p, blockquote 16,0,0,0,0 —>

В марте 2020 года, Valve вновь переделали рейтинговую систему, убрав разделение рейтинга по ролям и сделав общий ММР для основных ролей и поддержки.

p, blockquote 17,0,0,1,0 —>

В результате, по состоянию на июнь 2020 года, рейтинговая система в Dota 2 работает следующим образом:

p, blockquote 18,0,0,0,0 —>

  1. В обычных (не рейтинговых) матчах используется скрытый (для игроков) ММР. Dota 2 анализирует каждый матч с реальными игроками и определяет ваш уровень игры при помощи специального алгоритма, поэтому даже в обычных играх используется рейтинговая система. Как только вы начинаете играть в рейтинговых матчах, алгоритм рассчитывает отдельный рейтинг конкретно для рейтинговых матчей. Это значит, что ваш ММР в обычных играх может сильно отличаться от ММР в рейтинговых играх.
  2. Разделение ММР на одиночный и групповой. С момента официального релиза Dota 2, в Dota 2 существовало два отдельных показателя для игры в одиночку и в группе. Неважно, играете вы с одним, двумя, тремя или четырьмя друзьями, вы автоматически создаёте “групповой лобби” и система начинает считывать ваш групповой ММР. Многие игроки играют в одиночку, потому что они считают, что так легче поднимать рейтинг, ибо в таком случае подбор игроков получается более сбалансированным.
  3. Раздельный ММР для основных и поддерживающих ролей. Какое-то время Valve тестировали рейтинговую систему с разделением ММР для основных/поддерживающих ролей против одиночного/группового ММР. Приятно одно, что в конце концов Valve позволили игрокам искать игры, заранее забронировав за собой определённую роль, что точно помогло избавиться от постоянных споров между игроками, кто на какой позиции должен играть.
  4. Общий ММР на весь аккаунт. В настоящее время, игрокам отображается один единственный показатель ММР, вне зависимости от выбранной ими роли и вне зависимости от игры в одиночку или в группе. Именно этот усреднённый показатель и используется при подборе игроков. Однако, все предыдущие показатели никуда не исчезли, просто они теперь не показываются игрокам.
  5. ММР для команд из пяти игроков. Теперь у профессиональных команд есть смысл заводить отдельные аккаунты только для игр со своим коллективом. Таким образом, они смогут сравнить свой уровень игры с другими командами.

Почему Dota 2 использует систему Рангов?

Практически каждый проведенный матч в Dota 2 получается уникальным и предлагает новый опыт для игрока. Система ММР и Рангов призвана дополнить этот опыт, чтобы не дать игрокам забросить Dota 2.

p, blockquote 19,0,0,0,0 —>

p, blockquote 20,0,0,0,0 —>

Для чего вообще Valve ввели ранговую систему, помимо стандартной ММР? На то есть несколько причин:

p, blockquote 21,0,0,0,0 —>

  • Игрокам проще отслеживать их прогресс.
  • Создать соревновательную среду для всех игроков Dota 2.
  • Красивые иконки – это куда лучше, чем голые цифры.
  • Ранговая система стимулирует игроков устанавливать себе новые цели в игре.
  • Ранги помогают алгоритму подбора игр создавать более сбалансированные матчи.
  • Привнести больше веселья и интереса в игру.

Когда в Dota 2 появилась система Рангов вместо ММР?

В ноябре 2017 года, Valve выпустили обновление и заменили концепцию ММР на Ранги.

p, blockquote 22,0,0,0,0 —> p, blockquote 23,0,0,0,1 —>

Это был очень мощный удар для всего сообщества, однако Valve добились своего. В течении нескольких месяцев, количество рейтинговых матчей увеличилось на 17%.

Пойдет ли Dota 2 на моем ПК?

Согласно нашим тестам, 89% людей могут запустить эту игру на своем ПК.
Показать последние тесты.

Проверьте параметры ПК для Dota 2

Встроить на сайт

Вы можете вставить таблицу требований выше на свой сайт или блог, скопировав адрес изображения ниже.

Минимальные требования Dota 2 на Windows подразумевают операционную систему Windows 7. Ваш процессор должен быть как минимум Dual core from Intel or AMD at 2.8 GHz. Минимальный размера оперативной памяти — 4 GB. Что касается видеокарты, то это должна быть как минимум nVidia GeForce 8600 / 9600GT, ATI/AMD Radeon HD2600/3600, которая поддерживает Direct X Version 9.0c. Вам так же необходимо иметь 15 GB свободного дискового пространства.

Встроить на сайт

Вы можете вставить таблицу требований выше на свой сайт или блог, скопировав адрес изображения ниже.

Если у вас Мак, то требования Dota 2 начинаются с такой операционной системы: OS X Mavericks 10.9. Процессор нужен минимум Dual core from Intel. Минимум 4 GB оперативной памяти. Подходящая видеокарта — nVidia 320M or higher, or Radeon HD 2400 or higher, or Intel HD 3000 or higher. Наконец, игра требует 15 GB свободного места на диске.

Встроить на сайт

Вы можете вставить таблицу требований выше на свой сайт или блог, скопировав адрес изображения ниже.

Если у вас Линукс, операционная система должна быть Ubuntu 12.04 или аналог. Необходимый процессор — Dual core from Intel or AMD at 2.8 GHz или мощнее. Что касается оперативной памяти, то вам нужно 4 GB или больше. Видео карта должна быть nVidia Geforce 8600 / 9600GT (Driver v331), AMD HD 2xxx-4xxx (Driver mesa 10.5.9), AMD HD 5xxx+ (Driver mesa 10.5.9 or Catalyst 15.7), Intel HD 3000 (Driver mesa 10.6) или лучше. Понадобится минимум 15 GB свободного места на диске.

Автоматизация рутины в 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 часть.

Styled-Components, Typescript, Хуки, — стильно, модно, молодёжно

В UI был выбран мой любимый стек: TS, CRA (Styled только для одного/двух классов использовался — рисовать то особо нечего). После того, как GSI Dota2 отправил данные на express сервер, их нужно передать на фронт. Пишется простая GET ручка для отдачи данных. Затем на фронте пишется хук, который раз в секунду запрашивает эти данные и дальше они попадают сразу во все остальные хуки. То есть в приложении каждую секунду запускаются все хуки — это важный факт, ведь иногда понадобится хранить время запуска хука, чтобы случайно его не запустить несколько раз (если этого не делать, то у вас произойдёт в лучшем случае два оповещения подряд, в худшем случае взрыв из оповещений). Логика получения данных:

Теперь, когда есть все данные на фронте, можно написать хук для звуковых оповещений, что пора бы пойти (за 30 секунд до начала оповещает) забрать руны богатства, появляющиеся на каждой минуте кратной пяти (5, 10, 15, 20 минута):

Запись о последнем воспроизведении (setLastIntervalPlay) нужна чтобы не повторить оповещение случайно дважды.

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

Хук useRoshanSpawn для кнопки

С рошаном всё немного запутаннее, чем с рунами — он может возрождаться в интервале от 9 до 12 минут. То есть у него есть состояния:

Точно мёртв (прошло до 9 минут с момента смерти)

Он жив или мёртв (прошло от 9 до 12 минут с момента смерти)

Он точно жив (прошло свыше 12 минут с момента смерти или это начало игры)

Поэтому у таймера есть три визуальных состояния:

Кнопка — для запуска таймера

Таймер тикает и сообщает о том что роша точно мёртв

Таймер тикает и сообщает о том что роша возможно жив, а возможно мёртв

И одно звуковое оповещение: Рошан будет в состоянии Шредингера через 30 секунд (то есть, и жив, и мёртв одновременно — пока не проверишь, не узнаешь). Также есть возможность сбросить таймер, ведь если мы проверили и узнали, что он жив — то таймер больше не нужен, а нужна кнопка о том чтобы сообщить о новой смерти рошана. Из минусов — иногда забываешь запускать таймер, было бы здорово в будущем это тоже автоматизировать.

Обогащаем данные

Ещё есть информация о том, на каком герое мы играем, поэтому пускай клиент запрашивает бенчмарки с сайта OpenDota.com и отображаем их, чтобы было понятно, на сколько мы отстаём от ритма игры. Я взял перцентиль 99%, то есть мне интересно, с какими показателями отыгрывается 1% лучших игр на том или ином герое.

Бенчмарки на героя Abaddon

Вся логика описана в хуке 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, если есть орфографические или лексические ошибки, то пишите пожалуйста в ЛС, спасибо за внимание.

Статья в тему:  Откуда виртус про дота 2
Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector