Опубликовано 6 августа, 20187 г. comment_930 Текстуру персонажа видно когда перед мной(И вдалеке видно)Но только персонаж заходит за стену его подсветка пропадаетЕсли крутить камерой и бегать то текстурка иногда подсвечиваетьсяОтрисовка такHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount){if (pDevice->GetStreamSource(0, &StreamData, &OffsetInBytes, &Stride) == D3D_OK){StreamData->Release();}if (ColorShader){GenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(pDevice, &Shade_Green, 0.0f, 1.0f, 0.0f);//ЗелёныйGenerateShader(pDevice, &Shade_Yellow, 1.0f, 1.0f, 0.0f);//ЖёлтыйGenerateShader(pDevice, &Shade_Fiolet, 1.0f, 0.0f, 1.0f);//ФиолетовыйGenerateShader(pDevice, &Shade_Siren, 0.0f, 1.0f, 1.0f);//СереневыйGenerateShader(pDevice, &Shade_Orange, 1.0f, 0.8f, 0.0f);//ОранжевыйGenerateShader(pDevice, &Shade_Limon, 0.8f, 1.0f, 0.0f);//ЛимонныйGenerateShader(pDevice, &Shade_Gay, 0.0f, 0.8f, 1.0f);//ГолубойColorShader = false;}//отрисовка шэйдэрамиif (Variable[3] == 1){if (playerq){{pDevice->SetPixelShader(Shade_Red); //тут цветpDevice->SetRenderState(D3DRS_ZENABLE, 0);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, 1);}}}И генерация шэйдеровHRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float {char szShader[256];ID3DXBuffer *pShaderBuf = NULL;sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;return S_OK;}
Опубликовано 6 августа, 20187 г. comment_931 pDevice->SetPixelShader(Shade_Red); //тут цвет pDevice->SetRenderState(D3DRS_ZENABLE, 0); pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount); pDevice->SetPixelShader(Shade_Green); //тут цвет pDevice->SetRenderState(D3DRS_ZENABLE, 1); Цвет не указал за стеной
Опубликовано 6 августа, 20187 г. Автор comment_932 Проблема чуток не та вроде понял в чемВ генерации шэйдеров такой был но не светит(Исчезаю проподают и тд...) HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float {char szShader[256];ID3DXBuffer *pShaderBuf = NULL;sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;return S_OK;} Такой светит (Но крашит при включении ) HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pShader, float r, float g, float b, bool setzBuf){char szShader[256];ID3DXBuffer *pShaderBuf = NULL;D3DCAPS9 caps;pDevice->GetDeviceCaps(&caps);int PXSHVER1 = (D3DSHADER_VERSION_MAJOR(caps.PixelShaderVersion));int PXSHVER2 = (D3DSHADER_VERSION_MINOR(caps.PixelShaderVersion));if (setzBuf)sprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0\nmov oDepth, c0.x", PXSHVER1, PXSHVER2, r, g, b, 1.0f);elsesprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0", PXSHVER1, PXSHVER2, r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pShader)))return E_FAIL;return S_OK
Опубликовано 6 августа, 20187 г. Автор comment_933 В чем проблема вот исходmain.cpp#include "Headers.h"#include "Hook.h"#include "Menu.h"#include "Texture.h"CHAR *Blag[] = { " ", " " };CHAR *OnOff[] = { "[Off]", "[On]" };CHAR *Folder[] = { "[+]", "[-]" };//MenuCHAR MenuTitle[MAX_PATH] = { "Menu" };CHAR Timestruct[MAX_PATH] = { "hh':'mm':'ss tt" };CHAR TimeString[MAX_PATH];BOOL BFont = FALSE;INT Variable[MAX_PATH];INT VFolder[MAX_PATH];//Примитивыtypedef HRESULT(WINAPI* oDrawIndexedPrimitive) (LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount);oDrawIndexedPrimitive pDrawIndexedPrimitive;//ШэйдерыLPDIRECT3DPIXELSHADER9 Shade_Blue, Shade_Red, Shade_Yellow, Shade_Green, Shade_Fiolet, Shade_Siren, Shade_Orange, Shade_Limon, Shade_Gay;bool ColorShader = true;//ПримитивыUINT Stride;LPDIRECT3DVERTEXBUFFER9 StreamData;UINT OffsetInBytes;LPDIRECT3DTEXTURE9 chams_red, chams_blue, chams_yellow;bool GenOne = 0;HRESULT WINAPI Reset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS *pPresentationParameters){PFont->OnLostDevice();HRESULT hTorna = OReset(pDevice, pPresentationParameters);if (SUCCEEDED(hTorna))PFont->OnResetDevice();return hTorna;}bool GenerateTexture(IDirect3DDevice9 * pDevInter, LPDIRECT3DTEXTURE9 * texture, DWORD colorARGB) {if (FAILED(pDevInter->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, texture, NULL)))return false;WORD color16 = ((WORD)((colorARGB >> 28) & 0xF) << 12)| (WORD)(((colorARGB >> 20) & 0xF) << 8)| (WORD)(((colorARGB >> 12) & 0xF) << 4)| (WORD)(((colorARGB >> 4) & 0xF) << 0);D3DLOCKED_RECT d3dlr;(*texture)->LockRect(0, &d3dlr, 0, 0);WORD *pDst16 = (WORD*)d3dlr.pBits;for (int xy = 0; xy < 8 * 8; xy++) *pDst16++ = color16;(*texture)->UnlockRect(0);return true;}// Замена текстурvoid SetModelColor(LPDIRECT3DDEVICE9 pDevice, float r, float g, float b, float a, float glowr, float glowg, float glowb, float glowa){float lightValues[4] = { r, g, b, a };float glowValues[4] = { glowr, glowg, glowb, glowa };pDevice->SetPixelShaderConstantF(1, lightValues, 1);pDevice->SetPixelShaderConstantF(3, glowValues, 1);}HRESULT WINAPI Present(LPDIRECT3DDEVICE9 pDevice, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion){if (GenOne == 0){//ЦветаGenerateTexture(pDevice, &chams_red, D3DCOLOR_ARGB(255, 255, 0, 0)); //КрасныйGenerateTexture(pDevice, &chams_blue, D3DCOLOR_ARGB(255, 0, 30, 255));//СинийGenerateTexture(pDevice, &chams_yellow, D3DCOLOR_ARGB(255, 255, 179, 0));//желтыйGenOne = 1;}if (PFont){PFont->Release();PFont = NULL;BFont = FALSE;}if (!BFont){D3DXCreateFont(pDevice, 14, 0, 400, 1, 0, 1, 0, 4, 0 | (0 << 4), "Arial", &PFont);BFont = TRUE;}if (GetAsyncKeyState(VK_INSERT) & 1)menu.ShowMenu = !menu.ShowMenu;if (menu.ShowMenu && PFont){pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);GetTimeFormat(0, 0, 0, 0, Timestruct, 15);DrawBox(menu.matrixPos[0] - 10, menu.matrixPos[1] - 22, 162, 20, TBlack, Red, pDevice);//1 рамка ШапкиDrawBorder(menu.matrixPos[0] - 10, menu.matrixPos[1] - 22, 162, 20, 1, Red, pDevice);//2Рамка шапкиWriteText(menu.matrixPos[0], menu.matrixPos[1] - 20, Green, MenuTitle);//имя менюsprintf_s(TimeString, "%s", Timestruct);WriteText(menu.matrixPos[0] + 100, menu.matrixPos[1] - 20, Green, TimeString);//Цвет времениDrawBox(menu.matrixPos[0] - 10, menu.matrixPos[1], 162, ((menu.Current * 15) - 5), TBlack, Red, pDevice);//1 рамка менюDrawBorder(menu.matrixPos[0] - 10, menu.matrixPos[1], 162, ((menu.Current * 15) - 5), 1, Black, pDevice); //2Рамка менюDrawBorder(menu.matrixPos[0] - 10, ((menu.matrixPos[2] + 2) + (menu.MenuSelection * 15)), 162, 13, 1, Whites, pDevice); //Аодсветка положенияmenu.Current = 1;if (GetAsyncKeyState(VK_UP) & 1)menu.MenuSelection--;if (GetAsyncKeyState(VK_DOWN) & 1)menu.MenuSelection++;Additem("[Подсветка]", 1, VFolder[0], 1, Folder);if (VFolder[0]){Additem("Игроки", 1, Variable[0], 0, OnOff);Additem("Живность", 1, Variable[1], 0, OnOff);Additem("Схроны", 1, Variable[8], 0, OnOff);Additem("Хлам", 1, Variable[3], 0, OnOff);}Additem("[Удаление]", 1, VFolder[1], 1, Folder);if (VFolder[1]){Additem("Листва", 1, Variable[4], 0, OnOff);Additem("Вода", 1, Variable[8], 0, OnOff);Additem("Земля", 1, Variable[6], 0, OnOff);Additem("Небо", 1, Variable[7], 0, OnOff);Additem("Все", 1, Variable[8], 0, OnOff);}Additem("[Разное]", 1, VFolder[2], 1, Folder);if (VFolder[2]){Additem("Прицел", 1, Variable[8], 0, OnOff);Additem("Перенести меню", 1, Variable[9], 0, OnOff);Additem("Благодарность Mr_Chester", 1, Variable[10], 0, Blag);}if (menu.MenuSelection >= menu.Current)menu.MenuSelection = 1;else if (menu.MenuSelection <= 0)menu.MenuSelection = (menu.Current - 1);}if (Variable[8])CrossHair(pDevice, Green);if (Variable[9]){POINT vec2Cursor;GetCursorPos(&vec2Cursor);menu.matrixPos[0] = vec2Cursor.x;menu.matrixPos[1] = vec2Cursor.y;menu.matrixPos[2] = (vec2Cursor.y - 10);}return OPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);}HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pShader, float r, float g, float b, bool setzBuf){char szShader[256];ID3DXBuffer *pShaderBuf = NULL;D3DCAPS9 caps;pDevice->GetDeviceCaps(&caps);int PXSHVER1 = (D3DSHADER_VERSION_MAJOR(caps.PixelShaderVersion));int PXSHVER2 = (D3DSHADER_VERSION_MINOR(caps.PixelShaderVersion));if (setzBuf)sprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0\nmov oDepth, c0.x", PXSHVER1, PXSHVER2, r, g, b, 1.0f);elsesprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0", PXSHVER1, PXSHVER2, r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pShader)))return E_FAIL;return S_OK;}/*HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float {char szShader[256];ID3DXBuffer *pShaderBuf = NULL;sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;return S_OK;}*/HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount){if (pDevice->GetStreamSource(0, &StreamData, &OffsetInBytes, &Stride) == D3D_OK){StreamData->Release();}if (ColorShader){GenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(pDevice, &Shade_Green, 0.0f, 1.0f, 0.0f);//ЗелёныйGenerateShader(pDevice, &Shade_Yellow, 1.0f, 1.0f, 0.0f);//ЖёлтыйGenerateShader(pDevice, &Shade_Fiolet, 1.0f, 0.0f, 1.0f);//ФиолетовыйGenerateShader(pDevice, &Shade_Siren, 0.0f, 1.0f, 1.0f);//СереневыйGenerateShader(pDevice, &Shade_Orange, 1.0f, 0.8f, 0.0f);//ОранжевыйGenerateShader(pDevice, &Shade_Limon, 0.8f, 1.0f, 0.0f);//ЛимонныйGenerateShader(pDevice, &Shade_Gay, 0.0f, 0.8f, 1.0f);//ГолубойColorShader = false;}//отрисовка шэйдэрамиif (Variable[3] == 1){if (playerq){pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);pDevice->SetPixelShader(Shade_Green); //тут цветpDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);pDevice->SetPixelShader(Shade_Red);/*pDevice->SetPixelShader(Shade_Green); //тут цветpDevice->SetRenderState(D3DRS_ZENABLE, 0);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetPixelShader(Shade_Red);pDevice->SetRenderState(D3DRS_ZENABLE, 1);*/}}//Альтернативная отрисовкаif (Variable[0] == 1)if(playerq){////pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);pDevice->SetTexture(0, chams_blue);SetModelColor(pDevice, 200.0f, 165.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);pDevice->SetTexture(0, chams_red);SetModelColor(pDevice, 255.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);}if (Variable[1] == 1)if(animalq){////pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);pDevice->SetTexture(0, chams_yellow);SetModelColor(pDevice, 200.0f, 165.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);pDevice->SetTexture(0, chams_yellow);SetModelColor(pDevice, 255.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);}if (Variable[6] == 1)if(dele_World){return 0;}if (Variable[7] == 1)if(dele_Nebo){return 0;}if (Variable[4] == 1)if(dele_Listva){return 0;}return pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);}DWORD WINAPI Hook(LPVOID lpArgs){HMODULE D3D9 = 0;while (!D3D9){Sleep(100);D3D9 = GetModuleHandle("d3d9.dll");}DWORD VTable[5] = { 0 };CreateDevice(VTable);pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)VTable[2], (PBYTE)myDrawIndexedPrimitive);OReset = (TReset)DetourFunction((PBYTE)VTable[0], (PBYTE)&Reset);OPresent = (TPresent)DetourFunction((PBYTE)VTable[1], (PBYTE)&Present);return FALSE;}BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved){UNREFERENCED_PARAMETER(hModule);if (dwReason == DLL_PROCESS_ATTACH){DisableThreadLibraryCalls(hModule);CreateThread(0, 0, &Hook, 0, 0, 0);}return TRUE;}
Опубликовано 6 августа, 20187 г. comment_934 Попробуй тогда текстурой а не щейдерами HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32) { if(FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL))) return E_FAIL; WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12) |(WORD)(((colour32>>20)&0xF)<<8) |(WORD)(((colour32>>12)&0xF)<<4) |(WORD)(((colour32>>4)&0xF)<<0); D3DLOCKED_RECT d3dlr; (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for(int xy=0; xy < 8*8; xy++) *pDst16++ = colour16; (*ppD3Dtex)->UnlockRect(0); return S_OK; } #define RED D3DCOLOR_ARGB(255, 255, 000, 000) #define GREEN D3DCOLOR_ARGB(255, 000, 255, 000) LPDIRECT3DTEXTURE9 Red,Green; pDevice->SetRenderState(D3DRS_ZENABLE, 0); pDevice->SetTexture(0, Red); pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount); pDevice->SetRenderState(D3DRS_ZENABLE, 1); pDevice->SetTexture(0, Green);Так точно должно нормально быть)
Опубликовано 6 августа, 20187 г. comment_935 Если ты кончено не для CS GO пишешь) В Контре вроде такая херня что за стеной не видно на каком то расстоянии
Опубликовано 6 августа, 20187 г. Автор comment_937 Вот смотри в чем проблема Текстур не видно за обьектами частично а через персонажа видно 100:%Сам код #define _CRT_SECURE_NO_WARNINGS/* Direct3D9 Device */#include #include "main.h"#include "d3d9.h"#include #include "Texture.h"BOOL BFont = FALSE;bool bWallHack = false;bool bWallHack1 = false;bool bTex_Zemla = false;bool bFog = false;bool bZemla = false;bool bTex_Listva = false;bool bArtefice = false;bool bArtefice1 = false;bool bTex_Mutants = false;bool bTex_Mutants1 = false;bool bMount = false;bool bDrop = false;bool bDrop1 = false;bool bXhair = false;bool bColors = true;bool Colors = false;bool Generate = true;bool ColorShader = true;bool GenOne = 0;unsigned int m_Stride = 0;unsigned int primCount; // Переменная primCountunsigned int NumVertices; // Переменная NumVerticesbool Color = true;D3DCOLOR dWhite = D3DCOLOR_ARGB(255, 255, 255, 255);//белыйD3DCOLOR dRed = D3DCOLOR_ARGB(255, 255, 000, 000);//красныйD3DCOLOR dGreen = D3DCOLOR_ARGB(255, 000, 255, 0);//зеленыйD3DCOLOR dPink = D3DCOLOR_ARGB(255, 255, 2, 200);//розовыйD3DCOLOR dOrange = D3DCOLOR_ARGB(255, 255, 165, 0);//оранжевыйconst D3DCOLOR txtRed = D3DCOLOR_ARGB(255, 255, 0, 0);const D3DCOLOR txtYellow = D3DCOLOR_ARGB(255, 255, 255, 0);const D3DCOLOR txtGreen = D3DCOLOR_ARGB(255, 0, 255, 0);const D3DCOLOR txtBlue = D3DCOLOR_ARGB(255, 0, 0, 255);D3DXVECTOR2 CrosshairX[2], CrosshairY[2]; // CrossHair - статический красный прицел посередине экрана, облегчает прицеливание.D3DVIEWPORT9 Viewport; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^int a = 1;LPDIRECT3DPIXELSHADER9 Shade_Blue, Shade_Red, Shade_Yellow, Shade_Green, Shade_White, Shade_Fiolet, Shade_Siren, Shade_Orange, Shade_Limon, Shade_Gay, Shade_Pink, Shade_TEST;char szShader[256] = { 0 };LPDIRECT3DTEXTURE9 Blue;const BYTE bBlue[60] = //Blue{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xFF, 0x00, 0x00, 0x00, 0x00, 0x00};LPDIRECT3DTEXTURE9 Black;const BYTE bBlack[60] = //Black{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0xFF};LPDIRECT3DTEXTURE9 Red;const BYTE bRed[60] = //Red{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0xFF, 0x00, 0x00, 0x00};LPDIRECT3DTEXTURE9 Yellow;const BYTE bYellow[60] = //Yellow{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00};LPDIRECT3DTEXTURE9 Green;const BYTE bGreen[60] = //Green{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x20, 0xA0, 0x00, 0x00, 0xFF, 0xFF};LPDIRECT3DTEXTURE9 Pink;const BYTE bPink[58] = //Pink{0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x80, 0x00, 0xFF, 0x00};LPDIRECT3DTEXTURE9 Turquoise;const BYTE bTur[60] = //Turquoise{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00};LPDIRECT3DTEXTURE9 Orange;const BYTE bOrange[60] = //Orange{0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x10, 0x80, 0xF0, 0xB0, 0x00, 0x00};LPDIRECT3DTEXTURE9 White;const BYTE bWhite[58] = //White{0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0xFF, 0xFF, 0xFF, 0x00};HRESULT CD3DManager::Initialize(){/*initialize Resources such as textures(managed and unmanaged [D3DPOOL]),vertex buffers, and other D3D rendering resources...m_pD3Ddev->CreateTexture(..., ..., &m_pD3Dtexture);*/return S_OK;}HRESULT CD3DManager::PreReset(){/*release all UNMANAGED [D3DPOOL_DEFAULT]textures, vertex buffers, and othervolitile resources..._SAFE_RELEASE(m_pD3Dtexture);*/return S_OK;}HRESULT CD3DManager::PostReset(){/*re-initialize all UNMANAGED [D3DPOOL_DEFAULT]textures, vertex buffers, and other volitileresources...m_pD3Ddev->CreateTexture(..., ..., &m_pD3Dtexture);*/return S_OK;}HRESULT CD3DManager::Release(){/*Release all textures, vertex buffers, andother resources..._SAFE_RELEASE(m_pD3Dtexture);*/return S_OK;}//-----------------------------------------------------------------------------HRESULT APIENTRY hkIDirect3DDevice9::QueryInterface(REFIID riid, LPVOID *ppvObj){return m_pD3Ddev->QueryInterface(riid, ppvObj);}ULONG APIENTRY hkIDirect3DDevice9::AddRef(){m_refCount++;return m_pD3Ddev->AddRef();}HRESULT APIENTRY hkIDirect3DDevice9::BeginScene(){if (a == 1){D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bGreen,60,&Green);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bWhite,58,&White);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bPink,60,&Pink);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bBlue,60,&Blue);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bOrange,60,&Orange);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bRed,60,&Red);D3DXCreateTextureFromFileInMemory(m_pD3Ddev, (LPCVOID)&bBlue,60,&Blue);a = 0;}m_pD3Ddev->GetViewport(&Viewport);float ScreenCenterX = (float)Viewport.Width / 2 + Viewport.X;float ScreenCenterY = (float)Viewport.Height / 2 + Viewport.Y;CrosshairX[0].x = ScreenCenterX - 20;CrosshairX[0].y = ScreenCenterY;CrosshairX[1].x = ScreenCenterX + 20;CrosshairX[1].y = ScreenCenterY;CrosshairY[0].x = ScreenCenterX;CrosshairY[0].y = ScreenCenterY - 20;CrosshairY[1].x = ScreenCenterX;CrosshairY[1].y = ScreenCenterY + 20;return m_pD3Ddev->BeginScene();}HRESULT APIENTRY hkIDirect3DDevice9::BeginStateBlock(){return m_pD3Ddev->BeginStateBlock();}HRESULT APIENTRY hkIDirect3DDevice9::Clear(DWORD Count, CONST D3DRECT *pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil){return m_pD3Ddev->Clear(Count, pRects, Flags, Color, Z, Stencil);}HRESULT APIENTRY hkIDirect3DDevice9::ColorFill(IDirect3DSurface9* pSurface,CONST RECT* pRect, D3DCOLOR color){return m_pD3Ddev->ColorFill(pSurface,pRect,color);}HRESULT APIENTRY hkIDirect3DDevice9::CreateAdditionalSwapChain(D3DPRESENT_PARAMETERS *pPresentationParameters, IDirect3DSwapChain9 **ppSwapChain){return m_pD3Ddev->CreateAdditionalSwapChain(pPresentationParameters, ppSwapChain);}HRESULT APIENTRY hkIDirect3DDevice9::CreateCubeTexture(UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle){return m_pD3Ddev->CreateCubeTexture(EdgeLength, Levels, Usage, Format, Pool, ppCubeTexture,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreateDepthStencilSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle){return m_pD3Ddev->CreateDepthStencilSurface(Width, Height, Format, MultiSample, MultisampleQuality,Discard,ppSurface, pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreateIndexBuffer(UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle){return m_pD3Ddev->CreateIndexBuffer(Length, Usage, Format, Pool, ppIndexBuffer,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreateOffscreenPlainSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle){return m_pD3Ddev->CreateOffscreenPlainSurface(Width,Height,Format,Pool,ppSurface,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreatePixelShader(CONST DWORD* pFunction,IDirect3DPixelShader9** ppShader){return m_pD3Ddev->CreatePixelShader(pFunction, ppShader);}HRESULT APIENTRY hkIDirect3DDevice9::CreateQuery(D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery){if (Type == D3DQUERYTYPE_OCCLUSION) { Type = D3DQUERYTYPE_EVENT; }return m_pD3Ddev->CreateQuery(Type, ppQuery);}HRESULT APIENTRY hkIDirect3DDevice9::CreateRenderTarget(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle){return m_pD3Ddev->CreateRenderTarget(Width, Height, Format, MultiSample,MultisampleQuality, Lockable, ppSurface,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreateStateBlock(D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB){return m_pD3Ddev->CreateStateBlock(Type, ppSB);}HRESULT APIENTRY hkIDirect3DDevice9::CreateTexture(UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle){HRESULT ret = m_pD3Ddev->CreateTexture(Width, Height, Levels, Usage, Format, Pool, ppTexture, pSharedHandle);#ifdef D3DHOOK_TEXTURESif(ret == D3D_OK) { new hkIDirect3DTexture9(ppTexture, this, Width, Height, Format); }#endifreturn ret;}HRESULT APIENTRY hkIDirect3DDevice9::CreateVertexBuffer(UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle){return m_pD3Ddev->CreateVertexBuffer(Length, Usage, FVF, Pool, ppVertexBuffer,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl){return m_pD3Ddev->CreateVertexDeclaration(pVertexElements,ppDecl);}HRESULT APIENTRY hkIDirect3DDevice9::CreateVertexShader(CONST DWORD* pFunction,IDirect3DVertexShader9** ppShader){return m_pD3Ddev->CreateVertexShader(pFunction, ppShader);}HRESULT APIENTRY hkIDirect3DDevice9::CreateVolumeTexture(UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle){return m_pD3Ddev->CreateVolumeTexture(Width, Height, Depth, Levels, Usage, Format, Pool, ppVolumeTexture,pSharedHandle);}HRESULT APIENTRY hkIDirect3DDevice9::DeletePatch(UINT Handle){return m_pD3Ddev->DeletePatch(Handle);}bool GenerateTexture(IDirect3DDevice9 * pDevInter, LPDIRECT3DTEXTURE9 * texture, DWORD colorARGB) {if (FAILED(pDevInter->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, texture, NULL)))return false;WORD color16 = ((WORD)((colorARGB >> 28) & 0xF) << 12)| (WORD)(((colorARGB >> 20) & 0xF) << 8)| (WORD)(((colorARGB >> 12) & 0xF) << 4)| (WORD)(((colorARGB >> 4) & 0xF) << 0);D3DLOCKED_RECT d3dlr;(*texture)->LockRect(0, &d3dlr, 0, 0);WORD *pDst16 = (WORD*)d3dlr.pBits;for (int xy = 0; xy < 8 * 8; xy++) *pDst16++ = color16;(*texture)->UnlockRect(0);return true;}HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float {char szShader[256];ID3DXBuffer *pShaderBuf = NULL;sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;return S_OK;}HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitive(D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount){if (ColorShader){GenerateShader(m_pD3Ddev, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(m_pD3Ddev, &Shade_Red, 1.0f, 0.0f, 0.0f);//КрасныйGenerateShader(m_pD3Ddev, &Shade_Green, 0.0f, 1.0f, 0.0f);//ЗелёныйGenerateShader(m_pD3Ddev, &Shade_Yellow, 1.0f, 1.0f, 0.0f);//ЖёлтыйGenerateShader(m_pD3Ddev, &Shade_Fiolet, 1.0f, 0.0f, 1.0f);//ФиолетовыйGenerateShader(m_pD3Ddev, &Shade_Siren, 0.0f, 1.0f, 1.0f);//СереневыйGenerateShader(m_pD3Ddev, &Shade_Orange, 1.0f, 0.8f, 0.0f);//ОранжевыйGenerateShader(m_pD3Ddev, &Shade_Limon, 0.8f, 1.0f, 0.0f);//ЛимонныйGenerateShader(m_pD3Ddev, &Shade_Gay, 0.0f, 0.8f, 1.0f);//ГолубойColorShader = false;}if (bWallHack){if (MyWallhack){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);m_pD3Ddev->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);m_pD3Ddev->SetPixelShader(Shade_Green); //тут цветm_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);m_pD3Ddev->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);m_pD3Ddev->SetPixelShader(Shade_Red);}}if (bWallHack1){if (MyWallhack1){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Limon);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetPixelShader(Shade_Red);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);}}if (bTex_Listva)if (Tex_Listva){return 0;}if (bMount)if (Mount){return 0;}if (bTex_Mutants){if (Tex_Mutants){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Pink);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Green);}}if (bTex_Mutants1){if (Tex_Mutants1){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Green);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Pink);}}if (bFog)if (Fog){return 0;}if (bZemla)if (Zemla){return 0;}if(bArtefice){if (Artefice){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Green);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Green);}}if (bArtefice1){if (Artefice1){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Green);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Green);}}if (bDrop){if (Drop){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Siren);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Siren);}}if (bDrop1){if (Drop1){m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Siren);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Siren);}}return m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);}HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType, UINT MinIndex, UINT NumVertices, UINT PrimitiveCount, CONST void *pIndexData, D3DFORMAT IndexDataFormat, CONST void *pVertexStreamZeroData, UINT VertexStreamZeroStride){return m_pD3Ddev->DrawIndexedPrimitiveUP(PrimitiveType, MinIndex, NumVertices, PrimitiveCount, pIndexData, IndexDataFormat, pVertexStreamZeroData, VertexStreamZeroStride);}HRESULT APIENTRY hkIDirect3DDevice9::DrawPrimitive(D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount){if (bFog){m_pD3Ddev->SetRenderState(D3DRS_FOGENABLE, false);}return m_pD3Ddev->DrawPrimitive(PrimitiveType, StartVertex, PrimitiveCount);}HRESULT APIENTRY hkIDirect3DDevice9::DrawPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void *pVertexStreamZeroData, UINT VertexStreamZeroStride){return m_pD3Ddev->DrawPrimitiveUP(PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride);}HRESULT APIENTRY hkIDirect3DDevice9::DrawRectPatch(UINT Handle, CONST float *pNumSegs, CONST D3DRECTPATCH_INFO *pRectPatchInfo){return m_pD3Ddev->DrawRectPatch(Handle, pNumSegs, pRectPatchInfo);}HRESULT APIENTRY hkIDirect3DDevice9::DrawTriPatch(UINT Handle, CONST float *pNumSegs, CONST D3DTRIPATCH_INFO *pTriPatchInfo){return m_pD3Ddev->DrawTriPatch(Handle, pNumSegs, pTriPatchInfo);}HRESULT APIENTRY hkIDirect3DDevice9::EndScene(){if(GetAsyncKeyState( VK_NUMPAD1 ) &1 )bWallHack = !bWallHack;if(GetAsyncKeyState( VK_NUMPAD2 ) & 1)bFog = !bFog;if(GetAsyncKeyState( VK_NUMPAD3 ) & 1)bWallHack1=!bWallHack1;if(GetAsyncKeyState( VK_NUMPAD4 ) & 1)bTex_Listva = !bTex_Listva;if (GetAsyncKeyState(VK_NUMPAD5) & 1)bTex_Mutants = !bTex_Mutants;if(GetAsyncKeyState(VK_NUMPAD5) & 1)bTex_Mutants1 = !bTex_Mutants1;if (GetAsyncKeyState(VK_NUMPAD2) & 1)bFog = !bFog;if (GetAsyncKeyState(VK_NUMPAD6) & 1)bDrop = !bDrop;if (GetAsyncKeyState(VK_NUMPAD6) & 1)bDrop1 = !bDrop1;if (GetAsyncKeyState(VK_NUMPAD7) & 1)bArtefice = !bArtefice;if (GetAsyncKeyState(VK_NUMPAD7) & 1)bArtefice1 = !bArtefice1;if (GetAsyncKeyState(VK_NUMPAD0) & 1)bMount = !bMount;if (GetAsyncKeyState(VK_NUMPAD8) & 1)bZemla = !bZemla;return m_pD3Ddev->EndScene();}HRESULT APIENTRY hkIDirect3DDevice9::EndStateBlock(IDirect3DStateBlock9** ppSB){return m_pD3Ddev->EndStateBlock(ppSB);}HRESULT APIENTRY hkIDirect3DDevice9::EvictManagedResources(){return m_pD3Ddev->EvictManagedResources();}UINT APIENTRY hkIDirect3DDevice9::GetAvailableTextureMem(){return m_pD3Ddev->GetAvailableTextureMem();}HRESULT APIENTRY hkIDirect3DDevice9::GetBackBuffer(UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer){return m_pD3Ddev->GetBackBuffer(iSwapChain,iBackBuffer, Type, ppBackBuffer);}HRESULT APIENTRY hkIDirect3DDevice9::GetClipPlane(DWORD Index, float *pPlane){return m_pD3Ddev->GetClipPlane(Index, pPlane);}HRESULT APIENTRY hkIDirect3DDevice9::GetClipStatus(D3DCLIPSTATUS9 *pClipStatus){return m_pD3Ddev->GetClipStatus(pClipStatus);}HRESULT APIENTRY hkIDirect3DDevice9::GetCreationParameters(D3DDEVICE_CREATION_PARAMETERS *pParameters){return m_pD3Ddev->GetCreationParameters(pParameters);}HRESULT APIENTRY hkIDirect3DDevice9::GetCurrentTexturePalette(UINT *pPaletteNumber){return m_pD3Ddev->GetCurrentTexturePalette(pPaletteNumber);}HRESULT APIENTRY hkIDirect3DDevice9::GetDepthStencilSurface(IDirect3DSurface9 **ppZStencilSurface){return m_pD3Ddev->GetDepthStencilSurface(ppZStencilSurface);}HRESULT APIENTRY hkIDirect3DDevice9::GetDeviceCaps(D3DCAPS9 *pCaps){return m_pD3Ddev->GetDeviceCaps(pCaps);}HRESULT APIENTRY hkIDirect3DDevice9::GetDirect3D(IDirect3D9 **ppD3D9){HRESULT hRet = m_pD3Ddev->GetDirect3D(ppD3D9);if( SUCCEEDED(hRet) )*ppD3D9 = m_pD3Dint;return hRet;}HRESULT APIENTRY hkIDirect3DDevice9::GetDisplayMode(UINT iSwapChain,D3DDISPLAYMODE* pMode){return m_pD3Ddev->GetDisplayMode(iSwapChain,pMode);}HRESULT APIENTRY hkIDirect3DDevice9::GetFrontBufferData(UINT iSwapChain,IDirect3DSurface9* pDestSurface){return m_pD3Ddev->GetFrontBufferData(iSwapChain,pDestSurface);}HRESULT APIENTRY hkIDirect3DDevice9::GetFVF(DWORD* pFVF){return m_pD3Ddev->GetFVF(pFVF);}void APIENTRY hkIDirect3DDevice9::GetGammaRamp(UINT iSwapChain,D3DGAMMARAMP* pRamp){m_pD3Ddev->GetGammaRamp(iSwapChain,pRamp);}HRESULT APIENTRY hkIDirect3DDevice9::GetIndices(IDirect3DIndexBuffer9** ppIndexData){return m_pD3Ddev->GetIndices(ppIndexData);}HRESULT APIENTRY hkIDirect3DDevice9::GetLight(DWORD Index, D3DLIGHT9 *pLight){return m_pD3Ddev->GetLight(Index, pLight);}HRESULT APIENTRY hkIDirect3DDevice9::GetLightEnable(DWORD Index, BOOL *pEnable){return m_pD3Ddev->GetLightEnable(Index, pEnable);}HRESULT APIENTRY hkIDirect3DDevice9::GetMaterial(D3DMATERIAL9 *pMaterial){return m_pD3Ddev->GetMaterial(pMaterial);}float APIENTRY hkIDirect3DDevice9::GetNPatchMode(){return m_pD3Ddev->GetNPatchMode();}unsigned int APIENTRY hkIDirect3DDevice9::GetNumberOfSwapChains(){return m_pD3Ddev->GetNumberOfSwapChains();}HRESULT APIENTRY hkIDirect3DDevice9::GetPaletteEntries(UINT PaletteNumber, PALETTEENTRY *pEntries){return m_pD3Ddev->GetPaletteEntries(PaletteNumber, pEntries);}HRESULT APIENTRY hkIDirect3DDevice9::GetPixelShader(IDirect3DPixelShader9** ppShader){return m_pD3Ddev->GetPixelShader(ppShader);}HRESULT APIENTRY hkIDirect3DDevice9::GetPixelShaderConstantB(UINT StartRegister,BOOL* pConstantData,UINT BoolCount){return m_pD3Ddev->GetPixelShaderConstantB(StartRegister,pConstantData,BoolCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetPixelShaderConstantF(UINT StartRegister,float* pConstantData,UINT Vector4fCount){return m_pD3Ddev->GetPixelShaderConstantF(StartRegister,pConstantData,Vector4fCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetPixelShaderConstantI(UINT StartRegister,int* pConstantData,UINT Vector4iCount){return m_pD3Ddev->GetPixelShaderConstantI(StartRegister,pConstantData,Vector4iCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetRasterStatus(UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus){return m_pD3Ddev->GetRasterStatus(iSwapChain,pRasterStatus);}HRESULT APIENTRY hkIDirect3DDevice9::GetRenderState(D3DRENDERSTATETYPE State, DWORD *pValue){return m_pD3Ddev->GetRenderState(State, pValue);}HRESULT APIENTRY hkIDirect3DDevice9::GetRenderTarget(DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget){return m_pD3Ddev->GetRenderTarget(RenderTargetIndex,ppRenderTarget);}HRESULT APIENTRY hkIDirect3DDevice9::GetRenderTargetData(IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface){return m_pD3Ddev->GetRenderTargetData(pRenderTarget,pDestSurface);}HRESULT APIENTRY hkIDirect3DDevice9::GetSamplerState(DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue){return m_pD3Ddev->GetSamplerState(Sampler,Type,pValue);}HRESULT APIENTRY hkIDirect3DDevice9::GetScissorRect(RECT* pRect){return m_pD3Ddev->GetScissorRect(pRect);}BOOL APIENTRY hkIDirect3DDevice9::GetSoftwareVertexProcessing(){return m_pD3Ddev->GetSoftwareVertexProcessing();}HRESULT APIENTRY hkIDirect3DDevice9::GetStreamSource(UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* OffsetInBytes,UINT* pStride){return m_pD3Ddev->GetStreamSource(StreamNumber, ppStreamData,OffsetInBytes, pStride);}HRESULT APIENTRY hkIDirect3DDevice9::GetStreamSourceFreq(UINT StreamNumber,UINT* Divider){return m_pD3Ddev->GetStreamSourceFreq(StreamNumber,Divider);}HRESULT APIENTRY hkIDirect3DDevice9::GetSwapChain(UINT iSwapChain,IDirect3DSwapChain9** pSwapChain){return m_pD3Ddev->GetSwapChain(iSwapChain,pSwapChain);}HRESULT APIENTRY hkIDirect3DDevice9::GetTexture(DWORD Stage, IDirect3DBaseTexture9 **ppTexture){return m_pD3Ddev->GetTexture(Stage, ppTexture);}HRESULT APIENTRY hkIDirect3DDevice9::GetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD *pValue){return m_pD3Ddev->GetTextureStageState(Stage, Type, pValue);}HRESULT APIENTRY hkIDirect3DDevice9::GetTransform(D3DTRANSFORMSTATETYPE State, D3DMATRIX *pMatrix){return m_pD3Ddev->GetTransform(State, pMatrix);}HRESULT APIENTRY hkIDirect3DDevice9::GetVertexDeclaration(IDirect3DVertexDeclaration9** ppDecl){return m_pD3Ddev->GetVertexDeclaration(ppDecl);}HRESULT APIENTRY hkIDirect3DDevice9::GetVertexShader(IDirect3DVertexShader9** ppShader){return m_pD3Ddev->GetVertexShader(ppShader);}HRESULT APIENTRY hkIDirect3DDevice9::GetVertexShaderConstantB(UINT StartRegister,BOOL* pConstantData,UINT BoolCount){return m_pD3Ddev->GetVertexShaderConstantB(StartRegister,pConstantData,BoolCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetVertexShaderConstantF(UINT StartRegister,float* pConstantData,UINT Vector4fCount){return m_pD3Ddev->GetVertexShaderConstantF(StartRegister,pConstantData,Vector4fCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetVertexShaderConstantI(UINT StartRegister,int* pConstantData,UINT Vector4iCount){return m_pD3Ddev->GetVertexShaderConstantI(StartRegister,pConstantData,Vector4iCount);}HRESULT APIENTRY hkIDirect3DDevice9::GetViewport(D3DVIEWPORT9 *pViewport){return m_pD3Ddev->GetViewport(pViewport);}HRESULT APIENTRY hkIDirect3DDevice9::LightEnable(DWORD LightIndex, BOOL bEnable){return m_pD3Ddev->LightEnable(LightIndex, bEnable);}HRESULT APIENTRY hkIDirect3DDevice9::MultiplyTransform(D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix){return m_pD3Ddev->MultiplyTransform(State, pMatrix);}HRESULT APIENTRY hkIDirect3DDevice9::Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion){return m_pD3Ddev->Present(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);}HRESULT APIENTRY hkIDirect3DDevice9::ProcessVertices(UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags){return m_pD3Ddev->ProcessVertices(SrcStartIndex, DestIndex, VertexCount, pDestBuffer,pVertexDecl, Flags);}ULONG APIENTRY hkIDirect3DDevice9::Release(){if( --m_refCount == 0 )m_pManager->Release();return m_pD3Ddev->Release();}HRESULT APIENTRY hkIDirect3DDevice9::Reset(D3DPRESENT_PARAMETERS *pPresentationParameters){m_pManager->PreReset();HRESULT hRet = m_pD3Ddev->Reset(pPresentationParameters);if( SUCCEEDED(hRet) ){m_PresentParam = *pPresentationParameters;m_pManager->PostReset();}return hRet;}HRESULT APIENTRY hkIDirect3DDevice9::SetClipPlane(DWORD Index, CONST float *pPlane){return m_pD3Ddev->SetClipPlane(Index, pPlane);}HRESULT APIENTRY hkIDirect3DDevice9::SetClipStatus(CONST D3DCLIPSTATUS9 *pClipStatus){return m_pD3Ddev->SetClipStatus(pClipStatus);}HRESULT APIENTRY hkIDirect3DDevice9::SetCurrentTexturePalette(UINT PaletteNumber){return m_pD3Ddev->SetCurrentTexturePalette(PaletteNumber);}void APIENTRY hkIDirect3DDevice9::SetCursorPosition(int X, int Y, DWORD Flags){m_pD3Ddev->SetCursorPosition(X, Y, Flags);}HRESULT APIENTRY hkIDirect3DDevice9::SetCursorProperties(UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9 *pCursorBitmap){return m_pD3Ddev->SetCursorProperties(XHotSpot, YHotSpot, pCursorBitmap);}HRESULT APIENTRY hkIDirect3DDevice9::SetDepthStencilSurface(IDirect3DSurface9* pNewZStencil){return m_pD3Ddev->SetDepthStencilSurface(pNewZStencil);}HRESULT APIENTRY hkIDirect3DDevice9::SetDialogBoxMode(BOOL bEnableDialogs){return m_pD3Ddev->SetDialogBoxMode(bEnableDialogs);}HRESULT APIENTRY hkIDirect3DDevice9::SetFVF(DWORD FVF){return m_pD3Ddev->SetFVF(FVF);}void APIENTRY hkIDirect3DDevice9::SetGammaRamp(UINT iSwapChain,DWORD Flags,CONST D3DGAMMARAMP* pRamp){m_pD3Ddev->SetGammaRamp(iSwapChain,Flags, pRamp);}HRESULT APIENTRY hkIDirect3DDevice9::SetIndices(IDirect3DIndexBuffer9* pIndexData){return m_pD3Ddev->SetIndices(pIndexData);}HRESULT APIENTRY hkIDirect3DDevice9::SetLight(DWORD Index, CONST D3DLIGHT9 *pLight){return m_pD3Ddev->SetLight(Index, pLight);}HRESULT APIENTRY hkIDirect3DDevice9::SetMaterial(CONST D3DMATERIAL9 *pMaterial){return m_pD3Ddev->SetMaterial(pMaterial);}HRESULT APIENTRY hkIDirect3DDevice9::SetNPatchMode(float nSegments){return m_pD3Ddev->SetNPatchMode(nSegments);}HRESULT APIENTRY hkIDirect3DDevice9::SetPaletteEntries(UINT PaletteNumber, CONST PALETTEENTRY *pEntries){return m_pD3Ddev->SetPaletteEntries(PaletteNumber, pEntries);}HRESULT APIENTRY hkIDirect3DDevice9::SetPixelShader(IDirect3DPixelShader9* pShader){return m_pD3Ddev->SetPixelShader(pShader);}HRESULT APIENTRY hkIDirect3DDevice9::SetPixelShaderConstantB(UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount){return m_pD3Ddev->SetPixelShaderConstantB(StartRegister,pConstantData,BoolCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetPixelShaderConstantF(UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount){return m_pD3Ddev->SetPixelShaderConstantF(StartRegister,pConstantData,Vector4fCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetPixelShaderConstantI(UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount){return m_pD3Ddev->SetPixelShaderConstantI(StartRegister,pConstantData,Vector4iCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetRenderState(D3DRENDERSTATETYPE State, DWORD Value){return m_pD3Ddev->SetRenderState(State, Value);}HRESULT APIENTRY hkIDirect3DDevice9::SetRenderTarget(DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget){return m_pD3Ddev->SetRenderTarget(RenderTargetIndex,pRenderTarget);}HRESULT APIENTRY hkIDirect3DDevice9::SetSamplerState(DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value){return m_pD3Ddev->SetSamplerState(Sampler,Type,Value);}HRESULT APIENTRY hkIDirect3DDevice9::SetScissorRect(CONST RECT* pRect){return m_pD3Ddev->SetScissorRect(pRect);}HRESULT APIENTRY hkIDirect3DDevice9::SetSoftwareVertexProcessing(BOOL bSoftware){return m_pD3Ddev->SetSoftwareVertexProcessing(bSoftware);}HRESULT APIENTRY hkIDirect3DDevice9::SetStreamSource(UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride){if (StreamNumber == 0) m_Stride = Stride;return m_pD3Ddev->SetStreamSource(StreamNumber, pStreamData,OffsetInBytes, Stride);}HRESULT APIENTRY hkIDirect3DDevice9::SetStreamSourceFreq(UINT StreamNumber,UINT Divider){return m_pD3Ddev->SetStreamSourceFreq(StreamNumber,Divider);}HRESULT APIENTRY hkIDirect3DDevice9::SetTexture(DWORD Stage, IDirect3DBaseTexture9 *pTexture){#ifdef D3DHOOK_TEXTURESIDirect3DDevice9 *dev = NULL;if(pTexture != NULL && ((hkIDirect3DTexture9*)(pTexture))->GetDevice(&dev) == D3D_OK){if(dev == this)return m_pD3Ddev->SetTexture(Stage, ((hkIDirect3DTexture9*)(pTexture))->m_D3Dtex);}#endifreturn m_pD3Ddev->SetTexture(Stage, pTexture);}HRESULT APIENTRY hkIDirect3DDevice9::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value){return m_pD3Ddev->SetTextureStageState(Stage, Type, Value);}HRESULT APIENTRY hkIDirect3DDevice9::SetTransform(D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix){return m_pD3Ddev->SetTransform(State, pMatrix);}HRESULT APIENTRY hkIDirect3DDevice9::SetVertexDeclaration(IDirect3DVertexDeclaration9* pDecl){return m_pD3Ddev->SetVertexDeclaration(pDecl);}HRESULT APIENTRY hkIDirect3DDevice9::SetVertexShader(IDirect3DVertexShader9* pShader){return m_pD3Ddev->SetVertexShader(pShader);}HRESULT APIENTRY hkIDirect3DDevice9::SetVertexShaderConstantB(UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount){return m_pD3Ddev->SetVertexShaderConstantB(StartRegister,pConstantData,BoolCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetVertexShaderConstantF(UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount){return m_pD3Ddev->SetVertexShaderConstantF(StartRegister,pConstantData,Vector4fCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetVertexShaderConstantI(UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount){return m_pD3Ddev->SetVertexShaderConstantI(StartRegister,pConstantData,Vector4iCount);}HRESULT APIENTRY hkIDirect3DDevice9::SetViewport(CONST D3DVIEWPORT9 *pViewport){return m_pD3Ddev->SetViewport(pViewport);}BOOL APIENTRY hkIDirect3DDevice9::ShowCursor(BOOL bShow){return m_pD3Ddev->ShowCursor(bShow);}HRESULT APIENTRY hkIDirect3DDevice9::StretchRect(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter){return m_pD3Ddev->StretchRect(pSourceSurface,pSourceRect,pDestSurface,pDestRect,Filter);}HRESULT APIENTRY hkIDirect3DDevice9::TestCooperativeLevel(){return m_pD3Ddev->TestCooperativeLevel();}HRESULT APIENTRY hkIDirect3DDevice9::UpdateSurface(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,CONST POINT* pDestPoint){return m_pD3Ddev->UpdateSurface(pSourceSurface,pSourceRect,pDestinationSurface,pDestPoint);}HRESULT APIENTRY hkIDirect3DDevice9::UpdateTexture(IDirect3DBaseTexture9 *pSourceTexture, IDirect3DBaseTexture9 *pDestinationTexture){return m_pD3Ddev->UpdateTexture(pSourceTexture, pDestinationTexture);}HRESULT APIENTRY hkIDirect3DDevice9::ValidateDevice(DWORD *pNumPasses){return m_pD3Ddev->ValidateDevice(pNumPasses);}HRESULT CreateQuery(D3DQUERYTYPE Type, IDirect3DQuery9 ** ppQuery){return E_NOTIMPL;} Скрин
Опубликовано 6 августа, 20187 г. comment_941 Попробуй хук на QueryInterface. У меня была такая проблема но только на d3d11 мож и на 9 проканает HRESULT APIENTRY hkIDirect3DDevice9::QueryInterface(REFIID riid, LPVOID *ppvObj) { if (riid == D3DQUERYTYPE_OCCLUSION) { riid = D3DQUERYTYPE_TIMESTAMP; } return m_pD3Ddev->QueryInterface(riid, ppvObj); }
Опубликовано 7 августа, 20187 г. Автор comment_943 Попробуй хук на QueryInterface. У меня была такая проблема но только на d3d11 мож и на 9 проканает HRESULT APIENTRY hkIDirect3DDevice9::QueryInterface(REFIID riid, LPVOID *ppvObj) { if (riid == D3DQUERYTYPE_OCCLUSION) { riid = D3DQUERYTYPE_TIMESTAMP; } return m_pD3Ddev->QueryInterface(riid, ppvObj); } Я имел в том коде отрисовка идет либо 1 цветом но нормально а нужно в этом коде решить почему за текстурой не прорисовывается то же ( 2 день мучаюсь)Еще вот что нашел если текстуру за которой игрок удалить через if (Variable[6] == 1)if(dele_World){return 0;} то его видно а так не видно Сам код #include "Headers.h"#include "Hook.h"#include "Menu.h"#include "Texture.h" CHAR *Blag[] = { " ", " " };CHAR *OnOff[] = { "[Off]", "[On]" };CHAR *Folder[] = { "[+]", "[-]" }; //MenuCHAR MenuTitle[MAX_PATH] = { "Menu" };CHAR Timestruct[MAX_PATH] = { "hh':'mm':'ss tt" };CHAR TimeString[MAX_PATH]; BOOL BFont = FALSE; INT Variable[MAX_PATH];INT VFolder[MAX_PATH]; //Примитивыtypedef HRESULT(WINAPI* oDrawIndexedPrimitive) (LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount);oDrawIndexedPrimitive pDrawIndexedPrimitive;//ШэйдерыLPDIRECT3DPIXELSHADER9 Shade_Blue, Shade_Red, Shade_Yellow, Shade_Green, Shade_Fiolet, Shade_Siren, Shade_Orange, Shade_Limon, Shade_Gay;bool ColorShader = true; //ПримитивыUINT Stride;LPDIRECT3DVERTEXBUFFER9 StreamData;UINT OffsetInBytes;LPDIRECT3DTEXTURE9 chams_red, chams_blue, chams_yellow;bool GenOne = 0; HRESULT WINAPI Reset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS *pPresentationParameters){PFont->OnLostDevice(); HRESULT hTorna = OReset(pDevice, pPresentationParameters); if (SUCCEEDED(hTorna))PFont->OnResetDevice(); return hTorna;} //Генерация текстур/*bool GenerateTexture(IDirect3DDevice9 * pDevInter, LPDIRECT3DTEXTURE9 * texture, DWORD colorARGB) {if (FAILED(pDevInter->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, texture, NULL)))return false; WORD color16 = ((WORD)((colorARGB >> 28) & 0xF) << 12)| (WORD)(((colorARGB >> 20) & 0xF) << 8)| (WORD)(((colorARGB >> 12) & 0xF) << 4)| (WORD)(((colorARGB >> 4) & 0xF) << 0); D3DLOCKED_RECT d3dlr; (*texture)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for (int xy = 0; xy < 8 * 8; xy++) *pDst16++ = color16;(*texture)->UnlockRect(0); return true;} */ HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32){if (FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))return E_FAIL;WORD colour16 = ((WORD)((colour32>> 28)&0xF)<< 12)| (WORD)(((colour32>>20)&0xF)<< 8)| (WORD)(((colour32>> 12)&0xF)<< 4)| (WORD)(((colour32>> 4)&0xF)<< 0); D3DLOCKED_RECT d3dlr;(*ppD3Dtex) -> LockRect(0, &d3dlr, 0, 0);WORD *pDst16 = (WORD*)d3dlr.pBits; for (int xy = 0; xy < 8*8; xy++)*pDst16++ = colour16; (*ppD3Dtex) -> UnlockRect(0);return S_OK;} /*HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pShader, float r, float g, float b, bool setzBuf){char szShader[256];ID3DXBuffer *pShaderBuf = NULL;D3DCAPS9 caps;pDevice->GetDeviceCaps(&caps);int PXSHVER1 = (D3DSHADER_VERSION_MAJOR(caps.PixelShaderVersion));int PXSHVER2 = (D3DSHADER_VERSION_MINOR(caps.PixelShaderVersion));if (setzBuf)sprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0\nmov oDepth, c0.x", PXSHVER1, PXSHVER2, r, g, b, 1.0f);elsesprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0", PXSHVER1, PXSHVER2, r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pShader)))return E_FAIL;return S_OK;} */HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pShader, float r, float g, float b, bool setzBuf){char szShader[256];ID3DXBuffer *pShaderBuf = NULL;D3DCAPS9 caps;pDevice->GetDeviceCaps(&caps);int PXSHVER1 = (D3DSHADER_VERSION_MAJOR(caps.PixelShaderVersion));int PXSHVER2 = (D3DSHADER_VERSION_MINOR(caps.PixelShaderVersion));if (setzBuf)sprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0\nmov oDepth, c0.x", PXSHVER1, PXSHVER2, r, g, b, 1.0f);elsesprintf_s(szShader, "ps.%d.%d\ndef c0, %f, %f, %f, %f\nmov oC0,c0", PXSHVER1, PXSHVER2, r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pShader)))return E_FAIL;return S_OK;} // Замена текстурvoid SetModelColor(LPDIRECT3DDEVICE9 pDevice, float r, float g, float b, float a, float glowr, float glowg, float glowb, float glowa){float lightValues[4] = { r, g, b, a };float glowValues[4] = { glowr, glowg, glowb, glowa }; pDevice->SetPixelShaderConstantF(1, lightValues, 1);pDevice->SetPixelShaderConstantF(3, glowValues, 1);} /*HRESULT APIENTRY hkIDirect3DDevice9::CreateQuery(D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery){ if (Type == D3DQUERYTYPE_OCCLUSION) { Type = D3DQUERYTYPE_EVENT; } return m_pD3Ddev->CreateQuery(Type, ppQuery);*/ HRESULT WINAPI Present(LPDIRECT3DDEVICE9 pDevice, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion ){ if (GenOne == 0){GenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f, true);//КрасныйGenerateShader(pDevice, &Shade_Green, 0.0f, 1.0f, 0.0f, true);//ЗелёныйGenerateShader(pDevice, &Shade_Yellow, 1.0f, 1.0f, 0.0f, true);//ЖёлтыйGenerateShader(pDevice, &Shade_Fiolet, 1.0f, 0.0f, 1.0f, true);//ФиолетовыйGenerateShader(pDevice, &Shade_Siren, 0.0f, 1.0f, 1.0f, true);//СереневыйGenerateShader(pDevice, &Shade_Orange, 1.0f, 0.8f, 0.0f, true);//ОранжевыйGenerateShader(pDevice, &Shade_Limon, 0.8f, 1.0f, 0.0f, true);//ЛимонныйGenerateShader(pDevice, &Shade_Gay, 0.0f, 0.8f, 1.0f, true);//Голубой //Цвета вхGenerateTexture(pDevice, &chams_red, D3DCOLOR_ARGB(255, 255, 0, 0)); //КрасныйGenerateTexture(pDevice, &chams_blue, D3DCOLOR_ARGB(255, 0, 30, 255));//СинийGenerateTexture(pDevice, &chams_yellow, D3DCOLOR_ARGB(255, 255, 179, 0));//желтый GenOne = 1;} if (PFont){PFont->Release();PFont = NULL;BFont = FALSE;} if (!BFont){D3DXCreateFont(pDevice, 14, 0, 400, 1, 0, 1, 0, 4, 0 | (0 << 4), "Arial", &PFont);BFont = TRUE;} if (GetAsyncKeyState(VK_INSERT) & 1)menu.ShowMenu = !menu.ShowMenu; if (menu.ShowMenu && PFont){pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);GetTimeFormat(0, 0, 0, 0, Timestruct, 15);DrawBox(menu.matrixPos[0] - 10, menu.matrixPos[1] - 22, 162, 20, TBlack, Red, pDevice);//1 рамка ШапкиDrawBorder(menu.matrixPos[0] - 10, menu.matrixPos[1] - 22, 162, 20, 1, Red, pDevice);//2Рамка шапкиWriteText(menu.matrixPos[0], menu.matrixPos[1] - 20, Green, MenuTitle);//имя менюsprintf_s(TimeString, "%s", Timestruct);WriteText(menu.matrixPos[0] + 100, menu.matrixPos[1] - 20, Green, TimeString);//Цвет времениDrawBox(menu.matrixPos[0] - 10, menu.matrixPos[1], 162, ((menu.Current * 15) - 5), TBlack, Red, pDevice);//1 рамка менюDrawBorder(menu.matrixPos[0] - 10, menu.matrixPos[1], 162, ((menu.Current * 15) - 5), 1, Black, pDevice); //2Рамка менюDrawBorder(menu.matrixPos[0] - 10, ((menu.matrixPos[2] + 2) + (menu.MenuSelection * 15)), 162, 13, 1, Whites, pDevice); //Аодсветка положения menu.Current = 1; if (GetAsyncKeyState(VK_UP) & 1)menu.MenuSelection--; if (GetAsyncKeyState(VK_DOWN) & 1)menu.MenuSelection++; Additem("[Подсветка]", 1, VFolder[0], 1, Folder);if (VFolder[0]){Additem("Игроки", 1, Variable[0], 0, OnOff);Additem("Живность", 1, Variable[1], 0, OnOff);Additem("Схроны", 1, Variable[2], 0, OnOff);Additem("Хлам", 1, Variable[3], 0, OnOff);}Additem("[Удаление]", 1, VFolder[1], 1, Folder);if (VFolder[1]){Additem("Листва", 1, Variable[4], 0, OnOff);Additem("Вода", 1, Variable[5], 0, OnOff);Additem("Земля", 1, Variable[6], 0, OnOff);Additem("Небо", 1, Variable[7], 0, OnOff);Additem("Все", 1, Variable[11], 0, OnOff);}Additem("[Разное]", 1, VFolder[2], 1, Folder);if (VFolder[2]){Additem("Test del", 1, Variable[12], 0, OnOff);Additem("Test Prim", 1, Variable[13], 0, OnOff);Additem("Прицел", 1, Variable[8], 0, OnOff);Additem("Перенести меню", 1, Variable[9], 0, OnOff);Additem("Благодарность Mr_Chester", 1, Variable[10], 0, Blag);}if (menu.MenuSelection >= menu.Current)menu.MenuSelection = 1;else if (menu.MenuSelection <= 0)menu.MenuSelection = (menu.Current - 1);} if (Variable[8])CrossHair(pDevice, Green); if (Variable[9]){POINT vec2Cursor;GetCursorPos(&vec2Cursor);menu.matrixPos[0] = vec2Cursor.x;menu.matrixPos[1] = vec2Cursor.y;menu.matrixPos[2] = (vec2Cursor.y - 10);} return OPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion );} /*HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float {char szShader[256];ID3DXBuffer *pShaderBuf = NULL;sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;return S_OK;}*/ // return m_pD3Ddev->CreateQuery(Type, ppQuery); HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount){if (pDevice->GetStreamSource(0, &StreamData, &OffsetInBytes, &Stride) == D3D_OK){StreamData->Release();} //отрисовка шэйдэрами if (Variable[3] == 1){if (playerq){ /*pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);pDevice->SetPixelShader(Shade_Green); //тут цветpDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetPixelShader(Shade_Red);pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);*/ /*m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, false);m_pD3Ddev->SetPixelShader(Shade_Pink);m_pD3Ddev->DrawIndexedPrimitive(Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);m_pD3Ddev->SetPixelShader(Shade_Green); */pDevice->SetPixelShader(Shade_Limon);pDevice->SetRenderState(D3DRS_ZENABLE, false);pDrawIndexedPrimitive(pDevice,Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, true);// pDevice->SetPixelShader(Shade_Limon); }} //Альтернативная отрисовка if (Variable[0] == 1)if(playerq){// //pDevice->SetPixelShader(Shade_Limon);pDevice->SetRenderState(D3DRS_ZENABLE, false);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetPixelShader(Shade_Limon);pDevice->SetRenderState(D3DRS_ZENABLE, true);pDevice->SetPixelShader(Shade_Limon);} if (Variable[1] == 1)if(animalq){//pDevice->SetRenderState(D3DRS_ZENABLE, false);pDevice->SetPixelShader(Shade_Siren);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, true);pDevice->SetPixelShader(Shade_Siren); /*pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);pDevice->SetTexture(0, chams_yellow);SetModelColor(pDevice, 200.0f, 165.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);pDevice->SetTexture(0, chams_yellow);SetModelColor(pDevice, 255.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);*/} if (Variable[12] == 1)if(dele_test){return 0;} if (Variable[5] == 1)if(dele_voda){return 0;}if (Variable[6] == 1)if(dele_World){return 0;}if (Variable[7] == 1)if(dele_Nebo){return 0;}if (Variable[4] == 1)if(dele_Listva){return 0;} return pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);} DWORD WINAPI Hook(LPVOID lpArgs){HMODULE D3D9 = 0; while (!D3D9){Sleep(100);D3D9 = GetModuleHandle("d3d9.dll");} DWORD VTable[5] = { 0 };CreateDevice(VTable); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)VTable[2], (PBYTE)myDrawIndexedPrimitive);OReset = (TReset)DetourFunction((PBYTE)VTable[0], (PBYTE)&Reset);OPresent = (TPresent)DetourFunction((PBYTE)VTable[1], (PBYTE)&Present); return FALSE;} BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved){UNREFERENCED_PARAMETER(hModule); if (dwReason == DLL_PROCESS_ATTACH){DisableThreadLibraryCalls(hModule);CreateThread(0, 0, &Hook, 0, 0, 0);} return TRUE;}
Опубликовано 7 августа, 20187 г. Автор comment_944 Попробуй хук на QueryInterface. У меня была такая проблема но только на d3d11 мож и на 9 проканает HRESULT APIENTRY hkIDirect3DDevice9::QueryInterface(REFIID riid, LPVOID *ppvObj) { if (riid == D3DQUERYTYPE_OCCLUSION) { riid = D3DQUERYTYPE_TIMESTAMP; } return m_pD3Ddev->QueryInterface(riid, ppvObj); } Попробовал так добавил в ХукpCreateQuery = (oCreateQuery)DetourFunction((PBYTE)VTable[3], (PBYTE)hkCreateQuery); и еще кусок typedef HRESULT(WINAPI* oCreateQuery) (LPDIRECT3DDEVICE9 pDevice, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery);oCreateQuery pCreateQuery;HRESULT WINAPI hkCreateQuery(LPDIRECT3DDEVICE9 pDevice, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery){if (Type == D3DQUERYTYPE_OCCLUSION){Type = D3DQUERYTYPE_TIMESTAMP;} return hkCreateQuery(pDevice, Type, ppQuery);}; в итоге Текстуры (Все)пропадают то появляются
Опубликовано 7 августа, 20187 г. comment_946 , Я больше не знаю что может. hkCreateQueryПопробуй в QueryInterfaceМожет не будет мигать HRESULT APIENTRY hkIDirect3DDevice9::QueryInterface(REFIID riid, LPVOID *ppvObj) { if (riid == D3DQUERYTYPE_OCCLUSION) { riid = D3DQUERYTYPE_TIMESTAMP; } return m_pD3Ddev->QueryInterface(riid, ppvObj); }
Опубликовано 7 августа, 20187 г. Автор comment_947 Ты не тот код посмотрел я ее так реализовал.(а в том коде текстуры не пропадают) typedef HRESULT(WINAPI* TCreateQuery) (LPDIRECT3DDEVICE9 pDevice, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery);TCreateQuery oCreateQuery; HRESULT WINAPI hkCreateQuery(LPDIRECT3DDEVICE9 pDevice, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) { if (Type == D3DQUERYTYPE_OCCLUSION) { Type = D3DQUERYTYPE_TIMESTAMP; } return oCreateQuery(pDevice, Type, ppQuery); }; и в хуке oCreateQuery = (TCreateQuery)DetourFunction((PBYTE)VTable[3], (PBYTE)hkCreateQuery);
Опубликовано 7 августа, 20187 г. comment_948 oCreateQuery(pDevice, Type, ppQuery); Я про QueryInterface 2 разные функции
Опубликовано 7 августа, 20187 г. Автор comment_949 oCreateQuery(pDevice, Type, ppQuery); Я про QueryInterface 2 разные функции Серьезность Код Описание Проект Файл Строка Состояние подавленияОшибка (активно) E0349 отсутствует оператор "==", соответствующий этим операндам Base D3D Menu Релиазовал так typedef HRESULT(WINAPI* TQueryInterface) (LPDIRECT3DDEVICE9 pDevice, REFIID riid, LPVOID *ppvObj); TQueryInterface oQueryInterface; HRESULT APIENTRY hkQueryInterface(LPDIRECT3DDEVICE9 pDevice, REFIID riid, LPVOID *ppvObj) { if (riid == D3DQUERYTYPE_OCCLUSION) { riid = D3DQUERYTYPE_TIMESTAMP; } return oQueryInterface(pDevice , riid, ppvObj); } в хуке oQueryInterface = (TQueryInterface)DetourFunction((PBYTE)VTable[4], (PBYTE)hkQueryInterface);
comment_930Текстуру персонажа видно когда перед мной(И вдалеке видно)
Но только персонаж заходит за стену его подсветка пропадает
Если крутить камерой и бегать то текстурка иногда подсвечиваеться
Отрисовка так
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount)
{
if (pDevice->GetStreamSource(0, &StreamData, &OffsetInBytes, &Stride) == D3D_OK)
{
StreamData->Release();
}
if (ColorShader)
{
GenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//Красный
GenerateShader(pDevice, &Shade_Red, 1.0f, 0.0f, 0.0f);//Красный
GenerateShader(pDevice, &Shade_Green, 0.0f, 1.0f, 0.0f);//Зелёный
GenerateShader(pDevice, &Shade_Yellow, 1.0f, 1.0f, 0.0f);//Жёлтый
GenerateShader(pDevice, &Shade_Fiolet, 1.0f, 0.0f, 1.0f);//Фиолетовый
GenerateShader(pDevice, &Shade_Siren, 0.0f, 1.0f, 1.0f);//Сереневый
GenerateShader(pDevice, &Shade_Orange, 1.0f, 0.8f, 0.0f);//Оранжевый
GenerateShader(pDevice, &Shade_Limon, 0.8f, 1.0f, 0.0f);//Лимонный
GenerateShader(pDevice, &Shade_Gay, 0.0f, 0.8f, 1.0f);//Голубой
ColorShader = false;
}
//отрисовка шэйдэрами
if (Variable[3] == 1)
{
if (playerq)
{
{
pDevice->SetPixelShader(Shade_Red); //тут цвет
pDevice->SetRenderState(D3DRS_ZENABLE, 0);
pDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, PrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, 1);
}
}
}
И генерация шэйдеров
HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float
{
char szShader[256];
ID3DXBuffer *pShaderBuf = NULL;
sprintf(szShader, "ps.3.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f);
D3DXAssembleShader(szShader, sizeof(szShader), NULL, NULL, 0, &pShaderBuf, NULL);
if (FAILED(pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)))return E_FAIL;
return S_OK;
}