hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.19. 21:34



Jelenlévő felhasználók

Jelenleg 342 felhasználó van jelen :: 3 regisztrált, 0 rejtett és 339 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot], siska15 az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: vip menü segítségkérés
HozzászólásElküldve: 2018.05.19. 15:07 
Offline
Tag

Csatlakozott: 2015.09.27. 13:04
Hozzászólások: 41
Megköszönt másnak: 9 alkalommal
Sziasztok szeretnék segítséget kérni tőletek van ez a vip menü és annyi lenne a gond hogy ki kéne venni belőle a chat részt mert én a Admin Prefix 4.0-val szeretnék nekik egyedi szöveget adni, illetve valaki bele e tudná írni még azt hogy a Tablistán a neved mellet irja hogy "VIP" meg hogy más játékosok is lássák fent a szerveren.

Előre is köszönöm a segítségeteket mellékletben csatoltam a sma fájt.

Tisztelettel
siska15


Csatolmányok:
vip_menu.sma [6.58 KiB]
Letöltve 44 alkalommal.
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.05.20. 11:32 
Offline
Beavatott
Avatar

Csatlakozott: 2018.01.05. 10:30
Hozzászólások: 66
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 19 alkalommal
Szia, prefix nincs-bent a TAB gomb megnyomásával meglátható a szerveren hogy ki VIP
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "VIP TAB NO PREFIX"
  8. #define VERSION "1.0"
  9. #define AUTHOR "SidLuke"
  10.  
  11. #define JOG ADMIN_LEVEL_B
  12.  
  13. #define kicktime 7
  14. #define bantime 15
  15. #define pausetime 3
  16.  
  17. enum {
  18.     SCOREATTRIB_ARG_PLAYERID = 1,
  19.     SCOREATTRIB_ARG_FLAGS
  20. };
  21.  
  22. enum ( <<= 1 ) {
  23.     SCOREATTRIB_FLAG_NONE = 0,
  24.     SCOREATTRIB_FLAG_DEAD = 1,
  25.     SCOREATTRIB_FLAG_BOMB,
  26.     SCOREATTRIB_FLAG_VIP
  27. };
  28.  
  29. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip
  30.  
  31. new banid, valamid, vipid
  32.  
  33. new choice
  34. new const Prefix[] = "!g[Információ]";
  35.  
  36. new maxplayers
  37. new gmsgSayText
  38. new kickvolt[33], banvolt[33]
  39. new bool:ban=false
  40.  
  41. public plugin_init() {
  42.     register_plugin(PLUGIN, VERSION, AUTHOR)
  43.    
  44.     maxplayers = get_maxplayers()
  45.     gmsgSayText = get_user_msgid("SayText")
  46.    
  47.     register_clcmd( "say /vipmenu","VIPMenu");
  48.     register_concmd("vipmenu", "VIPMenu");
  49.     register_clcmd("say /vips", "vipek")
  50.    
  51.     register_event("DeathMsg","onDeath","a")
  52.    
  53.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu")
  54.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu")
  55.    
  56.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  57.    
  58.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  59.    
  60.     new configsdir[64]
  61.     get_configsdir(configsdir, 63)
  62.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir)  
  63. }
  64.  
  65. public onDeath()
  66. {
  67.     new killer = read_data(1);
  68.     new victim = read_data(2);
  69.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  70.    
  71.     if(get_user_flags(killer) & JOG)
  72.     {
  73.         if(killer != victim && !TK && is_user_alive(killer))
  74.         {
  75.             new nhp, khp = get_user_health(killer);
  76.             if(khp >= 140) nhp = 150;
  77.             else nhp = khp + 10;
  78.             set_user_health(killer, nhp);
  79.         }
  80.     }
  81. }
  82.  
  83. public client_putinserver(id)
  84. {
  85.     if(get_user_flags(id) & JOG)
  86.     {
  87.         kickvolt[id]=kicktime
  88.         if(task_exists(id+444))
  89.             remove_task(id+444)
  90.         set_task(60.0, "kick_volt", id+444);
  91.         banvolt[id]=bantime
  92.         if(task_exists(id+333))
  93.             remove_task(id+333)
  94.         set_task(60.0, "ban_volt", id+333);
  95.         set_task(2.0, "udvozlo", id+222);
  96.     }
  97. }
  98.  
  99. public udvozlo(id)
  100. {
  101.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  102.     {
  103.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  104.         new name[32]
  105.         get_user_name(id-222, name, charsmax(name));
  106.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  107.     }
  108. }
  109.  
  110. public VIPMenu(id) {
  111.     if(get_user_flags(id) & JOG) {
  112.    
  113.         new menu = menu_create("\n[SidLuke] \yVIP menü", "VMenu_h")
  114.         new szText[128];
  115.  
  116.         if(kickvolt[id]>0)
  117.         {
  118.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  119.             menu_additem(menu, szText, "1", 0);
  120.         }
  121.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  122.        
  123.         if(banvolt[id]>0)
  124.         {
  125.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  126.             menu_additem(menu, szText, "2", 0);
  127.         }
  128.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  129.        
  130.    
  131.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  132.         menu_display(id, menu, 0);
  133.     }
  134.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  135.  
  136. }
  137.  
  138. public VMenu_h(id, menu, item, level, cid) {
  139.     if( item == MENU_EXIT ) {
  140.         menu_destroy(menu);
  141.         return PLUGIN_HANDLED;
  142.     }
  143.  
  144.     new data[6], szName[64];
  145.     new access, callback;
  146.  
  147.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  148.    
  149.     new key = str_to_num(data);
  150.     switch(key) {
  151.         case 1: {
  152.            
  153.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  154.             else PlayersMenu(id, 0)
  155.         }
  156.         case 2: {
  157.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  158.             else PlayersMenu(id, 1)
  159.         }
  160.     }
  161.  
  162.     menu_destroy(menu);
  163.     return PLUGIN_HANDLED;
  164.  
  165. }
  166.  
  167. public PlayersMenu(id, menumod)
  168. {
  169.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  170.    
  171.     new players[32], pnum, tempid;
  172.     new szName[32], szTempid[10];
  173.     new szText[128];
  174.     get_players(players, pnum);
  175.  
  176.     for( new i; i<pnum; i++ ) {
  177.         tempid = players[i];
  178.         get_user_name(tempid, szName, charsmax(szName));
  179.         num_to_str(tempid, szTempid, charsmax(szTempid));
  180.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  181.         {
  182.             formatex(szText, charsmax(szText), "%s \r*", szName)
  183.             menu_additem(menu, szText, szTempid, 0);
  184.         }
  185.         else menu_additem(menu, szName, szTempid, 0);
  186.     }
  187.     menu_display(id, menu, 0);
  188. }
  189. public vipbanmenu_h(id, menu, item)
  190. {
  191.     if( item == MENU_EXIT ) {
  192.  
  193.         menu_destroy(menu);
  194.         if( is_user_connected(id) )
  195.             VIPMenu(id);
  196.         return PLUGIN_HANDLED;
  197.        
  198.     }
  199.     new data[6], szName[64], access, callback;
  200.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  201.  
  202.     banid = str_to_num(data);
  203.     client_cmd(id, "messagemode INDOK_BAN");
  204.  
  205.     menu_destroy(menu);
  206.     return PLUGIN_HANDLED;
  207. }
  208. public vipkickmenu_h(id, menu, item)
  209. {
  210.     if( item == MENU_EXIT ) {
  211.  
  212.         menu_destroy(menu);
  213.         if( is_user_connected(id) )
  214.             VIPMenu(id);
  215.         return PLUGIN_HANDLED;
  216.        
  217.     }
  218.     new data[6], szName[64], access, callback;
  219.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  220.  
  221.     valamid = str_to_num(data);
  222.     client_cmd(id, "messagemode INDOK_KICK");
  223.  
  224.     menu_destroy(menu);
  225.     return PLUGIN_HANDLED;
  226. }
  227. public cmdBanUserFromMenu(id) {
  228.     read_args(g_Indok, charsmax(g_Indok))
  229.     remove_quotes(g_Indok)
  230.    
  231.     if(strlen(g_Indok) >= 15) {
  232.         client_cmd(id, "messagemode INDOK_BAN");
  233.         return PLUGIN_HANDLED
  234.     }
  235.    
  236.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  237.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  238.     {
  239.         PlayersMenu(id, 1);
  240.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  241.     }
  242.     else
  243.     {
  244.         userip = get_user_userid(banid)
  245.         get_user_name(id, iName, charsmax(iName));
  246.         get_user_name(banid, tName, charsmax(tName));
  247.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  248.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  249.         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)
  250.         ban_szavazas()
  251.         ban=true;
  252.     }
  253.     return PLUGIN_HANDLED
  254. }
  255.  
  256. public cmdKickUserFromMenu(id) {
  257.     read_args(g_Indok, charsmax(g_Indok))
  258.     remove_quotes(g_Indok)
  259.    
  260.     if(strlen(g_Indok) >= 15) {
  261.         client_cmd(id, "messagemode INDOK_KICK");
  262.         return PLUGIN_HANDLED
  263.     }
  264.    
  265.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  266.         PlayersMenu(id, 0);
  267.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  268.     }
  269.     else
  270.     {
  271.         get_user_name(id, iName, charsmax(iName))
  272.         get_user_name(valamid, tName, charsmax(tName))
  273.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  274.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  275.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  276.         server_cmd("kick #%d",  get_user_userid(valamid))
  277.        
  278.         cmdLogVipKick()
  279.         g_Indok = ""
  280.         kickvolt[id]=kicktime
  281.         if(task_exists(id+444))
  282.             remove_task(id+444)
  283.         set_task(60.0, "kick_volt", id+444);
  284.     }
  285.     return PLUGIN_HANDLED
  286. }
  287. public ban_szavazas()
  288. {
  289.     new szText[128], Name[32];
  290.     get_user_name(banid, Name, charsmax(Name));
  291.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre?\y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  292.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  293.     set_task(15.0,"ban_eredmeny")
  294.     choice = 0
  295.     return PLUGIN_HANDLED    
  296.  
  297. }
  298.  
  299. public ban_szavazatok(id,key){
  300.     new name[32]
  301.     get_user_name(id,name,31)
  302.     new players[32], pnum;
  303.     get_players(players, pnum);
  304.     new what[6]
  305.     if (key == 0) {
  306.         what = "Igen"
  307.         choice++
  308.     }
  309.     if (key == 1) what = "Nem"
  310.     new Float:iSzamol = float(100/pnum*choice)
  311.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  312.     return PLUGIN_HANDLED
  313. }
  314.  
  315. public ban_eredmeny(){
  316.     new Name[32];
  317.     get_user_name(banid, Name, charsmax(Name));
  318.     new players[32], pnum;
  319.     get_players(players, pnum);
  320.     new Float:iSzamol = float(100/pnum*choice)
  321.     new Float:Otven = 50.0
  322.  
  323.     if(iSzamol > Otven)
  324.     {
  325.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  326.        
  327.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  328.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  329.        
  330.         cmdLogVipBan()
  331.         g_Indok = ""
  332.         userip = 0
  333.         banvolt[vipid]=bantime
  334.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  335.        
  336.     }
  337.     else
  338.     {
  339.         banvolt[vipid]=pausetime
  340.         if(task_exists(vipid+333))
  341.             remove_task(vipid+333)
  342.         if(is_user_connected(vipid))
  343.             set_task(60.0, "ban_volt", vipid+333 );
  344.         print_color(0,"%s !yBannolás sikertelen kevés szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  345.     }
  346.     ban=false;
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public kick_volt(id)
  351. {
  352.     if(kickvolt[id-444]+1>0)
  353.     {
  354.         kickvolt[id-444]--
  355.         if(task_exists(id))
  356.             remove_task(id)
  357.         set_task(60.0, "kick_volt", id);
  358.     }
  359. }
  360. public ban_volt(id)
  361. {
  362.     if(banvolt[id-333]+1>0)
  363.     {
  364.         banvolt[id-333]--
  365.         if(task_exists(id))
  366.             remove_task(id)
  367.         set_task(60.0, "ban_volt", id);
  368.     }
  369. }
  370.  
  371. public vipek(user) {
  372.     new names[32]
  373.     new message[256]
  374.     new id, count, x, len
  375.  
  376.     for(id = 1 ; id <= maxplayers ; id++)
  377.         if(is_user_connected(id))
  378.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  379.                 get_user_name(id, names[count++], 31)
  380.  
  381.     len = format(message, 255, "^x04[Információ]^x01 Online VIP tagok:^x03 ")
  382.     if(count > 0) {
  383.         for(x = 0 ; x < count ; x++) {
  384.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  385.             if(len > 96 ) {
  386.                 print_message(user, message)
  387.                 len = format(message, 255, "^x04 ")
  388.             }
  389.         }
  390.         print_message(user, message)
  391.     }
  392.     else {
  393.         len += format(message[len], 255-len, "Nincs jelen vip.")
  394.         print_message(user, message)
  395.     }
  396. }
  397.  
  398. print_message(id, msg[]) {
  399.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  400.     write_byte(id)
  401.     write_string(msg)
  402.     message_end()
  403. }
  404.  
  405. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  406.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  407.  
  408.     if(get_user_flags(iPlayer) & JOG)
  409.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  410. }
  411.  
  412. stock print_color(const id, const input[], any:...)
  413. {
  414.         new count = 1, players[32]
  415.         static msg[191]
  416.         vformat(msg, 190, input, 3)
  417.  
  418.         replace_all(msg, 190, "!g", "^4")
  419.         replace_all(msg, 190, "!y", "^1")
  420.         replace_all(msg, 190, "!t", "^3")      
  421.  
  422.         if (id) players[0] = id; else get_players(players, count, "ch")
  423.         {
  424.                 for (new i = 0; i < count; i++)
  425.                 {
  426.                         if (is_user_connected(players[i]))
  427.                         {
  428.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  429.                                 write_byte(players[i])
  430.                                 write_string(msg)
  431.                                 message_end()
  432.                         }
  433.                 }
  434.         }
  435.         return PLUGIN_HANDLED
  436. }
  437.  
  438. public cmdLogVipBan() {
  439.     new output[364], iTimes[64]
  440.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  441.     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)
  442.     new file = fopen(file_to_write, "at")
  443.     fprintf(file, "%s", output)
  444.     fclose(file)
  445. }
  446.  
  447. public cmdLogVipKick() {
  448.     new output[364], iTimes[64]
  449.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  450.     formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  451.     new file = fopen(file_to_write, "at")
  452.     fprintf(file, "%s", output)
  453.     fclose(file)
  454. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.05.20. 11:50 
Offline
Senior Tag

Csatlakozott: 2017.04.30. 17:21
Hozzászólások: 286
Megköszönt másnak: 49 alkalommal
Megköszönték neki: 66 alkalommal
SidLuke írta:
Szia, prefix nincs-bent a TAB gomb megnyomásával meglátható a szerveren hogy ki VIP
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "VIP TAB NO PREFIX"
  8. #define VERSION "1.0"
  9. #define AUTHOR "SidLuke"
  10.  
  11. #define JOG ADMIN_LEVEL_B
  12.  
  13. #define kicktime 7
  14. #define bantime 15
  15. #define pausetime 3
  16.  
  17. enum {
  18.     SCOREATTRIB_ARG_PLAYERID = 1,
  19.     SCOREATTRIB_ARG_FLAGS
  20. };
  21.  
  22. enum ( <<= 1 ) {
  23.     SCOREATTRIB_FLAG_NONE = 0,
  24.     SCOREATTRIB_FLAG_DEAD = 1,
  25.     SCOREATTRIB_FLAG_BOMB,
  26.     SCOREATTRIB_FLAG_VIP
  27. };
  28.  
  29. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip
  30.  
  31. new banid, valamid, vipid
  32.  
  33. new choice
  34. new const Prefix[] = "!g[Információ]";
  35.  
  36. new maxplayers
  37. new gmsgSayText
  38. new kickvolt[33], banvolt[33]
  39. new bool:ban=false
  40.  
  41. public plugin_init() {
  42.     register_plugin(PLUGIN, VERSION, AUTHOR)
  43.    
  44.     maxplayers = get_maxplayers()
  45.     gmsgSayText = get_user_msgid("SayText")
  46.    
  47.     register_clcmd( "say /vipmenu","VIPMenu");
  48.     register_concmd("vipmenu", "VIPMenu");
  49.     register_clcmd("say /vips", "vipek")
  50.    
  51.     register_event("DeathMsg","onDeath","a")
  52.    
  53.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu")
  54.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu")
  55.    
  56.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  57.    
  58.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  59.    
  60.     new configsdir[64]
  61.     get_configsdir(configsdir, 63)
  62.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir)  
  63. }
  64.  
  65. public onDeath()
  66. {
  67.     new killer = read_data(1);
  68.     new victim = read_data(2);
  69.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  70.    
  71.     if(get_user_flags(killer) & JOG)
  72.     {
  73.         if(killer != victim && !TK && is_user_alive(killer))
  74.         {
  75.             new nhp, khp = get_user_health(killer);
  76.             if(khp >= 140) nhp = 150;
  77.             else nhp = khp + 10;
  78.             set_user_health(killer, nhp);
  79.         }
  80.     }
  81. }
  82.  
  83. public client_putinserver(id)
  84. {
  85.     if(get_user_flags(id) & JOG)
  86.     {
  87.         kickvolt[id]=kicktime
  88.         if(task_exists(id+444))
  89.             remove_task(id+444)
  90.         set_task(60.0, "kick_volt", id+444);
  91.         banvolt[id]=bantime
  92.         if(task_exists(id+333))
  93.             remove_task(id+333)
  94.         set_task(60.0, "ban_volt", id+333);
  95.         set_task(2.0, "udvozlo", id+222);
  96.     }
  97. }
  98.  
  99. public udvozlo(id)
  100. {
  101.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  102.     {
  103.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  104.         new name[32]
  105.         get_user_name(id-222, name, charsmax(name));
  106.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  107.     }
  108. }
  109.  
  110. public VIPMenu(id) {
  111.     if(get_user_flags(id) & JOG) {
  112.    
  113.         new menu = menu_create("\n[SidLuke] \yVIP menü", "VMenu_h")
  114.         new szText[128];
  115.  
  116.         if(kickvolt[id]>0)
  117.         {
  118.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  119.             menu_additem(menu, szText, "1", 0);
  120.         }
  121.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  122.        
  123.         if(banvolt[id]>0)
  124.         {
  125.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  126.             menu_additem(menu, szText, "2", 0);
  127.         }
  128.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  129.        
  130.    
  131.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  132.         menu_display(id, menu, 0);
  133.     }
  134.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  135.  
  136. }
  137.  
  138. public VMenu_h(id, menu, item, level, cid) {
  139.     if( item == MENU_EXIT ) {
  140.         menu_destroy(menu);
  141.         return PLUGIN_HANDLED;
  142.     }
  143.  
  144.     new data[6], szName[64];
  145.     new access, callback;
  146.  
  147.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  148.    
  149.     new key = str_to_num(data);
  150.     switch(key) {
  151.         case 1: {
  152.            
  153.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  154.             else PlayersMenu(id, 0)
  155.         }
  156.         case 2: {
  157.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  158.             else PlayersMenu(id, 1)
  159.         }
  160.     }
  161.  
  162.     menu_destroy(menu);
  163.     return PLUGIN_HANDLED;
  164.  
  165. }
  166.  
  167. public PlayersMenu(id, menumod)
  168. {
  169.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  170.    
  171.     new players[32], pnum, tempid;
  172.     new szName[32], szTempid[10];
  173.     new szText[128];
  174.     get_players(players, pnum);
  175.  
  176.     for( new i; i<pnum; i++ ) {
  177.         tempid = players[i];
  178.         get_user_name(tempid, szName, charsmax(szName));
  179.         num_to_str(tempid, szTempid, charsmax(szTempid));
  180.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  181.         {
  182.             formatex(szText, charsmax(szText), "%s \r*", szName)
  183.             menu_additem(menu, szText, szTempid, 0);
  184.         }
  185.         else menu_additem(menu, szName, szTempid, 0);
  186.     }
  187.     menu_display(id, menu, 0);
  188. }
  189. public vipbanmenu_h(id, menu, item)
  190. {
  191.     if( item == MENU_EXIT ) {
  192.  
  193.         menu_destroy(menu);
  194.         if( is_user_connected(id) )
  195.             VIPMenu(id);
  196.         return PLUGIN_HANDLED;
  197.        
  198.     }
  199.     new data[6], szName[64], access, callback;
  200.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  201.  
  202.     banid = str_to_num(data);
  203.     client_cmd(id, "messagemode INDOK_BAN");
  204.  
  205.     menu_destroy(menu);
  206.     return PLUGIN_HANDLED;
  207. }
  208. public vipkickmenu_h(id, menu, item)
  209. {
  210.     if( item == MENU_EXIT ) {
  211.  
  212.         menu_destroy(menu);
  213.         if( is_user_connected(id) )
  214.             VIPMenu(id);
  215.         return PLUGIN_HANDLED;
  216.        
  217.     }
  218.     new data[6], szName[64], access, callback;
  219.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  220.  
  221.     valamid = str_to_num(data);
  222.     client_cmd(id, "messagemode INDOK_KICK");
  223.  
  224.     menu_destroy(menu);
  225.     return PLUGIN_HANDLED;
  226. }
  227. public cmdBanUserFromMenu(id) {
  228.     read_args(g_Indok, charsmax(g_Indok))
  229.     remove_quotes(g_Indok)
  230.    
  231.     if(strlen(g_Indok) >= 15) {
  232.         client_cmd(id, "messagemode INDOK_BAN");
  233.         return PLUGIN_HANDLED
  234.     }
  235.    
  236.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  237.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  238.     {
  239.         PlayersMenu(id, 1);
  240.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  241.     }
  242.     else
  243.     {
  244.         userip = get_user_userid(banid)
  245.         get_user_name(id, iName, charsmax(iName));
  246.         get_user_name(banid, tName, charsmax(tName));
  247.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  248.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  249.         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)
  250.         ban_szavazas()
  251.         ban=true;
  252.     }
  253.     return PLUGIN_HANDLED
  254. }
  255.  
  256. public cmdKickUserFromMenu(id) {
  257.     read_args(g_Indok, charsmax(g_Indok))
  258.     remove_quotes(g_Indok)
  259.    
  260.     if(strlen(g_Indok) >= 15) {
  261.         client_cmd(id, "messagemode INDOK_KICK");
  262.         return PLUGIN_HANDLED
  263.     }
  264.    
  265.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  266.         PlayersMenu(id, 0);
  267.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  268.     }
  269.     else
  270.     {
  271.         get_user_name(id, iName, charsmax(iName))
  272.         get_user_name(valamid, tName, charsmax(tName))
  273.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  274.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  275.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  276.         server_cmd("kick #%d",  get_user_userid(valamid))
  277.        
  278.         cmdLogVipKick()
  279.         g_Indok = ""
  280.         kickvolt[id]=kicktime
  281.         if(task_exists(id+444))
  282.             remove_task(id+444)
  283.         set_task(60.0, "kick_volt", id+444);
  284.     }
  285.     return PLUGIN_HANDLED
  286. }
  287. public ban_szavazas()
  288. {
  289.     new szText[128], Name[32];
  290.     get_user_name(banid, Name, charsmax(Name));
  291.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre?\y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  292.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  293.     set_task(15.0,"ban_eredmeny")
  294.     choice = 0
  295.     return PLUGIN_HANDLED    
  296.  
  297. }
  298.  
  299. public ban_szavazatok(id,key){
  300.     new name[32]
  301.     get_user_name(id,name,31)
  302.     new players[32], pnum;
  303.     get_players(players, pnum);
  304.     new what[6]
  305.     if (key == 0) {
  306.         what = "Igen"
  307.         choice++
  308.     }
  309.     if (key == 1) what = "Nem"
  310.     new Float:iSzamol = float(100/pnum*choice)
  311.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  312.     return PLUGIN_HANDLED
  313. }
  314.  
  315. public ban_eredmeny(){
  316.     new Name[32];
  317.     get_user_name(banid, Name, charsmax(Name));
  318.     new players[32], pnum;
  319.     get_players(players, pnum);
  320.     new Float:iSzamol = float(100/pnum*choice)
  321.     new Float:Otven = 50.0
  322.  
  323.     if(iSzamol > Otven)
  324.     {
  325.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  326.        
  327.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  328.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  329.        
  330.         cmdLogVipBan()
  331.         g_Indok = ""
  332.         userip = 0
  333.         banvolt[vipid]=bantime
  334.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  335.        
  336.     }
  337.     else
  338.     {
  339.         banvolt[vipid]=pausetime
  340.         if(task_exists(vipid+333))
  341.             remove_task(vipid+333)
  342.         if(is_user_connected(vipid))
  343.             set_task(60.0, "ban_volt", vipid+333 );
  344.         print_color(0,"%s !yBannolás sikertelen kevés szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  345.     }
  346.     ban=false;
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public kick_volt(id)
  351. {
  352.     if(kickvolt[id-444]+1>0)
  353.     {
  354.         kickvolt[id-444]--
  355.         if(task_exists(id))
  356.             remove_task(id)
  357.         set_task(60.0, "kick_volt", id);
  358.     }
  359. }
  360. public ban_volt(id)
  361. {
  362.     if(banvolt[id-333]+1>0)
  363.     {
  364.         banvolt[id-333]--
  365.         if(task_exists(id))
  366.             remove_task(id)
  367.         set_task(60.0, "ban_volt", id);
  368.     }
  369. }
  370.  
  371. public vipek(user) {
  372.     new names[32]
  373.     new message[256]
  374.     new id, count, x, len
  375.  
  376.     for(id = 1 ; id <= maxplayers ; id++)
  377.         if(is_user_connected(id))
  378.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  379.                 get_user_name(id, names[count++], 31)
  380.  
  381.     len = format(message, 255, "^x04[Információ]^x01 Online VIP tagok:^x03 ")
  382.     if(count > 0) {
  383.         for(x = 0 ; x < count ; x++) {
  384.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  385.             if(len > 96 ) {
  386.                 print_message(user, message)
  387.                 len = format(message, 255, "^x04 ")
  388.             }
  389.         }
  390.         print_message(user, message)
  391.     }
  392.     else {
  393.         len += format(message[len], 255-len, "Nincs jelen vip.")
  394.         print_message(user, message)
  395.     }
  396. }
  397.  
  398. print_message(id, msg[]) {
  399.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  400.     write_byte(id)
  401.     write_string(msg)
  402.     message_end()
  403. }
  404.  
  405. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  406.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  407.  
  408.     if(get_user_flags(iPlayer) & JOG)
  409.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  410. }
  411.  
  412. stock print_color(const id, const input[], any:...)
  413. {
  414.         new count = 1, players[32]
  415.         static msg[191]
  416.         vformat(msg, 190, input, 3)
  417.  
  418.         replace_all(msg, 190, "!g", "^4")
  419.         replace_all(msg, 190, "!y", "^1")
  420.         replace_all(msg, 190, "!t", "^3")      
  421.  
  422.         if (id) players[0] = id; else get_players(players, count, "ch")
  423.         {
  424.                 for (new i = 0; i < count; i++)
  425.                 {
  426.                         if (is_user_connected(players[i]))
  427.                         {
  428.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  429.                                 write_byte(players[i])
  430.                                 write_string(msg)
  431.                                 message_end()
  432.                         }
  433.                 }
  434.         }
  435.         return PLUGIN_HANDLED
  436. }
  437.  
  438. public cmdLogVipBan() {
  439.     new output[364], iTimes[64]
  440.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  441.     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)
  442.     new file = fopen(file_to_write, "at")
  443.     fprintf(file, "%s", output)
  444.     fclose(file)
  445. }
  446.  
  447. public cmdLogVipKick() {
  448.     new output[364], iTimes[64]
  449.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  450.     formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  451.     new file = fopen(file_to_write, "at")
  452.     fprintf(file, "%s", output)
  453.     fclose(file)
  454. }

Most komolyan egy pár témával ezelőtti plugint fogtad és az authort is átírtad?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.05.20. 12:18 
Offline
Tag

Csatlakozott: 2018.01.31. 14:33
Hozzászólások: 47
Ez az a plugin amit én felrakta. Deamon csinálta.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.05.20. 13:01 
Offline
Beavatott
Avatar

Csatlakozott: 2018.01.05. 10:30
Hozzászólások: 66
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 19 alkalommal
aarpi. írta:
SidLuke írta:
Szia, prefix nincs-bent a TAB gomb megnyomásával meglátható a szerveren hogy ki VIP
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "VIP TAB NO PREFIX"
  8. #define VERSION "1.0"
  9. #define AUTHOR "SidLuke"
  10.  
  11. #define JOG ADMIN_LEVEL_B
  12.  
  13. #define kicktime 7
  14. #define bantime 15
  15. #define pausetime 3
  16.  
  17. enum {
  18.     SCOREATTRIB_ARG_PLAYERID = 1,
  19.     SCOREATTRIB_ARG_FLAGS
  20. };
  21.  
  22. enum ( <<= 1 ) {
  23.     SCOREATTRIB_FLAG_NONE = 0,
  24.     SCOREATTRIB_FLAG_DEAD = 1,
  25.     SCOREATTRIB_FLAG_BOMB,
  26.     SCOREATTRIB_FLAG_VIP
  27. };
  28.  
  29. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip
  30.  
  31. new banid, valamid, vipid
  32.  
  33. new choice
  34. new const Prefix[] = "!g[Információ]";
  35.  
  36. new maxplayers
  37. new gmsgSayText
  38. new kickvolt[33], banvolt[33]
  39. new bool:ban=false
  40.  
  41. public plugin_init() {
  42.     register_plugin(PLUGIN, VERSION, AUTHOR)
  43.    
  44.     maxplayers = get_maxplayers()
  45.     gmsgSayText = get_user_msgid("SayText")
  46.    
  47.     register_clcmd( "say /vipmenu","VIPMenu");
  48.     register_concmd("vipmenu", "VIPMenu");
  49.     register_clcmd("say /vips", "vipek")
  50.    
  51.     register_event("DeathMsg","onDeath","a")
  52.    
  53.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu")
  54.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu")
  55.    
  56.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  57.    
  58.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  59.    
  60.     new configsdir[64]
  61.     get_configsdir(configsdir, 63)
  62.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir)  
  63. }
  64.  
  65. public onDeath()
  66. {
  67.     new killer = read_data(1);
  68.     new victim = read_data(2);
  69.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  70.    
  71.     if(get_user_flags(killer) & JOG)
  72.     {
  73.         if(killer != victim && !TK && is_user_alive(killer))
  74.         {
  75.             new nhp, khp = get_user_health(killer);
  76.             if(khp >= 140) nhp = 150;
  77.             else nhp = khp + 10;
  78.             set_user_health(killer, nhp);
  79.         }
  80.     }
  81. }
  82.  
  83. public client_putinserver(id)
  84. {
  85.     if(get_user_flags(id) & JOG)
  86.     {
  87.         kickvolt[id]=kicktime
  88.         if(task_exists(id+444))
  89.             remove_task(id+444)
  90.         set_task(60.0, "kick_volt", id+444);
  91.         banvolt[id]=bantime
  92.         if(task_exists(id+333))
  93.             remove_task(id+333)
  94.         set_task(60.0, "ban_volt", id+333);
  95.         set_task(2.0, "udvozlo", id+222);
  96.     }
  97. }
  98.  
  99. public udvozlo(id)
  100. {
  101.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  102.     {
  103.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  104.         new name[32]
  105.         get_user_name(id-222, name, charsmax(name));
  106.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  107.     }
  108. }
  109.  
  110. public VIPMenu(id) {
  111.     if(get_user_flags(id) & JOG) {
  112.    
  113.         new menu = menu_create("\n[SidLuke] \yVIP menü", "VMenu_h")
  114.         new szText[128];
  115.  
  116.         if(kickvolt[id]>0)
  117.         {
  118.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  119.             menu_additem(menu, szText, "1", 0);
  120.         }
  121.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  122.        
  123.         if(banvolt[id]>0)
  124.         {
  125.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  126.             menu_additem(menu, szText, "2", 0);
  127.         }
  128.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  129.        
  130.    
  131.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  132.         menu_display(id, menu, 0);
  133.     }
  134.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  135.  
  136. }
  137.  
  138. public VMenu_h(id, menu, item, level, cid) {
  139.     if( item == MENU_EXIT ) {
  140.         menu_destroy(menu);
  141.         return PLUGIN_HANDLED;
  142.     }
  143.  
  144.     new data[6], szName[64];
  145.     new access, callback;
  146.  
  147.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  148.    
  149.     new key = str_to_num(data);
  150.     switch(key) {
  151.         case 1: {
  152.            
  153.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  154.             else PlayersMenu(id, 0)
  155.         }
  156.         case 2: {
  157.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  158.             else PlayersMenu(id, 1)
  159.         }
  160.     }
  161.  
  162.     menu_destroy(menu);
  163.     return PLUGIN_HANDLED;
  164.  
  165. }
  166.  
  167. public PlayersMenu(id, menumod)
  168. {
  169.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  170.    
  171.     new players[32], pnum, tempid;
  172.     new szName[32], szTempid[10];
  173.     new szText[128];
  174.     get_players(players, pnum);
  175.  
  176.     for( new i; i<pnum; i++ ) {
  177.         tempid = players[i];
  178.         get_user_name(tempid, szName, charsmax(szName));
  179.         num_to_str(tempid, szTempid, charsmax(szTempid));
  180.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  181.         {
  182.             formatex(szText, charsmax(szText), "%s \r*", szName)
  183.             menu_additem(menu, szText, szTempid, 0);
  184.         }
  185.         else menu_additem(menu, szName, szTempid, 0);
  186.     }
  187.     menu_display(id, menu, 0);
  188. }
  189. public vipbanmenu_h(id, menu, item)
  190. {
  191.     if( item == MENU_EXIT ) {
  192.  
  193.         menu_destroy(menu);
  194.         if( is_user_connected(id) )
  195.             VIPMenu(id);
  196.         return PLUGIN_HANDLED;
  197.        
  198.     }
  199.     new data[6], szName[64], access, callback;
  200.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  201.  
  202.     banid = str_to_num(data);
  203.     client_cmd(id, "messagemode INDOK_BAN");
  204.  
  205.     menu_destroy(menu);
  206.     return PLUGIN_HANDLED;
  207. }
  208. public vipkickmenu_h(id, menu, item)
  209. {
  210.     if( item == MENU_EXIT ) {
  211.  
  212.         menu_destroy(menu);
  213.         if( is_user_connected(id) )
  214.             VIPMenu(id);
  215.         return PLUGIN_HANDLED;
  216.        
  217.     }
  218.     new data[6], szName[64], access, callback;
  219.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  220.  
  221.     valamid = str_to_num(data);
  222.     client_cmd(id, "messagemode INDOK_KICK");
  223.  
  224.     menu_destroy(menu);
  225.     return PLUGIN_HANDLED;
  226. }
  227. public cmdBanUserFromMenu(id) {
  228.     read_args(g_Indok, charsmax(g_Indok))
  229.     remove_quotes(g_Indok)
  230.    
  231.     if(strlen(g_Indok) >= 15) {
  232.         client_cmd(id, "messagemode INDOK_BAN");
  233.         return PLUGIN_HANDLED
  234.     }
  235.    
  236.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  237.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  238.     {
  239.         PlayersMenu(id, 1);
  240.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  241.     }
  242.     else
  243.     {
  244.         userip = get_user_userid(banid)
  245.         get_user_name(id, iName, charsmax(iName));
  246.         get_user_name(banid, tName, charsmax(tName));
  247.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  248.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  249.         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)
  250.         ban_szavazas()
  251.         ban=true;
  252.     }
  253.     return PLUGIN_HANDLED
  254. }
  255.  
  256. public cmdKickUserFromMenu(id) {
  257.     read_args(g_Indok, charsmax(g_Indok))
  258.     remove_quotes(g_Indok)
  259.    
  260.     if(strlen(g_Indok) >= 15) {
  261.         client_cmd(id, "messagemode INDOK_KICK");
  262.         return PLUGIN_HANDLED
  263.     }
  264.    
  265.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  266.         PlayersMenu(id, 0);
  267.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  268.     }
  269.     else
  270.     {
  271.         get_user_name(id, iName, charsmax(iName))
  272.         get_user_name(valamid, tName, charsmax(tName))
  273.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  274.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  275.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  276.         server_cmd("kick #%d",  get_user_userid(valamid))
  277.        
  278.         cmdLogVipKick()
  279.         g_Indok = ""
  280.         kickvolt[id]=kicktime
  281.         if(task_exists(id+444))
  282.             remove_task(id+444)
  283.         set_task(60.0, "kick_volt", id+444);
  284.     }
  285.     return PLUGIN_HANDLED
  286. }
  287. public ban_szavazas()
  288. {
  289.     new szText[128], Name[32];
  290.     get_user_name(banid, Name, charsmax(Name));
  291.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre?\y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  292.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  293.     set_task(15.0,"ban_eredmeny")
  294.     choice = 0
  295.     return PLUGIN_HANDLED    
  296.  
  297. }
  298.  
  299. public ban_szavazatok(id,key){
  300.     new name[32]
  301.     get_user_name(id,name,31)
  302.     new players[32], pnum;
  303.     get_players(players, pnum);
  304.     new what[6]
  305.     if (key == 0) {
  306.         what = "Igen"
  307.         choice++
  308.     }
  309.     if (key == 1) what = "Nem"
  310.     new Float:iSzamol = float(100/pnum*choice)
  311.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  312.     return PLUGIN_HANDLED
  313. }
  314.  
  315. public ban_eredmeny(){
  316.     new Name[32];
  317.     get_user_name(banid, Name, charsmax(Name));
  318.     new players[32], pnum;
  319.     get_players(players, pnum);
  320.     new Float:iSzamol = float(100/pnum*choice)
  321.     new Float:Otven = 50.0
  322.  
  323.     if(iSzamol > Otven)
  324.     {
  325.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  326.        
  327.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  328.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  329.        
  330.         cmdLogVipBan()
  331.         g_Indok = ""
  332.         userip = 0
  333.         banvolt[vipid]=bantime
  334.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  335.        
  336.     }
  337.     else
  338.     {
  339.         banvolt[vipid]=pausetime
  340.         if(task_exists(vipid+333))
  341.             remove_task(vipid+333)
  342.         if(is_user_connected(vipid))
  343.             set_task(60.0, "ban_volt", vipid+333 );
  344.         print_color(0,"%s !yBannolás sikertelen kevés szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  345.     }
  346.     ban=false;
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public kick_volt(id)
  351. {
  352.     if(kickvolt[id-444]+1>0)
  353.     {
  354.         kickvolt[id-444]--
  355.         if(task_exists(id))
  356.             remove_task(id)
  357.         set_task(60.0, "kick_volt", id);
  358.     }
  359. }
  360. public ban_volt(id)
  361. {
  362.     if(banvolt[id-333]+1>0)
  363.     {
  364.         banvolt[id-333]--
  365.         if(task_exists(id))
  366.             remove_task(id)
  367.         set_task(60.0, "ban_volt", id);
  368.     }
  369. }
  370.  
  371. public vipek(user) {
  372.     new names[32]
  373.     new message[256]
  374.     new id, count, x, len
  375.  
  376.     for(id = 1 ; id <= maxplayers ; id++)
  377.         if(is_user_connected(id))
  378.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  379.                 get_user_name(id, names[count++], 31)
  380.  
  381.     len = format(message, 255, "^x04[Információ]^x01 Online VIP tagok:^x03 ")
  382.     if(count > 0) {
  383.         for(x = 0 ; x < count ; x++) {
  384.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  385.             if(len > 96 ) {
  386.                 print_message(user, message)
  387.                 len = format(message, 255, "^x04 ")
  388.             }
  389.         }
  390.         print_message(user, message)
  391.     }
  392.     else {
  393.         len += format(message[len], 255-len, "Nincs jelen vip.")
  394.         print_message(user, message)
  395.     }
  396. }
  397.  
  398. print_message(id, msg[]) {
  399.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  400.     write_byte(id)
  401.     write_string(msg)
  402.     message_end()
  403. }
  404.  
  405. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  406.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  407.  
  408.     if(get_user_flags(iPlayer) & JOG)
  409.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  410. }
  411.  
  412. stock print_color(const id, const input[], any:...)
  413. {
  414.         new count = 1, players[32]
  415.         static msg[191]
  416.         vformat(msg, 190, input, 3)
  417.  
  418.         replace_all(msg, 190, "!g", "^4")
  419.         replace_all(msg, 190, "!y", "^1")
  420.         replace_all(msg, 190, "!t", "^3")      
  421.  
  422.         if (id) players[0] = id; else get_players(players, count, "ch")
  423.         {
  424.                 for (new i = 0; i < count; i++)
  425.                 {
  426.                         if (is_user_connected(players[i]))
  427.                         {
  428.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  429.                                 write_byte(players[i])
  430.                                 write_string(msg)
  431.                                 message_end()
  432.                         }
  433.                 }
  434.         }
  435.         return PLUGIN_HANDLED
  436. }
  437.  
  438. public cmdLogVipBan() {
  439.     new output[364], iTimes[64]
  440.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  441.     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)
  442.     new file = fopen(file_to_write, "at")
  443.     fprintf(file, "%s", output)
  444.     fclose(file)
  445. }
  446.  
  447. public cmdLogVipKick() {
  448.     new output[364], iTimes[64]
  449.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  450.     formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  451.     new file = fopen(file_to_write, "at")
  452.     fprintf(file, "%s", output)
  453.     fclose(file)
  454. }

Most komolyan egy pár témával ezelőtti plugint fogtad és az authort is átírtad?

Hol található ez a plugin mondjad már?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.05.20. 13:11 
Offline
Senior Tag

Csatlakozott: 2017.04.30. 17:21
Hozzászólások: 286
Megköszönt másnak: 49 alkalommal
Megköszönték neki: 66 alkalommal
SidLuke írta:
aarpi. írta:
SidLuke írta:
Szia, prefix nincs-bent a TAB gomb megnyomásával meglátható a szerveren hogy ki VIP
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "VIP TAB NO PREFIX"
  8. #define VERSION "1.0"
  9. #define AUTHOR "SidLuke"
  10.  
  11. #define JOG ADMIN_LEVEL_B
  12.  
  13. #define kicktime 7
  14. #define bantime 15
  15. #define pausetime 3
  16.  
  17. enum {
  18.     SCOREATTRIB_ARG_PLAYERID = 1,
  19.     SCOREATTRIB_ARG_FLAGS
  20. };
  21.  
  22. enum ( <<= 1 ) {
  23.     SCOREATTRIB_FLAG_NONE = 0,
  24.     SCOREATTRIB_FLAG_DEAD = 1,
  25.     SCOREATTRIB_FLAG_BOMB,
  26.     SCOREATTRIB_FLAG_VIP
  27. };
  28.  
  29. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip
  30.  
  31. new banid, valamid, vipid
  32.  
  33. new choice
  34. new const Prefix[] = "!g[Információ]";
  35.  
  36. new maxplayers
  37. new gmsgSayText
  38. new kickvolt[33], banvolt[33]
  39. new bool:ban=false
  40.  
  41. public plugin_init() {
  42.     register_plugin(PLUGIN, VERSION, AUTHOR)
  43.    
  44.     maxplayers = get_maxplayers()
  45.     gmsgSayText = get_user_msgid("SayText")
  46.    
  47.     register_clcmd( "say /vipmenu","VIPMenu");
  48.     register_concmd("vipmenu", "VIPMenu");
  49.     register_clcmd("say /vips", "vipek")
  50.    
  51.     register_event("DeathMsg","onDeath","a")
  52.    
  53.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu")
  54.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu")
  55.    
  56.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  57.    
  58.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  59.    
  60.     new configsdir[64]
  61.     get_configsdir(configsdir, 63)
  62.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir)  
  63. }
  64.  
  65. public onDeath()
  66. {
  67.     new killer = read_data(1);
  68.     new victim = read_data(2);
  69.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  70.    
  71.     if(get_user_flags(killer) & JOG)
  72.     {
  73.         if(killer != victim && !TK && is_user_alive(killer))
  74.         {
  75.             new nhp, khp = get_user_health(killer);
  76.             if(khp >= 140) nhp = 150;
  77.             else nhp = khp + 10;
  78.             set_user_health(killer, nhp);
  79.         }
  80.     }
  81. }
  82.  
  83. public client_putinserver(id)
  84. {
  85.     if(get_user_flags(id) & JOG)
  86.     {
  87.         kickvolt[id]=kicktime
  88.         if(task_exists(id+444))
  89.             remove_task(id+444)
  90.         set_task(60.0, "kick_volt", id+444);
  91.         banvolt[id]=bantime
  92.         if(task_exists(id+333))
  93.             remove_task(id+333)
  94.         set_task(60.0, "ban_volt", id+333);
  95.         set_task(2.0, "udvozlo", id+222);
  96.     }
  97. }
  98.  
  99. public udvozlo(id)
  100. {
  101.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  102.     {
  103.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  104.         new name[32]
  105.         get_user_name(id-222, name, charsmax(name));
  106.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  107.     }
  108. }
  109.  
  110. public VIPMenu(id) {
  111.     if(get_user_flags(id) & JOG) {
  112.    
  113.         new menu = menu_create("\n[SidLuke] \yVIP menü", "VMenu_h")
  114.         new szText[128];
  115.  
  116.         if(kickvolt[id]>0)
  117.         {
  118.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  119.             menu_additem(menu, szText, "1", 0);
  120.         }
  121.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  122.        
  123.         if(banvolt[id]>0)
  124.         {
  125.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  126.             menu_additem(menu, szText, "2", 0);
  127.         }
  128.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  129.        
  130.    
  131.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  132.         menu_display(id, menu, 0);
  133.     }
  134.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  135.  
  136. }
  137.  
  138. public VMenu_h(id, menu, item, level, cid) {
  139.     if( item == MENU_EXIT ) {
  140.         menu_destroy(menu);
  141.         return PLUGIN_HANDLED;
  142.     }
  143.  
  144.     new data[6], szName[64];
  145.     new access, callback;
  146.  
  147.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  148.    
  149.     new key = str_to_num(data);
  150.     switch(key) {
  151.         case 1: {
  152.            
  153.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  154.             else PlayersMenu(id, 0)
  155.         }
  156.         case 2: {
  157.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  158.             else PlayersMenu(id, 1)
  159.         }
  160.     }
  161.  
  162.     menu_destroy(menu);
  163.     return PLUGIN_HANDLED;
  164.  
  165. }
  166.  
  167. public PlayersMenu(id, menumod)
  168. {
  169.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  170.    
  171.     new players[32], pnum, tempid;
  172.     new szName[32], szTempid[10];
  173.     new szText[128];
  174.     get_players(players, pnum);
  175.  
  176.     for( new i; i<pnum; i++ ) {
  177.         tempid = players[i];
  178.         get_user_name(tempid, szName, charsmax(szName));
  179.         num_to_str(tempid, szTempid, charsmax(szTempid));
  180.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  181.         {
  182.             formatex(szText, charsmax(szText), "%s \r*", szName)
  183.             menu_additem(menu, szText, szTempid, 0);
  184.         }
  185.         else menu_additem(menu, szName, szTempid, 0);
  186.     }
  187.     menu_display(id, menu, 0);
  188. }
  189. public vipbanmenu_h(id, menu, item)
  190. {
  191.     if( item == MENU_EXIT ) {
  192.  
  193.         menu_destroy(menu);
  194.         if( is_user_connected(id) )
  195.             VIPMenu(id);
  196.         return PLUGIN_HANDLED;
  197.        
  198.     }
  199.     new data[6], szName[64], access, callback;
  200.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  201.  
  202.     banid = str_to_num(data);
  203.     client_cmd(id, "messagemode INDOK_BAN");
  204.  
  205.     menu_destroy(menu);
  206.     return PLUGIN_HANDLED;
  207. }
  208. public vipkickmenu_h(id, menu, item)
  209. {
  210.     if( item == MENU_EXIT ) {
  211.  
  212.         menu_destroy(menu);
  213.         if( is_user_connected(id) )
  214.             VIPMenu(id);
  215.         return PLUGIN_HANDLED;
  216.        
  217.     }
  218.     new data[6], szName[64], access, callback;
  219.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  220.  
  221.     valamid = str_to_num(data);
  222.     client_cmd(id, "messagemode INDOK_KICK");
  223.  
  224.     menu_destroy(menu);
  225.     return PLUGIN_HANDLED;
  226. }
  227. public cmdBanUserFromMenu(id) {
  228.     read_args(g_Indok, charsmax(g_Indok))
  229.     remove_quotes(g_Indok)
  230.    
  231.     if(strlen(g_Indok) >= 15) {
  232.         client_cmd(id, "messagemode INDOK_BAN");
  233.         return PLUGIN_HANDLED
  234.     }
  235.    
  236.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  237.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  238.     {
  239.         PlayersMenu(id, 1);
  240.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  241.     }
  242.     else
  243.     {
  244.         userip = get_user_userid(banid)
  245.         get_user_name(id, iName, charsmax(iName));
  246.         get_user_name(banid, tName, charsmax(tName));
  247.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  248.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  249.         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)
  250.         ban_szavazas()
  251.         ban=true;
  252.     }
  253.     return PLUGIN_HANDLED
  254. }
  255.  
  256. public cmdKickUserFromMenu(id) {
  257.     read_args(g_Indok, charsmax(g_Indok))
  258.     remove_quotes(g_Indok)
  259.    
  260.     if(strlen(g_Indok) >= 15) {
  261.         client_cmd(id, "messagemode INDOK_KICK");
  262.         return PLUGIN_HANDLED
  263.     }
  264.    
  265.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  266.         PlayersMenu(id, 0);
  267.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  268.     }
  269.     else
  270.     {
  271.         get_user_name(id, iName, charsmax(iName))
  272.         get_user_name(valamid, tName, charsmax(tName))
  273.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  274.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  275.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  276.         server_cmd("kick #%d",  get_user_userid(valamid))
  277.        
  278.         cmdLogVipKick()
  279.         g_Indok = ""
  280.         kickvolt[id]=kicktime
  281.         if(task_exists(id+444))
  282.             remove_task(id+444)
  283.         set_task(60.0, "kick_volt", id+444);
  284.     }
  285.     return PLUGIN_HANDLED
  286. }
  287. public ban_szavazas()
  288. {
  289.     new szText[128], Name[32];
  290.     get_user_name(banid, Name, charsmax(Name));
  291.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre?\y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  292.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  293.     set_task(15.0,"ban_eredmeny")
  294.     choice = 0
  295.     return PLUGIN_HANDLED    
  296.  
  297. }
  298.  
  299. public ban_szavazatok(id,key){
  300.     new name[32]
  301.     get_user_name(id,name,31)
  302.     new players[32], pnum;
  303.     get_players(players, pnum);
  304.     new what[6]
  305.     if (key == 0) {
  306.         what = "Igen"
  307.         choice++
  308.     }
  309.     if (key == 1) what = "Nem"
  310.     new Float:iSzamol = float(100/pnum*choice)
  311.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  312.     return PLUGIN_HANDLED
  313. }
  314.  
  315. public ban_eredmeny(){
  316.     new Name[32];
  317.     get_user_name(banid, Name, charsmax(Name));
  318.     new players[32], pnum;
  319.     get_players(players, pnum);
  320.     new Float:iSzamol = float(100/pnum*choice)
  321.     new Float:Otven = 50.0
  322.  
  323.     if(iSzamol > Otven)
  324.     {
  325.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  326.        
  327.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  328.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  329.        
  330.         cmdLogVipBan()
  331.         g_Indok = ""
  332.         userip = 0
  333.         banvolt[vipid]=bantime
  334.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  335.        
  336.     }
  337.     else
  338.     {
  339.         banvolt[vipid]=pausetime
  340.         if(task_exists(vipid+333))
  341.             remove_task(vipid+333)
  342.         if(is_user_connected(vipid))
  343.             set_task(60.0, "ban_volt", vipid+333 );
  344.         print_color(0,"%s !yBannolás sikertelen kevés szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  345.     }
  346.     ban=false;
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public kick_volt(id)
  351. {
  352.     if(kickvolt[id-444]+1>0)
  353.     {
  354.         kickvolt[id-444]--
  355.         if(task_exists(id))
  356.             remove_task(id)
  357.         set_task(60.0, "kick_volt", id);
  358.     }
  359. }
  360. public ban_volt(id)
  361. {
  362.     if(banvolt[id-333]+1>0)
  363.     {
  364.         banvolt[id-333]--
  365.         if(task_exists(id))
  366.             remove_task(id)
  367.         set_task(60.0, "ban_volt", id);
  368.     }
  369. }
  370.  
  371. public vipek(user) {
  372.     new names[32]
  373.     new message[256]
  374.     new id, count, x, len
  375.  
  376.     for(id = 1 ; id <= maxplayers ; id++)
  377.         if(is_user_connected(id))
  378.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  379.                 get_user_name(id, names[count++], 31)
  380.  
  381.     len = format(message, 255, "^x04[Információ]^x01 Online VIP tagok:^x03 ")
  382.     if(count > 0) {
  383.         for(x = 0 ; x < count ; x++) {
  384.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  385.             if(len > 96 ) {
  386.                 print_message(user, message)
  387.                 len = format(message, 255, "^x04 ")
  388.             }
  389.         }
  390.         print_message(user, message)
  391.     }
  392.     else {
  393.         len += format(message[len], 255-len, "Nincs jelen vip.")
  394.         print_message(user, message)
  395.     }
  396. }
  397.  
  398. print_message(id, msg[]) {
  399.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  400.     write_byte(id)
  401.     write_string(msg)
  402.     message_end()
  403. }
  404.  
  405. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  406.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  407.  
  408.     if(get_user_flags(iPlayer) & JOG)
  409.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  410. }
  411.  
  412. stock print_color(const id, const input[], any:...)
  413. {
  414.         new count = 1, players[32]
  415.         static msg[191]
  416.         vformat(msg, 190, input, 3)
  417.  
  418.         replace_all(msg, 190, "!g", "^4")
  419.         replace_all(msg, 190, "!y", "^1")
  420.         replace_all(msg, 190, "!t", "^3")      
  421.  
  422.         if (id) players[0] = id; else get_players(players, count, "ch")
  423.         {
  424.                 for (new i = 0; i < count; i++)
  425.                 {
  426.                         if (is_user_connected(players[i]))
  427.                         {
  428.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  429.                                 write_byte(players[i])
  430.                                 write_string(msg)
  431.                                 message_end()
  432.                         }
  433.                 }
  434.         }
  435.         return PLUGIN_HANDLED
  436. }
  437.  
  438. public cmdLogVipBan() {
  439.     new output[364], iTimes[64]
  440.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  441.     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)
  442.     new file = fopen(file_to_write, "at")
  443.     fprintf(file, "%s", output)
  444.     fclose(file)
  445. }
  446.  
  447. public cmdLogVipKick() {
  448.     new output[364], iTimes[64]
  449.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  450.     formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  451.     new file = fopen(file_to_write, "at")
  452.     fprintf(file, "%s", output)
  453.     fclose(file)
  454. }

Most komolyan egy pár témával ezelőtti plugint fogtad és az authort is átírtad?

Hol található ez a plugin mondjad már?

viewtopic.php?f=29&p=205431#p205431


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vip menü segítségkérés
HozzászólásElküldve: 2018.12.09. 13:21 
Offline
Beavatott
Avatar

Csatlakozott: 2018.12.09. 10:07
Hozzászólások: 84
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 5 alkalommal
SidLuke írta:
Szia, prefix nincs-bent a TAB gomb megnyomásával meglátható a szerveren hogy ki VIP
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "VIP TAB NO PREFIX"
  8. #define VERSION "1.0"
  9. #define AUTHOR "SidLuke"
  10.  
  11. #define JOG ADMIN_LEVEL_B
  12.  
  13. #define kicktime 7
  14. #define bantime 15
  15. #define pausetime 3
  16.  
  17. enum {
  18.     SCOREATTRIB_ARG_PLAYERID = 1,
  19.     SCOREATTRIB_ARG_FLAGS
  20. };
  21.  
  22. enum ( <<= 1 ) {
  23.     SCOREATTRIB_FLAG_NONE = 0,
  24.     SCOREATTRIB_FLAG_DEAD = 1,
  25.     SCOREATTRIB_FLAG_BOMB,
  26.     SCOREATTRIB_FLAG_VIP
  27. };
  28.  
  29. new file_to_write[64], iName[32], tName[32], iFormatId[30], tFormatId[30], g_Indok[121], userip
  30.  
  31. new banid, valamid, vipid
  32.  
  33. new choice
  34. new const Prefix[] = "!g[Információ]";
  35.  
  36. new maxplayers
  37. new gmsgSayText
  38. new kickvolt[33], banvolt[33]
  39. new bool:ban=false
  40.  
  41. public plugin_init() {
  42.     register_plugin(PLUGIN, VERSION, AUTHOR)
  43.    
  44.     maxplayers = get_maxplayers()
  45.     gmsgSayText = get_user_msgid("SayText")
  46.    
  47.     register_clcmd( "say /vipmenu","VIPMenu");
  48.     register_concmd("vipmenu", "VIPMenu");
  49.     register_clcmd("say /vips", "vipek")
  50.    
  51.     register_event("DeathMsg","onDeath","a")
  52.    
  53.     register_clcmd("INDOK_KICK", "cmdKickUserFromMenu")
  54.     register_clcmd("INDOK_BAN", "cmdBanUserFromMenu")
  55.    
  56.     register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  57.    
  58.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  59.    
  60.     new configsdir[64]
  61.     get_configsdir(configsdir, 63)
  62.     formatex(file_to_write, 63,"%s/vipban.txt", configsdir)  
  63. }
  64.  
  65. public onDeath()
  66. {
  67.     new killer = read_data(1);
  68.     new victim = read_data(2);
  69.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  70.    
  71.     if(get_user_flags(killer) & JOG)
  72.     {
  73.         if(killer != victim && !TK && is_user_alive(killer))
  74.         {
  75.             new nhp, khp = get_user_health(killer);
  76.             if(khp >= 140) nhp = 150;
  77.             else nhp = khp + 10;
  78.             set_user_health(killer, nhp);
  79.         }
  80.     }
  81. }
  82.  
  83. public client_putinserver(id)
  84. {
  85.     if(get_user_flags(id) & JOG)
  86.     {
  87.         kickvolt[id]=kicktime
  88.         if(task_exists(id+444))
  89.             remove_task(id+444)
  90.         set_task(60.0, "kick_volt", id+444);
  91.         banvolt[id]=bantime
  92.         if(task_exists(id+333))
  93.             remove_task(id+333)
  94.         set_task(60.0, "ban_volt", id+333);
  95.         set_task(2.0, "udvozlo", id+222);
  96.     }
  97. }
  98.  
  99. public udvozlo(id)
  100. {
  101.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  102.     {
  103.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  104.         new name[32]
  105.         get_user_name(id-222, name, charsmax(name));
  106.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  107.     }
  108. }
  109.  
  110. public VIPMenu(id) {
  111.     if(get_user_flags(id) & JOG) {
  112.    
  113.         new menu = menu_create("\n[SidLuke] \yVIP menü", "VMenu_h")
  114.         new szText[128];
  115.  
  116.         if(kickvolt[id]>0)
  117.         {
  118.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  119.             menu_additem(menu, szText, "1", 0);
  120.         }
  121.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  122.        
  123.         if(banvolt[id]>0)
  124.         {
  125.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  126.             menu_additem(menu, szText, "2", 0);
  127.         }
  128.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  129.        
  130.    
  131.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  132.         menu_display(id, menu, 0);
  133.     }
  134.     else print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  135.  
  136. }
  137.  
  138. public VMenu_h(id, menu, item, level, cid) {
  139.     if( item == MENU_EXIT ) {
  140.         menu_destroy(menu);
  141.         return PLUGIN_HANDLED;
  142.     }
  143.  
  144.     new data[6], szName[64];
  145.     new access, callback;
  146.  
  147.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  148.    
  149.     new key = str_to_num(data);
  150.     switch(key) {
  151.         case 1: {
  152.            
  153.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  154.             else PlayersMenu(id, 0)
  155.         }
  156.         case 2: {
  157.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  158.             else PlayersMenu(id, 1)
  159.         }
  160.     }
  161.  
  162.     menu_destroy(menu);
  163.     return PLUGIN_HANDLED;
  164.  
  165. }
  166.  
  167. public PlayersMenu(id, menumod)
  168. {
  169.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  170.    
  171.     new players[32], pnum, tempid;
  172.     new szName[32], szTempid[10];
  173.     new szText[128];
  174.     get_players(players, pnum);
  175.  
  176.     for( new i; i<pnum; i++ ) {
  177.         tempid = players[i];
  178.         get_user_name(tempid, szName, charsmax(szName));
  179.         num_to_str(tempid, szTempid, charsmax(szTempid));
  180.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  181.         {
  182.             formatex(szText, charsmax(szText), "%s \r*", szName)
  183.             menu_additem(menu, szText, szTempid, 0);
  184.         }
  185.         else menu_additem(menu, szName, szTempid, 0);
  186.     }
  187.     menu_display(id, menu, 0);
  188. }
  189. public vipbanmenu_h(id, menu, item)
  190. {
  191.     if( item == MENU_EXIT ) {
  192.  
  193.         menu_destroy(menu);
  194.         if( is_user_connected(id) )
  195.             VIPMenu(id);
  196.         return PLUGIN_HANDLED;
  197.        
  198.     }
  199.     new data[6], szName[64], access, callback;
  200.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  201.  
  202.     banid = str_to_num(data);
  203.     client_cmd(id, "messagemode INDOK_BAN");
  204.  
  205.     menu_destroy(menu);
  206.     return PLUGIN_HANDLED;
  207. }
  208. public vipkickmenu_h(id, menu, item)
  209. {
  210.     if( item == MENU_EXIT ) {
  211.  
  212.         menu_destroy(menu);
  213.         if( is_user_connected(id) )
  214.             VIPMenu(id);
  215.         return PLUGIN_HANDLED;
  216.        
  217.     }
  218.     new data[6], szName[64], access, callback;
  219.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  220.  
  221.     valamid = str_to_num(data);
  222.     client_cmd(id, "messagemode INDOK_KICK");
  223.  
  224.     menu_destroy(menu);
  225.     return PLUGIN_HANDLED;
  226. }
  227. public cmdBanUserFromMenu(id) {
  228.     read_args(g_Indok, charsmax(g_Indok))
  229.     remove_quotes(g_Indok)
  230.    
  231.     if(strlen(g_Indok) >= 15) {
  232.         client_cmd(id, "messagemode INDOK_BAN");
  233.         return PLUGIN_HANDLED
  234.     }
  235.    
  236.     if(ban) print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  237.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  238.     {
  239.         PlayersMenu(id, 1);
  240.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  241.     }
  242.     else
  243.     {
  244.         userip = get_user_userid(banid)
  245.         get_user_name(id, iName, charsmax(iName));
  246.         get_user_name(banid, tName, charsmax(tName));
  247.         get_user_authid(id, iFormatId, charsmax(iFormatId));
  248.         get_user_authid(banid, tFormatId, charsmax(tFormatId));
  249.         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)
  250.         ban_szavazas()
  251.         ban=true;
  252.     }
  253.     return PLUGIN_HANDLED
  254. }
  255.  
  256. public cmdKickUserFromMenu(id) {
  257.     read_args(g_Indok, charsmax(g_Indok))
  258.     remove_quotes(g_Indok)
  259.    
  260.     if(strlen(g_Indok) >= 15) {
  261.         client_cmd(id, "messagemode INDOK_KICK");
  262.         return PLUGIN_HANDLED
  263.     }
  264.    
  265.     if(get_user_flags(valamid) & ADMIN_KICK || get_user_flags(valamid) & JOG) {
  266.         PlayersMenu(id, 0);
  267.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  268.     }
  269.     else
  270.     {
  271.         get_user_name(id, iName, charsmax(iName))
  272.         get_user_name(valamid, tName, charsmax(tName))
  273.         get_user_authid(id, iFormatId, charsmax(iFormatId))
  274.         get_user_authid(valamid, tFormatId, charsmax(tFormatId))
  275.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t. Indok: %s", Prefix, iName, tName, g_Indok)
  276.         server_cmd("kick #%d",  get_user_userid(valamid))
  277.        
  278.         cmdLogVipKick()
  279.         g_Indok = ""
  280.         kickvolt[id]=kicktime
  281.         if(task_exists(id+444))
  282.             remove_task(id+444)
  283.         set_task(60.0, "kick_volt", id+444);
  284.     }
  285.     return PLUGIN_HANDLED
  286. }
  287. public ban_szavazas()
  288. {
  289.     new szText[128], Name[32];
  290.     get_user_name(banid, Name, charsmax(Name));
  291.     formatex(szText, charsmax(szText), "\wBannoljuk \r%s\w-t \d15 \wpercre?\y(Indok: %s)\w^n^n1. Igen^n2. Nem", Name, g_Indok)
  292.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  293.     set_task(15.0,"ban_eredmeny")
  294.     choice = 0
  295.     return PLUGIN_HANDLED    
  296.  
  297. }
  298.  
  299. public ban_szavazatok(id,key){
  300.     new name[32]
  301.     get_user_name(id,name,31)
  302.     new players[32], pnum;
  303.     get_players(players, pnum);
  304.     new what[6]
  305.     if (key == 0) {
  306.         what = "Igen"
  307.         choice++
  308.     }
  309.     if (key == 1) what = "Nem"
  310.     new Float:iSzamol = float(100/pnum*choice)
  311.     print_color(0,"!t%s !yszavazata !t%s !y(!g%0.0f%% !y/ !g100%%!y)", name, what, iSzamol)
  312.     return PLUGIN_HANDLED
  313. }
  314.  
  315. public ban_eredmeny(){
  316.     new Name[32];
  317.     get_user_name(banid, Name, charsmax(Name));
  318.     new players[32], pnum;
  319.     get_players(players, pnum);
  320.     new Float:iSzamol = float(100/pnum*choice)
  321.     new Float:Otven = 50.0
  322.  
  323.     if(iSzamol > Otven)
  324.     {
  325.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre. Indok: %s", Prefix, Name, g_Indok)
  326.        
  327.         if(!is_user_connected(banid)) server_cmd("amx_addban ^"%s^" ^"%s^" ^"15^" ^"VIP altal Bannolva^"", tName, tFormatId);
  328.         else server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"", userip);
  329.        
  330.         cmdLogVipBan()
  331.         g_Indok = ""
  332.         userip = 0
  333.         banvolt[vipid]=bantime
  334.         if(is_user_connected(vipid)) set_task(60.0, "ban_volt", vipid+333 );
  335.        
  336.     }
  337.     else
  338.     {
  339.         banvolt[vipid]=pausetime
  340.         if(task_exists(vipid+333))
  341.             remove_task(vipid+333)
  342.         if(is_user_connected(vipid))
  343.             set_task(60.0, "ban_volt", vipid+333 );
  344.         print_color(0,"%s !yBannolás sikertelen kevés szavazat miatt, !t%s!y nem lesz bannolva.", Prefix,Name)
  345.     }
  346.     ban=false;
  347.     return PLUGIN_CONTINUE
  348. }
  349.  
  350. public kick_volt(id)
  351. {
  352.     if(kickvolt[id-444]+1>0)
  353.     {
  354.         kickvolt[id-444]--
  355.         if(task_exists(id))
  356.             remove_task(id)
  357.         set_task(60.0, "kick_volt", id);
  358.     }
  359. }
  360. public ban_volt(id)
  361. {
  362.     if(banvolt[id-333]+1>0)
  363.     {
  364.         banvolt[id-333]--
  365.         if(task_exists(id))
  366.             remove_task(id)
  367.         set_task(60.0, "ban_volt", id);
  368.     }
  369. }
  370.  
  371. public vipek(user) {
  372.     new names[32]
  373.     new message[256]
  374.     new id, count, x, len
  375.  
  376.     for(id = 1 ; id <= maxplayers ; id++)
  377.         if(is_user_connected(id))
  378.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  379.                 get_user_name(id, names[count++], 31)
  380.  
  381.     len = format(message, 255, "^x04[Információ]^x01 Online VIP tagok:^x03 ")
  382.     if(count > 0) {
  383.         for(x = 0 ; x < count ; x++) {
  384.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  385.             if(len > 96 ) {
  386.                 print_message(user, message)
  387.                 len = format(message, 255, "^x04 ")
  388.             }
  389.         }
  390.         print_message(user, message)
  391.     }
  392.     else {
  393.         len += format(message[len], 255-len, "Nincs jelen vip.")
  394.         print_message(user, message)
  395.     }
  396. }
  397.  
  398. print_message(id, msg[]) {
  399.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  400.     write_byte(id)
  401.     write_string(msg)
  402.     message_end()
  403. }
  404.  
  405. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  406.     new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  407.  
  408.     if(get_user_flags(iPlayer) & JOG)
  409.         set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  410. }
  411.  
  412. stock print_color(const id, const input[], any:...)
  413. {
  414.         new count = 1, players[32]
  415.         static msg[191]
  416.         vformat(msg, 190, input, 3)
  417.  
  418.         replace_all(msg, 190, "!g", "^4")
  419.         replace_all(msg, 190, "!y", "^1")
  420.         replace_all(msg, 190, "!t", "^3")      
  421.  
  422.         if (id) players[0] = id; else get_players(players, count, "ch")
  423.         {
  424.                 for (new i = 0; i < count; i++)
  425.                 {
  426.                         if (is_user_connected(players[i]))
  427.                         {
  428.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  429.                                 write_byte(players[i])
  430.                                 write_string(msg)
  431.                                 message_end()
  432.                         }
  433.                 }
  434.         }
  435.         return PLUGIN_HANDLED
  436. }
  437.  
  438. public cmdLogVipBan() {
  439.     new output[364], iTimes[64]
  440.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  441.     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)
  442.     new file = fopen(file_to_write, "at")
  443.     fprintf(file, "%s", output)
  444.     fclose(file)
  445. }
  446.  
  447. public cmdLogVipKick() {
  448.     new output[364], iTimes[64]
  449.     get_time("< Datum: %Y-%m-%d | Ido: %H-%M-%S >", iTimes, charsmax(iTimes));
  450.     formatex(output, 363, "%s VIP %s [ID: %s] kickelte %s-t [ID: %s] | Indok: %s^n", iTimes, iName, iFormatId, tName, tFormatId, g_Indok)
  451.     new file = fopen(file_to_write, "at")
  452.     fprintf(file, "%s", output)
  453.     fclose(file)
  454. }

Hamár átirod az author-t akkor meg addom az én javítot változatom.

A plugin-t nem én készitettem.
  1. ////Improved version by ✪ BeNiCh'
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <cstrike>
  6. #include <fun>
  7. #include <hamsandwich>
  8.  
  9. #define JOG ADMIN_LEVEL_H
  10.  
  11. #define kicktime 0
  12. #define bantime 0
  13. #define pausetime 3
  14.  
  15. new banid, vipid, banolo_id
  16.  
  17. new choice[2]
  18. new const Prefix[] = "!g[Információ]";
  19.  
  20. new maxplayers
  21. new gmsgSayText
  22. new kickvolt[33], banvolt[33]
  23. new bool:ban=false
  24.  
  25. public plugin_init() { 
  26.     maxplayers = get_maxplayers()
  27.     gmsgSayText = get_user_msgid("SayText")
  28.    
  29.     register_clcmd( "say /vipmenu","VIPMenu");
  30.     register_concmd("vipmenu", "VIPMenu");
  31.     register_clcmd("say /vips", "vipek")
  32.    
  33.     register_event("DeathMsg","onDeath","a")
  34.    
  35.     register_menucmd(register_menuid("menu1"),(1<<0)|(1<<1),"ban_szavazatok")
  36. }
  37.  
  38. public onDeath()
  39. {
  40.     new killer = read_data(1);
  41.     new victim = read_data(2);
  42.     new bool: TK = get_user_team(killer) == get_user_team(victim);
  43.    
  44.     if(get_user_flags(killer) & JOG)
  45.     {
  46.         if(killer != victim && !TK && is_user_alive(killer))
  47.         {
  48.             new nhp, khp = get_user_health(killer);
  49.             if(khp >= 95) nhp = 100;
  50.             else nhp = khp + 5;
  51.             set_user_health(killer, nhp);
  52.         }
  53.     }
  54. }
  55.  
  56. public client_putinserver(id)
  57. {
  58.     if(get_user_flags(id) & JOG)
  59.     {
  60.         kickvolt[id]=kicktime
  61.         if(task_exists(id+444))
  62.             remove_task(id+444)
  63.         set_task(60.0, "kick_volt", id+444);
  64.         banvolt[id]=bantime
  65.         if(task_exists(id+333))
  66.             remove_task(id+333)
  67.         set_task(60.0, "ban_volt", id+333);
  68.         set_task(2.0, "udvozlo", id+222);
  69.     }
  70. }
  71.  
  72. public udvozlo(id)
  73. {
  74.     if(!(get_user_flags(id-222) & ADMIN_KICK))
  75.     {
  76.         print_color(id-222, "%s !yVIP tag vagy ezen a szerveren, használhatod a !t/vipmenu !yparancsot.", Prefix)
  77.         new name[32]
  78.         get_user_name(id-222, name, charsmax(name));
  79.         print_color(0, "%s !t%s !yVIP tag csatlakozott a szerverre.", Prefix, name)
  80.     }
  81. }
  82.  
  83. public VIPMenu(id) {
  84.     if(get_user_flags(id) & JOG) {
  85.    
  86.         new menu = menu_create("\n[VIP INFORMÁCIÓ] \yVIP menü", "VMenu_h")
  87.         new szText[128];
  88.  
  89.         if(kickvolt[id]>0)
  90.         {
  91.             formatex(szText, charsmax(szText), "\dJátékos kirágás\r(%d perc múlva)", kickvolt[id])
  92.             menu_additem(menu, szText, "1", 0);
  93.         }
  94.         else menu_additem(menu, "\wJátekos kirugás", "1", 0);
  95.        
  96.         if(banvolt[id]>0)
  97.         {
  98.             formatex(szText, charsmax(szText), "\dBannolás szavaztatás\r(%d perc múlva)", banvolt[id])
  99.             menu_additem(menu, szText, "2", 0);
  100.         }
  101.         else menu_additem(menu, "\wBannolás szavaztatás", "2", 0);
  102.        
  103.    
  104.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  105.         menu_display(id, menu, 0);
  106.     }
  107.     else
  108.         print_color(id, "%s !yEzt a parancsot csak !tVIP !ytagok használhatják!", Prefix)
  109.  
  110. }
  111.  
  112. public VMenu_h(id, menu, item, level, cid) {
  113.     if( item == MENU_EXIT ) {
  114.         menu_destroy(menu);
  115.         return PLUGIN_HANDLED;
  116.     }
  117.  
  118.     new data[6], szName[64];
  119.     new access, callback;
  120.  
  121.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  122.    
  123.     new key = str_to_num(data);
  124.     switch(key) {
  125.         case 1: {
  126.            
  127.             if(kickvolt[id]>0) print_color(id, "%s !yNem tudsz kirúgni senkit még !t%d !ypercig!", Prefix, kickvolt[id])
  128.             else PlayersMenu(id, 0)
  129.         }
  130.         case 2: {
  131.             if(banvolt[id]>0) print_color(id, "%s !yNem tudsz bannolást szavaztatni még !t%d !ypercig!", Prefix, banvolt[id])
  132.             else PlayersMenu(id, 1)
  133.         }
  134.     }
  135.  
  136.     menu_destroy(menu);
  137.     return PLUGIN_HANDLED;
  138.  
  139. }
  140.  
  141. public PlayersMenu(id, menumod)
  142. {
  143.     new menu = menumod == 1 ?  menu_create("\yJátékos bannolás menü:", "vipbanmenu_h") : menu_create("\yJátékos kirugás menü:", "vipkickmenu_h")
  144.    
  145.     new players[32], pnum, tempid;
  146.     new szName[32], szTempid[10];
  147.     new szText[128];
  148.     get_players(players, pnum);
  149.  
  150.     for( new i; i<pnum; i++ ) {
  151.         tempid = players[i];
  152.         get_user_name(tempid, szName, charsmax(szName));
  153.         num_to_str(tempid, szTempid, charsmax(szTempid));
  154.         if((get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG))
  155.         {
  156.             formatex(szText, charsmax(szText), "%s \r*", szName)
  157.             menu_additem(menu, szText, szTempid, 0);
  158.         }
  159.         else menu_additem(menu, szName, szTempid, 0);
  160.     }
  161.     menu_display(id, menu, 0);
  162. }
  163.  
  164. public vipbanmenu_h(id, menu, item) {
  165.     if( item == MENU_EXIT ) {
  166.  
  167.         menu_destroy(menu);
  168.         if( is_user_connected(id) )
  169.             VIPMenu(id);
  170.         return PLUGIN_HANDLED;
  171.        
  172.     }
  173.  
  174.     new data[6], szName[64];
  175.     new access, callback;
  176.    
  177.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  178.  
  179.     banid = str_to_num(data);
  180.     vipid=id;
  181.    
  182.     if(ban)
  183.         print_color(id, "%s !yJelenleg folyamatban van egy ban szavazás, nem tudsz bannolást szavaztatni.", Prefix)
  184.     else if(get_user_flags(banid) & ADMIN_KICK || get_user_flags(banid) & JOG)
  185.     {
  186.         PlayersMenu(id, 1);
  187.         client_print(id, print_center, "Ban szavazás sikertelen immunitás miatt!")
  188.     }
  189.     else
  190.     {
  191.         new Name[32], Name2[32]
  192.         get_user_name(id, Name, charsmax(Name));
  193.         get_user_name(banid, Name2, charsmax(Name2));
  194.         print_color(id, "%s !yVIP !t%s!y: szavazást indított !t%s !ybannolásáról.", Prefix, Name, Name2)
  195.         ban_szavazas()
  196.         ban=true;
  197.     }
  198.     menu_destroy(menu);
  199.     return PLUGIN_HANDLED;
  200. }
  201.  
  202. public vipkickmenu_h(id, menu, item) {
  203.     if( item == MENU_EXIT ) {
  204.  
  205.         menu_destroy(menu);
  206.         if( is_user_connected(id) )
  207.             VIPMenu(id);
  208.         return PLUGIN_HANDLED;
  209.        
  210.     }
  211.  
  212.     new data[6], szName[64];
  213.     new access, callback;
  214.    
  215.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  216.  
  217.     new tempid = str_to_num(data);
  218.    
  219.     if(get_user_flags(tempid) & ADMIN_KICK || get_user_flags(tempid) & JOG) {
  220.         PlayersMenu(id, 0);
  221.         client_print(id, print_center, "Kickelés sikertelen immunitas miatt!")
  222.     }
  223.     else
  224.     {
  225.         new Name1[32], Name2[32]
  226.         get_user_name(id, Name1, charsmax(Name1));
  227.         get_user_name(tempid, Name2, charsmax(Name2));
  228.         print_color(0, "%s !yVIP !t%s!y: kirúgta !t%s!y-t", Prefix, Name1, Name2)
  229.         server_cmd("kick #%d",  get_user_userid(tempid))
  230.         log_amx("VIP KICK: %s kirugta %s -t", Name1, Name2)
  231.         //log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, reason)
  232.         kickvolt[id]=kicktime
  233.         if(task_exists(id+444))
  234.             remove_task(id+444)
  235.         set_task(60.0, "kick_volt", id+444);
  236.     }
  237.     menu_destroy(menu);
  238.     return PLUGIN_HANDLED;
  239.  
  240. }
  241.  
  242. public ban_szavazas()
  243. {
  244.     new szText[128], Name[32];
  245.     get_user_name(banid, Name, charsmax(Name));
  246.     formatex(szText, charsmax(szText), "\yBannoljuk %s -t 15 percre?\w^n^n1. Igen^n2. Nem", Name )
  247.     show_menu(0,(1<<0)|(1<<1), szText, 15, "menu1")
  248.     set_task(15.0,"ban_eredmeny")
  249.     choice[0] = 0
  250.     choice[1] = 0
  251.     return PLUGIN_HANDLED    
  252.  
  253. }
  254.  
  255. public ban_szavazatok(id,key){
  256.     new name[32]
  257.     get_user_name(id,name,31)
  258.     new what[6] = "Igen"
  259.     if (key == 1) what = "Nem"
  260.     print_color(0,"!t%s !yszavazata !t%s", name, what)
  261.     ++choice[key]
  262.     return PLUGIN_HANDLED
  263. }
  264.  
  265. public ban_eredmeny(){
  266.     new Name1[32]
  267.     get_user_name(banolo_id, Name1, charsmax(Name1));
  268.     new Name[32];
  269.     get_user_name(banid, Name, charsmax(Name));
  270.     new players[32], pnum;
  271.  
  272.     get_players(players, pnum);
  273.     if(((choice[0]+choice[1])*100/pnum) < 85)
  274.         print_color(0, "%s !yBannolás sikertelen kevés szavazat miatt.", Prefix)
  275.     if ((choice[0]*100/pnum) >= 75)
  276.     {
  277.         new authid[32]
  278.         new userid = get_user_userid(banid)
  279.         new userid_banolo = get_user_userid(banolo_id)
  280.         get_user_authid(banid, authid, 31)
  281.        
  282.         print_color(0,"%s !ySzavazás sikeres, !t%s !ybannolva !t15 !ypercre.", Prefix, Name)
  283.        
  284.         if (!equal("STEAM_0:", authid, 8))
  285.             server_cmd("amx_banip #%i ^"15.0^" ^"VIP altal Bannolva^"",userid);
  286.             //log_amx("VIP IP BAN: %s kitiltotta 15 percre %s -t", Name1, Name);
  287.         else
  288.             server_cmd("amx_ban #%i ^"15.0^" ^"VIP altal Bannolva^"",userid);
  289.             //log_amx("VIP BAN: %s kitiltotta 15 percre %s -t", Name1, Name);
  290.            
  291.         log_amx("VIP BAN: %s [%i] kitiltotta 15 percre %s [%i] -t", Name1, userid_banolo, Name, userid);
  292.         banvolt[vipid]=bantime
  293.         if(is_user_connected(vipid))
  294.             set_task(60.0, "ban_volt", vipid+333 );
  295.        
  296.     }
  297.     else
  298.     {
  299.         banvolt[vipid]=pausetime
  300.         if(task_exists(vipid+333))
  301.             remove_task(vipid+333)
  302.         if(is_user_connected(vipid))
  303.             set_task(60.0, "ban_volt", vipid+333 );
  304.         print_color(0,"%s !ySzavazás sikertelen, !t%s!y nem lesz bannolva.", Prefix,Name)
  305.     }
  306.     ban=false;
  307.     return PLUGIN_CONTINUE
  308. }
  309.  
  310. public kick_volt(id)
  311. {
  312.     if(kickvolt[id-444]+1>0)
  313.     {
  314.         kickvolt[id-444]--
  315.         if(task_exists(id))
  316.             remove_task(id)
  317.         set_task(60.0, "kick_volt", id);
  318.     }
  319. }
  320. public ban_volt(id)
  321. {
  322.     if(banvolt[id-333]+1>0)
  323.     {
  324.         banvolt[id-333]--
  325.         if(task_exists(id))
  326.             remove_task(id)
  327.         set_task(60.0, "ban_volt", id);
  328.     }
  329. }
  330.  
  331. public vipek(user) {
  332.     new names[32]
  333.     new message[256]
  334.     new id, count, x, len
  335.  
  336.     for(id = 1 ; id <= maxplayers ; id++)
  337.         if(is_user_connected(id))
  338.             if((get_user_flags(id) & JOG) && !(get_user_flags(id) & ADMIN_KICK))
  339.                 get_user_name(id, names[count++], 31)
  340.  
  341.     len = format(message, 255, "^x04[AK26]^x01 Online VIP tagok:^x03 ")
  342.     if(count > 0) {
  343.         for(x = 0 ; x < count ; x++) {
  344.             len += format(message[len], 255-len, "%s%s ", names[x], x < (count-1) ? "^x01,^x04 ":"")
  345.             if(len > 96 ) {
  346.                 print_message(user, message)
  347.                 len = format(message, 255, "^x04 ")
  348.             }
  349.         }
  350.         print_message(user, message)
  351.     }
  352.     else {
  353.         len += format(message[len], 255-len, "Nincs jelen vip.")
  354.         print_message(user, message)
  355.     }
  356. }
  357.  
  358. print_message(id, msg[]) {
  359.     message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  360.     write_byte(id)
  361.     write_string(msg)
  362.     message_end()
  363. }
  364.  
  365. stock print_color(const id, const input[], any:...)
  366. {
  367.         new count = 1, players[32]
  368.         static msg[191]
  369.         vformat(msg, 190, input, 3)
  370.  
  371.         replace_all(msg, 190, "!g", "^4")
  372.         replace_all(msg, 190, "!y", "^1")
  373.         replace_all(msg, 190, "!t", "^3")      
  374.  
  375.         if (id) players[0] = id; else get_players(players, count, "ch")
  376.         {
  377.                 for (new i = 0; i < count; i++)
  378.                 {
  379.                         if (is_user_connected(players[i]))
  380.                         {
  381.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  382.                                 write_byte(players[i])
  383.                                 write_string(msg)
  384.                                 message_end()
  385.                         }
  386.                 }
  387.         }
  388.         return PLUGIN_HANDLED
  389. }

_________________
[steam]steamcommunity.com/id/XaHuReW-NEW/[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 23 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole