/*
AttendanceAdmins v1.7 */
/* Руссифицировано */
#include <amxmodx>
#include <amxmisc>
new cvarAdminFlags[27],cvarInitializationAdmins
new attendancemotd[2501],statisticsmotd[2501]
new attendanceini[81],attendancetxt[81],statisticsini[81]
new statisticstxt[81],configsdir[81],str_regtime[7]
new adminname[32],adminip[21],gamedate[6],gametime
new regname[32],regip[21],regdate[6],regtime
new awrite,swrite,attendancetime,statstime,param[40]
new addmotd[211],attendance[81],text[81],line,num
public plugin_init() {
register_plugin("
AttendanceAdmins","1.7","ZETA [M|E|N]")
register_clcmd("say /attendance","func_say_attendance",ADMIN_BAN,"")
register_clcmd("say /statistics","func_say_statistics",ADMIN_BAN,"")
register_clcmd("attendance","func_console_attendance",ADMIN_BAN,"")
register_clcmd("statistics","func_console_statistics",ADMIN_BAN,"")
register_clcmd("attendancetime","func_console_attendancetime",ADMIN_BAN,"")
register_clcmd("statisticstime","func_console_statisticstime",ADMIN_BAN,"")
register_clcmd("attend","func_console_attendance",ADMIN_BAN,"")
register_clcmd("astats","func_console_statistics",ADMIN_BAN,"")
register_clcmd("atime","func_console_attendancetime",ADMIN_BAN,"")
register_clcmd("stime","func_console_statisticstime",ADMIN_BAN,"")
register_concmd("attend","console_server_attendance",ADMIN_BAN,"")
register_concmd("astats","console_server_statistics",ADMIN_BAN,"")
register_concmd("atime","console_server_attendancetime",ADMIN_BAN,"")
register_concmd("stime","console_server_statisticstime",ADMIN_BAN,"")
register_cvar("aa_initialization_admins","0")
register_cvar("aa_admin_flags","acdgkl")
}
public plugin_cfg() {
get_configsdir(configsdir,81)
format(attendanceini,80,"%s/AttendanceAdmins/Attendance.ini",configsdir)
format(attendancetxt,80,"%s/AttendanceAdmins/Attendance.txt",configsdir)
format(statisticsini,80,"%s/AttendanceAdmins/Statistics.ini",configsdir)
format(statisticstxt,80,"%s/AttendanceAdmins/Statistics.txt",configsdir)
set_task(1.0,"cvarsvalue")
}
public cvarsvalue() {
cvarInitializationAdmins=get_cvar_num("aa_initialization_admins")
get_cvar_string("aa_admin_flags",cvarAdminFlags,26)
}
public client_disconnect(id) {
if(cvarInitializationAdmins==0) {
if(is_user_admin(id)) {
awrite=0;swrite=0
get_user_name(id,adminname,sizeof(adminname))
get_user_ip(id,adminip,sizeof(adminip),1)
gametime=get_user_time(id,1)/60
get_time("%d.%m",gamedate,5)
func_data(id)
}
}
else {
if(access(id,read_flags(cvarAdminFlags))) {
awrite=0;swrite=0
get_user_name(id,adminname,sizeof(adminname))
get_user_ip(id,adminip,sizeof(adminip),1)
gametime=get_user_time(id,1)/60
get_time("%d.%m",gamedate,5)
func_data(id)
}
}
}
public func_data(id) {
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
if(equali(gamedate,regdate)&&(equali(adminname,regname)||equali(adminip,regip))) {
regtime=str_to_num(str_regtime);attendancetime=regtime+gametime
format(attendance,80,"^"%s^" ^"%s^" ^"%s^" ^"%d^"",gamedate,adminname,adminip,attendancetime)
write_file(attendanceini,attendance,line);awrite=1
}
}
}
if(awrite!=1) {
format(attendance,80,"^"%s^" ^"%s^" ^"%s^" ^"%d^"",gamedate,adminname,adminip,gametime)
write_file(attendanceini,attendance,-1)
}
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
if(equali(adminname,regname)||equali(adminip,regip)) {
regtime=str_to_num(str_regtime);statstime=regtime+gametime
format(attendance,80,"^"%s^" ^"%s^" ^"%d^"",adminname,adminip,statstime)
write_file(statisticsini,attendance,line);swrite=1
}
}
}
if(swrite!=1) {
format(attendance,80,"^"%s^" ^"%s^" ^"%d^"",adminname,adminip,gametime)
write_file(statisticsini,attendance,-1)
}
return PLUGIN_HANDLED
}
public func_say_attendance(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
delete_file(attendancetxt)
format(attendancemotd,2500,"<html><head><meta http-equiv=^"Content-Type^" content=^"text/html; charset=utf-8^"></head><body bgcolor=^"#000000^" text=^"#FFB000^"><center> %s",gamedate)
add(attendancemotd,2500,"<table width=550 border=1 cellpadding=0 cellspacing=0><tr><td width=200> Админ</td><td width=150> IP</td><td width=200> Времени на сервере</td></tr>")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
if(equali(regdate,gamedate)) {
regtime=str_to_num(str_regtime)
format(addmotd,120,"<tr><td> %s</td><td> %s</td><td> %d мин. </td></tr>",regname,regip,regtime)
add(attendancemotd,2500,addmotd)
}
}
}
add(attendancemotd,2500,"</table>")
write_file(attendancetxt,attendancemotd,-1)
show_motd(id,attendancetxt,"
AttendanceAdmins")
return PLUGIN_HANDLED
}
public func_say_statistics(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
delete_file(statisticstxt)
format(statisticsmotd,2500,"<html><head><meta http-equiv=^"Content-Type^" content=^"text/html; charset=utf-8^"></head><body bgcolor=^"#000000^" text=^"#FFB000^"><center>Статистика")
format(statisticsmotd,2500,"<table width=550 border=1 cellpadding=0 cellspacing=0><tr><td width=200> Админ</td><td width=150> IP</td><td width=200> Времени на сервере</td></tr>")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6);regtime=st
r_to_num(str_regtime)
format(addmotd,210,"<tr><td> %s</td><td> %s</td><td> %d мин. </td></tr>",regname,regip,regtime)
add(statisticsmotd,2500,addmotd)
}
}
add(attendancemotd,2500,"</table>")
write_file(statisticstxt,statisticsmotd,-1)
show_motd(id,statisticstxt,"StatisticsAdmins")
return PLUGIN_HANDLED
}
public func_console_attendance(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Дата # Имя # IP # Время на сервере")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
if(equali(param,regname)||equali(param,regip)||equali(param,regdate)) {
regtime=str_to_num(str_regtime)
client_print(id,print_console,"%s # %s # %s # %d мин.",regdate,regname,regip,regtime)
}
}
}
client_print(id,print_console,"===========================================")
}
else {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Дата # Имя # IP # Время на сервере")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
client_print(id,print_console,"%s # %s # %s # %d мин.",regdate,regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
}
return PLUGIN_HANDLED
}
public func_console_statistics(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Имя # IP # Время на сервере")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
client_print(id,print_console,"%s # %s # %d мин.",regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
return PLUGIN_HANDLED
}
public func_console_attendancetime(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
new sign[2],str_timevalue[6],timevalue
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
parse(param,sign,1,str_timevalue,sizeof(str_timevalue))
timevalue=str_to_num(str_timevalue)
if(equali(sign,"<")) {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Дата # Имя # IP # Время на сервере")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime<timevalue) client_print(id,print_console,"%s # %s # %s # %d мин.",regdate,regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
return PLUGIN_HANDLED
}
if(equali(sign,">")) {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Дата # Имя # IP # Время на сервере")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime>timevalue) client_print(id,print_console,"%s # %s # %s # %d мин.",regdate,regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public func_console_statisticstime(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
new sign[2],str_timevalue[6],timevalue
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
parse(param,sign,1,str_timevalue,sizeof(str_timevalue))
timevalue=str_to_num(str_timevalue)
if(equali(sign,"<")) {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Имя # IP # Время на сервере")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime<timevalue) client_print(id,print_console,"%s # %s # %d мин.",regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
return PLUGIN_HANDLED
}
if(equali(sign,">")) {
client_print(id,print_console,"===========================================")
client_print(id,print_console,"Имя # IP # Время на сервере")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime>timevalue) client_print(id,print_console,"%s # %s # %d мин.",regname,regip,regtime)
}
}
client_print(id,print_console,"===========================================")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public console_server_attendance(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
console_print(id,"===========================================")
console_print(id,"Date # Name # IP # Time")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
if(equali(param,regname)||equali(param,regip)||equali(param,regdate)) {
regtime=str_to_num(str_regtime)
console_print(id,"%s # %s # %s # %d min.",regdate,regname,regip,regtime)
}
}
}
client_print(id,print_console,"===========================================")
}
else {
console_print(id,"===========================================")
console_print(id,"Date # Name # IP # Time")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
console_print(id,"%s # %s # %s # %d min.",regdate,regname,regip,regtime)
}
}
console_print(id,"===========================================")
}
return PLUGIN_HANDLED
}
public console_server_statistics(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
console_print(id,"===========================================")
console_print(id,"Name # IP # Time")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
console_print(id,"%s # %s # %d min.",regname,regip,regtime)
}
}
console_print(id,"===========================================")
return PLUGIN_HANDLED
}
public console_server_attendancetime(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
new sign[2],str_timevalue[6],timevalue
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
parse(param,sign,1,str_timevalue,sizeof(str_timevalue))
timevalue=str_to_num(str_timevalue)
if(equali(sign,"<")) {
console_print(id,"===========================================")
console_print(id,"Date # Name # IP # Time")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime<timevalue) console_print(id,"%s # %s # %s # %d min.",regdate,regname,regip,regtime)
}
}
console_print(id,"===========================================")
return PLUGIN_HANDLED
}
if(equali(sign,">")) {
console_print(id,"===========================================")
console_print(id,"Date # Name # IP # Time")
for(line=0;read_file(attendanceini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regdate,5,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime>timevalue) console_print(id,"%s # %s # %s # %d min.",regdate,regname,regip,regtime)
}
}
console_print(id,"===========================================")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public console_server_statisticstime(id,level,cid) {
if(!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
new sign[2],str_timevalue[6],timevalue
read_argv(1,param,sizeof(param))
if(!equali(param,"")) {
parse(param,sign,1,str_timevalue,sizeof(str_timevalue))
timevalue=str_to_num(str_timevalue)
if(equali(sign,"<")) {
console_print(id,"===========================================")
console_print(id,"Name # IP # Time")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime<timevalue) console_print(id,"%s # %s # %d min.",regname,regip,regtime)
}
}
console_print(id,"===========================================")
return PLUGIN_HANDLED
}
if(equali(sign,">")) {
console_print(id,"===========================================")
console_print(id,"Name # IP # Time")
for(line=0;read_file(statisticsini,line,text,81,num);line++) {
if(num>0&&text[0]!=';') {
parse(text,regname,sizeof(regname),regip,sizeof(regip),str_regtime,6)
regtime=str_to_num(str_regtime)
if(regtime>timevalue) console_print(id,"%s # %s # %d min.",regname,regip,regtime)
}
}
console_print(id,"===========================================")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}