Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
new const Version[] = "0.1";
#define MAX_PLAYERS 32
#define MAX_NAME_LENGTH 32
enum PlayerStats
{
DamageGiven,
DamageReceived
}
new g_szName[ MAX_PLAYERS + 1 ][ MAX_NAME_LENGTH ];
new g_pzStats[ MAX_PLAYERS + 1 ][ MAX_PLAYERS + 1 ][ PlayerStats ];
public plugin_init()
{
register_plugin( "Round Damage" , Version , "bugsy" );
RegisterHam( Ham_TakeDamage , "player" , "HamTakeDamage" , true );
register_logevent( "RoundEnd" , 2 , "1=Round_End" );
}
public client_putinserver( id )
{
get_user_name( id , g_szName[ id ] , charsmax( g_szName[] ) );
}
public HamTakeDamage( victim , inflictor , attacker , Float:fDamage , bitDamage )
{
new iActualDamage = pev( victim , pev_dmg_take );
g_pzStats[ victim ][ attacker ][ DamageReceived ] += iActualDamage;
g_pzStats[ attacker ][ victim ][ DamageGiven ] += iActualDamage;
}
public RoundEnd()
{
new iPlayers[ 32 ] , iNum , iAttackerPlayer , iVictimPlayer , iTotalDamage , iSingleDamage;
new szHUD[ 512 ] , iPos;
get_players( iPlayers , iNum );
for ( new i = 0 ; i < iNum ; i++ )
{
iAttackerPlayer = iPlayers[ i ];
iPos = 0;
iTotalDamage = 0;
for ( new p = 0 ; p < iNum ; p++ )
{
iVictimPlayer = iPlayers[ p ];
if ( i != p )
{
iSingleDamage = g_pzStats[ iAttackerPlayer ][ iVictimPlayer ][ DamageGiven ];
if ( iSingleDamage > 0 )
{
iTotalDamage += iSingleDamage;
iPos += formatex( szHUD[ iPos ] , charsmax( szHUD ) - iPos , "%s - %d damage^n" , g_szName[ iVictimPlayer ] , iSingleDamage );
}
}
}
if ( iTotalDamage > 0 )
{
iPos += formatex( szHUD[ iPos ] , charsmax( szHUD ) - iPos , "^n^nTotal Damage - %d" , iTotalDamage );
set_hudmessage( 0 , 255 , 0 , 0.05, 0.35 , 0 , 0.0 , 5.0 );
show_hudmessage( iAttackerPlayer , szHUD );
}
}
}