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( ) );
}
}
Comments