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

Sergey99

Пользователи
  • Публикаций

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

  • Посещение

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

    2

Sergey99 стал победителем дня 17 ноября

Sergey99 имел наиболее популярный контент!

Репутация

3 Навыки не прокачены

Информация о Sergey99

  • Звание
    Продвинутый пользователь

Посетители профиля

550 просмотров профиля
  1. Всё нашёл, я создал топик на иностранном форуме там мы вместе решили вопрос, так как я понимаю принцип работы матрицы и знаю технический английски . Я готовлю детальный разбор по этой теме для этого топика или выведу в отдельный гайдик, не знаю в общем.
  2. И так тоже, но разве это не через инъекции кода делается, например, все хаки для Phasmophobia, которые существуют они все поголовно являются .dll файлами, которые инжектятся внутрь. А моя задача состоит в том чтобы получить координаты на экране, зная координаты в 3D и видовую матрицу (чтобы не использовать инъекции когда всегда). И да, я знаю что через Mono тоже можно инжектиться.
  3. Получи координаты центра твоего второго окна путём деления ширины и высоты на 2. К примеру для Windows Form .NET C#: System.Int32 CenterX = this.Width / 2; System.Int32 CenterY = this.Height / 2; //Где "this" - указатель на текущий экземляр класса, описывающий твою форму //System.Int32 - структура описывающая тип данных integer Найди свои координаты, потом найди расстояния от своих до координат другого объекта путём вычитания значений каждой оси и эту разность прибавляй к переменным CenterX, CenterY, таким образом центр радара - это "ты" грубо говоря. System.Int32 PosX = CenterX + Convert.ToInt32(/*разность координат по оси X*/); System.Int32 PosY = CenterY + Convert.ToInt32(/*разность координат по оси Y*/); //Convert.ToInt32 - потому что на Windows Form позиция X, Y является целым числом особенно если использовать структуру Point //Далее можно спользовать PosX и PosY для рисования объекта на "радаре"
  4. В общем спустя много времени я нашёл структуру очень похожу на видовую матрицу, однако есть одно отличие от тех, скриншоты которых были выше по теме: - Синий прямоугольник (предположительно видовая матрица), зелёный - координаты (меняются когда я передвигаюсь, мышь и соответственно камера не двигается). В общем всё как для Cod:MW2 и Amnesia. А вот есть ещё оранжевый прямоугольник (поверх зелёного следовательно затрагивает зелёный). Значения в нём изменяются когда я хожу только влево и вправо (клавиши A, D). Это очень сильно похоже на поведение когда я прыгаю в Amnesia и CoD:MW2, так как там меняется лишь одна координата Z, а тут видимо эту особенность переняла другая координата, ведь если я с клавишами A, D буду ещё и камеру двигать то остальные координаты тоже начнут меняться. Похоже здесь каждый элемент матрицы разбит на два значения, тогда вопрос: такое разве возможно? И как тогда мне конвертировать координаты объекта в экранные координаты с такой видовой матрицей?
  5. Я тоже думаю что матрица представлена в памяти как-то "не по обычному". Но вряд ли думаю что байты будут представлены так как ты описал выше (6 значений). Так как в любой игре всё это должно храниться в виде матрицы (как я читал) иначе от куда функция WorlsToScreen() будет брать все три вектора + 4 вектор (позиция), ведь каждый вектор это 4 байта => матрица 4x4 = 16 байт.
  6. И да, Cheat Engine даже 7.0 не предлагает Dissest Mono, а отладчик OllyDbg не может присоединиться к процессу даже. Учитывая что в Cheat Engine если нашёл адрес с координатой и потом ищешь инструкцию, который пишет туда, то из Memory Viewer'а на ту же инструкцию тыкаешь правой кнопкой и хочешь найти к чему получает доступ эта инструкция, то он тебе выдает либо ничего либо какой-то левый адрес. Похоже это игра не до конца закончена оно и понятно, ранний доступ всё-таки, но всё равно даже так она как-то не так работает (это я про проблему описанную выше).
  7. Да, как раз на C# уже написал алгоритм для записи в одномерный массив column-major матрицы, таким же образом чтобы в обработку WorldToScreen() мой массив приходил таким же упорядоченным как и в других играх. Надеюсь что для column-major матрицы функцию WorldToScreen() не придётся переписывать.
  8. Потому что я её рисую и перерисовываю каждый кадр + Bandicam пишет параллельно, потом упрощу немного задачу.
  9. Ищу я видовую матрицу для игрока, вот как он смотрит на 3D мир (вид от первого лица, никакого геймплея через "камеру" нет, просто грубо говоря глаза игрока), а вообще выше по теме было целых два видео где я её использую так что думаю очевидно что я ищу в этой игре.
  10. А может быть такое что байты видовой матрица перевёрнуты? то есть порядок столбцов тот же, а вот строки снизу вверх?
  11. Да, идея хорошая, учитывая то что игра на Unity с использование скриптинга на C#, но не каждая же игра написана на таких общедоступных движках, к примеру CoD:MW2 была написана на C++ и "IW Engine" (движок разработчиков - они сами его написали и сами же модернизировали).
  12. Я сомневаюсь что координаты представлены как тип Double Но попробую поискать видовую матрицу как Double между -1.0 и 1.0
  13. Да уж спустя столько времени я так и не нашёл матрицу, проверял даже банально подстановкой в код для преобразования, чтобы сразу проверять правильные ли байты или нет. Интересно почему так, может я не там ищу?
×
×
  • Создать...

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

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