#include <amxmodx>
#include <hamsandwich>
new g_iTotalHitsAndDmg[2][33];
public plugin_init()
{
register_plugin("[BIO] Total hits and damage", "0.1", "fl0wer")
register_event("HLTV", "EventNewRound", "a", "1=0", "2=0")
register_logevent("RoundEnd", 2, "1=Round_End")
RegisterHam(Ham_TakeDamage, "player", "PlayerTakeDamagePost", 1)
}
public EventNewRound()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
g_iTotalHitsAndDmg[0][id] = 0;
g_iTotalHitsAndDmg[1][id] = 0;
}
}
public RoundEnd()
{
new iAmmoPacks;
new iLeader = GetLeader(iAmmoPacks);
new Players = UsersGetPlaying();
new iPlayers[32], iNum, Others;
new szName[32];
get_user_name(iLeader, szName, charsmax(szName))
get_players(iPlayers, iNum, "ch")
for(new i = 0; i < iNum; i++)
Others = g_iTotalHitsAndDmg[0][i];
if(Players == 0)
return;
if(iAmmoPacks == Others)
return;
new szMsg[192];
formatex(szMsg, charsmax(szMsg), "^x04* ^x03Most damage done by: ^x04%s ^x01[^x04%d ^x03hits^x01 = ^x04%d ^x03hp^x01]", szName, g_iTotalHitsAndDmg[1][iLeader], iAmmoPacks)
new count = 1, players[32];
get_players(players, count, "ch")
for(new i; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(szMsg)
message_end()
}
}
}
public PlayerTakeDamagePost(victim, inflicator, attacker, Float:damage, damage_type)
{
if(!is_user_connected(attacker))
return;
if(victim == attacker)
return;
if(get_user_team(victim) == get_user_team(attacker))
return;
g_iTotalHitsAndDmg[0][attacker] += floatround(damage);
g_iTotalHitsAndDmg[1][attacker]++;
}
GetLeader(&iAmmoPacks)
{
new iPlayers[32], iNum, id, i, iLeader, iPacks;
get_players(iPlayers, iNum, "ch")
for(i = 0; i < iNum; i++)
{
id = iPlayers[i];
iPacks = g_iTotalHitsAndDmg[0][id];
if(iPacks > iAmmoPacks)
{
iAmmoPacks = iPacks;
iLeader = id;
}
}
return iLeader;
}
UsersGetPlaying()
{
static iPlaying, id;
iPlaying = 0;
for(id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id))
{
if(get_user_team(id) == 1 || get_user_team(id) == 2)
iPlaying++
}
}
return iPlaying;
}