Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fvault>
#if AMXX_VERSION_NUM < 183 || !defined set_dhudmessage
#tryinclude <dhudmessage>
#if !defined _dhudmessage_included
#error "dhudmessage.inc" is missing in your "scripting/include" folder. Download it from: "https://amxx-bg.info/forum/inc/"
#endif
#endif
new const g_szFileName[] = "SavedPlayers"
new const TASK_ID = 17109
#define TASKID_MESSAGE 791725
new g_iPlayers
#define MAPNAME "de_dust2"
public plugin_init()
{
register_plugin("Visited Players", "1.0", "aTmAx")
set_task(60.0, "taskCheckTime", TASK_ID, _, _, "b")
fvault_load(g_szFileName)
DataGet()
}
public taskCheckTime()
{
new szHours[16], szMinutes[16], vaultkey[64]
new bool:bRestarted
get_time("%H", szHours, charsmax(szHours))
get_time("%M", szMinutes, charsmax(szMinutes))
if(str_to_num(szHours) == 23 && str_to_num(szMinutes) == 59)
{
fvault_remove_key(g_szFileName, vaultkey)
fvault_clear(g_szFileName)
g_iPlayers = 0
server_cmd("amx_map %s", MAPNAME)
bRestarted = true
}
else if(!bRestarted)
{
new players[32], num
get_players(players, num, "hi")
if(str_to_num(players) > 1)
{
fvault_remove_key(g_szFileName, vaultkey)
fvault_clear(g_szFileName)
g_iPlayers = 0
server_cmd("amx_map %s", MAPNAME)
}
}
}
public client_putinserver(id)
{
new szAuthID[36], szName[33]
get_user_authid(id, szAuthID, charsmax(szAuthID))
get_user_name(id, szName, charsmax(szName))
new vaultkey[64],vaultdata[256]
formatex(vaultkey,63,"%s", szAuthID)
formatex(vaultdata,255,"%s#%s#", szName, szAuthID)
if(!fvault_get_data(g_szFileName,vaultkey,vaultdata,charsmax(vaultdata)))
{
g_iPlayers++
savePlayers()
DataSet(szAuthID, szName)
}
set_task(1.0, "dhudMessage", id + TASKID_MESSAGE, _, _, "b")
}
public client_disconnected(id)
{
new iTask = id + TASKID_MESSAGE
if(task_exists(iTask))
remove_task(iTask)
}
public dhudMessage(id)
{
id -= TASKID_MESSAGE
if(is_user_bot(id))
return
set_dhudmessage(0, 255, 0, 0.05, 0.2, 0, 0.1, 1.0, 0.1, 0.1)
show_dhudmessage(id, "Visited Players: %i", g_iPlayers)
}
stock savePlayers()
{
new szPlayers[32], vaultdata[256]
num_to_str(g_iPlayers, szPlayers, charsmax(szPlayers))
fvault_set_data(g_szFileName,vaultdata,szPlayers)
}
stock DataGet()
{
new szPlayers[32], vaultdata[256]
fvault_get_data(g_szFileName, vaultdata, szPlayers, charsmax(szPlayers))
g_iPlayers = str_to_num(szPlayers)
}
stock DataSet(const szAuthID[], const szName[])
{
fvault_set_data(g_szFileName, szAuthID, szName)
}