AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [REQ] Problem with RmoveAdmin (https://forums.alliedmods.net/showthread.php?t=226684)

Snitch 09-21-2013 16:24

[REQ] Problem with RmoveAdmin
 
I have Admin Access menu, I want to remove someone Admin
I open my menu appears RemoveAdmin
I select someone it does not remove him from user.ini.


Someone can correct me the Public?

PHP Code:

#include < amxmodx >
#include <amxmisc>

#define MAX_ACCESS 5
#define OWNER_ACCESS ADMIN_IMMUNITY

enum{TYPE_STEAM,TYPE_NAME}

new const 
accNames[][] = {
    
"",
    
"Owner Access",
    
"Manager Access",
    
"Super Admin Access",
    
"Admin Access",
    
"Vip Access"
};

new const 
accFlags[][] = {
    
"",
    
"abcdefghijklmnopqrstuy",
    
"acdefghijklmnopqrstu",
    
"cefhijkmnp",
    
"cefhijm",
    
"ceir"
};

new 
accMenuszKey;

public 
plugin_init()
{
    
register_plugin("Access Menu""v1""Angryx");
    
register_clcmd"say /access","openAccessMenu",ADMIN_IMMUNITY,"");
    
register_clcmd"say /manage","openAccessMenu",ADMIN_IMMUNITY,"");
    
register_clcmd("amx_removeadmin","remove_cmd",ADMIN_IMMUNITY,"amx_removeadmin <steamid or nick>");
}


public 
openAccessMenu(id)
{
    if( !(
get_user_flags(id) & OWNER_ACCESS) )
    {
        
ColorChat(id"You Need To Be An ^"^3Owner^1^" To Access This Menu");
        return 
PLUGIN_HANDLED;
    }
    
    
accMenu menu_create("\r[\d Access \r] \yPlayers Manage Menu""openPlayerMenu");
    
menu_additem(accMenu"\yAdd \dOwner""1"0);
    
menu_additem(accMenu"\yAdd \dManager""2"0);
    
menu_additem(accMenu"\yAdd \dSuper Admin""3"0);
    
menu_additem(accMenu"\yAdd \dAdmin""4"0);
    
menu_additem(accMenu"\yAdd \dVip""5"0);
    
menu_additem(accMenu"\yRemove \dAccess""6"0);
    
    
menu_setprop(accMenuMPROP_NUMBER_COLOR"\d");
    
menu_setprop(accMenuMPROP_EXITNAME"\yClose Menu");
    
    
menu_display(idaccMenu);
    return 
PLUGIN_HANDLED;
}


public 
openPlayerMenu(idaccMenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(accMenu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
Data[6],iName[64], AccessCallBack;
    
menu_item_getinfo(accMenuitemAccessData5iName63CallBack);
    
szKey str_to_num(Data);
    
    switch(
szKey)
    {
        case 
1..5:    getPlayers(id);
        case 
6:    removevip_cmd(id);
    }
    
    
//getPlayers(id);
    
menu_destroy(accMenu);
    return 
PLUGIN_HANDLED;
}

public 
getPlayers(id)
{
    new 
setLevel menu_create("\r[\dAccess\r] \yPlayers Manage Menu""setAccess");
    new 
players[32], pnumplayerszName[32], szInfo[10], mItem[128];
    
get_players(playerspnum);
    for( new 
ii<pnumi++ )
    {
        
player players[i];
        
get_user_name(playerszNamecharsmax(szName));
        
num_to_str(playerszInfocharsmax(szInfo));
        
formatex(mItemsizeof mItem 1"\y%s"szName);
        
menu_additem(setLevelmItemszInfo0);
    }
    
menu_display(idsetLevel);
}

public 
setAccess(idsetLevelitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(setLevel);
        return 
PLUGIN_HANDLED;
    }
    
    new 
Data[6], iName[33], ownerName[32], playerName[32], playerid[21], AccessCallBack;
    
menu_item_getinfo(setLevelitemAccessData5iName32CallBack);
    new 
plr str_to_num(Data);
    
    
get_user_name(idownerNamesizeof ownerName 1);
    
get_user_name(plrplayerNamesizeof playerName 1);
    
get_user_authid(plrplayeridsizeof playerid 1); 
    
    
server_cmd("amx_addadmin ^"%s^" ^"%s^""playeridaccFlags[szKey]);
    
ColorChat(0"Owner ^4%s^1 Gave^4 %s^1 Access To^4 %s"ownerNameaccNames[szKey], playerName); 
    
server_cmd("amx_reloadadmins")
    
    
menu_destroy(setLevel);
    return 
PLUGIN_HANDLED;
}

public 
removevip_cmd(id) {
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED
    
    
new menu menu_create("\y[\rAccess\y] - \wRemove Access:""sub_remove_cmd")
    
    new 
players[32], pnumtempid
    
new szName[32], szTempid[10]
    
    
get_players(playerspnum"ch")
    
    for( new 
ii<pnumi++ ) 
    {
        
tempid players[i]
        
        
get_user_name(tempidszName31)
        
num_to_str(tempidszTempid9)
        
menu_additem(menuszNameszTempid0)
    }
    
    
menu_display(idmenu)
    return 
PLUGIN_HANDLED
}

public 
sub_remove_cmd(idmenuitem) {
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata,5iName63callback)
    
    new 
tempid str_to_num(data)
    
    new 
Steam[32]
    
get_user_authid(tempidSteam31)
    
    
client_cmd(id"amx_removeadmin ^"%s^""Steam)
    
server_cmd("amx_reloadadmins")
    
    
id str_to_num(data)
    return 
PLUGIN_HANDLED
}

public 
remove_cmd(id,level,cid)
{
    if(!
access(idADMIN_IMMUNITY))
        return 
PLUGIN_HANDLED
    
    
new players[32], inumiplayer;
    new 
TARGET[32], playerinfo[32];
    new 
command_type;
    new 
bool:is_found false;
    
    
get_players(players,inum);
    
    
read_argv(1,TARGET,31);
    
remove_quotes(TARGET);

    if(
equal(TARGET,"STEAM_",6))
    {
        
command_type TYPE_STEAM;

        for(
0inumi++)
        {
            
player players[i];
            
            
get_user_authid(playerplayerinfo31);
            
            if(
equal(playerinfoTARGET))
            {
                
remove_user_flags(player);
                break;
            }
        }
    }
    else
    {
        
command_type TYPE_NAME;

        for(
0inumi++)
        {
            
player players[i];
            
            
get_user_name(player,playerinfo,31);
            if( 
containi(playerinfo,TARGET) != -)
            {
                
remove_user_flags(player);
                break;
            }
        }
    }
    new 
filename[64], text[512];
    
get_configsdir(filename,63);
    
format(filename,63,"%s/users.ini",filename);

    new 
file fopen(filename,"rt");
    
0;

    while(!
feof(file))
    {
        
fgets(file,text,50);

        
i++;

        if(
text[0] == ';')
            continue;

        
parse(text,playerinfo,31,players,1);

        if((
command_type == TYPE_STEAM && equal(playerinfoTARGET))
        || (
command_type == TYPE_NAME && containi(playerinfoTARGET) != -1))
        {
            
is_found true;
            
format(text,511,";%s",text);
            
write_file(filename,text,i-1);

            
console_print(id,"********************ADMIN ID REMOVAL TOOL**************");
            
console_print(id,"");
            
console_print(id," The target, %s, was removed from users.ini ",TARGET);
            
console_print(id,"");
            
console_print(id,"********************ADMIN ID REMOVAL TOOL**************");

            
server_cmd("amx_reloadadmins")
            break;
        }
    }
    
    if(!
is_found)
    {
        
console_print(id,"********************ADMIN ID REMOVAL TOOL**************");
        
console_print(id," The entry, %s, was not found in users.ini ",TARGET);
        
console_print(id,"********************ADMIN ID REMOVAL TOOL**************");
    }

    
fclose(file);

    return 
PLUGIN_HANDLED;
}

stock ColorChat(const id, const string[], {FloatSqlResul,_}:...) {
    new 
msg[191], players[32], count 1;
    
    static 
lenlen formatex(msgcharsmax(msg), "^3[^1Admin Manage^3]^1 ");
    
vformat(msg[len], charsmax(msg) - lenstring3);
    
    if(
id)  players[0] = id;
    else    
get_players(players,count,"ch");
    
    for (new 
0counti++)
    {
        if(
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"),_players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
    }



Snitch 09-22-2013 22:49

Re: [REQ] Problem with RmoveAdmin
 
bump!


All times are GMT -4. The time now is 18:53.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.