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

MasterGH

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

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

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

    129

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

  1. Можешь поискать в сканере памяти эейлеров угол вертикальной оси поворачивая персонажа влево и вправо. Тогда выйдешь на три адреса X,Y,Z эйлеровых углов. И по аналогии можно попробовать сделать Quaternion.Euler(transform.eulerAngles): Переписать код на C++ можно декомплировать .net библиотеку C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll через ILSpay. Библиотеку это можно взять из Unity игр или установив движок Unity.
  2. MasterGH

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

    Был вопрос на форуме о том, как узнать, а куда смотрит игрок и как нарисовать линию в экранных координатах. Я не нарисую отрезки в окне игры в экранных координатах, но могу отобразить точки одного отрезка для одного глаза 2д-панельками в экранных координатах (хотя визуально, у Unity экранные координаты связаны с 3д координатами по масштабу пикселя на метр на сцене). Для наглядности все же в окнах сцены будут отрезки в 3д-координатах. Чтобы посмотреть функции операторов такие как умножение, сложение и свойства normalized, и переписать код на C++ можно декомплировать .net библиотеку C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll через ILSpay. Например, там есть расчеты умножения кватерниона (X,Y,Z,W) на эйлеровы углы (X,Y,Z), нормализация, сложение. Библиотеку это можно взять из Unity игр или установив движок Unity. Адреса позиции и углов обычно находятся рядом друг с другом.
  3. Я думаю, можно найти адреса кватерниона в памяти рядом с адресами позиции. Это 4 раза по 4 байта X,Y,Z,W.
  4. 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" может попадать некоторая другая функция с аргументом найденного слова (тогда будет вызов этой другой функции при каждом захвате символа или слова). Более подробное в документации Lua 5.3 Еще несколько ссылок с практическим руководством Lua Regular expression.CT
  5. Готовый вариант не дам, но может поможет Если DrawLine должен рисовать две точки на GUI, то: 1. WorldToScreen из "3д-точки1" 2. WorldToScreen из "3д-точки2" 3. "3д-точка1" равна позиции глаз 4. "3д-точка2" = "3д-точка1" + ("3д-направление 3д-точки1") * дистанция взгляда 5. "3д-направление 3д-точки1" = нормализация ("кватернион 3д-точки1" * new Vector3(0f, 0f, 1f)) 6. Умножение кватерниона на вектор3 через определение оператора "умножение" 7. Нормализация вектора3 Не уверен, что это правильно, надо переводить на C++ и проверять. * Если в игре ось "вперед" не является Z, а другой осью Y, то new Vector3(0f, 1f, 0f)
  6. Рис1. Пример рисования текста разными цветами Скрипт Lua Источник
  7. Скриншот. Сравнение main.lua версии CE 6.6 и celua.txt CE 6.7 В архиве ниже два файла описания CE Lua функций, классов. Файлы можно сравнить самостоятельно в любой программе (я сравнивал в NotePad++, плагин Compare). Без сравнения будет сложнее ориентироваться. Compare Help Lua files CE 6.7.zip Появились, если я правильно подсчитал 17 новых классов. 16 классов для работы с базой данных SQL(sqlite) и один CustomType, множество функций. Некоторые из них
  8. MasterGH

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

    Кому интересно как c помощью инструмента Fuse сделать модель вроде той, что я набросал на скриншоте выше и заставить её бегать, я предлагаю посмотреть в этом видео, незнакомого автора.
  9. Пример1. Узнать во сколько раз string.match() медленее string.find() Пример2. Создание лишней локальной переменной Ответы: 1.38, 1.04. Если значение меньше единицы, то оптимизированный код хуже. Если значение больше единицы, то стоит использовать более оптимизированный вариант. Для простого поиска лучше использовать string.find чем string.match. Еще несколько примеров Для чего может пригодиться. Может пригодиться при оптимизации кода трассировке на брейкпоинтах в пошаговой отладке
  10. В общем хорошо взялся за регулярки на Lua! Всё подряд прогоняю через них, что под руку попадется, любые задачи. Случайный пример задачи. Пронумеровать список Тут же написал И получил ответ. В следующий раз только вызывать "EnumerateText([[ текст со строками]])" Тут в буфер текст улетит и выведет в мессагу. После закрытия мессаги через CTRL+V вставит текст, куда хотим Пронумерованные функции — функции работы со строками последней версии Lua 5.3.x из документации На что стоит обратить внимание при регулярках: 1. Работа с пробелами и не пробелами: "%s" и "%S" 2. Работа с символами разделяющие строки и не разделяющими строки: "%с" и "%С" 3. Захват строк "(.+)", "(.-)", "(.*)", а также без захвата, т.е. пропуск других символов ".+",".-",".*" 4. Узнать как и какая функция из выше перечисленных работает, какая используется с регуляторами. Хотим к примеру вывести слово, которое закончится на пробеле (пишу просто "на пробеле" без учета других символов). Это уже "(%w+)", а если хотим второе слово, то это "%W+%w+" (не выводить первое и вывести второе слово) или "%s(%w+)" (после пробела, но чтобы было без пробела, то захватить в круглые скобки), или "^.+%s(%w+)"(начинать с первого символа до пробела и захват до конца слова). Если писать на CE Lua, то регулярки знать не обязательно. Но, их желательно знать, чтобы читать чужой код и писать свой. Да и вообще это интересно. Очень короткие выражения позволяют решить некоторую задачу за быстрое время. Основные задачи: поиск текста и замена текста.
  11. MasterGH

    Tool CE Lua Regular Expression

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

    Lua Regex Tester (Cheat Engine)

    Используется UDF1.CELabel1.Caption = string.match(stringLine, stringPattern) Для запуска нужна CE 6.4. string.match.CETRAINER
  13. Если в течении работы CE трейнер забирает много памяти, то возможно скапливаться мусор. Через таймер очистка мусора решает проблему. Код я выше привел. Там закоментить строчки print, чтобы консоль не показывало.
  14. Можно попробовать прописать сборку мусора. Например, каждую минуту
  15. Прикольно, надо будет почитать. Я часто костыляю с парсерами. Полезна. "Perl, PHP, Java, Python, Ruby, MySQL, VB.NET, C# (и других языках платформы .NET). Регулярные выражения позволят вам автоматизировать сложную и тонкую обработку текста. " C# я учил для работы с базами данных. Либо как софт (wpf), либо как веб (asp.net, silverlight). Книги, справочники, блоги, форумы. Собеседования, вакансии, что хотят работодатели, что я умел, что не умел... Пока я искал работу предложили работать с Unity временно и затем на постоянку у ИП. Начал и все пошло. Я удивлялся как все двигалось по физике, как рисовалось и все на C# и зарплату платят. Все нравилось. Все само запоминалось или записывал. Потом где-то через 4 года пошел в игровую студию. Работаю в ней уже второй год, а компании года три. Молодой коллектив в основном и компания по разработке игр начинающая. Я пришел в очень молодую компанию и мы растем. Я надеюсь будут игры, которые будет не стыдно показать. Пока то, что мы делаем хоть и имеет в сумме десятки миллионов установок, а то и сотни, если сложить разные сторы и маркеты, но пока игры очень короткие и по качеству не конкурируют с известными игровыми студиями в Новосибирске, я уже молчу про еще более известные.
  16. То-то я смотрю Lua скрипты пишешь. Если на работе — на Python... :))) Интересно @SnedS91 тоже на Python, такие регулярки закручивает с легкостью ))
  17. Если судить по мне, то мне тяжело давалось программирование. Как я не пытался понять C++ у меня никак не получилось или мне не везло на книги. Но когда я вот эту книгу, которую посоветовал нам препорд, прочел, то у меня все пошло по нарастающей. Её прочитал когда был на первом курсе универа (1-ый или второй семестр) Она читается на одном дыхании и не сложно и не особо легко, если вообще о программирование не знал. Процедурное программирование, типы данных, циклы и даже ООП в конце книги. Я эту книгу обожаю, хотя на паскале или Дельфи очень давно ничего не писал
  18. MasterGH

    Lua счет произвиодительности

    С точностью до тысячной доли секунды можно посчитать задержку выполнения кода, что можно применить как счет производительности. local x = os.clock() local s = 0 for i=1,100000 do s = s + i end print(string.format("elapsed time: %.3f\n", os.clock() - x)) После выполнения, показывает 2 тысячных секунды или 2 мс elapsed time: 0.002 Можно посчитать прошедшее время для другой цели. Например, если цикл в отладке выполняется более 3 секунд, то это вероятно корневой цикл, а если менее, то это вложенный цикл. На корневом цикле можно остановить трейслог. Об этом может быть потом напишу.
  19. Пытаться искать рабочий адрес координат float, double тип, когда поднимаешься или опускаешься танком. Если такой есть работать с ним. Проверить, что сетевые клиенты видят изменения, если не видят значит движение танка происходит на серверной части по вводу, а всем клиентам от сервера раздаются копии позициий танков. Проверить мастер-сервер или мастер-клиент, кто синхронизирует положения танков. Если мастер-клиент, что маловероятно, то можно менять позиции всех танков на машине мастер клиента. Если мастер-сервер, то никто кроме сервера не может прямо влиять на положения танков, лишь косвенно отправляя данные ввода мастер-серверу.
  20. Если это сигнатура кода, то проверить, что в неё не попадают смещения: call смещение jmp смещение Если такие есть, то переделать маску сигнатуры ,открыв дизассемблер по инструкциям. Если это сигнатура данных, то никак. Она меняется после перезапуска. Можно искать код, который создает данные и с ним работать
  21. А, я думал у тебя SDD нет. Тогда SSD лучше не покупать, почистить на нем место и попытаться оценить сколько оперативы надо как я выше писал. ТО что система на нем стоит, то ок. Файл подкачки можно попробовать назначить только на SSD диск, без других. И проверить куда CE файл дампа кидает, скорее всего в правильный в системный (если его не меняли). Я этот путь менял, не могу сказать. Путь можно отследить с помощью программы ProcessMonitor после первого сканирования. Если что, лучше оперативы докупить. Хотя я вот так думаю, оперативы, оперативы... лучше подождать, не горит, потом комп весь обновить. В общем, не знаю
  22. Для примера Intel Core i5-4670K 3.40Gh (4 ядра) 2x8GB DDR3 Kingston 250 GB SSD Kingston (брал в Академгородке в районе 8К руб) Скан неизвестного для Dead Rising 3 почти также как у @Xipho на видео при поиске координат, хотя могу ошибаться. Может быть, у меня медленее. Системные требования у этой игры ------------ Если выбор между купить оперативы или купить SSD. Я бы купил бы сначала SSD, а потом если потребуется докупал бы оперативы. CE создает порой огромные временные файлы дампа на харде. На скриншоте сейчас файлы для примера с малым размером. SSD-шник пишет и читает примерно со скоростью 500Мб/с из оперативной памяти, а есть и модели SDD более 1Гб/с. Вот тесты сравнения скорости записи, чтения До сих пор остается вопросом, если купить оперативы под завязку, будет ли CE скидывать дамп на жесткий диск или нет. Это зависит от нехватающего объема оперативы. По ощущениям он скидывает, когда оперативы не хватает: 1 дамп на поиск, плюс резерв на дамп такого же размера. Посмотри какого размера у тебя эти файлы после первого сканирования неизвестного. Если файлы сюда пишет, значит 8GB оперативы недостаточно, то тут возможно стоит брать оперативы по оценкам, сколько весят дампы этих файлов. Что такое 8GB? Это два дампа сканирования первый 4GB + второй на отсев на 4GB. Я думаю, что даже 16GB оперативы не будет хватать. Если файлы размером 4GB-7GB, то оперативы можно прикупить на 16GB, но я бы сначала SSD шник взял и с ним бы проверил, возможно его скорости хватит. Можно купить SSD на 250Gb и по возможности на него Винду поставить или изменить пути файла подкачки на SDD и Temp папку. Если рискнуть и оперативы купить 16GB или 32GB, или 64GB, а SDD не брать, будут ли дампы сбрасываться на жесткий я не в курсе. Мне SDD нужен был в двух случаях. Работа с Unity(игровыми) проектами (огромные данные из мелких файлов) и возможно запись и обработка видео для форума, ну и сканирование на Cheat Engine и общая работа с ОС по скорости. Есть два варианта установки SSD. Операционную систему перекинуть на него или же оставить ОСь на старом харде, а на SDD настроить файл подкачки.
  23. Legacy of Kain: Defiance Это старая PC игра выпущена в районе 2003-2004 годах, когда я еще учился в школе в классе 11-ом. В самом конце игры была сложная миссия сражения с боссом, никак не получалось её пройти. Кстати из этой игры есть персонаж на аватаре у пользователя с форума Cheat Engine Не мог пройти, как не пытался. То ли руки не из того места, пройти очень хотелось. Было у меня немного журналов игровых и там я много раз видел программу MTC. Казалось, что она очень сложная для понимания. Просто помнил о ней и не пользовался. Так вот игру пройти не мог и решил все-таки MTC научиться пользоваться. С помощью МТС я впервые сделал чит на HP и прошел игру. После этого я переломал все игры, которые у меня были, изучил в этой программе все что можно, хотя с большим трудом это все давалось. Потом появился Интернет. Узнал про Artmoney и другие сканеры. Кстати 9 мая разработчики обещали новую версию Artmoney. В общем с Legacy of Kain: Defiance и МТС, и началось увлечение взломом игр
  24. Пользователи, которые пишут статьи, ведут активность на форуме у меня на вес золота. @srg91 молодец, что написал статью. Огромный респект. Если кто-то будет их провоцировать, обижать, сразу забаню.
×
×
  • Создать...

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

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