#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <colorchat>
#define PLUGIN "VisitCounter"
#define VERSION "1.1"
#define AUTHOR "Sebxx"
new c_tmp3, g_vault, visits, last_visit
new stamp[11], szSteam[35], temp[19], tmp[7]
new czas_gry[33];
new g_vault_cz;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
g_vault = nvault_open("Wizyty");
g_vault_cz = nvault_open("Czas");
register_clcmd("say /visits", "show_visits");
c_tmp3 = register_cvar("visitcounter_interval", "1800") // po jakim czasie naliczyc nowe wejscie?
}
public client_connect(id) {
wczytaj_czas_gry(id);
}
public client_authorized( id, const authid[] ) {
if(!is_user_bot(id) && !is_user_hltv(id)) {
set_task(10.0, "counter", id, _, _, "a", 1)
}
}
public counter(id) {
if(is_user_connected(id)) {
get_user_authid( id, szSteam, charsmax( szSteam ) )
new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny;
while(sekundy >= 60)
{
sekundy -= 60;
minuty++;
}
while(minuty >= 60)
{
minuty -= 60;
godziny++;
}
if ( nvault_get( g_vault , szSteam , temp , charsmax( temp ) ) )
{
strtok(temp, tmp, charsmax( tmp ), stamp, charsmax( stamp ), ';');
last_visit = str_to_num( stamp )
if ( last_visit + get_pcvar_num( c_tmp3 ) <= get_systime() )
{
visits = str_to_num( tmp ) + 1
ColorChat(id, TEAM_COLOR, "^1Na serwerze spedziles^4 %ih %imin %is.^1 Jest to twoja^4 %d^1 wizyta.", godziny, minuty, sekundy, visits)
}
else
{
return PLUGIN_CONTINUE
}
}
else
{
visits = 1
ColorChat(id, TEAM_COLOR, "^1To Twoja ^3pierwsza^1 wizyta na naszym serwerze")
}
num_to_str( visits, tmp, charsmax(tmp) )
num_to_str( get_systime(), stamp, charsmax(stamp) )
new iLen = 0, iMax = sizeof( temp ) - 1;
iLen += formatex( temp[iLen], iMax - iLen, tmp )
iLen += formatex( temp[iLen], iMax - iLen, ";" )
iLen += formatex( temp[iLen], iMax - iLen, stamp )
nvault_set( g_vault, szSteam, temp )
}
return PLUGIN_CONTINUE
}
public show_visits(id) {
if(is_user_connected(id)) {
get_user_authid( id, szSteam, charsmax( szSteam ) )
nvault_get( g_vault , szSteam , temp , charsmax( temp ) )
strtok(temp, tmp, charsmax( tmp ), stamp, charsmax( stamp ), ';');
ColorChat(id, TEAM_COLOR, "^1To juz Twoja^4 %s^1 wizyta na naszym serwerze", tmp)
}
}
public wczytaj_czas_gry(id) {
new name[35],vaultkey[64],vaultdata[256];
get_user_name(id,name,34);
format(vaultkey,63,"%s-gametime",name);
nvault_get(g_vault_cz,vaultkey,vaultdata,255);
czas_gry[id] = str_to_num(vaultdata);
return PLUGIN_CONTINUE;
}
public zapisz_czas_gry(id) {
new name[35],vaultkey[64],vaultdata[256];
get_user_name(id,name,34);
czas_gry[id] += get_user_time(id, 1);
format(vaultkey,63,"%s-gametime",name);
format(vaultdata, 255, "%d", czas_gry[id]);
nvault_set(g_vault_cz,vaultkey,vaultdata)
czas_gry[id] = str_to_num(vaultdata);
return PLUGIN_CONTINUE;
}
public client_disconnected(id) {
zapisz_czas_gry(id);
czas_gry[id] = 0;
if(task_exists(id))
remove_task(id)
}
public plugin_end() {
nvault_close(g_vault)
nvault_close(g_vault_cz);
}
genialny kod nie jest ale dziala tak jak chciales (a raczej ja nie mialem zadnych bledow z nim)