Перейти к содержанию

Как делать чит "Idiot Enemies"?


Рекомендуемые сообщения

Доброго времени суток уважаемые геймхакеры!!!

У меня вопрос как сделать глупых врагов в игре? То есть чтоб они стояли себе и ничего не делали глав герою. Видел такой чит в The Incredible Hulk команда Cheat Happends его делала. Только как его сделать ума не хватает.

У кого какие идеи или может кто-то такой чит уже делал?

Ссылка на комментарий
Поделиться на другие сайты

Привет.

глупых врагов в игре! можно конечно.

1) отнят у врагов патроны. (Применяется фильтр)

2) заморозка врагов. (Применяется фильтр)

3) враги вас не трогают.

И далее.

Тут делал aliast похожее.

Ссылка на комментарий
Поделиться на другие сайты

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

1. Через функцию стрельбы.

2. Через функцию нанесения урона.

3. Через функцию изменения координат при перемещении.

4. Найдя адрес здоровья врага и функцию, его читающую.

И так далее. Что потом делать? Или просто писать фильтры (стрелять можешь только ты, бегать можешь только ты и так далее), или реверсить весь цикл и смотреть, что происходит. Например, можно найти такой кусок кода:


if(isPlayerDetected)
{
StartAlarm(self);
FireAtWill(Player);
}

А при этом когда бот умирает, то происходит вот это:


if(self.Health <= 0)
{
self.isDead = 1;
DropCurrentWeapon(self);
AnimateDeath(self);
}

Соединяем это и:


if(isPlayerDetected) //Если заметили игрока
{
self.isDead = 1; //Ставим себе флаг, обозначающий что мы мертвы
DropCurrentWeapon(self); //Выкидываем оружие
AnimateDeath(self); //Анимируемся
//StartAlarm(self); //Тревогу не вызываем
//FireAtWill(Player); //Стрелять не начинаем
}

Такое называется "medusa hack" - в честь одной из сестёр горгон греческой мифологии. Что делает? Всё просто - когда враг тебя замечает и пытается отреагировать (начать стрелять в тебя, поднять тревогу) - он просто умирает.

Ещё можно просто попробовать найти нужные значения в структуре игрока - заметил он тебя или нет, поднял тревогу или нет, есть ли у него оружие или нет и так далее.

Ссылка на комментарий
Поделиться на другие сайты

Заметил игрока и умер? Такого чита я что-то ни разу не видел :-D Видел только смерть от наведения прицела (без выстрела), но это уже простая разновидность One Hit Kill, обусловленная особенностями движка конкретно взятой игры. Забавно, но я как раз сегодня решил поэкспериментировать с таким читом "тупых врагов" в игре Desperados. В этой игре у врагов есть конус зрения, как в стратежке Commandos. Думал даже тему по игре создать, но не успел, опередили =) Будем думать...

Ссылка на комментарий
Поделиться на другие сайты

Заметил игрока и умер? Такого чита я что-то ни разу не видел :-D Видел только смерть от наведения прицела (без выстрела), но это уже простая разновидность One Hit Kill, обусловленная особенностями движка конкретно взятой игры. Забавно, но я как раз сегодня решил поэкспериментировать с таким читом "тупых врагов" в игре Desperados. В этой игре у врагов есть конус зрения, как в стратежке Commandos. Думал даже тему по игре создать, но не успел, опередили =) Будем думать...

В FarCry довольно простая реализация такого чита (я даже выкладывал свой трейнер с этой функцией).

Всё просто находим инструкцию которая обсчитывает здоровье всех юнитов (вы - локальный игрок, и ботов - ваших врагов), пишем простой фильтр чтобы всё здоровье кроме вашего принимало значение 0 и всё.

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

Вот и всё :)

Такой принцип будет работать на всех играх с движком CryEngine я думаю.

Ссылка на комментарий
Поделиться на другие сайты

Я в Modern Warfare 3 как-то нахимичил с координатами, как будто визуальные координаты поменялись и враги стреляли хрен знает куда)

Coder, во многих играх такое бывает, враги могут тупо стоять и не двигаться, а могут просто тебя не заметить итд.

Ну и еще жалкое зрелище, когда враги не могут стрелять или ходить))

Ссылка на комментарий
Поделиться на другие сайты

В общем сделал я вечно мажущих врагов в игре Десперадос :) Осталось добавить фильтры на союзников, а то мы тоже мажем :) Хотя можно и без фильтра играть, нокаутируя врагов кулаком, работает. Ломал методом "меняем условие прыжка на противоположное". Можно этот метод испытать и на других играх, вдруг повезёт.

Сначала нашёл инструкцию, сверяющую здоровье всех с нулём. Такая инструкция выскакивает при бряке на запись в адрес здоровья. Сразу после проверки равенства здоровья нулю шёл условный прыжок. При изменении условия прыжка на противоположное получил стоящих на месте врагов (я тоже не двигался без фильтра), но к сожалению враги стояли на месте и стреляли в меня :(

Далее нашёл инструкцию, работающую с патронами всех. У врагов в этой игре патроны бесконечные и приравнивать их к нулю бесполезно, всё равно палят. Однако выше инструкции отнимающей патроны нашёлся интересный Call, срабатывающий при выстреле по врагу, или врага в меня. Что можно сделать с этим вызовом не придумал, но зато ещё выше увидел условный прыжок, который аккуратненько так перепрыгивает через этот Call :) И снова поменял условие прыжка на противоположное и все стали во всех мазать :) Можно конечно ещё посидеть над игрой и подумать над невидимостью, но и стоящие и мажущие враги уже неплохо :) Кстати говоря таким же макаром изменяя условие прыжка у меня получалось заблокировать стрельбу в игре Operation Flashpoint, так что способ вполне рабочий.

А ещё приблизительно таким образом сегодня ломаются игры на PlayStation3 - сканеров памяти для приставки так и не придумали до сих пор, но народ умудряется ломать игры и без них. И баловство с условными прыжками у них один из способов взлома. Хотя я не понимаю как они находят нужные прыжки, не имея возможности поставить бряки на них...

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Как наиболее эффективно заморозить координаты врагов? Нужно как-то сохранить текущие координаты и морозить их на этих значениях. А как это сделать не могу придумать.

Извиняюсь, что-то я жёстко тупанул. Надо было бряк ставить не на доступ, а на запись в адрес координат, и эту инструкцию нопить - вот вам и заморозка координат. Сработает не всегда, но мне помогло.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

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