I don't really understand the problem, but try this:
PHP Code:
#include <amxmodx>
#include <cstrike>
new pRestartRound
public plugin_init()
{
register_plugin( "Spec Menu", "1.0", "Hawk552" )
// Add admin checking.
register_clcmd( "amx_specmenu", "CmdSpecMenu" )
pRestartRound = get_cvar_pointer( "sv_restartround" )
}
public CmdSpecMenu( id )
{
new players[32], playersNum, player, doBreak
get_players( players, playersNum )
for ( new i; i < playersNum; i++ )
{
if ( cs_get_user_team( ( player = players[i] ) ) == CS_TEAM_SPECTATOR )
{
static menuTitle[64], name[33], idStr[3]
get_user_name( player, name, 32 )
num_to_str( player, idStr, 2 )
formatex( menuTitle, 63, "Which team should %s be on?", name )
new menu = menu_create( menuTitle, "MenuHandle" )
menu_additem( menu, "Terrorist", idStr )
menu_additem( menu, "Counter-Terrorist" )
menu_display( id, menu )
doBreak = 1
break
}
}
if ( !doBreak )
set_pcvar_num( "sv_restartround", 1 )
return PLUGIN_HANDLED
}
public MenuHandle( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu )
return PLUGIN_HANDLED
}
static garbage, idStr[3]
menu_item_getinfo( menu, 0, garbage, idStr, 2, _, _, garbage )
menu_destroy( menu )
new player = str_to_num( idStr )
new teamStr[2]
teamStr[0] = item ? '2' : '1'
// In case they left before the menu option was chosen.
if ( is_user_connected( player ) )
{
engclient_cmd( player, "jointeam", teamStr )
//engclient_cmd( player, "joinclass", "1" )
// If they're still spectators.
if ( cs_get_user_team( player ) == CS_TEAM_SPECTATOR )
// Use a crappier method that always works.
cs_set_user_team( player, item ? CS_TEAM_CT : CS_TEAM_T )
}
CmdSpecMenu( id )
return PLUGIN_HANDLED
}
__________________