hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.22. 06:49



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Adminmenü ban
HozzászólásElküldve: 2016.12.24. 15:08 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Amióta fentvan a ReHLDS azóta az amxmodmenu-ból kiosztott bannok mint IP-re szólnak és nem SteamID-re.
Mitől lehet ez és hogy tudnám visszaállítani?

Rechecker-es bannok rendesen mennek SteamID-re, csak a menüsök nem.


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Adminmenü ban
HozzászólásElküldve: 2016.12.31. 15:03 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Megoldás:
mforce féle advanced bans berakása, a sima nem bannol SteamID-re STEAM_0:xxxxxx-nél különbözőeket, mert most reunion óta STEAM_1:xxxxx lett sokak SteamID-je a szerveren.

Zárást kérnék ha lehet.


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Adminmenü ban
HozzászólásElküldve: 2016.12.31. 17:07 
Offline
Félisten
Avatar

Csatlakozott: 2015.03.12. 18:30
Hozzászólások: 975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
 ! Moderátori megjegyzés (kengurumancs):
Láttam lezárták, de a megoldás:
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define AMXMODX_NOAUTOLOAD
  5. #include <cstrike>
  6.  
  7. new g_menuPosition[33]
  8. new g_menuPlayers[33][32]
  9. new g_menuPlayersNum[33]
  10. new g_menuOption[33]
  11. new g_menuSettings[33]
  12.  
  13. new g_menuSelect[33][64]
  14. new g_menuSelectNum[33]
  15.  
  16. #define MAX_CLCMDS 24
  17.  
  18. new g_clcmdName[MAX_CLCMDS][32]
  19. new g_clcmdCmd[MAX_CLCMDS][64]
  20. new g_clcmdMisc[MAX_CLCMDS][2]
  21. new g_clcmdNum
  22.  
  23. new g_coloredMenus
  24. new g_cstrike = 0
  25.  
  26. new Array:g_bantimes;
  27. new Array:g_slapsettings;
  28.  
  29. new g_CSTeamNames[3][] = {
  30.     "TERRORIST",
  31.     "CT",
  32.     "SPECTATOR"
  33. }
  34. new g_CSTeamNumbers[3][] = {
  35.     "1",
  36.     "2",
  37.     "6"
  38. }
  39. new g_CSTeamiNumbers[3] = {
  40.     1,
  41.     2,
  42.     6
  43. }
  44.  
  45. new g_ban_player[33];
  46.  
  47.  
  48. public plugin_natives()
  49. {
  50.     set_module_filter("module_filter")
  51.     set_native_filter("native_filter")
  52. }
  53.  
  54. public plugin_init()
  55. {
  56.     register_plugin("Players Menu", AMXX_VERSION_STR, "AMXX Dev Team")
  57.     register_dictionary("common.txt")
  58.     register_dictionary("admincmd.txt")
  59.     register_dictionary("plmenu.txt")
  60.  
  61.     register_clcmd("amx_kickmenu", "cmdKickMenu", ADMIN_KICK, "- displays kick menu")
  62.     register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu")
  63.     register_clcmd("amx_slapmenu", "cmdSlapMenu", ADMIN_SLAY, "- displays slap/slay menu")
  64.     register_clcmd("amx_teammenu", "cmdTeamMenu", ADMIN_LEVEL_A, "- displays team menu")
  65.     register_clcmd("amx_clcmdmenu", "cmdClcmdMenu", ADMIN_LEVEL_A, "- displays client cmds menu")
  66.     register_clcmd("amx_banreason", "CmdBanReason", ADMIN_BAN, "<reason>");
  67.  
  68.     register_menucmd(register_menuid("Ban Menu"), 1023, "actionBanMenu")
  69.     register_menucmd(register_menuid("Kick Menu"), 1023, "actionKickMenu")
  70.     register_menucmd(register_menuid("Slap/Slay Menu"), 1023, "actionSlapMenu")
  71.     register_menucmd(register_menuid("Team Menu"), 1023, "actionTeamMenu")
  72.     register_menucmd(register_menuid("Client Cmds Menu"), 1023, "actionClcmdMenu")
  73.    
  74.    
  75.     g_bantimes = ArrayCreate();
  76.     // Load up the old default values
  77.     ArrayPushCell(g_bantimes, 0);
  78.     ArrayPushCell(g_bantimes, 5);
  79.     ArrayPushCell(g_bantimes, 10);
  80.     ArrayPushCell(g_bantimes, 15);
  81.     ArrayPushCell(g_bantimes, 30);
  82.     ArrayPushCell(g_bantimes, 45);
  83.     ArrayPushCell(g_bantimes, 60);
  84.    
  85.    
  86.     g_slapsettings = ArrayCreate();
  87.     // Old default values
  88.     ArrayPushCell(g_slapsettings, 0); // First option is ignored - it is slay
  89.     ArrayPushCell(g_slapsettings, 0); // slap 0 damage
  90.     ArrayPushCell(g_slapsettings, 1);
  91.     ArrayPushCell(g_slapsettings, 5);
  92.    
  93.    
  94.     register_srvcmd("amx_plmenu_bantimes", "plmenu_setbantimes");
  95.     register_srvcmd("amx_plmenu_slapdmg", "plmenu_setslapdmg");
  96.  
  97.     g_coloredMenus = colored_menus()
  98.  
  99.     new clcmds_ini_file[64]
  100.     get_configsdir(clcmds_ini_file, 63)
  101.     format(clcmds_ini_file, 63, "%s/clcmds.ini", clcmds_ini_file)
  102.     load_settings(clcmds_ini_file)
  103.  
  104.     if (module_exists("cstrike"))
  105.         g_cstrike = 1
  106. }
  107. public plmenu_setbantimes()
  108. {
  109.     new buff[32];
  110.     new args = read_argc();
  111.    
  112.     if (args <= 1)
  113.     {
  114.         server_print("usage: amx_plmenu_bantimes <time1> [time2] [time3] ...");
  115.         server_print("   use time of 0 for permanent.");
  116.        
  117.         return;
  118.     }
  119.    
  120.     ArrayClear(g_bantimes);
  121.    
  122.     for (new i = 1; i < args; i++)
  123.     {
  124.         read_argv(i, buff, charsmax(buff));
  125.        
  126.         ArrayPushCell(g_bantimes, str_to_num(buff));
  127.        
  128.     }
  129.    
  130. }
  131. public plmenu_setslapdmg()
  132. {
  133.     new buff[32];
  134.     new args = read_argc();
  135.    
  136.     if (args <= 1)
  137.     {
  138.         server_print("usage: amx_plmenu_slapdmg <dmg1> [dmg2] [dmg3] ...");
  139.         server_print("   slay is automatically set for the first value.");
  140.        
  141.         return;
  142.     }
  143.    
  144.     ArrayClear(g_slapsettings);
  145.    
  146.     ArrayPushCell(g_slapsettings, 0); // compensate for slay
  147.    
  148.     for (new i = 1; i < args; i++)
  149.     {
  150.         read_argv(i, buff, charsmax(buff));
  151.        
  152.         ArrayPushCell(g_slapsettings, str_to_num(buff));
  153.        
  154.     }
  155.    
  156. }
  157. public module_filter(const module[])
  158. {
  159.     if (equali(module, "cstrike"))
  160.         return PLUGIN_HANDLED
  161.    
  162.     return PLUGIN_CONTINUE
  163. }
  164.  
  165. public native_filter(const name[], index, trap)
  166. {
  167.     if (!trap)
  168.         return PLUGIN_HANDLED
  169.        
  170.     return PLUGIN_CONTINUE
  171. }
  172.  
  173. /* Ban menu */
  174.  
  175. public client_disconnect(id)
  176. {
  177.     g_ban_player[id] = 0;
  178. }
  179.  
  180. public CmdBanReason(id)
  181. {
  182.     new player = g_ban_player[id];
  183.    
  184.     if( !player ) return PLUGIN_HANDLED;
  185.    
  186.     new reason[128];
  187.     read_args(reason, sizeof(reason) - 1);
  188.     remove_quotes(reason);
  189.    
  190.     new name[32], name2[32], authid[32], authid2[32]
  191.  
  192.     get_user_name(player, name2, 31)
  193.     get_user_authid(id, authid, 31)
  194.     get_user_authid(player, authid2, 31)
  195.     get_user_name(id, name, 31)
  196.    
  197.     new userid2 = get_user_userid(player)
  198.  
  199.     log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, g_menuSettings[id], reason)
  200.  
  201.     /*if ( !equal("STEAM_0:", authid2, 8))
  202.     {
  203.         client_cmd(id, "amx_banip #%i %i ^"%s^"", userid2, g_menuSettings[id], reason);
  204.     }
  205.     else
  206.     {*/
  207.     client_cmd(id, "amx_ban #%i %i ^"%s^"", userid2, g_menuSettings[id], reason);
  208.     /*}*/
  209.  
  210.     server_exec()
  211.    
  212.     g_ban_player[id] = 0;
  213.  
  214.     displayBanMenu(id, g_menuPosition[id])
  215.    
  216.     return PLUGIN_HANDLED;
  217. }
  218.  
  219. public actionBanMenu(id, key)
  220. {
  221.     switch (key)
  222.     {
  223.         case 7:
  224.         {
  225.             /* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */
  226.            
  227.             ++g_menuOption[id]
  228.             g_menuOption[id] %= ArraySize(g_bantimes);
  229.  
  230.             g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
  231.  
  232.             displayBanMenu(id, g_menuPosition[id])
  233.         }
  234.         case 8: displayBanMenu(id, ++g_menuPosition[id])
  235.         case 9: displayBanMenu(id, --g_menuPosition[id])
  236.         default:
  237.         {
  238.             g_ban_player[id] = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
  239.            
  240.             client_cmd(id, "messagemode amx_banreason");
  241.            
  242.             client_print(id, print_chat, "[AMXX] Type in the reason for banning this player.");
  243.            
  244.            
  245.             /*new name[32], name2[32], authid[32], authid2[32]
  246.        
  247.             get_user_name(player, name2, 31)
  248.             get_user_authid(id, authid, 31)
  249.             get_user_authid(player, authid2, 31)
  250.             get_user_name(id, name, 31)
  251.            
  252.             new userid2 = get_user_userid(player)
  253.  
  254.             log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^")", name, get_user_userid(id), authid, name2, userid2, authid2, g_menuSettings[id])
  255.  
  256.             if (g_menuSettings[id]==0) // permanent
  257.             {
  258.                 new maxpl = get_maxplayers();
  259.                 for (new i = 1; i <= maxpl; i++)
  260.                 {
  261.                     show_activity_id(i, id, name, "%L %s %L", i, "BAN", name2, i, "PERM");
  262.                 }
  263.             }
  264.             else
  265.             {
  266.                 new tempTime[32];
  267.                 formatex(tempTime,sizeof(tempTime)-1,"%d",g_menuSettings[id]);
  268.                 new maxpl = get_maxplayers();
  269.                 for (new i = 1; i <= maxpl; i++)
  270.                 {
  271.                     show_activity_id(i, id, name, "%L %s %L", i, "BAN", name2, i, "FOR_MIN", tempTime);
  272.                 }
  273.             }
  274.             // ---------- check for Steam ID added by MistaGee --------------------
  275.             // IF AUTHID == 4294967295 OR VALVE_ID_LAN OR HLTV, BAN PER IP TO NOT BAN EVERYONE
  276.            
  277.             if (equal("4294967295", authid2)
  278.                 || equal("HLTV", authid2)
  279.                 || equal("STEAM_ID_LAN", authid2)
  280.                 || equali("VALVE_ID_LAN", authid2))
  281.             {
  282.                 // END OF MODIFICATIONS BY MISTAGEE
  283.                 server_cmd("amx_banip #%i %i ^"Banned From Menu^"", userid2, g_menuSettings[id]);
  284.             }
  285.             else
  286.             {
  287.                 server_cmd("amx_ban #%i %i ^"Banned From Menu^"", userid2, g_menuSettings[id]);
  288.             }
  289.  
  290.             server_exec()
  291.  
  292.             displayBanMenu(id, g_menuPosition[id])*/
  293.         }
  294.     }
  295.    
  296.     return PLUGIN_HANDLED
  297. }
  298.  
  299. displayBanMenu(id, pos)
  300. {
  301.     if (pos < 0)
  302.         return
  303.  
  304.     get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  305.  
  306.     new menuBody[512]
  307.     new b = 0
  308.     new i
  309.     new name[32]
  310.     new start = pos * 7
  311.  
  312.     if (start >= g_menuPlayersNum[id])
  313.         start = pos = g_menuPosition[id] = 0
  314.  
  315.     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "BAN_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
  316.     new end = start + 7
  317.     new keys = MENU_KEY_0|MENU_KEY_8
  318.  
  319.     if (end > g_menuPlayersNum[id])
  320.         end = g_menuPlayersNum[id]
  321.  
  322.     for (new a = start; a < end; ++a)
  323.     {
  324.         i = g_menuPlayers[id][a]
  325.         get_user_name(i, name, 31)
  326.  
  327.         if (is_user_bot(i) || (access(i, ADMIN_IMMUNITY) && i != id))
  328.         {
  329.             ++b
  330.            
  331.             if (g_coloredMenus)
  332.                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)
  333.             else
  334.                 len += format(menuBody[len], 511-len, "#. %s^n", name)
  335.         } else {
  336.             keys |= (1<<b)
  337.                
  338.             if (is_user_admin(i))
  339.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)
  340.             else
  341.                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
  342.         }
  343.     }
  344.  
  345.     if (g_menuSettings[id])
  346.     {
  347.         new banLength[32]
  348.         if (timeToString(g_menuSettings[id], banLength, 31))
  349.             len += format(menuBody[len], 511-len, "^n8. Ban for %s^n", banLength)
  350.         else
  351.             len += format(menuBody[len], 511-len, "^n8. %L^n", id, "BAN_FOR_MIN", g_menuSettings[id])
  352.     }
  353.     else
  354.         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "BAN_PERM")
  355.  
  356.     if (end != g_menuPlayersNum[id])
  357.     {
  358.         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
  359.         keys |= MENU_KEY_9
  360.     }
  361.     else
  362.         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  363.  
  364.     show_menu(id, keys, menuBody, -1, "Ban Menu")
  365. }
  366.  
  367. timeToString(minutes, output[], len)
  368. {
  369.     new hours = minutes / 60;
  370.     minutes %= 60;
  371.    
  372.     new days = hours / 24;
  373.     hours %= 24;
  374.    
  375.     new ret
  376.    
  377.     if (days)
  378.         ret += formatex(output[ret], len-ret, "%s%d day%s", ret ? ", " : "", days, (days == 1) ? "" : "s")
  379.    
  380.     if (hours)
  381.         ret += formatex(output[ret], len-ret, "%s%d hour%s", ret ? ", " : "", hours, (hours == 1) ? "" : "s")
  382.    
  383.     if (minutes)
  384.         ret += formatex(output[ret], len-ret, "%s%d minute%s", ret ? ", " : "", minutes, (minutes == 1) ? "" : "s")
  385.    
  386.     return ret
  387. }
  388.  
  389. public cmdBanMenu(id, level, cid)
  390. {
  391.     if (!cmd_access(id, level, cid, 1))
  392.         return PLUGIN_HANDLED
  393.  
  394.     g_menuOption[id] = 0
  395.    
  396.     if (ArraySize(g_bantimes) > 0)
  397.     {
  398.         g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
  399.     }
  400.     else
  401.     {
  402.         // should never happen, but failsafe
  403.         g_menuSettings[id] = 0
  404.     }
  405.     displayBanMenu(id, g_menuPosition[id] = 0)
  406.  
  407.     return PLUGIN_HANDLED
  408. }
  409.  
  410. /* Slap/Slay */
  411.  
  412. public actionSlapMenu(id, key)
  413. {
  414.     switch (key)
  415.     {
  416.         case 7:
  417.         {
  418.             ++g_menuOption[id]
  419.            
  420.             g_menuOption[id] %= ArraySize(g_slapsettings);
  421.            
  422.             g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
  423.            
  424.             displaySlapMenu(id, g_menuPosition[id]);
  425.         }
  426.         case 8: displaySlapMenu(id, ++g_menuPosition[id])
  427.         case 9: displaySlapMenu(id, --g_menuPosition[id])
  428.         default:
  429.         {
  430.             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
  431.             new name2[32]
  432.            
  433.             get_user_name(player, name2, 31)
  434.  
  435.             if (!is_user_alive(player))
  436.             {
  437.                 client_print(id, print_chat, "%L", id, "CANT_PERF_DEAD", name2)
  438.                 displaySlapMenu(id, g_menuPosition[id])
  439.                 return PLUGIN_HANDLED
  440.             }
  441.  
  442.             new authid[32], authid2[32], name[32]
  443.  
  444.             get_user_authid(id, authid, 31)
  445.             get_user_authid(player, authid2, 31)
  446.             get_user_name(id, name, 31)
  447.  
  448.             if (g_menuOption[id])
  449.             {
  450.                 log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, g_menuSettings[id], name2, get_user_userid(player), authid2)
  451.  
  452.                 show_activity_key("ADMIN_SLAP_1", "ADMIN_SLAP_2", name, name2, g_menuSettings[id]);
  453.             } else {
  454.                 log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)
  455.                
  456.                 show_activity_key("ADMIN_SLAY_1", "ADMIN_SLAY_2", name, name2);
  457.             }
  458.  
  459.             if (g_menuOption[id])
  460.                 user_slap(player, (get_user_health(player) > g_menuSettings[id]) ? g_menuSettings[id] : 0)
  461.             else
  462.                 user_kill(player)
  463.  
  464.             displaySlapMenu(id, g_menuPosition[id])
  465.         }
  466.     }
  467.    
  468.     return PLUGIN_HANDLED
  469. }
  470.  
  471. displaySlapMenu(id, pos)
  472. {
  473.     if (pos < 0)
  474.         return
  475.  
  476.     get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  477.  
  478.     new menuBody[512]
  479.     new b = 0
  480.     new i
  481.     new name[32], team[4]
  482.     new start = pos * 7
  483.  
  484.     if (start >= g_menuPlayersNum[id])
  485.         start = pos = g_menuPosition[id] = 0
  486.  
  487.     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "SLAP_SLAY_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
  488.     new end = start + 7
  489.     new keys = MENU_KEY_0|MENU_KEY_8
  490.  
  491.     if (end > g_menuPlayersNum[id])
  492.         end = g_menuPlayersNum[id]
  493.  
  494.     for (new a = start; a < end; ++a)
  495.     {
  496.         i = g_menuPlayers[id][a]
  497.         get_user_name(i, name, 31)
  498.        
  499.         if (g_cstrike)
  500.         {
  501.             if (cs_get_user_team(i) == CS_TEAM_T)
  502.             {
  503.                 copy(team, 3, "TE")
  504.             }
  505.             else if (cs_get_user_team(i) == CS_TEAM_CT)
  506.             {
  507.                 copy(team, 3, "CT")
  508.             } else {
  509.                 get_user_team(i, team, 3)
  510.             }
  511.         } else {
  512.             get_user_team(i, team, 3)
  513.         }
  514.  
  515.         if (!is_user_alive(i) || (access(i, ADMIN_IMMUNITY) && i != id))
  516.         {
  517.             ++b
  518.        
  519.             if (g_coloredMenus)
  520.                 len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team)
  521.             else
  522.                 len += format(menuBody[len], 511-len, "#. %s   %s^n", name, team)      
  523.         } else {
  524.             keys |= (1<<b)
  525.                
  526.             if (is_user_admin(i))
  527.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s *   %s^n", ++b, name, team)
  528.             else
  529.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s   %s^n", ++b, name, team)
  530.         }
  531.     }
  532.  
  533.     if (g_menuOption[id])
  534.         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "SLAP_WITH_DMG", g_menuSettings[id])
  535.     else
  536.         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "SLAY")
  537.  
  538.     if (end != g_menuPlayersNum[id])
  539.     {
  540.         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
  541.         keys |= MENU_KEY_9
  542.     }
  543.     else
  544.         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  545.  
  546.     show_menu(id, keys, menuBody, -1, "Slap/Slay Menu")
  547. }
  548.  
  549. public cmdSlapMenu(id, level, cid)
  550. {
  551.     if (!cmd_access(id, level, cid, 1))
  552.         return PLUGIN_HANDLED
  553.  
  554.     g_menuOption[id] = 0
  555.     if (ArraySize(g_slapsettings) > 0)
  556.     {
  557.         g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
  558.     }
  559.     else
  560.     {
  561.         // should never happen, but failsafe
  562.         g_menuSettings[id] = 0
  563.     }
  564.  
  565.     displaySlapMenu(id, g_menuPosition[id] = 0)
  566.  
  567.     return PLUGIN_HANDLED
  568. }
  569.  
  570. /* Kick */
  571.  
  572. public actionKickMenu(id, key)
  573. {
  574.     switch (key)
  575.     {
  576.         case 8: displayKickMenu(id, ++g_menuPosition[id])
  577.         case 9: displayKickMenu(id, --g_menuPosition[id])
  578.         default:
  579.         {
  580.             new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key]
  581.             new authid[32], authid2[32], name[32], name2[32]
  582.            
  583.             get_user_authid(id, authid, 31)
  584.             get_user_authid(player, authid2, 31)
  585.             get_user_name(id, name, 31)
  586.             get_user_name(player, name2, 31)
  587.            
  588.             new userid2 = get_user_userid(player)
  589.  
  590.             log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, userid2, authid2)
  591.  
  592.             show_activity_key("ADMIN_KICK_1", "ADMIN_KICK_2", name, name2);
  593.  
  594.            
  595.             server_cmd("kick #%d", userid2)
  596.             server_exec()
  597.  
  598.             displayKickMenu(id, g_menuPosition[id])
  599.         }
  600.     }
  601.  
  602.     return PLUGIN_HANDLED
  603. }
  604.  
  605. displayKickMenu(id, pos)
  606. {
  607.     if (pos < 0)
  608.         return
  609.  
  610.     get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  611.  
  612.     new menuBody[512]
  613.     new b = 0
  614.     new i
  615.     new name[32]
  616.     new start = pos * 8
  617.  
  618.     if (start >= g_menuPlayersNum[id])
  619.         start = pos = g_menuPosition[id] = 0
  620.  
  621.     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "KICK_MENU", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0)))
  622.     new end = start + 8
  623.     new keys = MENU_KEY_0
  624.  
  625.     if (end > g_menuPlayersNum[id])
  626.         end = g_menuPlayersNum[id]
  627.  
  628.     for (new a = start; a < end; ++a)
  629.     {
  630.         i = g_menuPlayers[id][a]
  631.         get_user_name(i, name, 31)
  632.  
  633.         if (access(i, ADMIN_IMMUNITY) && i != id)
  634.         {
  635.             ++b
  636.        
  637.             if (g_coloredMenus)
  638.                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)
  639.             else
  640.                 len += format(menuBody[len], 511-len, "#. %s^n", name)
  641.         } else {
  642.             keys |= (1<<b)
  643.                
  644.             if (is_user_admin(i))
  645.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)
  646.             else
  647.                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
  648.         }
  649.     }
  650.  
  651.     if (end != g_menuPlayersNum[id])
  652.     {
  653.         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
  654.         keys |= MENU_KEY_9
  655.     }
  656.     else
  657.         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  658.  
  659.     show_menu(id, keys, menuBody, -1, "Kick Menu")
  660. }
  661.  
  662. public cmdKickMenu(id, level, cid)
  663. {
  664.     if (cmd_access(id, level, cid, 1))
  665.         displayKickMenu(id, g_menuPosition[id] = 0)
  666.  
  667.     return PLUGIN_HANDLED
  668. }
  669.  
  670. /* Team menu */
  671.  
  672. public actionTeamMenu(id, key)
  673. {
  674.     switch (key)
  675.     {
  676.         case 7:
  677.         {
  678.             g_menuOption[id] = (g_menuOption[id] + 1) % (g_cstrike ? 3 : 2);
  679.             displayTeamMenu(id, g_menuPosition[id])
  680.         }
  681.         case 8: displayTeamMenu(id, ++g_menuPosition[id])
  682.         case 9: displayTeamMenu(id, --g_menuPosition[id])
  683.         default:
  684.         {
  685.             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
  686.             new authid[32], authid2[32], name[32], name2[32]
  687.  
  688.             get_user_name(player, name2, 31)
  689.             get_user_authid(id, authid, 31)
  690.             get_user_authid(player, authid2, 31)
  691.             get_user_name(id, name, 31)
  692.                
  693.             log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT")
  694.  
  695.             show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[g_menuOption[id] % 3]);
  696.  
  697.             if (g_cstrike)
  698.             {
  699.                 if (is_user_alive(player))
  700.                 {
  701.                     new deaths = cs_get_user_deaths(player)
  702.                     user_kill(player, 1)
  703.                     cs_set_user_deaths(player, deaths)
  704.                 }
  705.                 // This modulo math just aligns the option to the CsTeams-corresponding number
  706.                 cs_set_user_team(player, (g_menuOption[id] % 3) + 1)
  707.                 cs_reset_user_model(player)
  708.             } else {
  709.                 new limit_setting = get_cvar_num("mp_limitteams")
  710.                
  711.                 set_cvar_num("mp_limitteams", 0)
  712.                 engclient_cmd(player, "jointeam", g_CSTeamNumbers[g_menuOption[id] % 2])
  713.                 engclient_cmd(player, "joinclass", "1")
  714.                 set_cvar_num("mp_limitteams", limit_setting)
  715.             }
  716.  
  717.             displayTeamMenu(id, g_menuPosition[id])
  718.         }
  719.     }
  720.    
  721.     return PLUGIN_HANDLED
  722. }
  723.  
  724. displayTeamMenu(id, pos)
  725. {
  726.     if (pos < 0)
  727.         return
  728.  
  729.     get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  730.  
  731.     new menuBody[512]
  732.     new b = 0
  733.     new i, iteam
  734.     new name[32], team[4]
  735.     new start = pos * 7
  736.  
  737.     if (start >= g_menuPlayersNum[id])
  738.         start = pos = g_menuPosition[id] = 0
  739.  
  740.     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "TEAM_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
  741.     new end = start + 7
  742.     new keys = MENU_KEY_0|MENU_KEY_8
  743.  
  744.     if (end > g_menuPlayersNum[id])
  745.         end = g_menuPlayersNum[id]
  746.  
  747.     for (new a = start; a < end; ++a)
  748.     {
  749.         i = g_menuPlayers[id][a]
  750.         get_user_name(i, name, 31)
  751.        
  752.         if (g_cstrike)
  753.         {
  754.             iteam = _:cs_get_user_team(i)
  755.            
  756.             if (iteam == 1)
  757.             {
  758.                 copy(team, 3, "TE")
  759.             }
  760.             else if (iteam == 2)
  761.             {
  762.                 copy(team, 3, "CT")
  763.             }
  764.             else if (iteam == 3)
  765.             {
  766.                 copy(team, 3, "SPE");
  767.                 iteam = 6;
  768.             } else {
  769.                 iteam = get_user_team(i, team, 3)
  770.             }
  771.         } else {
  772.             iteam = get_user_team(i, team, 3)
  773.         }
  774.  
  775.         if ((iteam == g_CSTeamiNumbers[g_menuOption[id] % (g_cstrike ? 3 : 2)]) || (access(i, ADMIN_IMMUNITY) && i != id))
  776.         {
  777.             ++b
  778.            
  779.             if (g_coloredMenus)
  780.                 len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team)
  781.             else
  782.                 len += format(menuBody[len], 511-len, "#. %s   %s^n", name, team)      
  783.         } else {
  784.             keys |= (1<<b)
  785.                
  786.             if (is_user_admin(i))
  787.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s *   %s^n", ++b, name, team)
  788.             else
  789.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s   %s^n", ++b, name, team)
  790.         }
  791.     }
  792.  
  793.     len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_CSTeamNames[g_menuOption[id] % (g_cstrike ? 3 : 2)])
  794.  
  795.     if (end != g_menuPlayersNum[id])
  796.     {
  797.         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
  798.         keys |= MENU_KEY_9
  799.     }
  800.     else
  801.         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  802.  
  803.     show_menu(id, keys, menuBody, -1, "Team Menu")
  804. }
  805.  
  806. public cmdTeamMenu(id, level, cid)
  807. {
  808.     if (!cmd_access(id, level, cid, 1))
  809.         return PLUGIN_HANDLED
  810.  
  811.     g_menuOption[id] = 0
  812.  
  813.     displayTeamMenu(id, g_menuPosition[id] = 0)
  814.  
  815.     return PLUGIN_HANDLED
  816. }
  817.  
  818. /* Client cmds menu */
  819.  
  820. public actionClcmdMenu(id, key)
  821. {
  822.     switch (key)
  823.     {
  824.         case 7:
  825.         {
  826.             ++g_menuOption[id]
  827.             g_menuOption[id] %= g_menuSelectNum[id]
  828.             displayClcmdMenu(id, g_menuPosition[id])
  829.         }
  830.         case 8: displayClcmdMenu(id, ++g_menuPosition[id])
  831.         case 9: displayClcmdMenu(id, --g_menuPosition[id])
  832.         default:
  833.         {
  834.             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
  835.             new flags = g_clcmdMisc[g_menuSelect[id][g_menuOption[id]]][1]
  836.            
  837.             if (is_user_connected(player))
  838.             {
  839.                 new command[512], authid[32], name[32], userid[32]
  840.                
  841.                 copy(command, charsmax(command), g_clcmdCmd[g_menuSelect[id][g_menuOption[id]]])
  842.                 get_user_authid(player, authid, 31)
  843.                 get_user_name(player, name, 31)
  844.                 num_to_str(get_user_userid(player), userid, 31)
  845.                
  846.                 replace(command, charsmax(command), "%userid%", userid)
  847.                 replace(command, charsmax(command), "%authid%", authid)
  848.                 replace(command, charsmax(command), "%name%", name)
  849.                
  850.                 if (flags & 1)
  851.                 {
  852.                     server_cmd("%s", command)
  853.                     server_exec()
  854.                 } else if (flags & 2)
  855.                     client_cmd(id, "%s", command)
  856.                 else if (flags & 4)
  857.                     client_cmd(player, "%s", command)
  858.             }
  859.            
  860.             if (flags & 8)
  861.                 displayClcmdMenu(id, g_menuPosition[id])
  862.         }
  863.     }
  864.    
  865.     return PLUGIN_HANDLED
  866. }
  867.  
  868. displayClcmdMenu(id, pos)
  869. {
  870.     if (pos < 0)
  871.         return
  872.  
  873.     get_players(g_menuPlayers[id], g_menuPlayersNum[id])
  874.  
  875.     new menuBody[512]
  876.     new b = 0
  877.     new i
  878.     new name[32]
  879.     new start = pos * 7
  880.  
  881.     if (start >= g_menuPlayersNum[id])
  882.         start = pos = g_menuPosition[id] = 0
  883.  
  884.     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "CL_CMD_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
  885.     new end = start + 7
  886.     new keys = MENU_KEY_0|MENU_KEY_8
  887.  
  888.     if (end > g_menuPlayersNum[id])
  889.         end = g_menuPlayersNum[id]
  890.  
  891.     for (new a = start; a < end; ++a)
  892.     {
  893.         i = g_menuPlayers[id][a]
  894.         get_user_name(i, name, 31)
  895.  
  896.         if (!g_menuSelectNum[id] || (access(i, ADMIN_IMMUNITY) && i != id))
  897.         {
  898.             ++b
  899.            
  900.             if (g_coloredMenus)
  901.                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)
  902.             else
  903.                 len += format(menuBody[len], 511-len, "#. %s^n", name)     
  904.         } else {
  905.             keys |= (1<<b)
  906.                
  907.             if (is_user_admin(i))
  908.                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)
  909.             else
  910.                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
  911.         }
  912.     }
  913.  
  914.     if (g_menuSelectNum[id])
  915.         len += format(menuBody[len], 511-len, "^n8. %s^n", g_clcmdName[g_menuSelect[id][g_menuOption[id]]])
  916.     else
  917.         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "NO_CMDS")
  918.  
  919.     if (end != g_menuPlayersNum[id])
  920.     {
  921.         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
  922.         keys |= MENU_KEY_9
  923.     }
  924.     else
  925.         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  926.  
  927.     show_menu(id, keys, menuBody, -1, "Client Cmds Menu")
  928. }
  929.  
  930. public cmdClcmdMenu(id, level, cid)
  931. {
  932.     if (!cmd_access(id, level, cid, 1))
  933.         return PLUGIN_HANDLED
  934.  
  935.     g_menuSelectNum[id] = 0
  936.  
  937.     for (new a = 0; a < g_clcmdNum; ++a)
  938.         if (access(id, g_clcmdMisc[a][0]))
  939.             g_menuSelect[id][g_menuSelectNum[id]++] = a
  940.  
  941.     g_menuOption[id] = 0
  942.  
  943.     displayClcmdMenu(id, g_menuPosition[id] = 0)
  944.  
  945.     return PLUGIN_HANDLED
  946. }
  947.  
  948. load_settings(szFilename[])
  949. {
  950.     if (!file_exists(szFilename))
  951.         return 0
  952.  
  953.     new text[256], szFlags[32], szAccess[32]
  954.     new a, pos = 0
  955.  
  956.     while (g_clcmdNum < MAX_CLCMDS && read_file(szFilename, pos++, text, 255, a))
  957.     {
  958.         if (text[0] == ';') continue
  959.  
  960.         if (parse(text, g_clcmdName[g_clcmdNum], 31, g_clcmdCmd[g_clcmdNum], 63, szFlags, 31, szAccess, 31) > 3)
  961.         {
  962.             while (replace(g_clcmdCmd[g_clcmdNum], 63, "\'", "^""))
  963.             {
  964.                 // do nothing
  965.             }
  966.  
  967.             g_clcmdMisc[g_clcmdNum][1] = read_flags(szFlags)
  968.             g_clcmdMisc[g_clcmdNum][0] = read_flags(szAccess)
  969.             g_clcmdNum++
  970.         }
  971.     }
  972.  
  973.     return 1
  974. }
  975. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  976. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  977. */

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Adminmenü ban
HozzászólásElküldve: 2016.12.31. 17:48 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Köszi, igen kihagytam a megoldás linkelését, ezt pótolnám most.

Az említett poszt (a hozzá lévő plmenu és adminvote SMA-k is szükségesek a helyes működéshez!):
mforce @ Advanced Ban


Hozzászólás jelentése
Vissza a tetejére
   
 
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 3 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