- #include <amxmodx> 
- #include <amxmisc> 
- #include <dhudmessage> 
- #include <cstrike> 
- #include <fun> 
- #include <hamsandwich> 
-   
- #define PLUGIN "VIP TAB NO PREFIX" 
- #define VERSION "1.0" 
- #define AUTHOR "author" 
-   
- #define JOG ADMIN_LEVEL_E 
-   
- #define kicktime 0 
- #define bantime 0 
- #define pausetime 3 
-   
- #define TASK_INTERVAL 4.0 
- #define MAX_ELET 100 
-   
- enum { 
-     SCOREATTRIB_ARG_PLAYERID = 1, 
-     SCOREATTRIB_ARG_FLAGS 
- }; 
-   
- enum ( <<= 1 ) { 
-     SCOREATTRIB_FLAG_NONE = 0, 
-     SCOREATTRIB_FLAG_DEAD = 1, 
-     SCOREATTRIB_FLAG_BOMB, 
-     SCOREATTRIB_FLAG_VIP 
- }; 
-   
- new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip; 
-   
- new banid, valamid, vipid; 
-   
- new choice; 
- new const Prefix[] = "!g[Információ]"; 
-   
- new maxplayers; 
- new gmsgSayText; 
- new kickvolt[33], banvolt[33]; 
- new bool:ban=false; 
-   
-   
- public plugin_init() { 
-     register_plugin(PLUGIN, VERSION, AUTHOR); 
-      
-     maxplayers = get_maxplayers(); 
-     gmsgSayText = get_user_msgid("SayText"); 
-      
-     register_clcmd( "say /vipmenu","VIPMenu"); 
-     register_concmd("vipmenu", "VIPMenu"); 
-     register_clcmd("say /vips", "vipek"); 
-      
-     register_event("DeathMsg","onDeath","a"); 
-      
-     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu"); 
-     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu"); 
-      
-      
-     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" ); 
-      
-     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok"); 
-      
-     new configsdir[64]; 
-     get_configsdir(configsdir, 63); 
-     formatex(file_to_write, 63,"%s/vipban.txt", configsdir); 
-      
-     RegisterHam(Ham_Killed, "player", "fwdKilledPost"); 
-      
- } 
- public onDeath() 
- { 
-     new killer = read_data(1); 
-     new victim = read_data(2); 
-     new bool: TK = get_user_team(killer) == get_user_team(victim); 
-      
-     if(get_user_flags(killer) & JOG) 
-     { 
-         if(killer != victim && !TK && is_user_alive(killer)) 
-         { 
-             new nhp, khp = get_user_health(killer); 
-             if(khp >= 140) 
-                 nhp = 150; 
-             else 
-                 nhp = khp + 2; 
-             set_user_health(killer, nhp); 
-              
-         } 
-     } 
- } 
-   
- public client_putinserver(id) { 
-     if(get_user_flags(id) & JOG) { 
-         kickvolt[id]=kicktime; 
-         if(task_exists(id+444)) 
-             remove_task(id+444); 
-         set_task(60.0, "kick_volt", id+444); 
-         banvolt[id]=bantime; 
-         if(task_exists(id+333)) 
-             remove_task(id+333); 
-         set_task(60.0, "ban_volt", id+333); 
-         set_task(2.0, "udvozlo", id+222); 
-     } 
- } 
-   
- public udvozlo(id) 
- { 
-     if(!(get_user_flags(id-222) & ADMIN_KICK)) 
-     { 
-         print_color(id-222, "%s !tVIP!y tag vagy ezen a szerveren, használhatod a !t/vipmenu !y parancsot.", Prefix) 
-         new name[32] 
-         get_user_name(id-222, name, charsmax(name)); 
-         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name) 
-     } 
- } 
- public VIPMenu(id) { 
-     if(get_user_flags(id) & JOG) { 
-          
-         new menu = menu_create("\n[HYPER] \rVIP menĂĽ", "VMenu_h") 
-         new szText[128]; 
-          
-         if(kickvolt[id]>0) 
-         { 
-             formatex(szText, charsmax(szText), "\dJátĂ©kos kirugás\r(%d perc mĂşlva)", kickvolt[id]) 
-             menu_additem(menu, szText, "1", 0); 
-         } 
-         else menu_additem(menu, "\wJátekos kirugás", "1", 0); 
-          
-         if(banvolt[id]>0) 
-         { 
-             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc mĂşlva)", banvolt[id]) 
-             menu_additem(menu, szText, "2", 0); 
-         } 
-         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0); 
-          
-         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
-         menu_display(id, menu, 0); 
-     } 
-     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix) 
-      
- } 
-   
- public VMenu_h(id, menu, item, level, cid) { 
-     if( item == MENU_EXIT ) { 
-         menu_destroy(menu); 
-         return PLUGIN_HANDLED; 
-     } 
-      
-     new data[6], szName[64]; 
-     new access, callback; 
-      
-     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); 
-      
-     new key = str_to_num(data); 
-     switch(key) { 
-         case 1: { 
-              
-             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirĂşgni senkit mĂ©g !t%d !ypercig!", Prefix, kickvolt[id]) 
-             else PlayersMenu(id, 0) 
-         } 
-         case 2: { 
-             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni mĂ©g !t%d !ypercig!", Prefix, banvolt[id]) 
-             else PlayersMenu(id, 1) 
-         } 
-     } 
-      
-     menu_destroy(menu); 
-     return PLUGIN_HANDLED; 
-      
- } 
-   
- public PlayersMenu(id, menumod) 
- { 
-     new menu = menumod == 1 ?  menu_create("\yJátĂ©kos bannolás menĂĽ:", "vipbanmenu_h") : menu_create("\yJátĂ©kos kirugás menĂĽ:", "vipkickmenu_h") 
-      
-     new players[32], pnum, tempid; 
-     new szName[32], szTempid[10]; 
-     new szText[128]; 
-     get_players(players, pnum); 
-      
-     for( new i; i<pnum; i++ ) { 
-         tempid = players[i]; 
-         get_user_name(tempid, szName, charsmax(szName)); 
-         num_to_str(tempid, szTempid, charsmax(szTempid)); 
-         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG)) 
-         { 
-             formatex(szText, charsmax(szText), "%s \r*", szName) 
-             menu_additem(menu, szText, szTempid, 0); 
-         } 
-         else menu_additem(menu, szName, szTempid, 0); 
-     } 
-     menu_display(id, menu, 0); 
- } 
- public vipbanmenu_h(id, menu, item) 
- { 
-     if( item == MENU_EXIT ) { 
-          
-         menu_destroy(menu); 
-         if( is_user_connected(id) ) 
-             VIPMenu(id); 
-         return PLUGIN_HANDLED; 
-          
-     } 
-     new data[6], szName[64], access, callback; 
-     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); 
-      
-     banid = str_to_num(data); 
-     client_cmd(id, "messagemode INDOK_BAN"); 
-      
-     menu_destroy(menu); 
-     return PLUGIN_HANDLED; 
- } 
- public vipkickmenu_h(id, menu, item) 
- { 
-     if( item == MENU_EXIT ) { 
-          
-         menu_destroy(menu); 
-         if( is_user_connected(id) ) 
-             VIPMenu(id); 
-         return PLUGIN_HANDLED; 
-          
-     } 
-     new data[6], szName[64], access, callback; 
-     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); 
-      
-     valamid = str_to_num(data); 
-     client_cmd(id, "messagemode INDOK_KICK"); 
-      
-     menu_destroy(menu); 
-     return PLUGIN_HANDLED; 
- } 
- public cmdBanUserFromMenu(id) { 
-     read_args(g_Indok, charsmax(g_Indok)) 
-     remove_quotes(g_Indok) 
-      
-     if(strlen(g_Indok) >= 15) { 
-         client_cmd(id, "messagemode INDOK_BAN"); 
-         return PLUGIN_HANDLED 
-     } 
-      
-     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix) 
-     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG) 
-     { 
-         PlayersMenu(id, 1); 
-         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!"); 
-     } 
-     else 
-     { 
-         userip = get_user_userid(banid) 
-         get_user_name(id, iName, charsmax(iName)); 
-         get_user_name(banid, tName, charsmax(tName)); 
-         get_user_authid(id, iFormatId, charsmax(iFormatId)); 
-         get_user_authid(banid, tFormatId, charsmax(tFormatId)); 
-         print_color(id, "%s !yVIP !t%s!y: szavazást indĂtott !t%s !ybannolásárĂłl. Indok: %s", Prefix, iName, tName, g_Indok) 
-         ban_szavazas() 
-         ban=true; 
-     } 
-     return PLUGIN_HANDLED 
- } 
-   
- public cmdKickUserFromMenu(id) { 
-     read_args(g_Indok, charsmax(g_Indok)) 
-     remove_quotes(g_Indok) 
-      
-     if(strlen(g_Indok) >= 15) { 
-         client_cmd(id, "messagemode INDOK_KICK"); 
-         return PLUGIN_HANDLED 
-     } 
-      
-     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) { 
-         PlayersMenu(id, 0); 
-         client_print(id, print_center, "KickelĂ©s sikertelen immunitas miatt!") 
-     } 
-     else 
-     { 
-         get_user_name(id, iName, charsmax(iName)) 
-         get_user_name(valamid, tName, charsmax(tName)) 
-         get_user_authid(id, iFormatId, charsmax(iFormatId)) 
-         get_user_authid(valamid, tFormatId, charsmax(tFormatId)) 
-         print_color(0, "%s !yVIP !t%s!y: kirĂşgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok) 
-         server_cmd("kick #%d",  get_user_userid(valamid)) 
-          
-         cmdLogVipKick() 
-         g_Indok = "" 
-         kickvolt[id]=kicktime 
-         if(task_exists(id+444)) 
-             remove_task(id+444) 
-         set_task(60.0, "kick_volt", id+444); 
-     } 
-     return PLUGIN_HANDLED 
- } 
- public ban_szavazas() 
- { 
-     new szText[128], Name[32]; 
-     get_user_name(banid, Name, charsmax(Name)); 
-     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre? \y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok) 
-     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1") 
-     set_task(15.0,"ban_eredmeny") 
-     choice = 0 
-     return PLUGIN_HANDLED     
-      
- } 
-   
- public ban_szavazatok(id,key){ 
-     new name[32] 
-     get_user_name(id,name,31) 
-     new players[32], pnum; 
-     get_players(players, pnum); 
-     new what[6] 
-     if (key == 0) { 
-         what = "Igen" 
-         choice++ 
-     } 
-     if (key == 1) what = "Nem" 
-     new Float:iSzamol = float(100/pnum*choice) 
-     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol) 
-     return PLUGIN_HANDLED 
- } 
-   
- public ban_eredmeny(){ 
-     new Name[32]; 
-     get_user_name(banid, Name, charsmax(Name)); 
-     new players[32], pnum; 
-     get_players(players, pnum); 
-     new Float:iSzamol = float(100/pnum*choice) 
-     new Float:Otven = 50.0 
-      
-     if(iSzamol > Otven) 
-     { 
-         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok) 
-          
-         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId); 
-         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip); 
-          
-         cmdLogVipBan() 
-         g_Indok = "" 
-         userip = 0 
-         banvolt[vipid]=bantime 
-         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 ); 
-          
-     } 
-     else 
-     { 
-         banvolt[vipid]=pausetime 
-         if(task_exists(vipid+333)) 
-             remove_task(vipid+333) 
-         if(is_user_connected(vipid)) 
-             set_task(60.0, "ban_volt", vipid+333 ); 
-         print_color(0,"%s !yBannolás sikertelen kevĂ©s szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name) 
-     } 
-     ban=false; 
-     return PLUGIN_CONTINUE 
- } 
-   
- public kick_volt(id) 
- { 
-     if(kickvolt[id-444]+1>0) 
-     { 
-         kickvolt[id-444]-- 
-         if(task_exists(id)) 
-             remove_task(id) 
-         set_task(60.0, "kick_volt", id); 
-     } 
- } 
- public ban_volt(id) 
- { 
-     if(banvolt[id-333]+1>0) 
-     { 
-         banvolt[id-333]-- 
-         if(task_exists(id)) 
-             remove_task(id) 
-         set_task(60.0, "ban_volt", id); 
-     } 
- } 
-   
- public vipek(user) { 
-     new names[32] 
-     new message[256] 
-     new id, count, x, len 
-      
-     for(id = 1 ; id <= maxplayers ; id++) 
-         if(is_user_connected(id)) 
-         if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK)) 
-         get_user_name(id, names[count++], 31) 
-      
-     len = format(message, 255, "^x04[InformáciĂł]^x01 Online VIP tagok:^x03 ") 
-     if(count > 0) { 
-         for(x = 0 ; x < count ; x++) { 
-             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"") 
-             if(len > 96 ) { 
-                 print_message(user, message) 
-                 len = format(message, 255, "^x04 ") 
-             } 
-         } 
-         print_message(user, message) 
-     } 
-     else { 
-         len += format(message[len], 255-len, "Jelenleg nincs VIP a szerveren.") 
-         print_message(user, message) 
-     } 
- } 
-   
- print_message(id, msg[]) { 
-     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id) 
-     write_byte(id) 
-     write_string(msg) 
-     message_end() 
- } 
-   
- public MessageScoreAttrib( iMsgId, iDest, iReceiver ) { 
-     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID ); 
-      
-     if(get_user_flags(iPlayer) & JOG) 
-         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP ); 
- } 
-   
- stock print_color(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() 
-         } 
-     } 
- } 
- return PLUGIN_HANDLED 
- } 
-   
- public cmdLogVipBan() { 
- new output[364], iTimes[64] 
- get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes)); 
- formatex(output, 363, "%s VIP %s [ID: %s] bannolta %s-t [ID: %s] 15 percre! Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok) 
- new file = fopen(file_to_write, "at") 
- fprintf(file, "%s", output) 
- fclose(file) 
- } 
-   
- public cmdLogVipKick() { 
- new output[364], iTimes[64] 
- get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes)); 
- formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok) 
- new file = fopen(file_to_write, "at") 
- fprintf(file, "%s", output) 
- fclose(file) 
- }