Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Jak zrobić sylwetki
#1
OSTRZEŻENIE! Ten samouczek dla użytkowników, którzy mają swoje projekty i wiedzą coś na temat oszukiwania, jeśli nie masz tutaj projektu lub newbee, zostaw ten wątek, cmon! Na tym forum jest tyle wątków o początkach oszustw i itp   Cześć, wiem, że tak wielu ludzi nie wie, jak tworzyć Silhouettes używają Chams lub po prostu kości / skrzynki i itp Dziś pokażę, jak możesz tworzyć sylwetki To takie łatwe bro   Po pierwsze, znajdźmy pozycję, potrzebujemy GetProxy i SetHUDSilhouettesParams     GetProxy Otwórz IDA i wyszukaj według bajtów - 43 72 65 61 74 65 52 65 6E 64 65 72 50 72 6F 78 79 00   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1915 x 919.     Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1157 x 579.   Teraz jesteśmy tu   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1181 x 546. Naciśnij "x" i ok   Następnie użyj pseudokodu, naciskając klawisz F5 a teraz jesteśmy tutaj   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1839 x 817.   kliknij na sub_ poniżej "CreateRenderProxy" a teraz jesteśmy tutaj   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1807x821.   Tak więc, pierwsza pozycja będzie dla nas, jest 364, dla mnie musi to być szesnastkowe   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1882 x 892.   Więc mamy GetProxy 0x16C w HEX lub 364 DEC   Pozwala znaleźć SetHUDSilhouettesParams   ponownie wyszukaj według bajtów - 48 75 64 53 69 6C 68 6F 75 65 74 74 65 73 5F 54 79 70 65 00   ale widzimy 2 sposoby   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1861 x 947.   U powinno spróbować obydwu i kiedy ujrzysz to w pseudokod - u znalazłeś dobrze   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1889 x 893.   Przewiń w górę, aż znajdziesz (* (void (__thiscall **) (int, _DWORD, _DWORD, _DWORD, _DWORD)) (* (_ DWORD *) v10 + 68)) (v10, 0, 0, 0, 0); I jest nasza pozycja!   Ten obraz został przeskalowany. Kliknij ten pasek, aby wyświetlić pełny obraz. Oryginalny obraz ma rozmiar 1905 x 925.   SetHUDSilhouettesParams w 68 w DEC / 0x44 w HEX   Znaleźliśmy wszystkie potrzebne pozycje!   Teraz mamy projekt   Zajęcia goto i wystawienie nowej klasy       Kod:   class IEntityRenderProxy {public: VOID SetHUDSilhouettesParams (FLOAT r, FLOAT g, FLOAT b, FLOAT a) {auto SUB = * (DWORD *) (* (DWORD *) to + (V_SetHUDSilhouettesParams)); _asm {push a // 5 push b // 4 push g // 3 push r // 2 mov ecx, this // 1 call SUB // call} * (DWORD *) (this + 0x14) | = eAllMap; }};   V_SetHUDSilhouettesParams - SetHUDSilhouettesParams in 68 in DEC / 0x44 in HEX więc powinno to wyglądać #define V_SetHUDSilhouettesParams 68 lub 0x44   Byłoby miło, gdyby umieścić klasę IEntityRenderProxy w klasie ISkeletonPose   również umieść go gdzieś w klasie IEntityRenderProxy     Kod:   enum ESilhouettesParams {eAllMap = 0x10u, eLimitDistance = 0xFFFFFFEFu, eMin = 0x80000};   następnie goto class IEntity i połóż to IEntityRenderProxy * GetProxy () {return vFun_Call <IEntityRenderProxy * (__ thiscall *) (PVOID, int)> (this, V_GetProxy) (this, 0); }   V_GetProxy - GetProxy 0x16C w HEX lub 364 DEC   Do mojego połączenia - vFun_Call potrzebuję podzielić go na 4 #define V_GetProxy 0x16C / 4 or 364/4   Jeśli masz inne połączenie, które nie potrzebuje / 4, nie możesz / 4   Jeśli ktoś chce mojego wezwania     Kod:   szablon <nazwa_typu cData> cData vFun_Call (PVOID BaseClass, DWORD vOFFSET) {PDWORD * vPointer = (PDWORD *) BaseClass; PDWORD vFunction = * vPointer; DWORD dwAddress = vFunkcja [vOFFSET]; return (cData) (dwAddress); }   Potem powinniśmy to nazwać możesz go wywołać przez Aktora lub Entity i używam dla niego Aktora       Kod:   if (auto pGameFramework = SSystemGlobalEnvironment :: GetInstance () -> pIGame () -> GetIGameFramework ()) {if (auto mActor = pGameFramework -> GetMyActor ()) {jeśli (auto pActorIterator = pGameFramework -> GetIActorSystem () -> GetActorIterator ()) {for (; IActor * pActor = pActorIterator -> Next ()Wink {auto pExp = pActor -> GetEntity (); SSystemGlobalEnvironment :: GetInstance () -> pirenderer () -> WorldToScreen (pExp -> GBA ()); if (! pGameFramework -> GetCurrentGameRules () -> EliminationTeam (pActor, mActor)) kontynuuj; if (auto pExp = pActor -> GetEntity ()) {pExp -> GetProxy () -> SetHUDSilhouettesParams (0.0f, r, g, b)   r - czerwony g - zielony b - niebieski gdzie ustawiam 0.0f na alfa, tylko nie przeszkadza mi to   I nie zapominaj o sprawdzeniu zespołu, jeśli nie chcesz, aby Twoi znajomi ukazywali się jak wrogowie   to jest mój czek if (! pGameFramework-> GetCurrentGameRules () -> EliminationTeam (pActor, mActor)) kontynuuj;
Reply
#2
miło utrzymywać to!
Reply
#3
Myślę, że nie potrzebujesz tam WorldToScreen
Reply
#4
thanx rozpustnik
Reply
#5
Zacytować: Wysłane przez pierwotnie defendthetarget Myślę, że nie potrzebujesz tam WorldToScreen To prawda, po prostu to ujęłam
Reply
#6
@ Chamas możesz mi powiedzieć trochę o tym "Silhouettes"
Reply
#7
Zacytować: Wysłane przez pierwotnie defendthetarget Myślę, że nie potrzebujesz tam WorldToScreen w rzeczy samej Zacytować: Originally Posted by jamesarthor @ Chamas możesz mi powiedzieć trochę o tym "Silhouettes" Nie jestem chamami, ale ... Wiesz, kiedy widzisz swoich sojuszników przez ściany w kolorze niebieskim? cóż, możesz zrobić to samo dla wroga
Reply
#8
Zacytować: Originally Posted by jamesarthor @ Chamas możesz mi powiedzieć trochę o tym "Silhouettes" Zacytować: Wysłane przez pierwotnie onra2 Nie jestem chamami, ale ... Wiesz, kiedy widzisz swoich sojuszników przez ściany w kolorze niebieskim? cóż, możesz zrobić to samo dla wroga to jest
Reply
#9
W porządku, dzięki, chłopaki, tak samo jest w Blue, jak nasi sojusznicy, ale bez plakietek, żebyśmy mogli zobaczyć, który wróg jest sojusznikiem.
Reply
#10
Zacytować: Originally Posted by jamesarthor W porządku, dzięki, chłopaki, tak samo jest w Blue, jak nasi sojusznicy, ale bez plakietek, żebyśmy mogli zobaczyć, który wróg jest sojusznikiem. możesz zmienić kolor wroga, tak czerwony, zielony lub inny
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)