keybode

source engine rh 3d bbox esp

Apr 30th, 2014
512
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. void CRenderer::BorderBox3d ( int x1[4], int y1[4], Color color )
  2. {
  3.     Line ( x1[0], y1[0], x1[1], y1[1], color );
  4.     Line ( x1[1], y1[1], x1[2], y1[2], color );
  5.     Line ( x1[2], y1[2], x1[3], y1[3], color );
  6.     Line ( x1[3], y1[3], x1[0], y1[0], color );
  7. }
  8.  
  9. void DrawHitbox ( Vector min, Vector max, matrix3x4_t matrix, Color color )
  10. {
  11.     static int box[6][4] =
  12.     {
  13.         { 0, 4, 6, 2 },
  14.         { 0, 1, 5, 4 },
  15.         { 0, 2, 3, 1 },
  16.         { 7, 5, 1, 3 },
  17.         { 7, 3, 2, 6 },
  18.         { 7, 6, 4, 5 },
  19.     };
  20.  
  21.     Vector temp, pos[ 8 ];
  22.  
  23.     for ( int i = 0; i < 8; i++ )
  24.     {
  25.         temp.x = ( i & 1 ) ? min.x : max.x;
  26.         temp.y = ( i & 2 ) ? min.y : max.y;
  27.         temp.z = ( i & 4 ) ? min.z : max.z;
  28.  
  29.         VectorTransform ( temp, matrix, pos[ i ] );
  30.     }
  31.  
  32.     for ( int i = 0; i < 6; i++ )
  33.     {
  34.         int pos_x[4] = {0, 0, 0, 0};
  35.         int pos_y[4] = {0, 0, 0, 0};
  36.  
  37.         for ( int side = 0; side < 4; side++ )
  38.         {
  39.             Vector box ( pos[ box[ i ][ side ] ] );
  40.             Vector tmp;
  41.  
  42.             WorldToScreen ( box, tmp );
  43.  
  44.             pos_x[side] = tmp.x;
  45.             pos_y[side] = tmp.y;
  46.         }
  47.  
  48.         gRenderer.BorderBox3d ( pos_x, pos_y, color );
  49.     }
  50. }
  51.  
  52. // hitbox esp
  53.  
  54. if ( vars.esp.hitbox )
  55. {
  56.     matrix3x4_t matrix[ 128 ];
  57.  
  58.     if ( !pEntity->SetupBones ( matrix, 128, 0x100, (pEntity->GetTickBase () * m_pGlobal->interval_per_tick) ) )
  59.         continue;
  60.  
  61.     studiohdr_t* pStudioHdr = m_pModelInfo->GetStudiomodel ( pEntity->GetModel () );
  62.  
  63.     if ( !pStudioHdr )
  64.         continue;
  65.  
  66.     mstudiohitboxset_t* pHitboxSet = pStudioHdr->pHitboxSet ( pEntity->GetHitboxSet () );
  67.  
  68.     if ( !pHitboxSet )
  69.         continue;
  70.  
  71.     for ( int j = 0; j < pHitboxSet->numhitboxes; j++ )
  72.     {
  73.         mstudiobbox_t* box = pHitboxSet->pHitbox ( j );
  74.  
  75.         if ( !box )
  76.             continue;
  77.  
  78.         DrawHitbox ( box->bbmin, box->bbmax, matrix[ box->bone ], espColor );
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment