Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Lekcje Armii Rage
#11
Obaj pracują tak samo. Zgaduję, że getPlayerByIndex dostanie wszystkich, w tym boty (jeśli takie istnieją), a getPlayerByNetIndex to prawdziwi gracze. Oba działają dobrze w przypadku iteracji klienta.
Reply
#12
Nomster, jak wywołujesz funkcje silnika (opublikowane przez ciebie płótno) do renderowania? coz im awaryjne wywoływanie ich, nawet w haku silnika, myślę, że robię coś źle ...
Reply
#13
mając matrycę Widok i Projekcję możesz zbudować własne W2, po prostu użyj matrycy tożsamości jako świata, macierzy z 1 na głównej przekątnej btw używałem prawie tej samej funkcji, co twoja, tylko ida trollingowała mnie o paramie edytować: Próbowałem użyć nie-wsadowego drawline2d, który również jako parametr tick zaznacz ... zauważyłem, że to wywołanie już drawlinebegin, więc im tylko wywołanie drawlineend po wywołaniu drawline2d, ale po prostu nic nie rysuje ... czy znasz różnicę między drawBatch2Dline a funkcją onther, drawline2D?
Reply
#14
Funkcje silnika są niechlujne, więc po prostu utknąłem z D3D. To dziwne bo :: Canvas funcs są owijkami DrawTools, ale niczego nie rysują. : S Spróbowałem D3DXVec3Project używając macierzy gier (Found World w oo :: RenderSystem i Proj / View in Camera), ale wszystko to kończy się zabawnie: S
Reply
#15
po prostu przetestowałem vmt hook, używając ich urządzenia Kod: DWORD RendSy = RenderSystem_GetInstance (); DWORD Device = * (DWORD *) (RendSy + 0x574); PDWORD * dwTable = (PDWORD *) Urządzenie; oEndScene = (tEndScene) VMTHook (dwTable, (PBYTE) myEndScene, 42); za pomocą: Kod: typedef DWORD (__cdecl * Singleton_RenderSystem_GetInstancet) (); Singleton_RenderSystem_GetInstancet RenderSystem_GetInstance; RenderSystem_GetInstance = (Singleton_RenderSystem_GetInstancet) GetProcAddress (GetModuleHandle ("ooGraphics.dll"), "? InstancePtr @ RenderSystem @ oo @ @ SAPAV12 @ XZ"); PBYTE VMTHook (PDWORD * dwVTable, PBYTE dwHook, indeks INT) {DWORD dwOld = 0; VirtualProtect ((void *) ((* dwVTable) + (Index * 4)), 4, PAGE_EXECUTE_READWRITE, & dwOld); PBYTE pOrig = ((PBYTE) (* dwVTable) [Index]); (* dwVTable) [Index] = (DWORD) dwHook; VirtualProtect ((void *) ((* dwVTable) + (Index * 4)), 4, dwOld, & dwOld); return pOrig; } Cieszyć się
Reply
#16
Wygląd gry jest całkiem zabawny, pobierając go teraz. Opublikuję wszystkie informacje, które otrzymam. Twoje zdrowie EDYTOWAĆ: Rozpocząłem poszukiwanie iteracji odtwarzacza, ale kiedy to zrobiłem znalazłem 2 metody: GetPlayerByIndex i GetNetPlayerByIndex. Zastanawiam się, którego używamy, ale okazuje się, że tylko GetPlayerByIndex jest w GetNetPlayerByIndex, więc zakładam, że powinniśmy użyć tej funkcji. Publikuje więcej w nieco. EDYTOWAĆ: Pójdę umyć mój samochód, niedługo wrócę. oto kilka informacji: Kod: DWORD * GetLocalPlayer () {DWORD ret = NULL; DWORD dwGame = (DWORD) GetModuleHandle ("FinalBattleClient.dll"); DWORD dwApp = dwGame + 0x1BA40; DWORD dwGetLocalPlayer = dwGame + 0x369C0; _asm {call dwApp mov ecx, dword ptr ds: [eax + 0x34] wywołanie dwGetLocalPlayer mov [ret], eax} return NULL; }
Reply
#17
Niestety nie mogłem przejść ekranu powitania w tej grze, ciągle pojawiał się komunikat "Błąd programu". Czytałem również, że rejestracje są obecnie wyłączone ?!
Reply
#18
rejestracje nie są wyłączone .... pojawi się to okno komunikatu, ponieważ otworzyłeś narzędzie takie jak CE lub OllyDbg, a hs je wykrywa ....
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)