I used get_user_team because when using cs_get_user_team the plugin will not work with zp mod, bb mod or it will give bug:
PHP Code:
#include <amxmodx>
#include <fakemeta>
// Credits : @Bugsy for some optimizations
enum
{
TEAM_UNASSIGNED = 0,
TEAM_T,
TEAM_CT,
TEAM_SPEC
}
enum pWeapons
{
WeaponsID,
ModelV[ 64 ],
ModelP[ 64 ],
Access,
Teams
}
new g_szWeapons[ ][ pWeapons ] =
{
/* Weapon ID, Model V, Model P Access */
{ CSW_KNIFE, "models/vipweapons/knife.mdl", "models/vipweapons/knife.mdl", ADMIN_LEVEL_A, TEAM_CT },// Owner knife model
{ CSW_KNIFE, "models/vipweapons/knife.mdl", "models/vipweapons/knife.mdl", ADMIN_LEVEL_H, TEAM_CT }, // Vip knife model
{ CSW_AK47, "models/vipweapons/ak47.mdl", "", ADMIN_LEVEL_H, TEAM_CT },
{ CSW_M4A1, "models/vipweapons/m4a1.mdl", "", ADMIN_LEVEL_H, TEAM_CT },
{ CSW_AWP, "models/vipweapons/awp.mdl", "", ADMIN_LEVEL_H, TEAM_CT }
}
public plugin_init()
{
register_plugin("Weapon models", "1.0.2", "Supremache")
register_event("CurWeapon", "OnCurWeapon", "be", "1=1");
}
public plugin_precache( )
{
for( new i = 0 ; i < sizeof( g_szWeapons ); i++ )
{
if( g_szWeapons[ i ][ ModelV ][ 0 ] != EOS )
{
precache_model( g_szWeapons[ i ][ ModelV ] )
}
if( g_szWeapons[ i ][ ModelP ][ 0 ] != EOS )
{
precache_model( g_szWeapons[ i ][ ModelP ] )
}
}
}
public OnCurWeapon( id )
{
if( !is_user_alive( id ) )
{
return;
}
new iWeapon = read_data(2);
for(new i = 0 ; i < sizeof( g_szWeapons ); i++ )
{
if( get_user_team( id ) == g_szWeapons[ i ][ Teams ] && ( get_user_flags( id ) & g_szWeapons[ i ][ Access ] == g_szWeapons[ i ][ Access ] ) && iWeapon == g_szWeapons[ i ][ WeaponsID ] )
{
if( g_szWeapons[ i ][ ModelV ][ 0 ] != EOS )
set_pev( id, pev_viewmodel2, g_szWeapons[ i ][ ModelV ] )
if( g_szWeapons[ i ][ ModelP ][ 0 ] != EOS )
set_pev( id, pev_weaponmodel2, g_szWeapons[ i ][ ModelP ] )
break;
}
}
}
__________________