See This Code To Do Like Adminstaror Need HAve Full Access Like "abcdefghijklmnopqrstuvwxy"
To SHow IN List Online To Adminstrator
Then For Moderator You Need Have Access From "a" To "v" Like "abcdefghijklmmnopqrstuv"
But If Any Access Miissing You Not Show In The List
Then For "Admins" Can You Doing If you Have Access From "a" To "t" Like That
"abcdefghijklmmnopqrst" Then You Will Show In List Admins
But This Its Not Fix
If U want To Show In List "Admins" Or In List "Moderator" Or In List
"Adminstrator" You Need Have Thats Access Only To Show Thats U make Like
For Adminstartor "abcdefghijklmmnopqrstuvwxy"
For Moderator "abcdefghijklmmnopqrstuv"
For Admins "abcdefghijklmmnopqrst"
You Need Have Only Thats Access To Show In List Online
BUt I Dont Want So I Want To So Lisen
If Players Or Anyone Have Access From "A" To "y"
He SHow In List Adminstaror But If Missing And Access he Not Show
Then For Moderator If Players Dont Have Thats Access "abcdefghijklmmnopqrstuv"
Or If Him MIssing Any Access Like Explain If Missing This Access "a"
he Not SHow In List Moderator but He Need SHow In List ADmins
Can Anyone Doing So ?
Sry my Bad Englisht
Then For Admins If Players Have Thats Access From "a" To "t" He Show In List Admins
But And He's Missing Any Access he WIll SHow in List ADmins Like You Need Have Only Thats
Acess To Show In LIst Admins "abcdefghijklmmnopqrst" But need Fix Thats +if U missing Any
Acess you will show in list
Anyone Understan
? Please If Anyone Understan Fixed Thats For Me Please
PHP Code:
#include <amxmodx>
#include <amxmisc>
#define VIP_FLAG ADMIN_KICK
new const TAG[] = "[amxx]"
new const SERVERNAME[] = "amxx"
new const MESSAGE[] = "No online:"
new const rank_names[][] =
{
"Administrator",
"Moderator",
"Admins"
}
new const rank_flags[][] =
{
"abcdefghijklmnopqrstuvwxy",
"abcdefghijklmnopqrstuv",
"abcdefghijklmnopqrst"
}
new vip_rank = sizeof rank_names - 1;
new flags_rank[sizeof rank_flags], g_maxplayers, g_msg_saytext;
public plugin_init()
{
register_plugin("New Who Menu", "1.1", "GoogleStrik");
register_clcmd("say /admins", "cmd_who");
register_clcmd("say /admin", "cmd_who");
g_maxplayers = get_maxplayers();
g_msg_saytext = get_user_msgid("SayText");
for(new i = 0; i < sizeof rank_flags; i++)
flags_rank[i] = read_flags(rank_flags[i]);
}
public cmd_who(id)
{
new menu, menu_item[80], tasta[2];
formatex(menu_item, charsmax(menu_item), "\r[%s] \dAdmin List Online", SERVERNAME);
menu = menu_create(menu_item, "handler_who");
for(new i = 0; i < sizeof rank_names; i++)
{
formatex(menu_item, charsmax(menu_item), "\y%s\r[\w%d\r]", rank_names[i], get_rang_players(i));
tasta[0] = i;
tasta[1] = 0;
menu_additem(menu, menu_item, tasta);
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public handler_who(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
menu_destroy(menu);
show_players_rang(id, item);
return PLUGIN_HANDLED;
}
public show_players_rang(id, item)
{
if(!get_rang_players(item))
{
color(id, ".v%s.g %s.e %s.g!", TAG, MESSAGE, rank_names[item]);
return PLUGIN_HANDLED;
}
new menu_item[80], tasta[2], menu;
formatex(menu_item, charsmax(menu_item), "\rAdmin List Level\y %s\r.^nMany Member Online:\y %d^n", rank_names[item], get_rang_players(item))
menu = menu_create(menu_item, "handler_players_rang");
new i, xul;
xul = 0;
if(item == vip_rank)
{
for(i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue;
if(get_user_flags(i) & VIP_FLAG)
{
formatex(menu_item, charsmax(menu_item), "\y%s", get_name(i));
tasta[0] = xul;
tasta[1] = 0;
xul++;
menu_additem(menu, menu_item, tasta);
}
}
}
else
{
for(i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue;
if(get_user_flags(i) == flags_rank[item] || get_user_flags(i) == (flags_rank[item] | VIP_FLAG))
{
formatex(menu_item, charsmax(menu_item), "\y%s", get_name(i));
tasta[0] = xul;
tasta[1] = 0;
xul++;
menu_additem(menu, menu_item, tasta);
}
}
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public handler_players_rang(id, menu)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public get_rang_players(rank)
{
new i, players;
if(rank == vip_rank)
{
new tmp;
for(i = 1; i <= g_maxplayers; i++)
{
tmp = get_user_flags(i);
if(is_user_connected(i) && (tmp & VIP_FLAG) && !(tmp & ADMIN_BAN))
players++;
}
}
else
{
for(i = 1; i <= g_maxplayers; i++)
{
if(is_user_connected(i) && get_user_flags(i) == flags_rank[rank] || get_user_flags(i) == (flags_rank[rank] | VIP_FLAG))
players++;
}
}
return players;
}
stock get_name(id)
{
new name[32];
get_user_name(id, name, charsmax(name));
return name;
}
stock color(const id, const input[], any:...)
{
new count = 1, players[32];
new msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, ".v", "^4");
replace_all(msg, 190, ".g", "^1");
replace_all(msg, 190, ".e", "^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, g_msg_saytext, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}