Advertisement
Jackiplierishere

Untitled

Nov 25th, 2022
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. #include < amxmodx >
  2.  
  3. #define MAX_ACCESS 5
  4. #define OWNER_ACCESS ADMIN_IMMUNITY
  5.  
  6. new const accNames[ MAX_ACCESS ][] =
  7. {
  8. "Owner Access",
  9. "Manager Access",
  10. "Super Admin Access",
  11. "Admin Access",
  12. "V.i.p Access"
  13. };
  14.  
  15. new const accFlags[ MAX_ACCESS ][] =
  16. {
  17. "abcdefghijklmnopqrstu",
  18. "cdefghijklmnopqrstu",
  19. "cdefgijlnopqrstu",
  20. "cdegijlnopqrst",
  21. "ceir"
  22. };
  23.  
  24. new accMenu, szKey;
  25.  
  26. public plugin_init()
  27. {
  28. register_plugin("Access Menu", "v1", "Angryx");
  29. register_clcmd( "say /access","openAccessMenu");
  30. register_clcmd( "say /manage","openAccessMenu");
  31. }
  32.  
  33.  
  34. public openAccessMenu(id)
  35. {
  36. if( !(get_user_flags(id) & OWNER_ACCESS) )
  37. {
  38. ColorChat(id, "You Need To Be An ^"^3Owner^1^" To Access This Menu");
  39. return PLUGIN_HANDLED;
  40. }
  41.  
  42. accMenu = menu_create("\r[\d Access \r] \yPlayers Manage Menu", "openPlayerMenu");
  43. menu_additem(accMenu, "\yAdd \dOwner", "0", 0);
  44. menu_additem(accMenu, "\yAdd \dManager", "1", 0);
  45. menu_additem(accMenu, "\yAdd \dSuper Admin", "2", 0);
  46. menu_additem(accMenu, "\yAdd \dAdmin", "3", 0);
  47. menu_additem(accMenu, "\yAdd \dVip", "4", 0);
  48.  
  49. menu_setprop(accMenu, MPROP_NUMBER_COLOR, "\d");
  50. menu_setprop(accMenu, MPROP_EXITNAME, "\yClose Menu");
  51.  
  52. menu_display(id, accMenu);
  53. return PLUGIN_HANDLED;
  54. }
  55.  
  56.  
  57. public openPlayerMenu(id, accMenu, item)
  58. {
  59. if( item == MENU_EXIT )
  60. {
  61. menu_destroy(accMenu);
  62. return PLUGIN_HANDLED;
  63. }
  64.  
  65. new Data[6],iName[64], Access, CallBack;
  66. menu_item_getinfo(accMenu, item, Access, Data, 5, iName, 63, CallBack);
  67. szKey = str_to_num(Data);
  68.  
  69. getPlayers(id);
  70. menu_destroy(accMenu);
  71. return PLUGIN_HANDLED;
  72. }
  73.  
  74.  
  75. public getPlayers(id)
  76. {
  77. new setLevel = menu_create("\r[\d Horror \r] \yPlayers Manage Menu", "setAccess");
  78. new players[32], pnum, player, szName[32], szInfo[10], mItem[128];
  79. get_players(players, pnum);
  80. for( new i; i<pnum; i++ )
  81. {
  82. player = players[i];
  83. get_user_name(player, szName, charsmax(szName));
  84. num_to_str(player, szInfo, charsmax(szInfo));
  85. formatex(mItem, sizeof mItem - 1, "\y%s", szName);
  86. menu_additem(setLevel, mItem, szInfo, 0);
  87. }
  88. menu_display(id, setLevel);
  89. }
  90.  
  91.  
  92. public setAccess(id, setLevel, item)
  93. {
  94. if( item == MENU_EXIT )
  95. {
  96. menu_destroy(setLevel);
  97. return PLUGIN_HANDLED;
  98. }
  99.  
  100. new Data[6], iName[33], ownerName[32], playerName[32], playerid[21], Access, CallBack;
  101. menu_item_getinfo(setLevel, item, Access, Data, 5, iName, 32, CallBack);
  102. new plr = str_to_num(Data);
  103.  
  104. get_user_name(id, ownerName, sizeof ownerName - 1);
  105. get_user_name(plr, playerName, sizeof playerName - 1);
  106. get_user_authid(plr, playerid, sizeof playerid - 1);
  107.  
  108. server_cmd("amx_addadmin ^"%s^" ^"%s^"", playerid, accFlags[szKey]);
  109. ColorChat(0, "Owner ^4%s^1 Gave^4 %s^1 Access To^4 %s", ownerName, accNames[szKey], playerName);
  110. server_cmd("amx_reloadadmins")
  111.  
  112. menu_destroy(setLevel);
  113. return PLUGIN_HANDLED;
  114. }
  115.  
  116.  
  117. stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...) {
  118. new msg[191], players[32], count = 1;
  119.  
  120. static len; len = formatex(msg, charsmax(msg), "^3[^1 Access ^3]^1 ");
  121. vformat(msg[len], charsmax(msg) - len, string, 3);
  122.  
  123. if(id) players[0] = id;
  124. else get_players(players,count,"ch");
  125.  
  126. for (new i = 0; i < count; i++)
  127. {
  128. if(is_user_connected(players[i]))
  129. {
  130. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
  131. write_byte(players[i]);
  132. write_string(msg);
  133. message_end();
  134. }
  135. }
  136. }
  137. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  138. *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1037\\ f0\\ fs16 \n\\ par }
  139. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement