Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rysunek D3D ESP
#1
Gra: Ghost In The Shell: First Assault   Okej, więc to moja pierwsza próba stworzenia D3D ESP. Nie mogę rysować dla WSZYSTKICH graczy, to rysowanie moich współrzędnych WŁASNYCH. Kiedy mam na myśli moje własne współrzędne, jeśli zostanę zabity przez gracza i zobaczę, kto mnie zabił, obok niego będą pudła. Btw, kod pochodzi głównie ze źródła Nseven. Jakieś pomysły ?? Ostatnia rzecz, tylko pokazuje kiedy moje CHAMS są aktywowane (prawdopodobnie z bufora)       Kod:   void AddModel (LPDIRECT3DDEVICE9 Device, int iTeam) {float xx, yy; Macierz D3DXMATRIX, worldmatrix, m1; Pozycja D3DXVECTOR4, wejście; D3DVIEWPORT9 dip_viewport; Urządzenie -> GetViewport (& dip_viewport); Urządzenie -> GetVertexShaderConstantF (90, m1, 4); Urządzenie -> GetVertexShaderConstantF (0, worldmatrix, 4); wejście. x = worldmatrix. _14; wejście. y = światowa matryca. _24; wejście. z = worldmatrix. _34 + (float) (aimheight * 2); D3DXMatrixTranspose (& matrix, & m1); D3DXVec4Transform (& position, & input & matrix); pozycja. x = wejście. x * macierz. _11 + wejście. matryca y *. _21 + wejście. z * matrix. Macierz _31 +. _41; pozycja. y = wejście. x * macierz. _12 + wejście. matryca y *. _22 + wejście. z * matrix. Macierz _32 +. _42; pozycja. z = wejście. x * macierz. _13 + wejście. matryca y *. _23 + wejście. z * matrix. Macierz _33 +. _43; pozycja. w = wejście. x * macierz. _14 + wejście. matryca y *. _24 + wejście. z * matrix. Macierz _34 +. _44; xx = ((pozycja x / pozycja. w) * (dip_viewport. Szerokość / 2.0f)) + dip_viewport. X + (dip_viewport. Szerokość / 2.0f); yy = dip_viewport. Y + (dip_viewport, wysokość / 2.0f) - ((pozycja y / pozycja w) * (dip_viewport, wysokość / 2.0f)); ModelInfo_t pModelInfo = {static_cast <float> (xx), static_cast <float> (yy), iTeam}; ModelInfo. push_back (pModelInfo); }   Shader Logg inside Stride (80)       Kod:   // // Wygenerowane przez Microsoft ® HLSL Shader Compiler 9.27.952.3022 // // Parametry: // // float4x3 g_SkinBoneMatrix3 [30]; // float4x4 g_ViewProj; // int g_nActerID; // int g_nOutLineTable; // // // Rejestry: // // Nazwa Rozmiar reg // ----------------- ----- ---- // g_SkinBoneMatrix3 c0 90 // g_ViewProj c90 4 // g_nActerID c94 1 // g_nOutLineTable c95 1 // vs_3_0 def c96, 1, 3, 0, 0 dcl_position v0 dcl_blendweight v1 dcl_blendindices v2 dcl_position o0 dcl_texcoord o1 dodaj r0. x, c96. x, - v1. x dodaj r0. x, r0. x, - v1. y dodaj r0. x, r0. x, - v1. z mul r1, c96. y, v2 mova a0, r1 mul r1, v1. y, c0 [a0. y] mad r1, c0 [a0. x], v1. x, r1 mad r1, c0 [a0. z], v1. z, r1 mad r1, c0 [a0. w], r0. x, r1 mad r2, v0. xyzx, c96. xxxz, c96. zzzx dp4 r1. x, r2, r1 mul r3, v1. y, c1 [a0. y] mad r3, c1 [a0. x], v1. x, r3 mad r3, c1 [a0. z], v1. z, r3 mad r3, c1 [a0. w], r0. x, r3 dp4 r1. y, r2, r3 mul r3, v1. y, c2 [a0. y] mad r3, c2 [a0. x], v1. x, r3 mad r3, c2 [a0. z], v1. z, r3 mad r0, c2 [a0. w], r0. x, r3 dp4 r1. z, r2, r0 mov r1. w, c96. x dp4 o0. x, r1, c90 dp4 o0. y, r1, c91 dp4 o0. w, r1, c93 dp4 r0. x, r1, c92 mov o0. z, r0. x mov o1. z, r0. x mov r0. xz, c96 mad o1. xw, c94. x, r0. xyzz, r0. zyzx mov o1. y, c95. x // w przybliżeniu 31 używanych szczelin instrukcji   poza krokiem       Kod:   // // Wygenerowany przez Microsoft ® HLSL Shader Compiler 9.27.952.3022 // // Parametry: // // float4x4 g_matWorldViewProj; // // // Rejestry: // // Nazwa Rozmiar reg // --------------------------- // g_matWorldViewProj c0 4 / / // // Wartości domyślne: // // g_matWorldViewProj // c0 = {0, 0, 0, 0}; // c1 = {0, 0, 0, 0}; // c2 = {0, 0, 0, 0}; // c3 = {0, 0, 0, 0}; // vs_2_0 dcl_position v0 dcl_texcoord v1 dp4 oPos. x, v0, c0 dp4 oPos. y, v0, c1 dp4 oPos. z, v0, c2 dp4 oPos. w, v0, c3 mov oT0. xy, v1 // około 5 używanych slogów instrukcji   STOCZEK       Kod:   if (Krok == 80) {AddModel (pDevice, 1); }   Kod CHAMS     Kod:   else if (Krok == 80) {if (GetAsyncKeyState (VK_F9) i 1) doDisassembleShader (pDevice, "shader1.txt"); float sRed [4] = {1.0f, 0.0f, 0.0f, 1.0f}; float sGreen [4] = {0.0f, 0.5f, 0.0f, 0.0f}; DWOR
Reply
#2
Cholera, myślałem, że zginęłaś albo coś 0.o Wyślij mi wiadomość, jeśli nie możesz tego zrozumieć i mogę pomóc =)
Reply
#3
Zacytować: Napisał Pyro666 Cholera, myślałem, że zginęłaś albo coś 0.o Wyślij mi wiadomość, jeśli nie możesz tego zrozumieć i mogę pomóc =) Nie, wciąż żyję XD Wróciłem bezpieczny!
Reply
#4
Możesz też spróbować: Pic Esp, no w2s required
Reply
#5
Zacytować: Napisał dracorx Możesz też spróbować: Pic Esp, no w2s required Tak, przeczytałem to kilka dni temu. Po prostu próbuję skonfigurować świat do wyświetlenia. (Daje ci więcej opcji) Dzięki za podzielenie się z nami.
Reply
#6
Bardzo dziękuję, spróbuję jutro i dam ci znać. Btw jak zdobyłeś model rec? Użyłem tego samego fragmentu źródła. If (logger) if (getasynckeystate 'P' & 1) NumVertices ++; ale wydaje się, że niewiele zyskuje. Jeśli chcę zrobić model rec później na nogi ciała itp.
Reply
#7
Zacytować: Napisał pierwotnie str1k3r21 Bardzo dziękuję, spróbuję jutro i dam ci znać. Btw jak zdobyłeś model rec? Użyłem tego samego fragmentu źródła. If (logger) if (getasynckeystate 'P' & 1) NumVertices ++; ale wydaje się, że niewiele zyskuje. Jeśli chcę zrobić model rec później na nogi ciała itp. np. najpierw wypróbowałem worldtoscreen z Stride 12, żeby sprawdzić, czy działa, a potem użyłem mojego głupiego drwala, by znaleźć numelenty i wektory, tak znalazłem oczy potem zrobiłem coś prostego w ten sposób Kod: if ((Krok == 12 && NumElements == 4 && mVector4fCount == 12) && (GetAsyncKeyState (VK_F10) i 1)) Dziennik ("Krok ==% d && NumVertices ==% d && primCount ==% d && decl -> Wpisz ==% d && numElements ==% d && vSize ==% d && pSize ==% d && mStartRegister ==% d && mVector4fCount ==% d ", krok, NumVertices, primCount, decl -> Type, numElements, vSize, pSize, mStartRegister, mVector4fCount); to dało mi wszystkie inne wartości btw. wygląda jak wszystkie modele są numElements == 9
Reply
#8
dzięki za norello. Okluzja może być po stronie serwera, wyłączenie jej w kreacji nie będzie działać w tej grze.
Reply
#9
Mam tu mały problem. Nie używam tej samej techniki, co twoja z shaderów. Moja metoda: Przeglądam listę graczy w pamięci i ściągam współrzędne XYZ ze struktury gracza. Używam World2Screen opartego na macierzy ViewProj (offset 90 w rejestrach), aby renderować ramkę wokół graczy na ekranie 2D z ich współrzędnych XYZ. Działa dobrze, widzę prostokątów wokół każdego gracza jako epoksyd. Istnieje jednak niewielki efekt uboczny "perspektywy" lub "pola widzenia": w rzeczywistości prostokąt jest idealnie ustawiony, gdy patrzę prosto na wroga. Kiedy zacznę przesuwać widok w lewo lub w prawo od wrogiego gracza, prostokąt nie będzie dokładnie pasować do gracza, a pomiędzy ciałem przeciwnika a prostokątem pojawi się przesunięcie. Każdy pomysł, co może być przyczyną tego problemu? Przetestowałem 2 sposoby pobierania macierzy viewproj: przez DirectX GetTransform lub przez rejestry (GetVertexShaderConstantF) w offsecie 90. Oba mają ten sam problem, który nie jest zaskakujący, ponieważ wynikowa macierz viewproj jest identyczna w obie strony. (co potwierdza, że mam odpowiednie matryce) Brak mi pomysłów .... Jestem na tym sh * t od 1 tygodnia. Dowolny pomysł? Dziękuję Ci.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)