(25.08.2020, 00:03)Demoth Написал: Вот пример третьего случая: https://gist.github.com/koteyur/416a6804...93b8214554
Тут под "как можно автоматизировать" я имею в виду проверку кода, который будет запатчен, правильный выбор позиции оригинального кода (после выполнения хука или перед) и адаптацию этого кода. Поэтому в моей либе предполагается, что тот кто будет писать код сам хорошо понимает, что он делает. Так что в моей либе ничего инновационного нет - простой cpp на 300 строчек кода.
Хм. Пока не понимаю проблемы.
При помощи Detours, мы перенаправляем все вызовы метода в нашу либину и получаем линку на оригинал. К нам приходит вызов, анализируем аргументы, в зависимости от них либо вызываем оригинал, либо выполняем наш хук. Вроде, всё тоже самое?
Единственное, в твоём случае я вижу некоторый контекст, у которого оттопырены значения регистров. В этой области я не силён, но предполагаю, что мы точно также можем получить их значения на момент вызова?
Возможность патчить отдельные инструкции в методах сама по себе интересная, но на мой взгляд очень скрупулёзная. Вытащить его полностью и дело с концом.
Ясно, я вот тоже всё ищу какую-нибудь серебряную пулю, которая может превратить рутину в "я просто пишу код", но всё никак не выходит. >_> И mail, не отвечают ни по одному из официальных ящиков...
P.S. А у тебя не было проблем с Hardware Breakpoint'ами? Выставляю в Cheat Engine бряку на чтение, и игра вылетает при первом же обращении.
(25.08.2020, 00:45)Vasial Написал: всегда хотел узнать, а реально ли вообще при помощи стартера решить главную проблему одиночной игры - генерация урона перед ударом, ну я про эту классику, когда замахивавшийся персом, сохраняешься, а потом перезагрузками пытаешься выкинуть максимальное число.
Насколько я знаю, такой функции нет, но само собой, ничто не мешает это реализовать. Но зачем? Игра уже сейчас представляет собой Save/Load, а ты увеличишь их число в сотни раз. Я бы наоборот отключил сохранение, оставив только автоматическое при переходе между локациями.
Кстати!
Feature Request 2020.08.25/1
Добавить возможность отключить сохранения в одиночной игре, оставив только N последних автосохранений, которые создаются автоматически при переходе между локациями.
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт