Sergey99 Опубликовано 17 марта, 2020 Поделиться Опубликовано 17 марта, 2020 Здравствуйте, ни как и ни где не найду исходник логгера текстур на C++ и вытекающий от туда WH на DirectX, который ещё кенг делал. На гите его уже нет, как мне быть?? Хочу сделать Chameleon для CoD: MW2 и не спрашивайте почему, потом всё видите как только закончу) Где мне взять исходник? Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 18 марта, 2020 Автор Поделиться Опубликовано 18 марта, 2020 Ок, это слишком сложно, тогда как отключить текстуры и оставить одни полигоны? Наверняка на c++ это делается. Желательно с примером и объяснением (стиль "Как нарисовать сову" не принимается, так как все исходники, которые я беру не работют так как не определы идентификаторы функций а символы и directx я подрубил всё пашет) И ещё прошу объяснить как оптимизировать под новые версии DirectX (11 например)? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 марта, 2020 Поделиться Опубликовано 19 марта, 2020 Бери не готовые исходники, а попробуй разобраться сам, что нужно сделать, чтобы на объектах не рисовались текстуры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 19 марта, 2020 Автор Поделиться Опубликовано 19 марта, 2020 (изменено) Чтобы текстуры не отрисовывались, необходимо отключить какую-то функцию (или же изменить алгоритм рисования в D3D приложении) из D3D. Я располагаю Visual Studio 2017 и 2015 у меня есть DirectX SDK (June 2010), в которой есть необходимые файлы, но проблемы начинаются в самом начале, ведь даже не дают сделать хук на отрисовку меню поверх окошка прогаммы. Изменено 19 марта, 2020 пользователем Sergey99 Ссылка на комментарий Поделиться на другие сайты Поделиться
JustHack Опубликовано 19 марта, 2020 Поделиться Опубликовано 19 марта, 2020 (изменено) ? Изменено 11 апреля, 2020 пользователем JustHack Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 19 марта, 2020 Автор Поделиться Опубликовано 19 марта, 2020 (изменено) Такс пришёл домой, решил писать заново всё и попутно справляться с ошибками (до тех которые не смог решить пока не дошёл). Итак вот часть моего творения с комментариями, поясните я правильно понял (комментирую) эту часть? /** typedef для long HRESULT WINAPI *имя - это указатель на функцию с соглашением вызова WINAPI, которая принимает параметры опредедлённых типов данных и возвращает HRESULT WINAPI - это _stdcall (соглашение вызова) */ typedef HRESULT(WINAPI *tSetStreamSource)(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 *pStreamData, UINT OffsetInBytes, UINT Stride); tSetStreamSource oSetStreamSource; //Объявляем oSetStreamSource, это имя будет использоваться для вызова функции, указателем на которую является tSetStreamSource typedef HRESULT(WINAPI *tEndScene)(LPDIRECT3DDEVICE9 pDevice); tEndScene oEndScene; //Объявляем oEndScene, это имя будет использоваться для вызова функции, указателем на которую является tEndScene typedef HRESULT(WINAPI *tDrawIndexedPrimitive)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount); tDrawIndexedPrimitive oDrawIndexedPrimitive; //Объявляем oDrawIndexedPrimitive, это имя будет использоваться для вызова функции, указателем на которую является tDrawIndexedPrimitive 17 часов назад, Sergey99 сказал: typedef для long HRESULT Немножко не верно: typedef для объявления имени HRESULT для типа данных long для описания ошибки или предупреждения Вот так ок? Как я почитал в месте: WINAPI *tSetStreamSource мы объявляем указатель на метод SetStreamSource из класса IDirect3DDevice9, которая принимает параметры и вызывается из _stdcall, но не ясно для чего тогда typedef и зачем потом oSetStreamSource? Вот подробное описание этой конструкции: 1) Объявляем тип указателя на метод 2) tSetStreamSource - указатель на метод SetStreamSource, который принимает определённые параметры и возвращает HRESULT 3) Объявялем указатель, принадлежащий типу tSetStreamSource Надеюсь всё ясно) НА дворе 2 часа ночи а тем временем дошёл до этой строчки: #define HOOK(func, addy) o##func = (t##func)DetourFunction((PBYTE)addy, (PBYTE)hk##func) Первую часть я понял, мы с помощью директивы препроцессора определяем константу или макрос HOOK, который судя по всему принимает, аргументы а что дальше. Кто может объяснить, что делает эта строчка? 8 часов назад, Sergey99 сказал: DetourFunction Хотя пишут, что есть теперь DetourAttach, но в общем что вся строчка делает? Изменено 19 марта, 2020 пользователем Sergey99 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 20 марта, 2020 Поделиться Опубликовано 20 марта, 2020 17 часов назад, Sergey99 сказал: Хотя пишут, что есть теперь DetourAttach, но в общем что вся строчка делает? Вся строчка устанавливает псевдоним HOOK на функцию DetourFunction. Но я не думаю, что ты именно это хотел узнать. Что делает DetourFunction(DetourAttach), можно прочитать в официальной документации. Если кратко, она подменяет адрес вызова оригинальной функции на адрес хук функции, чтобы вместо оригинальной функции вызывалась хук функция. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 20 марта, 2020 Автор Поделиться Опубликовано 20 марта, 2020 (изменено) Исходя из документации выясняется, что DetourFunction - определяет адрес по которому наша DLL ищет функцию, но в новой версии есть DetourAttach. Как тогда переписать строчку для определения HOOK? Короче нашёл древний заголовок detours v1.5 думаю сейчас с ним попробую для начала, а то так не интересно, когда мелгомягкие придумывают новые название и структуры для функций) Изменено 20 марта, 2020 пользователем Sergey99 Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 21 марта, 2020 Автор Поделиться Опубликовано 21 марта, 2020 И так вот всё готовенько, сделал хук на D3D9 так как CoD: MW2 работает с ним. Вот ссылка на гит хаб хука: https://github.com/Pirate1953/D3D9_HOOK,, по сути всё что делаю это рисую меню сверху слева в окне игры с возможностью управления клавишами на клавиатуре. Теперь вопрос: как мне реализовать функцию, которая будет отключать текстуры, оставляя полигоны моделей (если такая вообще существует) или как отображать полигоны у всех моделей на карте (видны даже те, которые за стеной стоят)??? Вот само меню: 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Sergey99 Опубликовано 22 марта, 2020 Автор Поделиться Опубликовано 22 марта, 2020 Всё готовенько, я что теперь ночной кодер? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 марта, 2020 Поделиться Опубликовано 22 марта, 2020 6 часов назад, Sergey99 сказал: я что теперь ночной кодер? Если ты "сова", то да, Я "сова" и ночью голова у меня лучше соображает - в разы... Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость SklayPay Опубликовано 28 марта, 2020 Поделиться Опубликовано 28 марта, 2020 (изменено) В 19.03.2020 в 14:34, JustHack сказал: Ты можешь показать здесь написанный тобой код, что у тебя не получается. В противном случае, если ты ничего не можешь написать сам, тебе скорее всего нужно будет глубже изучить матчасть. А после этого, уже вернуться к своей затее. Это может занять пару месяцев, а может быть и лет. JustHack. Умоляю помоги, я увидел твою тему с WarFace софтом, делал все по инструкции, но на 64 бит, в итоге огромные проблемы с кодом, и никак не могу их решить... В дискорд заявку не могу отправить (Дс пишет что ты не принимаешь заявки и должен сам их отправлять). Прими пж Ванюшка#2141 Изменено 28 марта, 2020 пользователем SklayPay Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения