#include < amxmodx >
#include < amxmisc >
#define PLUGIN "Simple Ranking System"
#define VERSION "1.0"
#define AUTHOR "Unknown"
#define OFFICIAL_LANG LANG_PLAYER
new Float:delay_hud[33], rank[4]
enum
{
RANK_NONE = 0,
RANK_FIRST,
RANK_SECOND,
RANK_THIRD
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("ranking.txt")
}
public client_PostThink(id)
{
if(!is_user_connected(id))
return
if(get_gametime() - 1.0 > delay_hud[id])
{
// Show Stat
show_stat(id)
delay_hud[id] = get_gametime()
}
}
public show_stat(id)
{
get_stat(id)
new temp_string_first[64], temp_string_second[64], temp_string_third[64], Player_Name[64], none[32], curid
formatex(none, sizeof(none), "%L", OFFICIAL_LANG, "RANK_NONE")
// Rank First
curid = rank[RANK_FIRST]
if(get_user_frags(curid) != 0)
{
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_first, sizeof(temp_string_first), "%L", OFFICIAL_LANG, "RANK_FIRST", Player_Name)
} else {
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_first, sizeof(temp_string_first), "%L", OFFICIAL_LANG, "RANK_FIRST", none)
}
// Rank Second
curid = rank[RANK_SECOND]
if(get_user_frags(curid) != 0)
{
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_second, sizeof(temp_string_second), "%L", OFFICIAL_LANG, "RANK_SECOND", Player_Name)
} else {
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_second, sizeof(temp_string_second), "%L", OFFICIAL_LANG, "RANK_SECOND", none)
}
// Rank Third
curid = rank[RANK_THIRD]
if(get_user_frags(curid) != 0)
{
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_third, sizeof(temp_string_third), "%L", OFFICIAL_LANG, "RANK_THIRD", Player_Name)
} else {
get_user_name(curid, Player_Name, sizeof(Player_Name))
formatex(temp_string_third, sizeof(temp_string_third), "%L", OFFICIAL_LANG, "RANK_THIRD", none)
}
set_hudmessage(255, 255, 255, 0.05, 0.30, 0, 2.0, 2.0)
show_hudmessage(id, "%L^n%s^n%s^n%s", OFFICIAL_LANG, "RANK_INFO", temp_string_first, temp_string_second, temp_string_third)
}
public get_stat(id)
{
static highest, current
new num, iPlayers[32]
highest = current = 0
get_players(iPlayers, num)
if( !num )
{
return;
}
// Rank First
for(new i = 1; i < num; i++)
{
id = iPlayers[i]
if(!is_user_connected(id))
continue
if(get_user_frags(id) > highest)
{
current = id
highest = get_user_frags(id)
}
}
rank[RANK_FIRST] = current
// Rank Second
highest = current = 0
for(new i = 1; i < num; i++)
{
id = iPlayers[i]
if(!is_user_connected(id))
continue
if(rank[RANK_FIRST] == id)
continue
if(get_user_frags(id) > highest)
{
current = id
highest = get_user_frags(id)
}
}
rank[RANK_SECOND] = current
// Rank Third
highest = current = 0
for(new i = 1; i < num; i++)
{
id = iPlayers[i]
if(!is_user_connected(id))
continue
if(rank[RANK_FIRST] == id || rank[RANK_SECOND] == id)
continue
if(get_user_frags(id) > highest)
{
current = id
highest = get_user_frags(id)
}
}
rank[RANK_THIRD] = current
}