Advertisement
fqrmix

ESP->Think();

Jan 28th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1.     void Think( )
  2.     {
  3.         SetupConsole();
  4.  
  5.         CBaseEntity* Local = ( CBaseEntity* )ClientEntityList->GetClientEntity( EngineClient->GetLocalPlayer( ) );
  6.  
  7.         PlayerInfo_t Info;
  8.  
  9.         Matrix3x4_t Matrix = EngineClient->GetMatrix( );
  10.  
  11.         CVector Screen, Head;
  12.  
  13.         struct PanicKeys
  14.         {
  15.             bool VisualPanicKeyIsPressed;
  16.             bool InfoPanicKeyIsPressed;
  17.             bool BoxPanicKeIsPressed;
  18.             bool DM_ESP_PanicKeyIsPressed;
  19.         };
  20.  
  21.         PanicKeys Panics;
  22.  
  23.  
  24.         if (GetKeyState(VK_F6) == 1)
  25.             Panics.VisualPanicKeyIsPressed = TRUE;
  26.         if (GetKeyState(VK_F7) == 1)
  27.             Panics.InfoPanicKeyIsPressed = TRUE;
  28.         if (GetKeyState(VK_F8) == 1)
  29.             Panics.BoxPanicKeIsPressed = TRUE;
  30.         if (GetKeyState(VK_F9) == 1)
  31.             Panics.DM_ESP_PanicKeyIsPressed = TRUE;
  32.  
  33.  
  34.         for ( int i = 0; i < 64; ++i )
  35.         {
  36.  
  37.             CBaseEntity* Entity = ( CBaseEntity* ) ClientEntityList->GetClientEntity( i );     
  38.  
  39.             if ( !Entity )
  40.                 continue;
  41.            
  42.             if ( Entity == Local )
  43.                 continue;
  44.  
  45.             if ( Entity->GetDormant( ) )
  46.                 continue;
  47.  
  48.  
  49.             if ( Entity->GetHealth( ) )
  50.             {
  51.            
  52.                 EngineClient->GetPlayerInfo( i, &Info );
  53.  
  54.                 if ( WorldToScreen( Entity->GetOrigin( ), Screen ) && WorldToScreen( ( Entity->GetEyePosition( ) + CVector( 0, 0, 8.f ) ), Head ) )
  55.                 {
  56.                     CColor Color( 255, 255, 255, 255 );
  57.  
  58.                     if ( Entity->GetTeam( ) != Local->GetTeam( ) )
  59.                         Color = CColor( 255, 0, 0, 255 );
  60.  
  61.                     else
  62.                         Color = CColor( 0, 255, 255, 255 );
  63.  
  64.                     std::cout << Info.Name;
  65.                     int Height = Screen.y - Head.y, Width = Height / 2.5;
  66.                     if (!(Panics.VisualPanicKeyIsPressed))
  67.                     {
  68.                         if (!(Panics.InfoPanicKeyIsPressed))
  69.                         {
  70.                             Render->DrawF(Screen.x, Screen.y + 2, Color, 5, 1, "- %s -", Info.Name);
  71.                             Render->DrawF(Head.x, Head.y - 12, Color, 5, 1, "- %d -", Entity->GetHealth());
  72.                         }
  73.  
  74.                         if (!(Panics.BoxPanicKeIsPressed))
  75.                             if (!(Panics.DM_ESP_PanicKeyIsPressed))
  76.                             {
  77.                                 if (Entity->GetTeam() != Local->GetTeam())
  78.                                     Render->DrawInlineRect(Head.x - Width / 2, Head.y, Width, Height, Color);
  79.                             }
  80.                             else Render->DrawInlineRect(Head.x - Width / 2, Head.y, Width, Height, Color);
  81.                     }
  82.                 }
  83.  
  84.  
  85.             }
  86.  
  87.  
  88.         }
  89.  
  90.     }
  91.  
  92.     __forceinline bool WorldToScreen( CVector In, CVector& Out )
  93.     {
  94.         Matrix3x4_t ViewMatrix = EngineClient->GetMatrix( );
  95.  
  96.         Out.x = ViewMatrix.Matrix[ 0 ] * In.x + ViewMatrix.Matrix[ 1 ] * In.y + ViewMatrix.Matrix[ 2 ] * In.z + ViewMatrix.Matrix[ 3 ];
  97.  
  98.         Out.y = ViewMatrix.Matrix[ 4 ] * In.x + ViewMatrix.Matrix[ 5 ] * In.y + ViewMatrix.Matrix[ 6 ] * In.z + ViewMatrix.Matrix[ 7 ];
  99.  
  100.         Out.z = ViewMatrix.Matrix[ 12 ] * In.x + ViewMatrix.Matrix[ 13 ] * In.y + ViewMatrix.Matrix[ 14 ] * In.z + ViewMatrix.Matrix[ 15 ];
  101.  
  102.         if ( Out.z < 0.01f )
  103.             return false;
  104.  
  105.         float Inverse = 1.f / Out.z;
  106.  
  107.         Out.x *= Inverse;
  108.         Out.y *= Inverse;
  109.  
  110.         int Width, Height;
  111.  
  112.         EngineClient->GetScreenSize( Width, Height );
  113.  
  114.         auto X = Width / 2;
  115.         auto Y = Height / 2;
  116.  
  117.         X += 0.5 * Out.x * Width + 0.5;
  118.         Y -= 0.5 * Out.y * Height + 0.5;
  119.  
  120.         Out.x = X;
  121.         Out.y = Y;
  122.  
  123.         return true;
  124.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement