ez a plugin a configs/adminlogs mappába elmenti minden adminnak a nevét egy külön logba, és a tevékenységüket is.
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define ACCESS ADMIN_KICK
//====================================================================
// Variables
//====================================================================
// Thanks to Xellath
new g_szSpecialChars[ ][ ] =
{
"/",
"\",
":",
"*",
"?",
">",
"<",
"|",
";"
};
new logfile[200],string[500],configsdir[200]
new cvar_log,cvar_save_direct,cvar_save_name,cvar_zp,cvar_admin,cvar_amxx,cvar_file;
public plugin_init()
{
register_plugin("AdminLogs", "1.2", "pirvu")
//====================================================================
// Cvars
//====================================================================
cvar_log = register_cvar("log_steam","3")
cvar_save_direct = register_cvar("log_direct","0")
cvar_save_name=register_cvar("log_name","1")
cvar_zp=register_cvar("log_zp","1");
cvar_admin= register_cvar("log_admin","1");
cvar_amxx=register_cvar("log_amxx","1");
cvar_file= register_cvar("log_usefile", "1");
}
//====================================================================
// Hook player command
//====================================================================
public client_command(id)
{
if (get_user_flags(id) & ACCESS)
{
//====================================================================
// Read arguments
//====================================================================
new bigarg[64], arg[7][65];
read_args(bigarg,charsmax( bigarg ) );
new iStringSize = charsmax( arg);
parse(bigarg,
arg[0], iStringSize ,
arg[1], iStringSize ,
arg[2], iStringSize ,
arg[3], iStringSize ,
arg[4], iStringSize ,
arg[5], iStringSize ,
arg[6], iStringSize );
get_configsdir(configsdir,199)
//====================================================================
// If the command contains amx_
//====================================================================
if( ( containi(arg[0], "amx_") != -1 && get_pcvar_num(cvar_amxx) ) || ( containi(arg[0], "zp_") != -1 && get_pcvar_num(cvar_zp) ) || ( containi(arg[0], "admin_") != -1 && get_pcvar_num(cvar_admin) ) )
{
//====================================================================
// Get player name , steam , ip
//====================================================================
new name[32], ip[32],steam[32];
get_user_name(id,name,31)
if (get_pcvar_num(cvar_save_name))
{
for( new i = 0; i < sizeof( g_szSpecialChars ); i++ )
if( contain( name, g_szSpecialChars[ i ] ) )
replace_all( name, charsmax( name ), g_szSpecialChars[ i ], "" );
trim( name); // remove spaces
//thanks to Xellath
}
get_user_ip(id,ip,31,1)
get_user_authid(id,steam,31)
//====================================================================
// Get current date & time
//====================================================================
static s_Time[ 16 ], s_Date[ 16 ];
get_time ( "%m%d", s_Date, charsmax ( s_Date ) );
get_time ( "%H:%M:%S", s_Time, charsmax ( s_Time ) );
//====================================================================
// Make the /adminlogs folder
//====================================================================
add(configsdir, charsmax(configsdir),"/adminlogs");
if(!dir_exists(configsdir)) mkdir(configsdir)
add(configsdir, charsmax(configsdir),"/");
//====================================================================
// Make the second folder
//====================================================================
switch (get_pcvar_num(cvar_save_direct))
{
case 1: add(configsdir,charsmax(configsdir),ip);
case 2: add(configsdir,charsmax(configsdir),steam)
default : add(configsdir, charsmax(configsdir),s_Date);
}
if(!dir_exists(configsdir)) mkdir(configsdir)
//====================================================================
// Make the log file name
//====================================================================
if (get_pcvar_num(cvar_file))
{
new iFile = fopen("/addons/amxmodx/configs/users.ini","r");
new Buffer[256];
while(!feof(iFile))
{
fgets(iFile,Buffer,255);
if ( containi (Buffer , ip ) !=-1 )
{
formatex(logfile,199,"%s/%s.log",configsdir,ip)
switch (get_pcvar_num(cvar_log))
{
case 1: formatex(string,499,"[%s] Ip [%s] used command %s %s %s %s %s %s %s",s_Time,ip,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 2: formatex(string,499,"[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 3: formatex(string,499,"[%s] Ip[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,ip,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6])
default: formatex(string,499,"[%s] used command %s %s %s %s %s %s %s",s_Time,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
}
write_file(logfile,string,-1)
fclose(iFile);
return PLUGIN_CONTINUE
}
else if ( containi (Buffer , steam ) !=-1 )
{
formatex(logfile,199,"%s/%s.log",configsdir,steam)
switch (get_pcvar_num(cvar_log))
{
case 1: formatex(string,499,"[%s] Ip [%s] used command %s %s %s %s %s %s %s",s_Time,ip,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 2: formatex(string,499,"[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 3: formatex(string,499,"[%s] Ip[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,ip,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6])
default: formatex(string,499,"[%s] used command %s %s %s %s %s %s %s",s_Time,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
}
write_file(logfile,string,-1)
fclose(iFile);
return PLUGIN_CONTINUE
}
}
}
if (get_pcvar_num(cvar_save_name)) formatex(logfile,199,"%s/%s.log",configsdir,name)
else formatex(logfile,199,"%s/%s.log",configsdir,s_Date)
//====================================================================
// Log the command
//====================================================================
switch (get_pcvar_num(cvar_log))
{
case 1: formatex(string,499,"[%s] Ip [%s] used command %s %s %s %s %s %s %s",s_Time,ip,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 2: formatex(string,499,"[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
case 3: formatex(string,499,"[%s] Ip[%s] SteamID [%s] used command %s %s %s %s %s %s %s",s_Time,ip,steam,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6])
default: formatex(string,499,"[%s] used command %s %s %s %s %s %s %s",s_Time,arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);
}
write_file(logfile,string,-1)
}
}
return PLUGIN_CONTINUE
}