[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 accMenu, szKey;
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(accMenu, MPROP_NUMBER_COLOR, "\d"); menu_setprop(accMenu, MPROP_EXITNAME, "\yClose Menu"); menu_display(id, accMenu); return PLUGIN_HANDLED; }
public openPlayerMenu(id, accMenu, item) { if( item == MENU_EXIT ) { menu_destroy(accMenu); return PLUGIN_HANDLED; } new Data[6],iName[64], Access, CallBack; menu_item_getinfo(accMenu, item, Access, Data, 5, iName, 63, CallBack); 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], pnum, player, szName[32], szInfo[10], mItem[128]; get_players(players, pnum); for( new i; i<pnum; i++ ) { player = players[i]; get_user_name(player, szName, charsmax(szName)); num_to_str(player, szInfo, charsmax(szInfo)); formatex(mItem, sizeof mItem - 1, "\y%s", szName); menu_additem(setLevel, mItem, szInfo, 0); } menu_display(id, setLevel); }
public setAccess(id, setLevel, item) { if( item == MENU_EXIT ) { menu_destroy(setLevel); return PLUGIN_HANDLED; } new Data[6], iName[33], ownerName[32], playerName[32], playerid[21], Access, CallBack; menu_item_getinfo(setLevel, item, Access, Data, 5, iName, 32, CallBack); new plr = str_to_num(Data); get_user_name(id, ownerName, sizeof ownerName - 1); get_user_name(plr, playerName, sizeof playerName - 1); get_user_authid(plr, playerid, sizeof playerid - 1); server_cmd("amx_addadmin ^"%s^" ^"%s^"", playerid, accFlags[szKey]); ColorChat(0, "Owner ^4%s^1 Gave^4 %s^1 Access To^4 %s", ownerName, accNames[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], pnum, tempid new szName[32], szTempid[10] get_players(players, pnum, "ch") for( new i; i<pnum; i++ ) { tempid = players[i] get_user_name(tempid, szName, 31) num_to_str(tempid, szTempid, 9) menu_additem(menu, szName, szTempid, 0) } menu_display(id, menu) return PLUGIN_HANDLED }
public sub_remove_cmd(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,5, iName, 63, callback) new tempid = str_to_num(data) new Steam[32] get_user_authid(tempid, Steam, 31) 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(id, ADMIN_IMMUNITY)) return PLUGIN_HANDLED new players[32], inum, i, player; 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(i = 0; i < inum; i++) { player = players[i]; get_user_authid(player, playerinfo, 31); if(equal(playerinfo, TARGET)) { remove_user_flags(player); break; } } } else { command_type = TYPE_NAME;
for(i = 0; i < inum; i++) { player = players[i]; get_user_name(player,playerinfo,31); if( containi(playerinfo,TARGET) != -1 ) { 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"); i = 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(playerinfo, TARGET)) || (command_type == TYPE_NAME && containi(playerinfo, TARGET) != -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[], {Float, Sql, Resul,_}:...) { new msg[191], players[32], count = 1; static len; len = formatex(msg, charsmax(msg), "^3[^1Admin Manage^3]^1 "); vformat(msg[len], charsmax(msg) - len, string, 3); if(id) players[0] = id; else get_players(players,count,"ch"); for (new i = 0; i < count; i++) { if(is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } }
|