тренеры для игр что такое
Создание трейнера
Трейнеры и с чем их едят.
Ранее в 1980-е 1990-е на заре компьютерных игр трейнеры обычно встраивались хакерами прямо в код игр. При запуске игры, сначала запускался трейнер с окном «Вы хотите использовать читы?» Дальше выполнялся код игры. В названии трейнера использовались знаки сложения (+), по одному на каждую опцию трейнера. Например, «Группа Хакеров представляет: Игра+++» (три опции, например, бессмертие, бесконечная амуниция и телепортация). Сейчас же обычно в названии трейнера пишут (+9), что означает о 9 функциях трейнера. Вот например название трейнера для gta: GTA IV трейнер (+19).
Методы создания трейнеров
Для создания трейнеров используются специальный программы: дамперы памяти, отладчики и дизассемблеры. Самый простой способ создать его — поискать в памяти значения, совпадающие с нужным игровым параметром. Затем изменить его и поискать в получившемся списке снова. После нескольких итераций скорее всего останется небольшой список адресов, значения по которым можно попытаться изменить. Существует множество утилит (ArtMoney, Cheat’o’Matic…), автоматизирующих процесс поиска и изменения значений.
В некоторых случаях нужное игровое значение постоянно меняет свое положение в памяти. В этом случае можно попытаться найти указатель на него (возможно с небольшим смещением, если игровое значение находится в какой-либо структуре данных). Если и указатель меняет положение в памяти, то можно поискать указатель на этот указатель и.т.д. Также можно поставить точки останова на обращения к игровому значению и проанализировать код, который их читает или изменяет.
Если игровое значение является полем некоторого класса, то можно искать экземпляры этого класса по указателю на таблицу виртуальных методов. Найти таблицы виртуальных методов не сложно из-за их специфической структуры. Кроме того, они часто содержат указатель на имя класса. При поиске экземпляров класса желательно определять не удален ли он по флагам менеджера памяти (который зависит от языка программирования, на котором написана игра).
Трейнеры создаются следующими способами:
1. При знании языка программирования, с помощью программ:
сканер памяти (TSearch, ArtMoney, Cheat Engine)
отладчик (SoftIce, OllyDbg, встроенный в TSearch)
2. С помощью программ для автоматического создания трейнеров (TMK, GTS, Trainer Creation Kit, Cheat Engine)
Существует 3 типа игр, для которых трейнеры могут создаваться разными способами:
1. простая (запись в память осуществляется напрямую по адресу)
2. DMA (динамическое распределение памяти. Если в игре присутствует DMA «технология», то адрес с необходимым для вас значением будет изменяться при каждом перезапуске или переходе на новый уровень)
3. защищенная (игра, которая защищена каким-либо протектором, создание трейнеров для таких игр бывает трудоёмким)
Защита от трейнеров
Если в игре имеется официальная таблица рекордов или игра является сетевой, то существование трейнеров губит весь интерес к сетевым баталиям игру. В этом случае приходится встраивать систему защиты от трейнеров. Для этого важнейшие игровые параметры шифруются (и расшифровываются на короткое время перед использованием) или создается зашифрованная копия (с которой оригинальный параметр постоянно сравнивается). Для обхода таких защит не обойтись без дизассемблирования программы.
Тренеры для игр что такое
Я не знал наверняка, что ждать от первой игры в качестве тренера, но в голове уже рисовал картину, как мы вместе с командой прорабатываем план ганга в смоках, забираем Рошана, потом сторону, грамотно отходим и вновь нападаем из смоков. А дальше падающий трон, слова благодарности и лайки. Реальность оказалось иной. На первый мой бодрый клич: «Привет, команда, поехали?», я услышал: «Бл*, как замьютить этого идиота?!». Мой пыл сразу угас, а вот шутки команды продолжались.
Первые 3 минуты моя команда обсуждала целесообразность тренера и вообще, зачем «Габен придумал эту *». А потом начался троллинг по типу: «Эй, тренер, а как ты думаешь, мне стоит покупать сапог? Тренер, мне добивать крипов или не надо?». В этот момент ситуация по абсурдности и количеству постиронии напоминала интервью Гнойного Дудю.
Пытаться «панчить» в ответ я не стал, вместого этого продолжил прокликивать вражеских героев. После парочки удачных «колов» на поставленные вражеские варды и ганги команда меня повысила из ранга «** идиота» в «почти не бесполезного куска». Но взлетом моей карьеры стал момент, когда я подсказал команде проверить Рошана, ведь на карте давно не видно Ursa. В итоге наша команда добила Ursa и забрала Аегис. После этого я наконец дослужился до ранга «тренера».
Как только команда начинала сталкиваться с трудностями в массовых драках, она уже без тени сарказма спрашивала, что пошло не так и как лучше сыграть. Даже самый ярый мой хейтер в начале игры без вопросов послушался, когда я предложил ему купить «Блинк» на Lifestealer, чтобы легче было добираться до Sniper и Skywrath Mage. Правда, втолковать ему, что Abyssal Blade нужно использовать, а не просто с ним бегать у меня так и не вышло.
Эту игру в итоге мы проиграли. У меня зазвонил телефон и я отвлекся, а моя бравая команда на 56-й минуте напряженной игры, потеряв своего «большого брата», тут же решила побежать за саппортом в лес, где не было вижена. Итог предсказуем — тимвайп и проигранная карта. Несмотря на поражение и фонтан искрометного юмора по отношению ко мне в начале, я получил 4 похвалы из 5.
Следующие несколько игр пошли проще и сейчас у меня победная серия из 7 матчей.
Зачем мне нужен тренер?
Этим вопросом задаются не только обычные игроки в пабах. Тренеры даже на профессиональной сцене очень долго не могли прижиться. Проблема в том, что большинство игроков, особенно в СНГ, не признавали авторитет «старичков», стремящихся в тренеры. Титулованных игроков с опытом у нас можно было пересчитать по пальцам, а остальных просто не воспринимали всерьез: «В смысле мне будет что-то советовать парень, который сам ничего не выиграл, да и на кнопки хуже меня нажимает».
В традиционном спорте тренер в 95% случаях куда старше своих подопечных. К нему относятся как к боссу, методы и решения которого не должны оспариваться. При этом не так важно, сколько именно трофеев он выиграл в качестве игрока.
В киберспорте же все измерялось цифрами ММР и личным отношением, а оно скорее было панибратским и неформальным.
Изменить ситуацию помогли лишь наглядные примеры более успешных команд, которые прибавили в результатах после подписания тренера.
И теперь уже никого не удивляет, что тренеры топовых команд — вовсе не легендарные чемпионы с кучей трофеев, а просто умные игроки, способные анализировать игру и помочь с атмосферой в коллективе.
Все проблемы, которые мы видим на профессиональной сцене в «пабе», проявляются в десяток раз ярче. Поэтому логично, что большинство игроков не хотят, чтобы кто-то им советовал как играть. Игру с тренером нельзя специально выбрать, как и заранее отказаться от такой возможности. И это, как мне кажется, ошибка от Valve, которая может провоцировать лишние конфликтные ситуации и так в крайне токсичном сообществе.
Почти с первого дня выхода Боевого пропуска на Reddit появляются темы с требованием добавить функцию отказаться от возможной игры с тренером. Но вряд ли Valve пойдет на такое, ведь количество отказов просто убьет тренерство как таковое.
Другая проблема тренерства — сами тренеры. Ваши подопечные почти всегда будут гораздо ниже вас по званию, а значит многие тренеры априори будут ставить себя выше команды. Это будет выражаться и в навязывании своих сборок, выбора талантов и прочего. Стоит понять, что между аргументированными советами и насильным вдалбливанием по типу: «2к мусор, ты ничего не понимаешь, купи Блинк» есть огромная разница. К сожалению, большая часть игроков не умеет в аргументированные советы.
Но стоит признать, что тренер, пусть в его роли и выступает обычный 4к игрок, может дать преимущество команде. Главное тут — информация о вражеских героях, возможных вардах, таймингах. Тренеру следить за этим куда проще, чем игрокам.
Кроме того, тренер — это мостик между игроками. Он способен вовремя запросить телепорты от саппортов на выручку своему мидеру или заранее предупредить своих игроков, что керри нужно срочно дофармить БКБ, а поэтому в драках он пока участвовать не будет.
Советы для начинающих тренеров
Стоит поставить голосовой чат на кнопку на мышке, чтобы начать выстраивать коммуникацию с командой еще во время выбора героев. Большое количество игр проигрываются именно на этой стадии. Если подключиться уже после пиков, то велика вероятность оказаться в ситуации, когда в команде уже даблмид, а все игроки «отдали должное» мамам друг друга.
Запуская Dota 2, надо четко для себя понимать, что вас никто не просил помогать,соответственно, и прислушиваться к вашим советам никто не обязан. Для игроков вы просто «незнакомый челик», на которого «никто не подписывался». Поэтому не стройте из себя всезнающего пророка, которому нужно внимать и поклоняться.
Сохраняйте спокойствие — банально, но чертовски необходимо. Ни в одной из игр у меня не дошло до открытого конфликта с игроками, несколько раз агрессивно настроенным ребятам я даже сам объяснял, как замьютить тренера, но в итоге они не стали. Так что если вас кто-то отказывается слушать, то не вступайте в открытую конфронтацию, просто предложите дать вам шанс или сразу замьютить.
На момент написания этого материала тренер не мог видеть КД расходных предметов (вардов, книг, смоков) в магазине. Так что всегда уточняйте у своих подопечных такие моменты.
На стадии лайнинга главная ваша задача — контролировать начальные перемещения врагов, установку вардов, прокликивать наличие телепортов у соперников и напоминать о появлении рун.
Записывайте для себя тайминги важных для врага ультимейтов. Например, «Блекхол» Enigma или «Купол» Faceless Void. У ваших игроков будут лишь примерные представления о том, сколько еще идет перезарядка способности, но если знать это наверняка, можно организовать удачную драку. Естественно, стоит следить и за таймером Рошана, но это, зачастую, игроки делают и сами.
Не стоит захламлять войс чат пустыми разговорами, особенно во время драк, это может лишь отвлечь и дезориентировать команду. К тому же в команде может быть свой лидер. Если одновременно с ним руководить игрой, то получится все как в басне Крылова про лебедя, рака и щуку.
Мало просто указать на ошибку, стоит сразу предложить вариант решения проблемы (не надо умирать на топ лайне, где нет вижена, иди лучше в нижний лес — там все в наших вардах). Критика без конструктива немедленно приведет к ответным оскорблениям и предложениям заткнуться.
Что мы получим за тренерство?
Всего на тренерство выделено 9 достижений, которые в общей сложности могут дать нам 14 уровней Боевого пропуска. У тренера существует еще собственный рейтинг. За победу тренер получит 100 очков рейтинга и по 75 за каждый лайк, соответственно, дизлайк наоборот отнимет 75 очков. Чтобы получить все достижения придется как минимум сыграть 45 игр, 15 из которых должны быть победами с 5 лайками.
Сделать это будет не так просто, ведь даже самые интересные ваши тактические находки или своевременные подсказки могут ничего не стоить, если керри в вашей команде не умеет нажимать кнопки. Но несмотря на всю нервотрепку и возможные конфликты, тренерство — это интересный опыт, который, возможно, поможет вам самим по-другому взглянуть на собственные игры.
Тренеры для игр что такое
Автор:>peizhaochen Издание: Steam Версия Игры: Latest Язык Трейнера: Китайский Количество Функций: 16 Дата Создания Трейнера: 18.08.2021
Days Gone Трейнер (+18) [1.06 Fixed]
Автор:>iNvIcTUs oRCuS / HoG Издание: Steam Версия Игры: Latest Язык Трейнера: Английский Количество Функций: 18 Дата Создания Трейнера: 09.08.2021
Автор:>FLiNG Издание: Steam Версия Игры: Latest Язык Трейнера: Английский/Китайский Количество Функций: 24 Дата Создания Трейнера: 18.08.2021
Автор:>FLiNG Издание: Steam Версия Игры: Latest Язык Трейнера: Английский/Китайский Количество Функций: 18 Дата Создания Трейнера: 18.08.2021
The Hunter Call of the Wild Трейнер (+26)
Автор:STiNGERR Издание: Steam/Non Steam Версия Игры: Latest Язык Трейнера: Английский Количество Функций: 26 Дата Создания Трейнера: 19.05.2021
Автор:>iNvIcTUs oRCuS Издание: Steam Версия Игры: Latest Язык Трейнера: Английский Количество Функций: 12 Дата Создания Трейнера: 10.08.2020
Turok Трейнер (+7) [1.0.1.363]
Автор:>iNvIcTUs oRCuS / HoG Издание: Steam Версия Игры: latest Язык Трейнера: Английский Количество Функций: 7 Дата Создания Трейнера: 11.08.2021
Death Trash Трейнер (+6) [0.7.0.1]
Автор:>Abolfazl.k Издание: Steam Версия Игры: Latest Язык Трейнера: Английский Количество Функций: 6 Дата Создания Трейнера: 06.08.2021
Тренеры для игр что такое
Лично я считаю, что любая игра должна доставлять в первую очередь радость и глубокое удовлетворение, а не бурю негативных эмоций от того, что уже в сотый раз не можешь пройти очередного босса. Поэтому я всегда играю на самых легких уровнях с использованием всех доступных чит-кодов, трейнеров, прохождений и т.п. Но сегодня речь не об этом, а о том, как пишутся трейнеры.
В качестве «тренируемой» игрушки сегодня будет Air Xonix. Будем делать так, чтобы жизни в игре никогда не заканчивались. Игру сперва надо довести до ума, чтобы остался чистый исполняемый файл, после этого можно приступать к исследованиям.
Первый инструмент, который нам понадобится, это ArtMoney. Она умеет сканировать память для поиска каких-то определенных значений, отсеивать изменения, редактировать и замораживать значения ячеек памяти и т.п. Подробнее о возможностях ArtMoney прочитайте на офсайте. В принципе, вечные жизни в игре можно сделать средствами самой ArtMoney, но в данном случае для нас это будет только вспомогательный инструмент. И нам будет достаточно даже бесплатного варианта, который можно свободно скачать с офсайта и использовать без регистрации.
Запускаем и начинаем игру, ставим на паузу во время игрового процесса, переключаем в ArtMoney и выбираем ее процесс по заголовку окна. Теперь нам надо найти значение жизней. Сперва это будет 4. Нажимаем кнопку «Искать», вводим значение «4» и выбираем тип значений для поиска.
Переключаемся на игру, снимаем ее с паузы, нарываемся на противника и теряем жизнь. Снова ставим на паузу, переключаемся в ArtMoney и ищем новое значение. Но на этот раз воспользуемся кнопкой «Отсеять». Повторяем процедуру отсеивания до тех пор, пока в списке не останется только одно значение. В нашем случае это будет адрес 0257DA10. Мы выяснили адрес ячейки памяти, в которой хранится значение жизней. Теперь нам надо выяснить, какой код в исполняемом файле отвечает за изменение этого значения.
Запускаем отладчик и аттачимся к процессу игры. Переходим в окне дампа на адрес 0257DA10 и ставим точку останова на запись в память по этому адресу. Отпускаем игру и снова нарываемся на противника, чтобы потерять еще одну жизнь.
Отладчик остановится на вышеуказанном коде. Он очень простой и понятный. В регистр ESI загружается значение жизней, уменьшается на 1 (команда DEC), затем записывается обратно. То есть, чтобы стать бессмертным, надо заNOPить команду уменьшения регистра.
Прямо в отладчике заменяем команду DEC ESI на NOP. Теперь, по идее, значение жизней не должно уменьшаться.
Чтобы каждый раз не активировался отладчик, снимаем точку останова с ячейки памяти. Снимаем игру с паузы в отладчике, переключаемся на игровой процесс и снова нарываемся на противника. Но на этот раз мы видим, что значение жизней остается прежним, оно не уменьшается. А если подобрать бонусную жизнь, то значение увеличивается. Все, секрет бессмертия в игре Air Xonix разгадан.
Это всего лишь минимальные заготовки трейнеров, для понимания процесса их работы. Для полноценных релизов их, конечно же, надо доукомплектовать диалоговыми окнами, красивой графикой и музыкой, добавить включение-выключение по горячим клавишам и всякое такое. Но это уже вы можете сделать самостоятельно. Да и «тренировать» можно не только игры, но и другие программы, тут главное освоить принцип взаимодействия с памятью сторонних процессов.
В приложении примеры всех трех вариантов трейнеров с исходными текстами, описанные в статье. Они протестированы и работают с игрой Air Xonix версии 1.45.
Примеры программ с исходными текстами (FASM)