PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <csstats>
#include <nvault>
#define PLUGIN "Rank System"
#define VERSION "1.0"
#define AUTHOR "EaGle"
new TotalPlayedTime[33]
new gVault
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /ranki", "cmd_rank")
register_clcmd("say_team /ranki", "cmd_rank")
gVault = nvault_open("Time_played")
}
public client_disconnect(id)
{
TotalPlayedTime[id] = TotalPlayedTime[id] + (get_user_time(id)/60);
SaveTime(id, TotalPlayedTime[id]);
}
public client_putinserver(id)
TotalPlayedTime[id] = LoadTime(id);
public cmd_rank(id)
{
new stats[8], body[8],szName[32]
new rank_pos = get_user_stats(id, stats, body)
new rank_max = get_statsnum()
static timep
get_user_name( id, szName, charsmax( szName ) );
timep = get_user_time(id, 1) / 60
new szMenu[ 64 ];
formatex( szMenu, charsmax( szMenu ), "\yPlayers Stats\w Menu");
new iMenu = menu_create( szMenu, "rank_handler" );
new players[ 32 ], pnum, id, szTempid[ 10 ];
get_players( players, pnum );
for( new i ; i < pnum; i++ )
{
id = players[ i ];
num_to_str(id, szTempid, charsmax(szTempid));
formatex(szMenu, charsmax(szMenu), "\r%s - \wrank %d of %d | Kills: %d Deaths: %d | Online: %d minute%s !",szName,rank_pos, rank_max,stats[0], stats[1], timep+TotalPlayedTime[id], timep != 1 ? "s" : "")
menu_additem( iMenu, szMenu, szTempid, 0 );
}
menu_display( id, iMenu );
}
public rank_handler(id, Menu, item)
{
menu_destroy(Menu)
remove_task(id)
return PLUGIN_HANDLED
}
public CancelMenu(id)
if(is_user_connected(id))
client_cmd(id, "slot1")
public SaveTime(id, PlayedTime)
{
if(gVault == INVALID_HANDLE)
set_fail_state("nVault returned invalid handle")
new AuthID[32]
new sVaultKey[64], sVaultData[64]
get_user_authid(id, AuthID, charsmax(AuthID));
format(sVaultKey, charsmax(sVaultKey), "TIMEPLAYED%s", AuthID)
num_to_str(PlayedTime, sVaultData, charsmax(sVaultData))
nvault_set(gVault, sVaultKey, sVaultData)
}
stock LoadTime(id)
{
new AuthID[32]
new sVaultKey[64], sVaultData[64]
get_user_authid(id, AuthID, charsmax(AuthID))
format(sVaultKey, charsmax(sVaultKey), "TIMEPLAYED%s", AuthID)
nvault_get(gVault, sVaultKey, sVaultData, charsmax(sVaultData));
return str_to_num(sVaultData)
}
public plugin_end()
nvault_close(gVault)