CookieCrumbler |
02-10-2018 08:39 |
PUG Auto Spec on Connect & 5v5 Team lock
1 Attachment(s)
PUG Auto Spec on Connect & 5v5 Team lock
Features
Blocks the MOTD and the Team VGUI on connect and places you straight onto Spectator
Infinite Team Change
5v5 Team Limit
Credits
Coder for our community.
hornet
Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#define VGUI_SELECT_TEAM 2
#define MENU_JOINTEAM 1
#define GAMESTATE_JOINTEAM 4
#define XO_PLAYER 5
#define m_iPlayerTeam 114
#define m_iJoiningState 121
#define m_bHasChangeTeamThisRound 125
#define m_iMenu 205
new g_pcvarTeamLimit;
public plugin_init()
{
register_plugin( "Auto Spec + Team Limiter", "0.0.1", "hornet" );
register_clcmd( "jointeam", "ClientCommand_Team" );
register_clcmd( "chooseteam", "ClientCommand_Team" );
register_clcmd( "menuselect", "ClientCommand_Team" );
register_message( get_user_msgid( "MOTD" ), "Message_MOTD" );
register_message( get_user_msgid( "ShowMenu" ), "Message_ShowMenu" );
register_message( get_user_msgid( "VGUIMenu" ), "Message_VGUIMenu" );
g_pcvarTeamLimit = register_cvar( "pug_team_limit", "5" );
}
public client_disconnected( id )
{
remove_task( id );
}
public ClientCommand_Team( id )
{
if( ( get_pdata_int( id, m_iMenu ) == MENU_JOINTEAM && get_pdata_int( id, m_iJoiningState ) == GAMESTATE_JOINTEAM ) || get_pdata_int( id, m_iPlayerTeam ) == 3 )
{
new Players[ 32 ], iNum[ 3 ];
get_players( Players, iNum[ 2 ], "e", "CT" );
get_players( Players, iNum[ 1 ], "e", "TERRORIST" );
new szArg[ 4 ];
read_argv( 1, szArg, charsmax( szArg ) );
new iTeam = str_to_num( szArg );
if( iNum[ iTeam ] >= get_pcvar_num( g_pcvarTeamLimit ) )
{
client_print( id, print_center, "The team is full!" );
engclient_cmd( id, "jointeam", "3" );
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public Message_MOTD()
{
return PLUGIN_HANDLED;
}
public Message_ShowMenu( iMsg, iDest, id )
{
if( cs_get_user_team( id ) != CS_TEAM_UNASSIGNED )
return PLUGIN_CONTINUE;
static MESSAGE[] = "#Team_Select", szMsg[ charsmax( MESSAGE ) ];
get_msg_arg_string( 4, szMsg, charsmax( szMsg ) );
if( equal( szMsg, MESSAGE ) )
{
static data[ 2 ];
data[ 0 ] = iMsg;
set_task(0.1, "task_JoinTeam", id, data, sizeof( data ) );
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public Message_VGUIMenu( iMsg, iDest, id )
{
if( get_msg_arg_int( 1 ) != VGUI_SELECT_TEAM || cs_get_user_team( id ) != CS_TEAM_UNASSIGNED )
return PLUGIN_CONTINUE;
static data[ 2 ];
data[ 0 ] = iMsg;
set_task(0.1, "task_JoinTeam", id, data, sizeof( data ) );
return PLUGIN_HANDLED;
}
public task_JoinTeam( data[], id )
{
static block;
block = get_msg_block( data[ 0 ] );
set_msg_block( data[0], BLOCK_SET );
engclient_cmd( id, "jointeam", "6" );
set_msg_block( data[0], block );
set_pdata_int( id, m_bHasChangeTeamThisRound, 0, XO_PLAYER )
}
|