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

Warhammer 40000 Dawn Of War: Soulstorm: проблема с one hit kill


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

Всем привет. У меня в данной игре проблема с читом на убийство с одного удара. Заключается она в том, что когда скрипт активирован, здоровье врагов становится 0, но они не умирают. Покопавшись в интернете - понял, что это из-за того, что игра пишет 0 как экранное значение, а сама функция, которая вызывается для убийства юнита не срабатывает, потому они и не умирают. И действительно, если отключить скрипт, то враги сразу умирают при попаданий по ним. Может кто помочь с поиском функции?

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

Я смотрел все уроки из цикла и не увидел там ничего похожего на мою ситуацию, во всяком случае для меня это не очевидно. Не могли бы вы меня "ткнуть лицом" в конкретный урок? 

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

Есть урок по поиску шифрованных значений, там через экранное я выхожу на истинное. И есть еще несколько уроков по отделению игрока от врага. В одном из них тоже есть прием выхода на истинное через экранное значение.

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

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

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

  • 2 недели спустя...

Есть много способов, как сделать one_hit_kill. Чаще всего рядом со значением текущего здоровья есть значение максимального. Так вот, перезаписывай величину своего урона на величину максимального здоровья (для гарантии можешь еще надбавить сверху к значению). Ну и смотри, чтобы данная инструкция не срабатывала на союзников (используй фильтр свой/чужой).

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

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

 

Проблема вот в чем, чит вроде и работает, но некоторые юниты просто получают здоровье 0 и становятся не убиваемыми, как будто игра их уже считает мертвыми, а если дать им здоровье, то мои юниты снова начинают по ним стрелять. Вот видео Warhammer 40000 Dawn of War Soulstorm: проблема с one hit kill. Я вообще в толк не могу взять почему это происходит. Может кто сталкивался с таким когда нибудь?

 

P.S короче сам пишу ответ. Такое происходит когда вы в скрипте пишите mov[esi+14],(float)0

игра тогда считает некоторых юнитов уже убитыми вот и все. Теперь как это чинить: напишите вместо просто нуля что-то вроде 0.001. Теперь игра не будет считать юнитов мертвыми, так как у них еще будет капелька здоровья, а наш чит все равно будет работать. Здесь самое главное чтобы был не просто 0, а 0.01, 0.02 и тд. Но лучше всегда пишите 0.00001 или что-то вроде этого, так как в таком случае у нас получится своего рода предел, который будет стремиться к 0, а нам именно это и надо

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

8 часов назад, HomelessPsychopath сказал:

Теперь как это чинить: напишите вместо просто нуля что-то вроде 0.001.

Это костыль (полумера), тоже сталкивался с подобным и даже, еще вначале карьеры взломщика, писал скрипт twohitkill (т.е. убийство врагов с двух ударов)
Правильнее в этом случае выходить именно на урон и делать его заведомо выше НР врагов. (это не сложно)

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

7 часов назад, Garik66 сказал:

Это костыль (полумера), тоже сталкивался с подобным и даже, еще вначале карьеры взломщика, писал скрипт twohitkill (т.е. убийство врагов с двух ударов)
Правильнее в этом случае выходить именно на урон и делать его заведомо выше НР врагов. (это не сложно)

Так, а можно по подробнее? Как найти урон в этой игре я понятия не имею, так как урон там такой: допустим 31-42 единиц урона в секунду или 130-240. Как такие значения искать?

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

11 часов назад, HomelessPsychopath сказал:

Так, а можно по подробнее?

Каждое изменение здоровья (срабатывание инструкции) связано с какими-либо действиями. Если прореверсить код в обратную сторону от инструкции, которая пишет в адрес здоровье, можно найти инструкции, которые вычисляют урон, наносимый игроку/неписю. Универсального рецепта нет, для каждой игры/движка это реверсится индивидуально. Главное - понимание, что новое значение здоровья должно как-то вычислиться. В случае нанесения урона это значения вычисляется вычитанием величины урона из текущего уровня здоровья. Найдя это вычитание (на самом деле там может быть не только вычитание, это лишь пример), ты найдешь величину урона. Исследуя код, как формируется величина урона, ты найдешь инструкцию, где можно будет подставить свой множитель. Ну или, найдя,  где из здоровья вычитается урон, в том месте урон многократно увеличить - этого будет вполне достаточно для OHK.

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

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

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

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