Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #pragma tabsize 0
- #pragma compress 1
- new admin_steam_flags, admin_flags, admin_login[7],AdminName[33],g_passprefix[32];
- new configsDir[64];
- public plugin_init()
- {
- register_clcmd( "say /addadmin","Principal_Admin_Menu" );
- admin_flags = register_cvar("flag_for_admin", "bcdefimjr")
- admin_steam_flags = register_cvar("flag_steam_admin", "bcdefijmnopqrstuv")
- get_configsdir(configsDir, 63)
- formatex(configsDir, 63, "%s/users.ini", configsDir)
- }
- public Principal_Admin_Menu( id )
- {
- new flags = get_user_flags(id)
- if(!(flags & ADMIN_CFG))
- {
- client_print(id,print_chat,"You have no access to this command")
- return PLUGIN_HANDLED
- }
- new gMenu = menu_create("\r[\yZurlii.Laleagane.Ro\r]", "Principal_Admin_Menu_Handled")
- menu_additem(gMenu, "\wAdd Admin Menu", "0")
- menu_additem(gMenu, "\wRemove Admin Menu", "1")
- menu_display(id, gMenu, 0)
- return PLUGIN_HANDLED;
- }
- public Principal_Admin_Menu_Handled(id, menu, item)
- {
- if ( item == MENU_EXIT )
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0: Add_Admin_Menu(id)
- case 1: Remove_Admin_Menu(id)
- }
- return PLUGIN_HANDLED;
- }
- public Add_Admin_Menu(id)
- {
- new menu = menu_create( "\w[\rChoose Your\w] \yAdmin", "Add_Admin_Menu_Handler" );
- new players[32], pnum, tempid;
- new szName[32], szUserId[32];
- get_players( players, pnum, "a" );
- for ( new i; i<pnum; i++ )
- {
- tempid = players[i];
- get_user_name( tempid, szName, charsmax( szName ) );
- formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
- menu_additem( menu, szName, szUserId, 0 );
- }
- menu_display( id, menu, 0 );
- return PLUGIN_HANDLED
- }
- public Add_Admin_Menu_Handler( id, menu, item )
- {
- if ( item == MENU_EXIT )
- {
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- new szData[6], szName[64];
- new _access, item_callback;
- get_user_name(id, AdminName, charsmax(AdminName))
- menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
- new userid = str_to_num( szData );
- new player = find_player( "k", userid );
- if ( player && is_user_connected( player ) )
- {
- set_user_admin(player)
- client_print(id,print_chat,"Admin Successfully Added !")
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- public set_user_admin(target)
- {
- new string_steam[20], string[20], time[32]
- get_pcvar_string(admin_flags,string,19)
- get_pcvar_string(admin_steam_flags,string_steam,19)
- new linne[150], name[33]
- 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))
- new File[120]; get_configsdir(File, charsmax(File))
- add(File, charsmax(File), "/users.ini")
- if(!file_exists(File))
- set_fail_state("File configs/users.ini Not Found")
- get_time("%m/%d/%Y",time,31)
- get_user_name(target, name, charsmax(name))
- if(is_user_steam(target))
- {
- formatex(linne, charsmax(linne), "^r^"%s^" ^"%s^" ^"%s^" ^"a^" ;^%s || Added By : %s", name, admin_login, string_steam, time, AdminName)
- }
- else formatex(linne, charsmax(linne), "^r^"%s^" ^"%s^" ^"%s^" ^"a^" ;^%s || Added By : %s", name, admin_login, string, time, AdminName)
- write_file(File, linne)
- client_cmd(target, "clear");
- set_task(1.0,"reload_admins",target)
- get_cvar_string("amx_password_field",g_passprefix,31);
- }
- public reload_admins(target)
- {
- if(is_user_connected(target))
- {
- console_print(target,"===================================" )
- console_print(target,"===================================" )
- console_print(target,"" )
- console_print(target,"" )
- console_print(target,"[Password] ^"setinfo %s %s^"", g_passprefix, admin_login)
- console_print(target,"" )
- console_print(target,"" )
- console_print(target,"===================================" )
- console_print(target,"===================================" )
- client_cmd(target,"toggleconsole;wait;snapshot")
- set_user_info( target, g_passprefix, admin_login )
- server_cmd("amx_reloadadmins")
- }
- }
- stock bool:is_user_steam(id)
- {
- static dp_pointer
- if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
- {
- server_cmd("dp_clientinfo %d", id)
- server_exec()
- return (get_pcvar_num(dp_pointer) == 2) ? true : false
- }
- return false
- }
- public Remove_Admin_Menu( id )
- {
- new menu = menu_create( "\w[\rChoose Your\w] \yAdmin", "Remove_Admin_Menu_Handler" );
- new players[32], pnum, tempid;
- new szName[32], szUserId[32];
- get_players( players, pnum, "a" );
- for ( new i; i<pnum; i++ )
- {
- tempid = players[i];
- get_user_name( tempid, szName, charsmax( szName ) );
- formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
- menu_additem( menu, szName, szUserId, 0 );
- }
- menu_display( id, menu, 0 );
- return PLUGIN_HANDLED
- }
- public Remove_Admin_Menu_Handler( id, menu, item )
- {
- if ( item == MENU_EXIT )
- {
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- new szData[6], szName[64];
- new _access, item_callback;
- new line = 0, textline[256], len
- new line_name[64], line_password[64], line_accessflags[64], line_flags[64]
- new bool:Deleted
- menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
- new userid = str_to_num( szData );
- new player = find_player( "k", userid );
- if ( player && is_user_connected( player ) )
- {
- get_user_name(player,szName,31)
- while ((line = read_file(configsDir, line, textline, 255, len)))
- {
- parse(textline, line_name, 63, line_password, 63, line_accessflags, 63, line_flags, 63)
- if (containi(line_name,szName) != -1)
- {
- write_file(configsDir,"",line - 1)
- client_print(id,print_chat,"ADMIN %s removed from users.ini",line_name)
- server_cmd("amx_reloadadmins")
- Deleted = true
- break
- }
- if(!Deleted)
- console_print(id,"No such name found")
- else
- server_exec()
- }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
Add Comment
Please, Sign In to add comment