raizo21

Add admin

Dec 5th, 2019
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.62 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #pragma tabsize 0
  5. #pragma compress 1
  6.  
  7. new admin_steam_flags, admin_flags, admin_login[7],AdminName[33],g_passprefix[32];
  8.  
  9. new configsDir[64];
  10.  
  11. public plugin_init()
  12. {
  13.     register_clcmd( "say /addadmin","Principal_Admin_Menu" );
  14.    
  15.     admin_flags = register_cvar("flag_for_admin", "bcdefimjr")
  16.     admin_steam_flags = register_cvar("flag_steam_admin", "bcdefijmnopqrstuv")
  17.    
  18.     get_configsdir(configsDir, 63)
  19.     formatex(configsDir, 63, "%s/users.ini", configsDir)
  20. }
  21.  
  22. public Principal_Admin_Menu( id )
  23. {
  24.     new flags = get_user_flags(id)
  25.     if(!(flags & ADMIN_CFG))
  26.     {
  27.         client_print(id,print_chat,"You have no access to this command")
  28.         return PLUGIN_HANDLED
  29.     }
  30.     new gMenu = menu_create("\r[\yZurlii.Laleagane.Ro\r]", "Principal_Admin_Menu_Handled")
  31.    
  32.     menu_additem(gMenu, "\wAdd Admin Menu", "0")
  33.     menu_additem(gMenu, "\wRemove Admin Menu", "1")  
  34.  
  35.     menu_display(id, gMenu, 0)
  36.  
  37.     return PLUGIN_HANDLED;  
  38. }
  39.  
  40. public Principal_Admin_Menu_Handled(id, menu, item)      
  41. {
  42.     if ( item == MENU_EXIT )    
  43.     {
  44.         menu_destroy(menu)      
  45.         return PLUGIN_HANDLED;  
  46.     }
  47.     switch(item)  
  48.     {
  49.         case 0: Add_Admin_Menu(id)
  50.         case 1: Remove_Admin_Menu(id)
  51.     }
  52.     return PLUGIN_HANDLED;  
  53. }
  54.  
  55. public Add_Admin_Menu(id)
  56. {
  57.     new menu = menu_create( "\w[\rChoose Your\w] \yAdmin", "Add_Admin_Menu_Handler" );
  58.  
  59.     new players[32], pnum, tempid;
  60.  
  61.     new szName[32], szUserId[32];
  62.  
  63.  
  64.     get_players( players, pnum, "a" );
  65.  
  66.     for ( new i; i<pnum; i++ )
  67.     {
  68.         tempid = players[i];
  69.  
  70.         get_user_name( tempid, szName, charsmax( szName ) );
  71.         formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
  72.  
  73.         menu_additem( menu, szName, szUserId, 0 );
  74.     }
  75.  
  76.     menu_display( id, menu, 0 );
  77.    
  78.     return PLUGIN_HANDLED
  79. }
  80.  
  81. public Add_Admin_Menu_Handler( id, menu, item )
  82. {
  83.    
  84.     if ( item == MENU_EXIT )
  85.     {
  86.         menu_destroy( menu );
  87.         return PLUGIN_HANDLED;
  88.     }
  89.  
  90.     new szData[6], szName[64];
  91.     new _access, item_callback;
  92.  
  93.     get_user_name(id, AdminName, charsmax(AdminName))
  94.    
  95.     menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  96.  
  97.     new userid = str_to_num( szData );
  98.  
  99.     new player = find_player( "k", userid );
  100.  
  101.     if ( player && is_user_connected( player ) )
  102.     {
  103.         set_user_admin(player)
  104.         client_print(id,print_chat,"Admin Successfully Added !")
  105.     }
  106.  
  107.     menu_destroy( menu );
  108.     return PLUGIN_HANDLED;
  109. }
  110.  
  111.  
  112. public set_user_admin(target)
  113. {
  114.     new string_steam[20], string[20], time[32]
  115.     get_pcvar_string(admin_flags,string,19)
  116.     get_pcvar_string(admin_steam_flags,string_steam,19)
  117.    
  118.     new linne[150], name[33]
  119.     formatex(admin_login, 6, "%d%d%d%d%d%d", random_num(1, 9), random_num(1, 9), random_num(1, 9), random_num(1, 9), random_num(1, 9), random_num(1, 9))
  120.    
  121.     new File[120]; get_configsdir(File, charsmax(File))
  122.     add(File, charsmax(File), "/users.ini")
  123.    
  124.     if(!file_exists(File))
  125.         set_fail_state("File configs/users.ini Not Found")
  126.        
  127.     get_time("%m/%d/%Y",time,31)
  128.     get_user_name(target, name, charsmax(name))
  129.    
  130.     if(is_user_steam(target))
  131.     {
  132.              formatex(linne, charsmax(linne), "^r^"%s^" ^"%s^" ^"%s^" ^"a^" ;^%s || Added By : %s", name, admin_login, string_steam, time, AdminName)
  133.     }
  134.     else formatex(linne, charsmax(linne), "^r^"%s^" ^"%s^" ^"%s^" ^"a^" ;^%s || Added By : %s", name, admin_login, string, time, AdminName)
  135.    
  136.     write_file(File, linne)
  137.    
  138.     client_cmd(target, "clear");
  139.    
  140.     set_task(1.0,"reload_admins",target)
  141.    
  142.     get_cvar_string("amx_password_field",g_passprefix,31);
  143. }
  144.  
  145. public reload_admins(target)
  146. {
  147.     if(is_user_connected(target))
  148.     {
  149.         console_print(target,"===================================" )
  150.     console_print(target,"===================================" )
  151.     console_print(target,"" )
  152.     console_print(target,"" )
  153.     console_print(target,"[Password] ^"setinfo %s %s^"", g_passprefix, admin_login)
  154.     console_print(target,"" )
  155.     console_print(target,"" )
  156.     console_print(target,"===================================" )
  157.     console_print(target,"===================================" )
  158.    
  159.     client_cmd(target,"toggleconsole;wait;snapshot")
  160.  
  161.     set_user_info( target, g_passprefix, admin_login )
  162.    
  163.          server_cmd("amx_reloadadmins")
  164.     }
  165.    
  166. }
  167.  
  168.  
  169. stock bool:is_user_steam(id)
  170. {
  171.    static dp_pointer
  172.    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
  173.    {
  174.       server_cmd("dp_clientinfo %d", id)
  175.       server_exec()
  176.       return (get_pcvar_num(dp_pointer) == 2) ? true : false
  177.    }
  178.    return false
  179. }
  180.  
  181.  
  182. public Remove_Admin_Menu( id )
  183. {
  184.     new menu = menu_create( "\w[\rChoose Your\w] \yAdmin", "Remove_Admin_Menu_Handler" );
  185.  
  186.     new players[32], pnum, tempid;
  187.  
  188.     new szName[32], szUserId[32];
  189.  
  190.  
  191.     get_players( players, pnum, "a" );
  192.  
  193.     for ( new i; i<pnum; i++ )
  194.     {
  195.         tempid = players[i];
  196.  
  197.         get_user_name( tempid, szName, charsmax( szName ) );
  198.         formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
  199.  
  200.         menu_additem( menu, szName, szUserId, 0 );
  201.     }
  202.  
  203.     menu_display( id, menu, 0 );
  204.    
  205.     return PLUGIN_HANDLED
  206. }
  207.  
  208. public Remove_Admin_Menu_Handler( id, menu, item )
  209. {
  210.    
  211.     if ( item == MENU_EXIT )
  212.     {
  213.         menu_destroy( menu );
  214.         return PLUGIN_HANDLED;
  215.     }
  216.  
  217.     new szData[6], szName[64];
  218.     new _access, item_callback;
  219.     new line = 0, textline[256], len
  220.     new line_name[64], line_password[64], line_accessflags[64], line_flags[64]
  221.     new bool:Deleted
  222.  
  223.     menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
  224.  
  225.     new userid = str_to_num( szData );
  226.  
  227.     new player = find_player( "k", userid );
  228.  
  229.     if ( player && is_user_connected( player ) )
  230.     {
  231.         get_user_name(player,szName,31)
  232.    
  233.         while ((line = read_file(configsDir, line, textline, 255, len)))
  234.         {
  235.             parse(textline, line_name, 63, line_password, 63, line_accessflags, 63, line_flags, 63)
  236.        
  237.             if (containi(line_name,szName) != -1)
  238.             {
  239.                 write_file(configsDir,"",line - 1)
  240.            
  241.            client_print(id,print_chat,"ADMIN %s removed from users.ini",line_name)
  242.            server_cmd("amx_reloadadmins")
  243.            
  244.            Deleted = true      
  245.            break   
  246.             }
  247.             if(!Deleted)
  248.                 console_print(id,"No such name found")
  249.             else
  250.                 server_exec()
  251.         }
  252.     }
  253.  
  254.     menu_destroy( menu );
  255.     return PLUGIN_HANDLED;
  256. }
Add Comment
Please, Sign In to add comment