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

Блоги

Оптимизация CE Lua кода по сборке мусора

Есть инструкции, которые добавляют мусора больше чем другие.   Показываем объем памяти мусора print(string.format('Lua memory usage %.1f MiB',collectgarbage('count')/1024)) Ниже код того как попробовать узнать сколько мусора добавил код при парсинге ассемблерной строки двумя способами   Пример результатов могут отличаться. Фиг его знает почему. Возможно работает сборщик мусора в разные моменты времени Lua memory usage 1.8 MiB Lua memory usage 1.8 MiB Lua memory us

MasterGH

MasterGH

Регулярки на Lua

Добавлен файл [Cheate Engine] Lua Regular expression.CETRAINER. Файл можно скачать в теме по ссылке. Исходники в приватном разделе.  

MasterGH

MasterGH

CE 6.7 Lua. Интересный пример скрипта

Появилась такая опция асинхронного выполнения скриптов   Если эту опцию поставить на скрипты, то появляются вот такие часики   АА-шные скрипты могут искать в этот момент сигнатуру. Lua скрипты потестить было интересно, узнать действительно ли асинхронно выполняется. Например, один скрипт выполняет счет, второй выполняет счет. По выполнении выводится результат.     Во время выполнения включаем первую галку. Тут CE подвисает. Затем успеваем нажат

MasterGH

MasterGH

[ Cheat Engine 6.7 + Pointermap] Поиск указателей. Видео

Я задался вопросом, что такое pointermap. Вообще о нем не слышал и речь пойдет о нем. Я узнал о нём и прикинул, что возможно круто, а возможно и не круто иметь готовую цепочку указателей перед тем, как что-то делать в отладке. Цепочки можно раскрыть в окне структур и прикинуть, что там в них и "около" каких адресов будет происходить отладка. Во время отладки можно смотреть на окна структур. Может быть, а может быть и нет что-то интересное связать в отладке и с данными об указателях...  

MasterGH

MasterGH

Жизнь без читов - возможна ли?

Много лет назад подсел я на читы. Читы я не только делаю, но и пользуюсь ими. Все игры прохожу с читами (кроме MMO, в которые очень редко играю). Не помню какую игру прошёл без читов последней. Даже в ГЭГ вешал очки тетриса и силу удара рогаткой по мышам в канализации. Хотя нет, помню - INSIDE прошёл без читов. А чего там вешать-то? В общем, зараза похлеще герыча  Скажете, с читами неинтересно играть, весь интерес к игре пропадает? Не скажите. Вот когда тебя убивают в 100-ый раз, вот тогда дейст

aliast

aliast

[dnSpy + Unity ] Пошаговая отладка

Пошаговая отладка в dnSpy позволяет ставить брейкпоинты на C# код во время работы игры, перемещаться по коду, просматривать значения переменных. Сэкономит кучу времени при поиске и отладке игрового кода,   1. Страница загрузки dnSpy 2. Скачиваем dnSpy и все архивы с mono.dll файлами Unity-debugging-4.x-win32.zip Unity-debugging-4.x-win64.zip Unity-debugging-win32.zip Unity-debugging-win64.zip 3. Смотрим свойства exe файла игры и определяем по нему вер

MasterGH

MasterGH

[The Escapists 2 + Unity + dnSpy] Спавн итемов.

Спавн итемов удалось сделать через dnSpy. При клике на любой предмет на меню крафта он создается в инвентаре, а если там занято, то выкидывается на карту.   Я переписал метод клика на рецепт, вот он оригинальный   На этот       Для спавна заменить Assembly-CSharp.dll из архива, сделав копию предварительно Assembly-CSharp.rar

MasterGH

MasterGH

CE Lua чистка памяти от утечек

ИМХО отказываться от CE Lua скриптов из-за утечек памяти не стоит. Можно чистить память следующим образом function startCollectgarbageProcess(interval, showStatus) local timer1 = createTimer(true) timer1.Interval = interval timer1.onTimer = function () if (showStatus) then print(string.format('Lua memory usage %.1f MiB',collectgarbage('count')/1024)) end collectgarbage("restart") collectgarbage("collect") if (showStatus) then print(string

MasterGH

MasterGH

CE Lua Крестики и нолики

Игра с рандомом. Есть счет. Запускается через таблицу в аттаче.   Здесь мог быть AI на Lua, возвращающий номер клетки от 1 до 9. function InputAI() -- рандом return math.random (1, 9) end Извиняюсь, лучше рандома пока не могу предложить.     Крестики и нолики.CT

MasterGH

MasterGH

CE Lua ModuleList region scan

Поиск по модулям     Исходник   Поместить ModuleListRegioScan.lua в autorun.   Что интересно, Дарк Байт решил написать на Lua. Эта функция жестко в CE не впиливается. Можно выбирать, хочу это расширение поставить или нет. Посмотрел, если понравится, то оставил. Cheat Engine перекомплировать не нужно и не нужно в нем делать опции скрывать или показывать функционал.   Источник

MasterGH

MasterGH

CE 6.7 Lua. Функция autoAssemble

Источник   Как вступление. Мне нравится Lua, потому что в нем можно писать код в виде строковых данных (и Lua строки, и ассемблерные строки), а затем выполнять эти строки как код. В теории код может по фидбеку делать другой код в автоматическом режиме. Это на мой взгляд неисчерпаемые потенциальные возможности AI ограничивающиеся железом.   В CE 6.7 функция autoAssemble вызываемая в Lua скриптах позволяет включать и теперь выключать скрипт со "своим" dealoc-ом.   При

MasterGH

MasterGH

CE Lua Оптимизация splitDisassembledString()

Напишем функцию, которая в 3.2 раз быстрее кода ниже splitDisassembledString(disassemble(address))   Сравнивая скорости получаем оптимизацию в ~3.20 раза быстрее.   Пример использования function GetDebugString2(address) local clearString = string.gsub(disassemble(address), '%s','') return string.match(clearString, '^(.-)%-(.-)%-(.-)$') end local address, bytes, opcode = GetDebugString2(0x0045464A) print(address) print(bytes) print(opcode) gsub очищает пробелы

MasterGH

MasterGH

Работа с системой контроля версий в команде разработчиков

Инфа по совместной работе с гитом. Может быть пригодится кому, а может и нет. Такую систему я использую на работе недавно.   Можно совместно работать над одним большим проектом через git-flow. Возможно, кто-то из форумчан тоже использует git flow на работе.     Кратко. Модель контроля версии построена на 4 ветках   master - релизы develop - разработка feature - фичи hotfix - исравления   С develop начинается разработка через копирования в ветк

MasterGH

MasterGH

Так держать?

Дорогие читатели!   Мне продолжать этот бложек в текстово-картиночном формате (возможно - с гифками!) или же перейти обратно на формат видеолекций? А может, текстовые статьи дополнять видеопояснениями? Я никак не могу определиться, потому что мне очень странно на камеру объяснять и писать текст (код). Помогите мне определиться, пжлст (в комментариях).

keng

keng

Движочек. Начало.

Привет, читатель!   Ты сейчас читаешь это, потому что в тебе есть интерес ко взлому игр и низкоуровневому программированию, ибо этот мини-блог будет посвящен как раз этой тематике. Если конкретнее, то я постараюсь показать и рассказать о том, как пишутся движки для трейнеров. Если ты вдруг не в курсе, то трейнер - это программа, позволяющая всячески изменять поведение компьютерной игры. Например, сделать ГГ (главного героя) бессмертным или же выдать ему миллион игровых очков. В общем,

keng

keng

Куда смотрят глаза

Был вопрос на форуме о том, как узнать, а куда смотрит игрок и как нарисовать линию в экранных координатах. Я не нарисую отрезки в окне игры в экранных координатах, но могу отобразить точки одного отрезка для одного глаза 2д-панельками в экранных координатах (хотя визуально, у Unity экранные координаты связаны с 3д координатами по масштабу пикселя на метр на сцене). Для наглядности все же в окнах сцены будут отрезки в 3д-координатах.         Чтобы посмотреть

MasterGH

MasterGH

Tool Lua Regular expressions 2

CT таблица для составления регулярных выражений 4-х функций   string.match (s, pattern [, init]) string.gmatch (s, pattern) string.gsub (s, pattern, repl [, n]) string.find (s, pattern [, init [, plain]]) Функция string.gsub может принимать в аргумент функции "repl" таблицу (тогда будет замена по ключам значений из таблицы ) или в аргумент "repl" может попадать некоторая другая функция с аргументом найденного слова (тогда будет вызов этой другой функции при каждом захвате символа или

MasterGH

MasterGH

Модели в Unity + Fuse + Mixamo. Demo

Кому интересно как c помощью инструмента Fuse сделать модель  вроде той, что я набросал на скриншоте выше и заставить её бегать, я предлагаю посмотреть в этом видео, незнакомого автора.    

MasterGH

MasterGH

Lua. Сравнение времени выполнения двух функций

Пример1. Узнать во сколько раз string.match() медленее string.find()   Пример2. Создание лишней локальной переменной   Ответы: 1.38,  1.04.   Если значение меньше единицы, то оптимизированный код хуже. Если значение больше единицы, то стоит использовать более оптимизированный вариант.   Для простого поиска лучше использовать string.find чем string.match.     Еще несколько примеров   Для чего может пригодиться. Может пр

MasterGH

MasterGH

Регулярки на Lua. Пронумеровать список строк

В общем хорошо взялся за регулярки на Lua!  Всё подряд прогоняю через них, что под руку попадется, любые задачи.   Случайный пример задачи. Пронумеровать список   Тут же написал     И получил ответ. В следующий раз только вызывать "EnumerateText([[ текст со строками]])"   Тут в буфер текст улетит и выведет в мессагу. После закрытия мессаги через CTRL+V вставит текст, куда хотим Пронумерованные функции — функции работы со строками последней

MasterGH

MasterGH

Tool CE Lua Regular Expression

Установка: 1. Файл GHL_ClassSettings.lua закинуть в autorun (нужен для сохранения и загрузки данных формы) 2. Двойной клик на Lua Regular expression.CETRAINER вызовет это окно   Описание: - Для тренировки и проверки написания регулярных выражений - Выбор извлечения строк в виде одной или в виде последовательности - При нажатии на кнопку или при вводе текста в memo вычисляется выражение Lua Regular expression.CETRAINER GHL_ClassSettings.lua

MasterGH

MasterGH

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

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

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