Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hakuje, ale napotyka problemy z backbufferem?
#1
Cóż, natknąłem się na problem, w którym dostaję się do gry (używając bazy roverturbo), ale nie jestem w stanie kliknąć na nic, nawet jeśli jest wyświetlany.   Na przykład weź tę grę, w której muszę dwukrotnie kliknąć ten serwer, aby wejść, cokolwiek kliknę jest po prostu ignorowane przez grę, i domyślam się, że ma to coś wspólnego z obsługą okna CreateDevices (fullscreen)?   TAK, jeśli chciałem kliknąć na amerykańskim serwerze to byłby podświetlony i kiedy dwukrotnie kliknęłbym to, byłbym w stanie wejść, oba te nie występują, kiedy wstrzyknę moją bibliotekę dll.   Zgaduję, że jest to problem z backbufferem?     Kod:      HRESULT WINAPI Direct3DCreate8_VMTable (VOID) {LPDIRECT3D8 Direct3D_Object = Direct3DCreate8 (D3D_SDK_VERSION); if (Direct3D_Object == NULL) zwraca D3DERR_INVALIDCALL; Direct3D_VMTable = (PDWORD) * (PDWORD) Direct3D_Object; Direct3D_Object -> Release (); DWORD dwProtect; if (VirtualProtect (& Direct3D_VMTable [15], sizeof (DWORD), PAGE_READWRITE, i dwProtect)! = 0) {* (PDWORD) i CreateDevice_Pointer = Direct3D_VMTable [15]; * (PDWORD) i Direct3D_VMTable [15] = (DWORD) CreateDevice_Detour; if (VirtualProtect (& Direct3D_VMTable [15], sizeof (DWORD), dwProtect i dwProtect) == 0) zwraca D3DERR_INVALIDCALL; } else return D3DERR_INVALIDCALL; return D3D_OK; } // =============================================== ====================================== HRESULT WINAPI CreateDevice_Detour (LPDIRECT3D8 Direct3D_Object, adapter UINT, D3DDEVTYPE DeviceType , HWND FocusWindow, Behind BehaviorFlags, D3DPRESENT_PARAMETERS * PresentationParameters, LPDIRECT3DDEVICE8 * Returned_Device_Interface) {HRESULT Returned_Result = CreateDevice_Pointer (Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags, PresentationParameters, Returned_Device_Interface); DWORD dwProtect; if (VirtualProtect (& Direct3D_VMTable [15], sizeof (DWORD), PAGE_READWRITE, i dwProtect)! = 0) {* (PDWORD) i Direct3D_VMTable [15] = * (PDWORD) i CreateDevice_Pointer; CreateDevice_Pointer = NULL; if (VirtualProtect (& Direct3D_VMTable [15], sizeof (DWORD), dwProtect i dwProtect) == 0) zwraca D3DERR_INVALIDCALL; } else return D3DERR_INVALIDCALL; if (Returned_Result == D3D_OK) {Direct3D_VMTable = (PDWORD) * (PDWORD) * Returned_Device_Interface; * (PDWORD) i Reset_Pointer = (DWORD) Direct3D_VMTable [14]; * (PDWORD) i EndScene_Pointer = (DWORD) Direct3D_VMTable [35]; * (PDWORD) i DrawIndexedPrimitive_Pointer = (DWORD) Direct3D_VMTable [71]; * (PDWORD) i Direct3D_VMTable [14] = (DWORD) Reset_Detour; * (PDWORD) i Direct3D_VMTable [35] = (DWORD) EndScene_Detour; * (PDWORD) i Direct3D_VMTable [71] = (DWORD) DrawIndexedPrimitive_Detour; } Return Returned_Result; }   Używam tylko Reset, końcowej wersji i DIP     Oto oni sami   ZANURZAĆ:       Kod:      HRESULT WINAPI DrawIndexedPrimitive_Detour (LPDIRECT3DDEVICE8 Device_Interface, D3DPRIMITIVETYPE Type, UINT MinIndex, UINT nNVVertices, UINT StartIndex, UINT nPrimitiveCount) {LPDIRECT3DVERTEXBUFFER8 Stream_Data; UINT Stride = 44; if (Device_Interface -> GetStreamSource (0, & Stream_Data i Stride) == D3D_OK) Stream_Data -> Release (); if (Fog) {Device_Interface -> SetRenderState (D3DRS_FOGENABLE, false); // Wyłącz Fog} if (WallHack) {texnum = (nNumVertices * 100000) + nPrimitiveCount; if (Krok == 40 && // Postacie ================ // (texnum == 34900580) || // Głowa Delta Force (texnum == 36100604) || // Spetsnaz Head (texnum == 38000658) || // Spetsnaz Legs (texnum == 18300268) || // Spetsnaz Body (texnum == 36200604) || // GIGN Head (texnum == 21200306) || // GIGN Body (texnum == 35500568) || // Szef GSG9 (texnum == 2200024) || // GSG9 Bangs (texnum == 8800105) || // GSG9 Feet (texnum == 36900650) || // GSG9 Legs (texnum == 19600314) || // GSG9 Body (texnum == 36700612) || // SAS Head (texnum == 8500105) || // SAS Feet (texnum == 37000650) || // SAS Nogi (texnum == 18000274) || // SAS Body (texnum == 35300556) || // KSF Head (texnum == 7500121) || // KSF Arms (texnum == 9200115) || // KSF Feet (texnum == 12400168) || // KSF Hands (texnum == 30100522) || // KSF Legs (texnum == 18700288) || // KSF Body (texnum == 40900594) || // ARTC Head (texnum == 11700190) || // A RTC Arms (texnum == 9100118) || // ARTC Feet (texnum == 12500170) || // ARTC Hands (texnum == 37000634) || // ARTC Legs (texnum == 41700516) || // ARTC Body (texnum == 19400260) || // ROKMC Body (texnum == 37900592) || // ROKMC Head (texnum == 36500642) || // ROKMC Legs (texnum == 44800776) || // Szef SRG (texnum == 15900200) || // Lewe ramię SRG (
Reply
#2
Nie rozumiem, w jaki sposób backbuffer Direct3D może spowodować, że twój sygnał wejściowy przestanie działać ... Prawdopodobnie nie jest to ta część (chyba, że nie myślałeś o tym, że backbuffer) powoduje problem.
Reply
#3
Nadal nie mogę rozwiązać problemu, nie mogę kliknąć niczego, gdy wejdę do gry ...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)