void DebugDump( const CCommand &coma ) { using namespace MemUtils; try { DWORD* pRadarBaseOffset; CSigScanner sigScanner( "client.dll", "hl2.exe", SIG_RADARBASE, SIG_RADARBASEMASK, SIG_RADARBASELEN ); if( sigScanner.FindNext( ) ) { pRadarBaseOffset = **(DWORD***)( (DWORD)( sigScanner.GetFullAddress< DWORD >( ) ) + 2 ); } else { throw std::exception( "Could not find radar base offset!" ); } CProcTools tools; Warning( "Starting players dump...\n" ); for( int i = 0; i < GlobIfaces::g_pClientEngine->GetMaxClients( ); i++ ) { if( GlobIfaces::g_pClientEntityList->GetClientEntity( i ) != nullptr ) { char pName[32]; strcpy( pName, tools.ReadDataArray< char >( BuildAddress( (int*)pRadarBaseOffset, i, NAME_OFFSET ), 32 ).get( ) ); int health = tools.ReadInt( BuildAddress( (int*)pRadarBaseOffset, i, HEALTH_OFFSET ) ); int team = tools.ReadInt( BuildAddress( (int*)pRadarBaseOffset, i, TEAM_OFFSET ) ); Vector origin = tools.ReadData< Vector >( BuildAddress( (int*)pRadarBaseOffset, i, ORIGIN_OFFSET ) ); Warning( "%s [%i][%s][%f.%f.%f]\n", pName, health, team == 3 ? "CT" : "T", origin.x, origin.y, origin.z ); } } Warning( "Dump finished\n"); } catch( std::exception &e ) { Warning( e.what( ) ); } }