Post by groofshark on Jan 25, 2015 9:42:04 GMT
Hello, I have 2 problems:
1) if player1 open the menu, player2 cant open it until player1 close the menu
for 1st problem there is a information
2) if player has immunity it is displayed like a normal(without immunity), I want to remove option to choose immunity player, but this player to exist in menu(without number or just in other color - red or grey)
Here's the code:
I'd like to tell me how can I fix it?
1) if player1 open the menu, player2 cant open it until player1 close the menu
for 1st problem there is a information
L 01/25/2015 - 02:42:53: Start of error session.
L 01/25/2015 - 02:42:53: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20150125.log")
L 01/25/2015 - 02:42:53: Blanks can only be added after items.
L 01/25/2015 - 02:42:53: [AMXX] Displaying debug trace
L 01/25/2015 - 02:42:53: [AMXX] Run time error 10: native error (native "menu_addtext")
L 01/25/2015 - 02:42:53: [AMXX] [0] MakePlayersMenu (line 57)
L 01/25/2015 - 02:42:53: [AMXX] [1] ClCmd_players (line 20)
2) if player has immunity it is displayed like a normal(without immunity), I want to remove option to choose immunity player, but this player to exist in menu(without number or just in other color - red or grey)
Here's the code:
#include <amxmodx>
#include <amxmisc>
enum ( <<= 1 )
{
PLMENU_OBEY_IMMUNITY = 1,
PLMENU_ALLOW_SELF,
PLMENU_ONLY_ALIVE,
PLMENU_NO_BOTS
}
public plugin_init()
{
register_clcmd("say /players", "ClCmd_players")
register_clcmd("say_team /players", "ClCmd_players")
}
public ClCmd_players(id)
{
MakePlayersMenu(id, "\yPlayers List:", "PlayersMenu_Handler", PLMENU_OBEY_IMMUNITY)
}
MakePlayersMenu(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
new szFlags[4] = "h"
if( iFlags & PLMENU_ONLY_ALIVE )
{
szFlags[++iNum] = 'a'
}
if( iFlags & PLMENU_NO_BOTS )
{
szFlags[++iNum] = 'c'
}
get_players(iPlayers, iNum, szFlags)
new szPlayerName[32], szUserId[32]
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)
}
}
menu_display(id, iMenu)
return iMenu
}
public PlayersMenu_Handler(id, iMenu, iItem)
{
if( iItem == MENU_EXIT )
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
new szUserId[32], szPlayerName[32], iCallback
menu_item_getinfo(iMenu, iItem, iCallback, szUserId, charsmax(szUserId), szPlayerName, charsmax(szPlayerName), iCallback)
new UserId = str_to_num(szUserId)
new iPlayer = find_player("k", UserId)
if( iPlayer )
{
new szName[32]
get_user_name(iPlayer, szName, charsmax(szName))
client_print(id, print_chat, "You have chosen %s", szName)
}
else
{
client_print(id, print_chat, "Seems %s is no longer in server...", szPlayerName)
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}