#include <amxmodx>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
const MAX_PLAYERS = 32
#endif
#define PLUGIN_NAME "Top Time Awards"
#define PLUGIN_VERSION "0.1.7 modified"
#define PLUGIN_AUTHOR "Jumper"
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
// Статистика.
// 0 - CSStatsX SQL by serfreeman1337
// 1 - Simple Online Logger by mx?!
// 2 - CSStats MySQL by SKAJIbnEJIb
// Default value: "0"
#define STATS 0
#if STATS == 0 || STATS == 1
// Задержка в секундах перед проверкой игрока (не касается CSStats MySQL by SKAJIbnEJIb).
// Default value: "3.0"
#define DELAY_CHECK 3.0
#endif
// Тип времени.
// 0 - Время в TOP_TIME указывается в днях.
// 1 - Время в TOP_TIME указывается в часах.
// Default value: "0"
#define TIME 0
// Необходимое время что должен отыграть игрок чтобы получить флаг.
// Default value: "3"
#define TOP_TIME 3
// Флаг который получит игрок за онлайн.
// Default value: "ADMIN_LEVEL_H"
#define GIVE_FLAGS ADMIN_LEVEL_H
// Флаги при которых игрок не будет проходить проверку на время онлайна.
// Default value: "(ADMIN_BAN | ADMIN_LEVEL_H)"
#define IGNORE_FLAGS (ADMIN_BAN | ADMIN_LEVEL_H)
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
#if STATS == 0
#include <csstatsx_sql>
#endif
#if STATS == 1
native sol_get_user_time(id)
#endif
#if STATS == 2
#include <csstats_mysql>
#endif
new g_iTime[MAX_PLAYERS + 1], g_iFlags[MAX_PLAYERS + 1]
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
/** ---------------------------------------------------------------------------------------- */
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_dictionary("top_time_awards.txt")
register_clcmd("say /tta", "func_CmdLeftTimeToAward")
register_clcmd("say_team /tta", "func_CmdLeftTimeToAward")
}
#if STATS == 0 || STATS == 1
public client_putinserver(id) set_task(DELAY_CHECK, "task_CheckPlayer", id)
public task_CheckPlayer(id)
{
if(!is_user_connected(id)) return PLUGIN_HANDLED
func_CheckPlayer(id)
return PLUGIN_HANDLED
}
#endif
#if STATS == 2
public csstats_putinserver(id/*, bool:exists*/) func_CheckPlayer(id)
#endif
func_CheckPlayer(id)
{
g_iFlags[id] = get_user_flags(id)
if(g_iFlags[id] & IGNORE_FLAGS)
return PLUGIN_HANDLED
#if TIME == 0
#if STATS == 0
g_iTime[id] = ((get_user_gametime(id) / 60) / 60) / 24
#endif
#if STATS == 1
g_iTime[id] = ((sol_get_user_time(id) / 60) / 60) / 24
#endif
#if STATS == 2
g_iTime[id] = ((csstats_get_user_value(id, GAMETIME) / 60) / 60) / 24
#endif
#endif
#if TIME == 1
#if STATS == 0
g_iTime[id] = (get_user_gametime(id) / 60) / 60
#endif
#if STATS == 1
g_iTime[id] = (sol_get_user_time(id) / 60) / 60
#endif
#if STATS == 2
g_iTime[id] = (csstats_get_user_value(id, GAMETIME) / 60) / 60
#endif
#endif
if(g_iTime[id] >= TOP_TIME)
{
set_user_flags(id, g_iFlags[id] | GIVE_FLAGS)
client_print_color(id, print_team_default, "%L", id, "TTA_AWARD")
}
return PLUGIN_HANDLED
}
public func_CmdLeftTimeToAward(id)
{
if(g_iFlags[id] & GIVE_FLAGS)
{
client_print_color(id, print_team_default, "%L", id, "TTA_ERROR_ALREADY_VIP")
return PLUGIN_HANDLED
}
#if TIME == 0
client_print_color(id, print_team_default, "%L", id, "TTA_TIME_DAYS", g_iTime[id], TOP_TIME)
#endif
#if TIME == 1
client_print_color(id, print_team_default, "%L", id, "TTA_TIME_HOURS", g_iTime[id], TOP_TIME)
#endif
return PLUGIN_HANDLED
}