PHP Code:
#define PLMENU_OBEY_IMMUNITY (1<<0)
#define PLMENU_ALLOW_SELF (1<<1)
#define PLMENU_ONLY_ALIVE (1<<2)
#define PLMENU_NO_BOTS (1<<3)
MakePlayerMenu(id, const szMenuTitle[], const szMenuHandler[], iFlags = PLMENU_OBEY_IMMUNITY)
{
new iMenu = menu_create(szMenuTitle, szMenuHandler)
new bool:bIsSuperAdmin
if( iFlags & PLMENU_OBEY_IMMUNITY )
{
bIsSuperAdmin = !!(get_user_flags(id) & ADMIN_RCON)
}
new iPlayers[32], iNum, iPlayer, szPlayerName[32], szUserId[32]
new szFlags[4] = "h"
if( iFlags & PLMENU_ONLY_ALIVE )
{
szFlags[++iNum] = 'a'
}
if( flags & PLMENU_NO_BOTS )
{
szFlags[++iNum] = 'c'
}
get_players(iPlayers, iNum, szFlags)
for(--iNum; iNum>=0; iNum--)
{
iPlayer = iPlayers[iNum]
get_user_name(iPlayer, szPlayerName, charsmax(szPlayerName))
if( iFlags & PLMENU_OBEY_IMMUNITY && !bIsSuperAdmin
&& ( (get_user_flags(iPlayer) & ADMIN_IMMUNITY) &&
((iFlags & PLMENU_ALLOW_SELF) ? (id != iPlayer) : true) ) )
{
menu_addtext(iMenu, szPlayerName)
}
else
{
formatex(szUserId, charsmax(szUserId), "%d", get_user_userid(iPlayer))
menu_additem(iMenu, szPlayerName, szUserId, 0)
}
}
return iMenu
}
public PlayersMenuHandler_Sample(id, iMenu, iItem)
{
if( iItem == MENU_EXIT )
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
new szUserId[32], szPlayerName[32], iPlayer
menu_item_getinfo(iMenu, iItem, iCRAP, szUserId, charsmax(szUserId), szPlayerName, charsmax(szPlayerName), iPlayer /* tip */)
if( (iPlayer = find_player("k", str_to_num(szUserId))) )
{
new szName[32]
get_user_name(iPlayer, szName, charsmax(szName))
client_print(id, print_chat, "You have chosen #%s %s %s", szUserId, szPlayerName, szName)
}
else
{
client_print(id, print_chat, "Player %s<%s> seems to be disconnected", szPlayerName, szAuthid)
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
__________________