PHP Code:
#include <amxmodx>
#include <nvault>
new g_auth[33][24]
new g_time_played[33]
new g_connect_time[33]
new g_db_name[] = "time_played"
public plugin_init(){
register_plugin("Player Time Played", "1.0", "Azzou")
register_clcmd("say /h", "show_time")
}
public show_time(id){
if(g_time_played[id] == -1){
client_print(id, print_chat, "Server was unable to retrieve your time played.")
return
}
new t = time()-g_connect_time[id]+g_time_played[id]
new h = t/3600
new m = t/60%60
new s = t%60
client_print(id, print_chat, "Your total time played is: %d hour%s %d minute%s %d second%s.",
h, h==1?"":"s", m, m==1?"":"s", s, s==1?"":"s")
}
public client_connect(id)
g_auth[id][0] = '^0'
public client_putinserver(id)
g_connect_time[id] = time()
public client_authorized(id){
get_user_authid(id, g_auth[id], 23)
new nv_hnd = nvault_open(g_db_name)
if(nv_hnd == INVALID_HANDLE){
log_amx("Failed to open nVault %s.", g_db_name)
g_time_played[id] = -1
return
}
new data[10], ts
if(!nvault_lookup(nv_hnd, g_auth[id], data, 9, ts))
g_time_played[id] = 0
else
g_time_played[id] = str_to_num(data)
nvault_close(nv_hnd)
}
public client_disconnect(id){
if(g_auth[id][0] == '^0' || g_time_played[id] == -1)
return
new nv_hnd = nvault_open(g_db_name)
new data[10]
formatex(data, 9, "%d", time()-g_connect_time[id]+g_time_played[id])
nvault_set(nv_hnd, g_auth[id], data)
nvault_close(nv_hnd)