Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #define LOG_FILE "addons/amxmodx/logs/cmd_show_logs.log"
- #define INI_FILE "addons/amxmodx/configs/cmd_show.ini"
- #define CONFIG_FILE "addons/amxmodx/configs/cmd_show.cfg"
- #define szFlag ADMIN_KICK
- #define is_user_admin(%0) (get_user_flags(%0) & szFlag)
- new i_logs, i_bad, i_bantype, i_bantime,i_info,i_Immunity,Array:g_ArrayNotShow,Array:g_ArrayBadShow;
- new PLUGIN[][]={
- "CMD SHOW",
- "3.1",
- "Seroff"
- };
- public plugin_init()
- {
- register_plugin(PLUGIN[0],PLUGIN[1],PLUGIN[2]);
- i_logs=register_cvar("cmd_logs_enabled","1");
- i_bad=register_cvar("cmd_badshow_use","1");
- i_bantype=register_cvar("cmd_bantype","0");
- i_bantime=register_cvar("cmd_bantime","10080");
- i_info=register_cvar("cmd_infotype","1");
- i_Immunity=register_cvar("cmd_adm_immunity","1");
- }
- public plugin_cfg()
- {
- g_ArrayNotShow=ArrayCreate(1024);
- g_ArrayBadShow=ArrayCreate(1024);
- if(!file_exists(CONFIG_FILE)){
- new szFileComment[33];
- formatex(szFileComment,sizeof(szFileComment)-1,"// %s v%s By %s^n",PLUGIN[0],PLUGIN[1],PLUGIN[2]);
- write_file(CONFIG_FILE,szFileComment,-1);
- write_file(CONFIG_FILE,"cmd_logs_enabled ^"1^" // Включить логи?",-1);
- write_file(CONFIG_FILE,"cmd_badshow_use ^"1^" // Проверять на плохие команды",-1);
- write_file(CONFIG_FILE,"cmd_bantype ^"0^" // Тип наказания: 0 - кик, 1 - бан по ip, 2 - advanced bans, 3 - AMXBANS 5, 4 - AMXBANS 6, 5 - SuperBan, 6 - Fresh Bans",-1);
- write_file(CONFIG_FILE,"cmd_bantime ^"10080^" // Время бана если тип наказания не равен 0",-1);
- write_file(CONFIG_FILE,"cmd_infotype ^"1^" // Куда сообщать админам: 0 - в чат и в консоль, 1 - в консоль, 2 - в чат",-1);
- write_file(CONFIG_FILE,"cmd_adm_immunity ^"1^" // Иммунитет для админов",-1);
- write_file(CONFIG_FILE,"^n^n",-1);
- write_file(CONFIG_FILE,"echo ^"^"",-1);
- write_file(CONFIG_FILE,"echo ^"CMD SHOW Config Executed^"",-1);
- write_file(CONFIG_FILE,"echo ^"^"",-1);
- write_file(CONFIG_FILE,"",-1);
- }
- if(!file_exists(INI_FILE)) set_fail_state("File ^"cmd_show.ini^" not found");
- new sBuffer[512],sLine,sLen,sCase;sLine=0;sCase=0;
- while(read_file(INI_FILE,sLine,sBuffer,64,sLen)!=0)
- {
- if(!sBuffer[0]||sBuffer[0]==';'||(sBuffer[0]=='/'&&sBuffer[1]=='/'))
- {
- sLine++;
- continue;
- }
- if(equal(sBuffer[0],"[NotShow]")) {
- sCase=1;
- }
- if(equal(sBuffer[0],"[BadShow]")) {
- sCase=2;
- }
- switch(sCase){
- case 1: ArrayPushString(g_ArrayNotShow,sBuffer);
- case 2: ArrayPushString(g_ArrayBadShow,sBuffer);
- }
- sLine++;
- }
- if(!ArraySize(g_ArrayNotShow) || !ArraySize(g_ArrayBadShow)) set_fail_state("Not info -> cmd_show.ini");
- server_cmd("exec %s",CONFIG_FILE);
- return 0;
- }
- public client_command(id)
- {
- if(!is_user_connected(id) || get_pcvar_num(i_Immunity)==1&&is_user_admin(id)) return 0;
- new name[32],cmd[128], temp[128],i,s_Buffer[64];
- get_user_name(id, name, sizeof(name)-1);
- read_argv(0, temp, 127);
- if(!temp[0])return 0;
- for(i=0;i<ArraySize(g_ArrayNotShow);i++){
- ArrayGetString(g_ArrayNotShow,i,s_Buffer,63);
- if(equal(temp,s_Buffer)){
- return 0;
- }
- }
- if(get_pcvar_num(i_bad)==1){
- for(i=0;i<ArraySize(g_ArrayBadShow);i++){
- ArrayGetString(g_ArrayBadShow,i,s_Buffer,63);
- if(equal(temp,s_Buffer)){
- user_punish(id,s_Buffer);
- }
- }
- }
- for(i=0; i < read_argc (); i++){
- read_argv(i, temp, 127);
- format(cmd, 127, "%s %s", cmd, temp);
- }
- if(get_pcvar_num(i_logs))
- {
- log_to_file(LOG_FILE,"%s >> %s: [%s ]", is_user_admin(id) ? "Admin" : "Player", name, cmd)
- }
- for(new client=1; client < 33; client++){
- if(is_user_admin(id)){
- new content_msg[192];
- formatex(content_msg,sizeof(content_msg)-1,"^3%s ^1>> ^4%s^1: [^3%s ^1]", get_user_flags(id) & szFlag ? "Admin" : "Player", name, cmd);
- switch(get_pcvar_num(i_info)){
- case 0:{
- user_console(client,content_msg);
- ChatColor(client,content_msg);
- }
- case 1:{
- user_console(client,content_msg);
- }
- case 2:{
- ChatColor(client,content_msg);
- }
- }
- }
- }
- return 0;
- }
- public user_punish(id,const szReason[],any:...){
- new sIp[16], sAuthid[34], sName[33],BanTime=get_pcvar_num(i_bantime),sUserid = get_user_userid(id);
- get_user_authid(id, sAuthid, sizeof(sAuthid)-1);
- get_user_name(id, sName, sizeof(sName)-1);
- get_user_ip(id, sIp, sizeof(sIp)-1,1);
- switch(get_pcvar_num(i_bantype))
- {
- case 0:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("kick #%d %s обнаружен!",sUserid,szReason);
- }
- case 1:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("addip %d %s;writeip",BanTime,sIp);
- }
- case 2:
- {
- if(containi(sAuthid,"STEAM_0:")!=-1)
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("amx_ban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
- }
- else
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("amx_banip #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
- }
- }
- case 3:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("amx_ban %d #%d ^"%s обнаружен!^"",BanTime,sUserid,szReason);
- }
- case 4:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("amx_ban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
- }
- case 5:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("amx_superban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
- }
- case 6:
- {
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
- server_cmd("fb_ban %d #%d ^"%s обнаружен!^"",BanTime,sUserid,szReason);
- }
- }
- }
- stock user_console(id,const msg_content[],any:...){
- new msg[192];
- vformat(msg, sizeof(msg)-1, msg_content, 3);
- format(msg,sizeof(msg)-1,"%s^n",msg);
- message_begin(MSG_ONE, 8, {0,0,0}, id);
- write_string(msg);
- message_end();
- }
- /* Сток цветного чата */
- stock ChatColor(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4") // Зелёный
- replace_all(msg, 190, "!y", "^1") // Стандартный
- replace_all(msg, 190, "!t", "^3") // Цвет команды
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for (new i = 0; i < count; i++)
- {
- if (is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment