jep.
Code:
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <hamsandwich>
enum {NONE, ADMIN, VIP, PLAYER}
enum {NO_MODEL, ADMIN_TE, ADMIN_CT, STAMMIE_TE, STAMMIE_CT}
new const g_ModelPath[][] = {
"models/player/mfb_admin_te/mfb_admin_te.mdl",
"models/player/mfb_admin_ct/mfb_admin_ct.mdl",
"models/player/mfb_stammie_te/mfb_stammie_te.mdl",
"models/player/mfb_stammie_ct/mfb_stammie_ct.mdl"
}
new g_PlayerModel[33]
new g_iPlayerStatus[33]
new bool:g_bFisrstSpawn[33]
new g_tagposition
new g_clantag
public plugin_init( )
{
register_plugin( "Admin Models", "1.0", "vato loco [GE-S]" )
register_clcmd( "say /amodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say .amodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say /adminmodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say .adminmodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say_team /amodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say_team .amodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say_team /adminmodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say_team .adminmodels", "chooseModel", ADMIN_BAN )
register_clcmd( "say /stmodels", "chooseModelStammie", ADMIN_RESERVATION )
register_clcmd( "say .stmodels", "chooseModelStammie", ADMIN_RESERVATION )
register_clcmd( "say_team /stmodels", "chooseModelStammie", ADMIN_RESERVATION )
register_clcmd( "say_team .stmodels", "chooseModelStammie", ADMIN_RESERVATION )
g_tagposition = register_cvar("mfb_tagposition", "1")
g_clantag = register_cvar("mfb_clantag", "MFB-Stammie | ")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawn", 1)
}
public plugin_precache( )
{
for( new i ; i < sizeof( g_ModelPath ) ; i++ )
{
precache_model( g_ModelPath[i] )
}
}
public client_connecting( id )
{
g_iPlayerStatus[ id ] = NONE
g_PlayerModel[ id ] = NO_MODEL
g_bFisrstSpawn[ id ] = false
}
public client_putinserver( id )
{
CheckClientStatus( id )
}
public client_disconnect( id )
{
g_iPlayerStatus[ id ] = NONE
g_PlayerModel[ id ] = NO_MODEL
g_bFisrstSpawn[ id ] = false
}
public fwHamPlayerSpawn( id )
{
if (is_user_alive( id ))
{
if(g_bFisrstSpawn[ id ] )
{
if( g_iPlayerStatus[ id ] == ADMIN)
ModelMenu( id )
if( g_iPlayerStatus[ id ] == VIP)
ModelMenuStammie( id )
}
g_bFisrstSpawn[ id ] = false
CheckCvar(id)
if(g_iPlayerStatus[ id ] == ADMIN || g_iPlayerStatus[ id ] == VIP)
{
new g_PlayerModelID = g_PlayerModel[id]
new is_plr_vip = cs_get_user_vip( id )
switch ( cs_get_user_team( id ) )
{
case CS_TEAM_T:
{
switch(g_PlayerModelID)
{
case ADMIN_TE: cs_set_user_model( id, "mfb_admin_te" )
case ADMIN_CT:
{
cs_set_user_model( id, "mfb_admin_te" )
g_PlayerModel[id] = ADMIN_TE
}
case STAMMIE_TE: cs_set_user_model( id, "mfb_stammie_te" )
case STAMMIE_CT:
{
cs_set_user_model( id, "mfb_stammie_te" )
g_PlayerModel[id] = STAMMIE_TE
}
case NO_MODEL: return HAM_SUPERCEDE
}
}
case CS_TEAM_CT:
{
switch(is_plr_vip)
{
case false:
{
switch(g_PlayerModelID)
{
case ADMIN_TE:
{
cs_set_user_model( id, "mfb_admin_ct" )
g_PlayerModel[id] = ADMIN_CT
}
case ADMIN_CT: cs_set_user_model( id, "mfb_admin_ct" )
case STAMMIE_TE:
{
cs_set_user_model( id, "mfb_stammie_ct" )
g_PlayerModel[id] = STAMMIE_CT
}
case STAMMIE_CT: cs_set_user_model( id, "mfb_stammie_ct" )
case NO_MODEL: return HAM_SUPERCEDE
}
}
case true: cs_set_user_model( id, "vip" )
}
}
}
}
}
return HAM_IGNORED
}
public chooseModel( id )
{
if (is_user_alive( id ) && g_iPlayerStatus[ id ] == ADMIN)
ModelMenu( id )
return PLUGIN_HANDLED
}
public ModelMenu( id )
{
new menu = menu_create( "\yAMXX Admin Model Menu", "menu_handler" )
menu_additem( menu, "MFB Admin Model", "1", 0 )
menu_additem( menu, "Standart Model", "2", 0 )
menu_display( id, menu, 0 )
return PLUGIN_HANDLED
}
public menu_handler( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu )
return PLUGIN_HANDLED
}
new data[ 6 ], iName[ 64 ]
new access, callback
menu_item_getinfo( menu, item, access, data,5, iName, 63, callback )
switch ( str_to_num( data ) )
{
case 1:
{
switch ( cs_get_user_team( id ) )
{
case CS_TEAM_T:
{
if ( is_user_alive( id ) )
{
cs_set_user_model( id, "mfb_admin_te" )
g_PlayerModel[id] = ADMIN_TE
}
}
case CS_TEAM_CT:
{
if ( is_user_alive( id ) )
{
cs_set_user_model( id, "mfb_admin_ct" )
g_PlayerModel[id] = ADMIN_CT
}
}
}
}
case 2:
{
if(g_PlayerModel[id] == NO_MODEL)
{
g_PlayerModel[id] = NO_MODEL
}
else
{
cs_reset_user_model(id)
g_PlayerModel[id] = NO_MODEL
}
}
}
return PLUGIN_HANDLED
}
public chooseModelStammie( id )
{
if (is_user_alive( id ) && g_iPlayerStatus[ id ] == VIP)
ModelMenuStammie( id )
return PLUGIN_HANDLED
}
public ModelMenuStammie( id )
{
new menu = menu_create( "\yAMXX Stammie Model Menu", "menu_handler_stammie" )
menu_additem( menu, "MFB Stammie Model", "1", 0 )
menu_additem( menu, "Standart Model", "2", 0 )
menu_display( id, menu, 0 )
return PLUGIN_HANDLED
}
public menu_handler_stammie( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu )
return PLUGIN_HANDLED
}
new data[ 6 ], iName[ 64 ]
new access, callback
menu_item_getinfo( menu, item, access, data,5, iName, 63, callback )
switch ( str_to_num( data ) )
{
case 1:
{
switch ( cs_get_user_team( id ) )
{
case CS_TEAM_T:
{
if ( is_user_alive( id ) )
{
cs_set_user_model( id, "mfb_stammie_te" )
g_PlayerModel[id] = STAMMIE_TE
}
}
case CS_TEAM_CT:
{
if ( is_user_alive( id ) )
{
cs_set_user_model( id, "mfb_stammie_ct" )
g_PlayerModel[id] = STAMMIE_CT
}
}
}
}
case 2:
{
if(g_PlayerModel[id] == NO_MODEL)
{
g_PlayerModel[id] = NO_MODEL
}
else
{
cs_reset_user_model(id)
g_PlayerModel[id] = NO_MODEL
}
}
}
return PLUGIN_HANDLED
}
public client_name(id)
{
new Name[32]
get_user_name(id, Name ,31)
return force_tag(id, Name)
}
public client_infochanged(id)
{
new Name[32]
get_user_info(id, "name", Name, 31)
return force_tag(id, Name)
}
stock force_tag(id, Name[])
{
new ClanTag[24]
get_pcvar_string(g_clantag, ClanTag, 23)
new TagPosition = get_pcvar_num(g_tagposition)
switch(TagPosition)
{
case 0:
{
if(g_iPlayerStatus[ id ] == PLAYER && containi(Name, ClanTag) < 0)
{
g_iPlayerStatus[ id ] = VIP
}
}
case 1:
{
if(g_iPlayerStatus[ id ] == PLAYER && containi(ClanTag, Name) < 0)
{
g_iPlayerStatus[ id ] = VIP
}
}
}
return PLUGIN_CONTINUE
}
stock CheckCvar(id)
{
query_client_cvar(id, "cl_minmodels", "CvarResult")
}
stock CvarResult(id, const szCvar[], const szValue[])
{
if(szValue[0] == '1')
{
client_cmd(id, "cl_minmodels 0")
}
}
stock CheckClientStatus( id )
{
if( is_user_admin(id) )
{
g_iPlayerStatus[ id ] = ADMIN
}
else
{
g_iPlayerStatus[ id ] = PLAYER
}
g_bFisrstSpawn[ id ] = true
set_task(1.0,"client_name", id)
}