 |
|
Member
|

08-11-2021
, 07:03
Re: Display previous round information in chat
|
#11
|
Quote:
Originally Posted by Bugsy
Try this:
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
new const Version[] = "0.3";
#define MAX_PLAYERS 32
#define MAX_NAME_LENGTH 32
enum PlayerStats
{
Shots,
DamageGiven
}
new g_pzStats[ MAX_PLAYERS + 1 ][ MAX_PLAYERS + 1 ][ PlayerStats ];
new g_pEnabled;
public plugin_init()
{
register_plugin( "Round Damage" , Version , "bugsy" );
RegisterHam( Ham_TakeDamage , "player" , "HamTakeDamage" , true );
register_logevent( "RoundEnd" , 2 , "1=Round_End" );
g_pEnabled = register_cvar( "rd_enabled" , "1" );
}
public HamTakeDamage( victim , inflictor , attacker , Float:fDamage , bitDamage )
{
if ( get_pcvar_num( g_pEnabled ) )
{
new iActualDamage = pev( victim , pev_dmg_take );
g_pzStats[ attacker ][ victim ][ Shots ]++;
g_pzStats[ attacker ][ victim ][ DamageGiven ] += iActualDamage;
}
}
public RoundEnd()
{
new iPlayers[ 32 ] , iNum , iPlayer , iOtherPlayer , iDamageGiven , iDamageTaken , iHealth[ MAX_PLAYERS + 1 ] , szName[ MAX_PLAYERS + 1 ][ 32 ];
get_players( iPlayers , iNum );
for ( new i = 0 ; i < iNum ; i++ )
{
iPlayer = iPlayers[ i ];
for ( new p = 0 ; p < iNum ; p++ )
{
iOtherPlayer = iPlayers[ p ];
if ( ( i != p ) && g_pzStats[ iPlayer ][ iOtherPlayer ][ DamageGiven ] || g_pzStats[ iOtherPlayer ][ iPlayer ][ DamageGiven ] )
{
iDamageGiven = min( g_pzStats[ iPlayer ][ iOtherPlayer ][ DamageGiven ] , 100 );
iDamageTaken = min( g_pzStats[ iOtherPlayer ][ iPlayer ][ DamageGiven ] , 100 );
if ( iDamageGiven || iDamageTaken )
{
if ( !iHealth[ iOtherPlayer ] )
iHealth[ iOtherPlayer ] = is_user_alive( iOtherPlayer ) ? get_user_health( iOtherPlayer ) : 0;
if ( szName[ iOtherPlayer ][ 0 ] == EOS )
get_user_name( iOtherPlayer , szName[ iOtherPlayer ] , charsmax( szName[] ) );
client_print( iPlayer , print_chat , "(%d with %d) damage, (%d with %d) taken, %s (%dHP)" , is_user_alive( iOtherPlayer ) ? iDamageGiven : 100 , g_pzStats[ iPlayer ][ iOtherPlayer ][ Shots ] , iDamageTaken , g_pzStats[ iOtherPlayer ][ iPlayer ][ Shots ] , szName[ iOtherPlayer ] , iHealth[ iOtherPlayer ] );
}
}
}
}
ClearArray();
}
ClearArray()
{
for ( new i = 1 ; i <= MAX_PLAYERS ; i++ )
{
for ( new p = 1 ; p <= MAX_PLAYERS ; p++ )
{
g_pzStats[ i ][ p ][ Shots ] = 0;
g_pzStats[ i ][ p ][ DamageGiven ] = 0;
}
}
}
|
In this case, a maximum of 100 is printed.
But you forgot:
A player's damage is 70 and I shoot him with an awp arrow, 100 damages are printed in chat, while 70 damages should be printed.
|
|
|
|