Поиск неизвестного значения. На примере игры "Max Payne 2" |
Что делать, если в игре полоска без цифр? Как найти это значение? В этом случае вы должны использовать поиск "Неизвестное значение". Рекомендую выбрать конкретный тип (например, для жизни "целое 1 байт" или "целое 2 байта"), так как весь процесс может занять продолжительное время. Итак, самый важный шаг - первое отсеивание. Необходимо изменить жизнь, но так чтобы все остальное как можно меньше изменилось, в том числе изображение на экране. Данный метод хорошо сочетается с поиском диапазона значений, особенно для полосок энергии. Для уменьшения общего времени поиска на 5-10 шаге отсейте заведомо ложные значения. Оставьте, например, только от 0 до 200, правда это не всегда справедливо, поскольку одно деление жизни может быть равно какому-то числу. Например, для игры Half-Life одно деление жизни хранится как 171, то есть, если у вас 100%, то в памяти оно хранится как 17100. Первым делом запускаем ArtMoney и выбираем процесс "Max Payne 2". Далее нажимаем кнопочку "Искать", в поле "Искать" выбираем пункт "Неизвестное значение" (поскольку жизни представлены полоской). В поле "Тип" выбираем пункт "Ваш набор" -> "Целое 2 байта" (проследите за тем, чтобы кроме этой галочки ничего не было отмечено). Нажимаем кнопочку "OK" и ждем, пока завершится поиск. В игре уменьшаем жизнь в игре, затем в ArtMoney отсеиваем "Уменьшилось". После первого отсеивания у вас останется около 500000 адресов, но не пугайтесь - еще несколько отсеивания и у вас останется 3-4 адреса. Далее увеличиваем жизнь в игре, и в ArtMoney отсеиваем "Увеличилось". Результат уже 20000 адресов. Аналогично делаем ещё 3 отсеивания и получаем всего 3 адреса. Переносим эти адреса в правую таблицу и замораживаем. Жизнь в игре больше не меняется! |