Hello!
I already have plugin, which calculates damage of player.
But I want to make HUD-message to show top 3 players by damage.
I use sort by descending and retrieves from new sorted massive [0],[1] and [2] players.
Code:
const MAX_PLAYERS = 32;
enum KillData
{
CurrentDamage,
TotalDamage
}
new kdPlayerData[ MAX_PLAYERS + 1 ][ KillData ];
public plugin_init()
{
register_plugin( "" , "" , "" );
RegisterHam( Ham_TakeDamage , "player" , "fw_HamTakeDamage_Post" , 1 );
register_logevent("fw_RoundStart" , 2 , "1=Round_Start" );
}
public fw_HamTakeDamage_Post(TopDamagers[32],iVictim , iInflictor, iAttacker , Float:fDamage , DamageBits){
kdPlayerData[ iAttacker ][ TotalDamage ] += ( kdPlayerData[ iAttacker ][ CurrentDamage ] = pev( iVictim , pev_dmg_take ) );
set_hudmessage( 0, 51, 102 , -1.0 , 0.75 , 0 , 15.0 , 2.0 );
show_hudmessage( iAttacker , "TOTAL DAMAGE: %d" , kdPlayerData[ iAttacker ][ TotalDamage ]);
for (new i=1;i<sizeof(kdPlayerData);i++){
TopDamagers[i] = kdPlayerData[i]
}
new Top1[18],Top2[18],Top3[18]
get_user_name(TopDamagers[0],Top1,17)
get_user_name(TopDamagers[1],Top2,17)
get_user_name(TopDamagers[2],Top3,17)
SortIntegers(TopDamagers,sizeof(TopDamagers),Sort_Descending)
set_hudmessage( 0, 51, 102 , -0.5 , 0.25 , 0 , 15.0 , 2.0 );
show_hudmessage(0,"TOP DAMAGERS: 1.%s: %d\n2.%s: %d\n3.%s: %d",Top1,TopDamagers[0],Top2,TopDamagers[1],Top3,TopDamagers[2]);
return HAM_IGNORED;
}
public fw_RoundStart(){
for ( new i = 1 ; i < sizeof( kdPlayerData ) ; i++ ){
arrayset( kdPlayerData[ i ] , 0 , sizeof( kdPlayerData[] ) );
}
}
but in string where
Code:
for (new i=1;i<sizeof(kdPlayerData);i++){
TopDamagers[i] = kdPlayerData[i]
}
must be assigned to an array