Гость Poligraf Опубликовано 29 декабря, 2020 Поделиться Опубликовано 29 декабря, 2020 (изменено) Привет всем,у меня проблема с вх на warface,решил узнать имена всех нужных мне обьектов но не тут то было.Игра сильно лагает при отрисовке, но не чего не рисуеться. https://ibb.co/gSXGBBL << Ссылка на скриншот игры (Текст рисуеться в левом вверхнем углу) Код класса IRenderer->WorldToScreen Спойлер bool ProjectToScreen(wts_info* info) { return VIRTUAL<bool(__thiscall*)(PVOID, wts_info*)>(this, 109)(this, info); //ProjectToScreen-> xref [x] -> 872/8 = 109 } DWORD64 GetHeight() //проверить { return (DWORD64) * (DWORD64*)((DWORD64)this + 0x250B); // проверить и обновить смешение r_width -> xref [x] - седьмая ссылка v14 = *((_DWORD *)v3 + 9482); } DWORD64 GetWidth() //проверить { return (DWORD64) * (DWORD64*)((DWORD64)this + 0x250A); // проверить и обновить смешение r_height - > xref[x] - седьмая ссылка v13 = *((_DWORD *)v3 + 9483); } bool WorldToScreen(Vec3 vInput, Vec3& vOutput) { wts_info info; info.input.x = vInput.x; info.input.y = vInput.y; info.input.z = vInput.z; info.output.x = &vOutput.x; info.output.y = &vOutput.y; info.output.z = &vOutput.z; ProjectToScreen(&info); if (vOutput.z < 0.0f || vOutput.z > 1.0f) return false; vOutput.x *= (GetWidth() / 100.0f); vOutput.y *= (GetHeight() / 100.0f); return true; } Я все это делаю в хуке EndScene ,вот и сама рисовка,Игру не крашит но и нечего не рисует, только лагает сильно Спойлер HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDevice) { //if (GetAsyncKeyState(VK_F8) & 1) //{ // Box3D = !Box3D; //} if (XFont == NULL) D3DXCreateFont(pDevice, 14, 0, FW_NORMAL, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"red", &XFont); IEntityIt* pIEntityIt = SSystemGlobalEnvironment::Singleton()->GetIEntitySystem()->GetEntityIterator(); while (IEntity* pIEntity = pIEntityIt->Next()) { Vec3 objPos = GetPlayerPos(pIEntity); Vec3 pos2d; if (SSystemGlobalEnvironment::Singleton()->GetIRenderer()->WorldToScreen(objPos, pos2d)) { DrawMyText(pos2d.x, pos2d.y, Colorss::BLUE, pIEntity->GetName()); DrawMyText(55, 55, Colorss::BLUE, "Tested"); //Вот это рисует } } function(pDevice); return oEndScene(pDevice); } Изменено 30 декабря, 2020 пользователем Poligraf Поправлено форматирование. Выдан пред. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения