#include <amxmodx>
#define PLUGIN "Score HUD"
#define VERSION "1.0"
#define AUTHOR "AndrewZ"
enum _:SCORE_DATA
{
DISABLE,
KILLS,
HEADSHOTS,
DEATHS
}
new g_user_score[33][SCORE_DATA + 1]
new g_maxplayers
new g_top15[15][2] // 0 - Player ID, 1 - Kills
new bool:g_reset_data
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_maxplayers = get_maxplayers()
register_clcmd("say /score", "cmd_score")
register_clcmd("say /top15", "cmd_top15") //
register_event("DeathMsg", "event_death", "a")
register_event("TextMsg", "event_textmsg_restart", "a", "2=#Game_will_restart_in")
register_logevent("logevent_game_commencing", 2, "1=Game_Commencing")
register_logevent("logevent_round_start", 2, "1=Round_Start")
set_task(1.0, "rtask_show_hud", _, _, _, "b")
}
public cmd_score(id)
{
if (g_user_score[id][DISABLE])
{
g_user_score[id][DISABLE] = 0
client_print(id, print_chat, "HUD информер статистики включен.")
}
else
{
g_user_score[id][DISABLE] = 1
client_print(id, print_chat, "HUD информер статистики выключен.")
}
return PLUGIN_HANDLED
}
public cmd_top15(id)
{
client_print(id, print_chat, "Top 15 Kills:")
for (new i = 0; i < 15; i++)
{
if (g_top15[0] == 0) //
break
client_print(id, print_chat, "#%d: %s - %d kills", i + 1, get_user_name(g_top15[0]), g_top15[1])
}
return PLUGIN_HANDLED
}
public clear_data(id)
{
if (!id)
{
for (new i = 1; i <= g_maxplayers; i++)
{
for (new data = 0; data < SCORE_DATA; data++) //
g_user_score[data] = 0
}
}
else
{
for (new data = 0; data < SCORE_DATA; data++) //
g_user_score[id][data] = 0
}
}
public client_connect(id) clear_data(id)
public client_disconnected(id) clear_data(id)
public logevent_game_commencing() clear_data(0)
public event_textmsg_restart() g_reset_data = true
public logevent_round_start()
{
if (g_reset_data)
{
clear_data(0)
g_reset_data = false
}
}
public event_death()
{
new killer = read_data(1)
new victim = read_data(2)
new headshot = read_data(3)
new weapon[12]; read_data(4, weapon, 11)
if (!is_user_connected(killer) && !is_user_connected(victim))