Валерий Опубликовано 4 февраля, 2022 Поделиться Опубликовано 4 февраля, 2022 Добрый день, друзья! В Cheat Engine создана карта. Есть ли возможность сохранить значения полученных значений с карты куда-либо, например в txt? CE позволяет выделить одну или несколько строк на карте, нажать ПКМ -> Копировать и руками вставить в txt. В таком случае, информация сохранится в виде xml структуры с многими полями, за исключением самого главного - значения. [img=https://ibb.co/kXqZ8RX] Если посмотреть окно CE, а именно то дочернее окно, в котором отображается карта, то Spy++ определяет его как большой объект List, отдельно значение вытащить не получается. [img=https://ibb.co/2MvYXsk] Есть вариант держать все время открытым окно CE во время игры и распознавать "циферки" прям с экрана в режиме реального времени (распознавание объектов с экрана). Максимально компактно свернуть окно CE, отправить его, для примера, в правый край экрана, висит там и никому не мешает, с него происходит считывание значений. Способ более чем рабочий, но неудобный (игру не развернуть на весь экран). [img=https://ibb.co/R3bPCch] Отсюда возникает вопрос, возможно ли какими-то инструментами Cheat Engine делать периодическую выгрузку значений с карты куда-нибудь в файл? Может быть можно написать какой-то скрипт, который будет обращаться к карте, забирать оттуда значения и складывать в файл. Может быть у разработчиков есть какой-то API, чтобы можно было обращаться к CE извне и получать в ответе необходимую информацию (которую обрабатывает подкапотная магия CE и "выплёвывает" в виде значений). Может быть с помощью CE считывать память самого CE и вытягивать значения напрямую из памяти))))) Любые идеи, критика, предложения приветствуются. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 4 февраля, 2022 Поделиться Опубликовано 4 февраля, 2022 В СЕ есть LUA движок, который позволяет очень многое. В том числе, разные манипуляции с найдеными адресами, значениями в таблице и тому подобным. Всё, что тебе требуется, можно сделать с его помощью. Ссылка на комментарий Поделиться на другие сайты Поделиться
Валерий Опубликовано 4 февраля, 2022 Автор Поделиться Опубликовано 4 февраля, 2022 Благодарю! LUA будет работать только внутри CE, но в состоянии ли он "выбросить" какие-то значения за пределы CE(сохранить в файл к примеру)? Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 4 февраля, 2022 Поделиться Опубликовано 4 февраля, 2022 По идее он может всё что позволяет lua, в том числе и файлы сохранять Ссылка на комментарий Поделиться на другие сайты Поделиться
Валерий Опубликовано 4 февраля, 2022 Автор Поделиться Опубликовано 4 февраля, 2022 Спойлер define(basaPlayer,GameAssembly.dll+4D55B7) alloc(newmem,$1000) registersymbol(basaPuzzlePlayer) label(basaPuzzlePlayer) label(code) label(return) newmem: mov [basaPuzzlePlayer],edi code: mov edx,[edi+40] mov ebx,[edi+54] jmp return basaPuzzlePlayer: db 0 basaPlayer: jmp newmem nop return: registersymbol(basaPlayer) //LUA-скрипт {$lua} path = 'C://file.txt' file = io.open(path, "a") file:write("Строка\n") file:close() [DISABLE] basaPlayer: db 8B 57 40 8B 5F 54 unregistersymbol(basaPlayer) unregistersymbol(basaPuzzlePlayer) dealloc(newmem) В строке file:write("Какой-то текст\n") в файл записывается "Какой-то текст". Как записать вместо текста значение адреса [basaPuzzlePlayer]? Далее планируется записать, для примера, [basaPuzzlePlayer]+40 и сложнее [[basaPuzzlePlayer]+10] + 4C Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 4 февраля, 2022 Поделиться Опубликовано 4 февраля, 2022 В 04.02.2022 в 11:46 AM, Валерий сказал: CE позволяет выделить одну или несколько строк на карте, нажать ПКМ -> Копировать и руками вставить в txt. В таком случае, информация сохранится в виде xml структуры с многими полями, за исключением самого главного - значения. копируй по другому . не пкм мыши , а Ctrl+C и Ctrl+V . тгда значение то же копирует . смотри если это копировать пкм то получиться верхняя часть текста на картинкн , а если Ctrl+C то нижняя . Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Валерий Опубликовано 4 февраля, 2022 Автор Поделиться Опубликовано 4 февраля, 2022 31 минуту назад, Alex2411 сказал: копируй по другому . не пкм мыши , а Ctrl+C и Ctrl+V . тгда значение то же копирует . смотри если это копировать пкм то получиться верхняя часть текста на картинкн , а если Ctrl+C то нижняя . Да, так работает, причем даже если выделить всю таблицу (Ctrl+A), затем скопировать в буфер обмена (Ctrl+C), и вставить (Ctrl+V). Все значения будут в теге LastState в параметре Value. Если пойти данным путем, то вырисовываются две проблемы: 1. Обратиться к окну CE, пройти по дереву элементов на форме, добраться до дочернего элемента List (где лежит таблица), отправить в нее Message Click, затем сделать копипаст в буфер и вставить в файл. Получится ли провернуть такое при свернутом CE?) 2. Распарсить структуру и вытащить все нужные Value. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 4 февраля, 2022 Поделиться Опубликовано 4 февраля, 2022 Записывать надо после того как будет получено значение, можно делать это в цикле в другом скрипте, или ещё как то. Что бы понять как записать посмотри CELua Там тебе понадобятся getAddress что бы прочитать адрес метки, потом readPointer и прочие, там всё есть на страничке с описанием, можешь изучать и пробовать Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения