Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
3D do 2D (W2S)
#1
Robiłem własną zewnętrzną (GDI +) ESP dla AssaultCube jako praktykę. Oto mój kod do zamiany punktu 3D na punkt 2D. Próbowałem dostosować kod z samouczka sraeG:     http://www.unknowncheats.me/forum/mi...based-esp.html   Oto moje postępy ... (obecnie szukam tylko koordynatora ekranu X)       Kod:   Punkt point3dTo2d (int targetX, int targetY, int targetZ, int positionX, int positionY, int positionZ, pozycja pływająca Yaw, pozycja floatPitch, float FOV, int height, int width) {// rad to deg * 57,29578 double Xdif; // wschód / zachód podwójny Zdif; // północ / południe podwójne Ydif; // góra / dół podwójny kąt Yaw; double anglePitch; // Jeśli pozycje są takie same, jeśli (targetX == positionX && targetZ == positionZ) {// nic tutaj nie można zrobić .. return Point (0, 0); } // Sektor 1 (NE), jeśli (targetX> positionX && targetZ <= positionZ) {Xdif = targetX - positionX; Zdif = positionZ - targetZ; kątYaw = 90 - (atan (Zdif / Xdif)); } // Sector 2 (NW) if (targetX <= positionX && targetZ <positionZ) {Xdif = positionX - targetX; Zdif = positionZ - targetZ; angleYaw = 270 + (atan (Zdif / Xdif)); } // Sector 3 (SW) if (targetX <positionX && targetZ> = positionZ) {Xdif = positionX - targetX; Zdif = targetZ - positionZ; angleYaw = 270 - (atan (Zdif / Xdif)); } // Sector 4 (SE) if (targetX> = positionX && targetZ> positionZ) {Xdif = targetX - positionX; Zdif = targetZ - positionZ; kątYaw = 90 + (atan (Zdif / Xdif)); } Double yawToTarget; if (angleYaw <positionYaw) {yawToTarget = positionYaw - angleYaw; } If (angleYaw> positionYaw) {yawToTarget = angleYaw - positionAaw; } Double XZ = sqrt ((Xdif * Xdif) + (Zdif * Zdif)); podwójne DZ = sin (yawToTarget) * XZ; podwójne DX = cos (yawToTarget) * XZ; podwójne DF = tan (FOV / 2) * DX; podwójne x = (wysokość / 2) + ((DZ / DF) * (wysokość / 2)); punkt powrotu (x, 20); }   Rysowanie pudełka do współrzędnych daje mi bezużyteczne migające pudła w każdym miejscu, kiedy chodzę. Kiedy nie ruszam się i poruszam się w swoim przeciwniku, widzę, że tak naprawdę porusza się w lewo / prawo, kiedy to robi. Ktoś z większym doświadczeniem wie, co tu robię źle?
Reply
#2
Zewnętrzne hacki będą zawsze migotały, ponieważ kiedy przenosisz swoje etykiety / skrzynki ESP, system operacyjny wywoła komunikat WM_PAINT i przerysuje całe okno, powodując wyświetlenie nowej powierzchni. Zawsze będzie to powodować błyskanie, ponieważ wystąpi wyścig. Przykład wyścigu: Wątek A zapisuje dane w łańcuchu ABCD, ale jednocześnie wątek B uzyskuje do niego dostęp. Kiedy A pisze "omgzomg", a wcześniej mieliśmy "lolbang" w tym łańcuchu, B mogło zobaczyć to jako "omgzang", ponieważ pierwsze cztery bajty zostały zmienione, a pozostałe bajty jeszcze się nie zmieniły. Aby pozbyć się tego problemu, powinieneś znaleźć sposób na otwieranie opengl w tej grze, a następnie podpięcie się w glende lub coś i narysować swoje pudełka wewnątrz haka. Każdy dodatkowy rysunek gry, taki jak ESP, powinien zostać wykonany wewnątrz pętli renderowania.
Reply
#3
Zacytować: Originally Posted by cziter15 Zewnętrzne hacki będą zawsze migotały, ponieważ kiedy przenosisz swoje etykiety / skrzynki ESP, system operacyjny wywoła komunikat WM_PAINT i przerysuje całe okno, powodując wyświetlenie nowej powierzchni. Zawsze będzie to powodować błyskanie, ponieważ wystąpi wyścig. Przykład wyścigu: Wątek A zapisuje dane w łańcuchu ABCD, ale jednocześnie wątek B uzyskuje do niego dostęp. Kiedy A pisze "omgzomg", a wcześniej mieliśmy "lolbang" w tym łańcuchu, B mogło zobaczyć to jako "omgzang", ponieważ pierwsze cztery bajty zostały zmienione, a pozostałe bajty jeszcze się nie zmieniły. Aby pozbyć się tego problemu, powinieneś znaleźć sposób na otwieranie opengl w tej grze, a następnie podpięcie się w glende lub coś i narysować swoje pudełka wewnątrz haka. Każdy dodatkowy rysunek gry, taki jak ESP, powinien zostać wykonany wewnątrz pętli renderowania. Nie do końca prawda, okno gry zastąpi bieżący rendering, co spowoduje czyste przyciąganie. O waszym wątku, wymyślono wątki blokujące.
Reply
#4
Kilka dni po napisaniu tego napisałem 2d esp i nie dostaję zbyt dużego opóźnienia, chyba że wielu graczy jest online. Pudełka z tego 3d esp nie opóźniają się w ogóle. Kiedy mój wróg się porusza, porusza się również, ale kiedy to zrobię, przeskakuje na cały ekran.
Reply
#5
Wciąganie SDL_SwapBuffers pomaga w rysowaniu w grze Znajdź tekst, który zostanie narysowany, na przykład fps w prawym dolnym rogu. Następnie wyszukaj "fps" w ollydebug, zobacz, do której funkcji masz dostęp, aż znajdziesz funkcję GL i wywołaj ją za pomocą wbudowanego zestawu w haczyku swapbufferów. Teraz możesz narysować tekst w grze, ładnie dla menu lub narysować "X" na głowach graczy. Możesz także użyć nakładki d3d, po prostu rób to, co chcesz xD
Reply
#6
Aby rzutować punkt 3D na powierzchnię 2D, musisz pomnożyć wektor 3D przez macierz rzutowania.
Reply




Users browsing this thread: 1 Guest(s)