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

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. MasterGH

    CE Lua ColorPicker (скрытый компонент)

    Скорее всего, да. Возможно не работает функция getSettingsForm() Она могла появиться позже
  2. MasterGH

    CE Lua ColorPicker (скрытый компонент)

    Тут для кнопки, а для Label примерно также
  3. MasterGH

    CE Lua ColorPicker (скрытый компонент)

    На главной форме нет диалога шрифтов. Если посмотреть через Lazarus, то можно найти диалог шрифтов на панели настроек ... getSettingsForm().FontDialog1.Execute() ...
  4. 1. Нашел адрес патронов 2. Поставил брейкпоинт 3. Выкинул из рук Калаш с этими патронами 4. Увидел инструкцию, которая срабатывает когда что-то выкидываешь. Решил зацепиться за эту инструкцию. Либо спавн до инструкции, либо после. Сделал трейслог из рутины на этой инструкции и второй — в рутину, которая срабатывала постоянно, когда ничего не выкидывали (маркеры слева на сриншоте снизу). Поставил кнопкой бряки на все инструкции ветвления Снимал бряки, когда в игре ничего не делал по F5 Затем, когда прерываться перестал. Оказался на том месте на скриншоте. Там уже идет ветвление, когда выкидываешь. Сделал трейслог из рутины на этой инструкции и второй — в рутину, которая срабатывала постоянно, когда ничего не выкидывали. Получается что-то типа этого условия cmp [[edi+00048704]+10],[[edi+00048704]] Если предмет из рук не выкидывается на сцену, то условие истины и происходит прыжок. Если оружие было викинуто, то в правой части другое значение. Затем левая и правая где-то дальше обнулятся. ------------------ Что я хочу сделать. Разобраться с поиском условий по ветвлениям, которые изменяют [[edi+00048704]+10] и [[edi+00048704]], делать это по аналогии как было описано выше. Для начала, для спавна не запускать поток на его функции, а поменять данные, которые проверяют условия (где-то по рутине), чтобы предметы сами из рук выкидывались. Пока так.
  5. Связь точек линиями и связь через метод описанный в статье Пример1. Слева линии, справа работа алгоритма Пример2. Скриншот из pdf документа с разным значением коэфициента Пример3. С альфа и без альфа канала Ссылка на статью. Часть оригинала bundles_infovis.pdf Где можно применить? Пока не придумал, но впечатлило.
  6. MasterGH

    CE Lua программа пишет программу

    Функция loadstring исполняет строку кода как функцию. f = loadstring ("print 'hello, world'") f () --> hello, world Есть еще и такая функция как string.dump. Она создает строку из функции function f () print "hello, world" end s = string.dump (f) -- Можно строку тут же запустить как код loadstring (s) () --> hello, world Если по обратной связи строить и исполнять строку кода, то предположительно можно генерировать код другим кодом и учитывать гораздо больше условий, чем это может сделать человек. Пригодится для ИИ отладки и для ИИ бота. Код пишет другой код по обратной связи. Реальность? Возможно
  7. MasterGH

    CE Lua ColorPicker (скрытый компонент)

    Спасибо. Я код неправильный оставил. Очень спешил Изменил свой пример в первом посте Сделал через вызов функции MainLuaProgramm() Забыл сделать. Если отмену нажали, то надо конечно это условие ставить if(colorDialog.Execute()) then
  8. MasterGH

    Lua ООП конспект

    Несколько интересных ресурсов по Lua 1. tutorialspoint (хорошие примеры по ООП) 2. cheatengine forum примеры кода от пользователя TheyCallMeTim13. Отличый code style. 3. gammon Примеры. 4. Официальная документация 5. "Изучите X за Y минут Где X=Lua" (очень быстро и кратко о синтаксисе, метатаблицах, ООП) Исходник пункта 5: learnlua-ru.lua
  9. MasterGH

    CE Lua ColorPicker (скрытый компонент)

    Чтобы получить цвет из компонента нужно найти его на форме CE через Lazarus. Этот компонент нельзя найти визуально, он скрыт. Узнал об этом случайно, когда зашел на форум Cheat Engine в тему расширений на Lua. Теперь в дизассемблере можно будет быстренько цвета менять
  10. MasterGH

    Lua ООП конспект

    Пригодится для создания больших плагинов в Cheat Engine. Более ~500 строк Наследование Инкапсуляция Полиморфизм Спасибо автору за исходники.
  11. В игровом движке может быть следующая архитектура Менеджер сцен Список сцен Сцена1 Менеджер игровых объектов Список игровых объектов Игровой объект1 Игровой объект2 Игровой объект3 Сцена2 Менеджер игровых объектов Список игровых объектов Игровой объект1 Игровой объект2 Игровой объект3 Сцена3 Менеджер игровых объектов Список игровых объектов Игровой объект1 Игровой объект2 Игровой объект3 Сцены могут подгружаться по одной или несколько сразу и выгружаться. Каждый игровой объект содержит менеджер поведений Игровой объект Менеджер проведений Список игровых проведений Поведение1 Поведение2 Поведение3 Поведения есть стандартные от игрового движка и есть пользовательские, которые пишут программисты. Стандартное поведение Transform нахождение в пространстве может быть установлено по умолчанию у всех игровых объектов. Поведение Transform хранит позицию, углы, масштаб, а также методы перемещения, вращения и другие. Если представить себе иерархичную древовидную структуру, то именно по ней игровые объекты могут находиться друг в друге. Как папки файлового браузера. Transform позволит узнать является ли игровой объект родителем, дочерним по отношению к другому игровому объекту. Система событий позволяет отправить событие по иерархии вглубь, из глубины или конкретному игровому объекту. Поведения могут содержать функции, которые принимают событие и реагируют на него. Например, я отправил игровому объекту событие "по иерархии вглубь" о том, что в такой-то точке есть сигнал бедствия. Поведения, которые приняли это событие могут обработать его и направить ботов "спасателей" в эту точку. Поведения содержат функции игрового движка. Некоторые из них могут быть как: Update(), Start(), Enable(), Disable(), FixedUpdate() Update - срабатывает перед кадром отрисовкой. Time.DeltaTime дельта времени между кадрами FixedUpdate - также как и Update(), только это перед "кадром физики". Start(), OnEnable(), OnDisable() - первый запуск, включение и выключение поведения. Игровые объекты могут содержать строковый тег и номер слоя. Игровые объекты по слоям могут быть видны камере, могут взаимодействовать по физике. Слоем может быть номер или битовая маска.
  12. Всем привет! К новому формату блогов возможно надо привыкнуть. Что хорошо, что там комменты привязаны к определенной теме. Т.е. это действительно блог с записями и комментариями к ней. Это не тема на 13 страниц, которые надо листать. Надо будет выделить время на то чтобы перенести мои записи или какие-нибудь основные. Сразу можно не делать, а постепенно. Друзья, блоги для нас с вами. Что бы мы могли что-то отметить для себя, для других. Руслан нам сделал. Можно пользоваться
  13. Спавн через Lua как-то так Я бы не сразу догадался искать перевернутый текст и не сразу бы догадался об инструкциях add [gta-vc.exe+5B4F94],000003E8 и mov byte ptr [gta-vc.exe+60FB37],01 Интуиция мне подсказывает, что createthread() вызывать не всегда безопасно, например, когда другой поток выполняет код в той же области памяти. Я могу ошибаться, надо будет про потоки почитать.
  14. Обновил первый пост. 1. Убраны не работающие ссылки CPU, FPU 2. Добавлены ENG справочники. Открытые в свободный доступ с сайта Intel 3. Добавлена ссылка на CPU команды с одного из сайтов
  15. У меня есть видео AntonVit с этой темы. "Cheat Engine - Как сделать ограничитель скорости оппонентов (Forza 6 Apex).mp4" Если он не против, можно залить это видео на канал GameHackLab. Но как он теперь даст обратную связь. Когда нет профиля, нет ничего.
  16. Исправил первый пост. Кусок кода ... -- Получить все TreeView трейслогов tracerWindows = GetTTreeViewTracelogs() for i = 1, #tracerWindows do -- Получить таблицу адресов local tableAddresses = GetAddressTables(tracerWindows[i]) for i = 1, #tableAddresses do -- Вывести по одному адресу print(tableAddresses[i]) end end ...
  17. Даже не знаю как ответить. Для кого-то не пригодиться. А мне нужно для рисования ветвей кода. Видим путь, который код прошел и инструкции, которые не были пройдены. Если 4 трейслога, то 4 пути. Хотел показать как это выглядит, но сегодня не успел отладить, лезут ошибки. У меня 1 час ночи. Завтра на работу. Всем до завтра
  18. AntonVit, спасибо за видео. Интересно было посмотреть.
  19. Рис.1 Вывод данных из двух окон трейслогов. Второе окно трейслога не показано на скриншоте Функции PrintTraceLog - просто вывод GetAddressTables - возвращает таблицу с int адресами *Делаем трейслоги. Запускаем скрипт. Выводятся адреса. Внизу справка из main.lua
  20. Это подключение к процессу, как Attach to proccess. Процесс уже должен быть запущен. Если нужно создать процесс и сразу подлючитья к нему, то Пример createProcess('D:\\test.exe') Путь игры можно узнать в теории из реестра, по ярлыкам на рабочем столе или по пути, где находиться трейнер.
  21. Сравнивает две структуры, больше не может. Ищет общие связи между структурами (типы: строка, 1,2,4, 8 байт, float, double, pointer) Может сравнивать по правилам "изменилось/не изменилось" (других правил нет) Has shadow — вероятно, аналог lock функции как в Dessect Data или когда включена lock в Dessect Data, то смотрит её адрес. В документации написано, что полезн в особых случаях "сильно заксриптованных игр", поиск string. Ограничивает то, что две структуры и не более. И два правила "изменилось, не изменилось". Может быть, сделаю видос на выходных. На минут 10. Проблема только в том, чтобы удачно найти практические применение.
  22. Прикольно прыгает на видео . Можно попробовать сделать прыжок как в Марио. Чем дольше идешь тем сильнее разгоняешься и дальше прыгаешь.
  23. Могу предложить придти на стрим в голосе. Редко встретишь девушек на форуме. Зрителей прибавиться
  24. Вангую будет стрим в восресенье )
×
×
  • Создать...

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

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