#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <ColorChat>
#define PLUGIN "Weapons Menu"
#define VERSION "1.0"
#define AUTHOR "CaTa"
#define VIP_FLAG ADMIN_LEVEL_H
#define is_valid_player(%1) (1 <= %1 <= 32)
const m_flNextSecondaryAttack = 47
new const vAreThomson[ 64 ] = "models/NewWeapons/v_hk416.mdl"
new const pAreThomson[ 64 ] = "models/NewWeapons/p_hk416.mdl"
new const vAreAug[ 64 ] = "models/NewWeapons/v_tar21.mdl"
new const pAreAug[ 64 ] = "models/NewWeapons/p_tar21.mdl"
new const vAreXm [ 64 ] = "models/NewWeapons/v_balrog11_2.mdl";
new const pAreXm [ 64 ] = "models/NewWeapons/p_balrog11.mdl";
new const vAreMp5 [ 64 ] = "models/NewWeapons/v_dualmp5.mdl";
new const pAreMp5 [ 64 ] = "models/NewWeapons/p_dualmp5.mdl";
new const vAreM3 [ 64 ] = "models/NewWeapons/v_sfgun.mdl";
new const pAreM3 [ 64 ] = "models/NewWeapons/p_sfgun.mdl";
new const vAreM249 [ 64 ] = "models/VipFurien/v_m134.mdl";
new const pAreM249 [ 64 ] = "models/VipFurien/p_m134.mdl";
new const vAreNavy [ 64 ] = "models/VipFurien/v_k1ases.mdl";
new const pAreNavy [ 64 ] = "models/VipFurien/p_k1ases.mdl";
new const vAreInfi [ 64 ] = "models/NewWeapons/v_infinity.mdl";
new const pAreInfi [ 64 ] = "models/NewWeapons/p_infinity.mdl";
new const vAreF2 [ 64 ] = "models/VipFurien/v_f2000.mdl";
new const pAreF2 [ 64 ] = "models/VipFurien/p_f2000.mdl";
new const vAreGM249 [ 64 ] = "models/VipFurien/v_goldenm2.mdl";
new const pAreGM249 [ 64 ] = "models/VipFurien/p_goldenm2.mdl";
new bool: ArmaPrimita[ 33 ]
new bool: AreThomson[ 33 ]
new bool: AreAug[ 33 ]
new bool: AreXm[ 33 ]
new bool: AreMp5[ 33 ]
new bool: AreM3[ 33 ]
new bool: AreM249[ 33 ]
new bool: AreNavy[ 33 ]
new bool: AreF2[ 33 ]
new bool: AreGM249[ 33 ]
new bool: AreInfi[ 33 ]
public plugin_init( ) {
register_plugin( PLUGIN, VERSION, AUTHOR )
register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" )
register_event("CurWeapon", "CurrWeapon2", "be", "be", "1=1" )
register_forward(FM_TraceLine,"fw_traceline");
register_forward(FM_PlayerPostThink,"fw_playerpostthink");
RegisterHam( Ham_Spawn, "player", "fwPlayerSpawn", true )
RegisterHam( Ham_TakeDamage, "player", "fwTakeDamage" )
register_clcmd( "say /weapons", "ClcmdWeaponsMenus" )
register_clcmd( "say_team /weapons", "ClcmdWeaponsMenus" )
register_event ( "CurWeapon", "CurrWeapon2", "be", "1=1" );
}
public plugin_precache( ) {
precache_model( vAreThomson )
precache_model( pAreThomson )
precache_model( vAreAug )
precache_model( pAreAug )
precache_model( vAreXm )
precache_model( pAreXm )
precache_model( vAreMp5 )
precache_model( pAreMp5 )
precache_model ( vAreM3 );
precache_model ( pAreM3 );
precache_model ( vAreM249 );
precache_model ( pAreM249 );
precache_model ( vAreNavy );
precache_model ( pAreNavy );
precache_model ( vAreF2 );
precache_model ( pAreF2 );
precache_model ( vAreGM249 );
precache_model ( pAreGM249 );
precache_model ( vAreInfi );
precache_model ( pAreInfi );
}
public fwPlayerSpawn( id ) {
AreThomson[ id ] = false
AreAug[ id ] = false
AreXm[ id ] = false
AreMp5[ id ] = false
AreM3[ id ] = false
AreM249[ id ] = false
AreNavy[ id ] = false
AreF2[ id ] = false
AreGM249[ id ] = false
AreInfi[ id ] = false
ArmaPrimita[ id ] = false
if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT )
{
PopUpWeaponsMenu( id )
}
}
public PopUpWeaponsMenu( id ) {
new FurienWeaponsMenu = menu_create( "\rAnti-Furien \dWeapons", "FurienWeaponsHandler" )
menu_additem( FurienWeaponsMenu, "Hunter \rGun^n", "1", 0 )
menu_additem( FurienWeaponsMenu, "V.I.P's \rGun", "2", 0 )
menu_setprop( FurienWeaponsMenu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, FurienWeaponsMenu, 0 )
}
public FurienWeaponsHandler( id, FurienWeaponsMenu, item ) {
if ( get_user_team ( id ) != 2 ) return 1;
if( item == MENU_EXIT ) {
menu_destroy( FurienWeaponsMenu )
return PLUGIN_HANDLED
}
switch( item ) {
case 0 : {
ArmeNormale( id )
}
case 1 : {
if( get_user_flags( id ) & VIP_FLAG ) {
ArmeVIP( id )
}
else {
ColorChat( id, GREEN, "^4[Furien Weapons]^1 This weapons are only for ^3 V.I.P^1. Add^3 [email protected]" )
PopUpWeaponsMenu( id )
}
}
}
return PLUGIN_HANDLED
}
public ArmeNormale( id ) {
new MeniuArmeNormale = menu_create( "\wHunter \dGuns", "ArmeNormaleHandler" )
menu_additem( MeniuArmeNormale, "\wHk416", "1", 0 )
menu_additem( MeniuArmeNormale, "\wTar21", "2", 0 )
menu_additem( MeniuArmeNormale, "\wBalrog", "3", 0 )
menu_additem( MeniuArmeNormale, "\wDual Mp5", "4", 0 )
menu_additem( MeniuArmeNormale, "\wSfGun", "5", 0 )
menu_setprop( MeniuArmeNormale, MPROP_EXIT, MEXIT_ALL )
menu_display( id, MeniuArmeNormale, 0 )
}
public ArmeNormaleHandler( id, MeniuArmeNormale, item ) {
if( !is_user_alive( id ) ) {
ColorChat( id, GREEN, "^4[Furien Weapons]^1 You can not choose your weapon when you're dead!" )
return PLUGIN_HANDLED
}
if ( get_user_team ( id ) != 2 ) return 1;
if( item == MENU_EXIT ) {
menu_destroy( MeniuArmeNormale )
return PLUGIN_HANDLED
}
switch( item ) {
case 0 : {
give_item( id, "weapon_m4a1" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_M4A1, 250 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
set_pev( id, pev_viewmodel2, vAreThomson )
set_pev( id, pev_weaponmodel2, pAreThomson )
AreThomson[ id ] = true
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
}
case 1 : {
give_item( id, "weapon_aug" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_AUG, 250 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
set_pev( id, pev_viewmodel2, vAreAug )
set_pev( id, pev_weaponmodel2, pAreAug )
AreAug[ id ] = true
AreInfi[ id ] = true
ArmaPrimita[ id ] = true
CurrWeapon2 ( id );
}
case 2 : {
give_item( id, "weapon_xm1014" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_XM1014, 250 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
set_pev( id, pev_viewmodel2, vAreXm )
set_pev( id, pev_weaponmodel2, pAreXm )
AreXm[ id ] = true
AreInfi[ id ] = true
ArmaPrimita[ id ] = true
CurrWeapon2 ( id );
}
case 3 : {
give_item( id, "weapon_mp5navy" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_MP5NAVY, 250 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
set_pev( id, pev_viewmodel2, vAreMp5 )
set_pev( id, pev_weaponmodel2, pAreMp5 )
AreMp5[ id ] = true
AreInfi[ id ] = true
ArmaPrimita[ id ] = true
CurrWeapon2 ( id );
}
case 4 : {
give_item( id, "weapon_ak47" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_AK47, 250 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
set_pev( id, pev_viewmodel2, vAreM3 )
set_pev( id, pev_weaponmodel2, pAreM3 )
AreM3[ id ] = true
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
}
}
menu_destroy( MeniuArmeNormale )
return PLUGIN_HANDLED
}
public ArmeVIP( id ) {
new MeniuArmeVIP = menu_create( "\wVIP\d Guns*", "ArmeVIPHandler" )
menu_additem( MeniuArmeVIP, "M134 \w[\dX3.5\w]", "1", 0 );
menu_additem( MeniuArmeVIP, "K1ASES \w[\dX3.5\w]", "2", 0 );
menu_additem( MeniuArmeVIP, "F2000 \w[\dX3.5\w]", "3", 0 )
menu_additem( MeniuArmeVIP, "Gold M249 \w[\dX3.5\w]", "4", 0 )
menu_setprop( MeniuArmeVIP, MPROP_EXIT, MEXIT_ALL )
menu_display( id, MeniuArmeVIP, 0 )
}
public ArmeVIPHandler( id, MeniuArmeVIP, item ) {
if( !is_user_alive( id ) ) {
ColorChat( id, GREEN, "^4[Furien Weapons]^1 You can not choose your weapon when you're dead!" )
return PLUGIN_HANDLED
}
if ( get_user_team ( id ) != 2 ) return 1;
if( item == MENU_EXIT ) {
menu_destroy( MeniuArmeVIP )
return PLUGIN_HANDLED
}
switch( item ) {
case 0 : {
give_item( id, "weapon_m249" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_M249, 250 )
set_pev( id, pev_viewmodel2, vAreM249 )
set_pev( id, pev_weaponmodel2, pAreM249 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
AreM249[ id ] = true
}
case 1 : {
give_item( id, "weapon_mp5navy" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_MP5NAVY, 250 )
set_pev( id, pev_viewmodel2, vAreNavy )
set_pev( id, pev_weaponmodel2, pAreNavy )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
AreNavy[ id ] = true
}
case 2:
{
give_item( id, "weapon_sg552" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_SG552, 250 )
set_pev( id, pev_viewmodel2, vAreF2 )
set_pev( id, pev_viewmodel2, pAreF2 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
AreF2[ id ] = true
}
case 3:
{
give_item( id, "weapon_m249" )
give_item( id, "weapon_elite" )
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_smokegrenade" )
cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 2 )
cs_set_user_bpammo( id, CSW_ELITE, 100 )
cs_set_user_bpammo( id, CSW_M249, 250 )
set_pev( id, pev_viewmodel2, vAreGM249 )
set_pev( id, pev_weaponmodel2, pAreGM249 )
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_weaponmodel2, pAreInfi )
AreInfi[ id ] = true
CurrWeapon2 ( id );
ArmaPrimita[ id ] = true
AreGM249[ id ] = true
}
}
menu_destroy( MeniuArmeVIP )
return PLUGIN_HANDLED
}
public ClcmdWeaponsMenus( id ) {
if( !is_user_alive( id ) ) {
ColorChat( id,GREEN, "^4[Furien Weapons]^1 You can not choose your weapon when you're dead!" )
return
}
if( ArmaPrimita[ id ] ) {
ColorChat( id, GREEN,"^4[Furien Weapons]^1 You've already chosen weapon in this round!" )
return
}
if( cs_get_user_team( id ) == CS_TEAM_CT ) {
PopUpWeaponsMenu( id )
}
}
public Event_CurWeapon( id ) {
new Arma = read_data( 2 )
if( Arma == CSW_M4A1 && AreThomson[ id ] ) {
set_pev( id, pev_viewmodel2, vAreThomson )
set_pev( id, pev_weaponmodel2, pAreThomson )
}
if( Arma == CSW_AUG && AreAug[ id ] ) {
set_pev( id, pev_viewmodel2, vAreAug )
set_pev( id, pev_weaponmodel2, pAreAug )
}
if( Arma == CSW_XM1014 && AreXm[ id ] ) {
set_pev( id, pev_viewmodel2, vAreXm )
set_pev( id, pev_weaponmodel2, pAreXm )
}
if( Arma == CSW_MP5NAVY && AreMp5[ id ] ) {
set_pev( id, pev_viewmodel2, vAreMp5 )
set_pev( id, pev_viewmodel2, pAreMp5 )
}
if( Arma == CSW_AK47 && AreM3[ id ] ) {
set_pev( id, pev_viewmodel2, vAreM3 )
set_pev( id, pev_viewmodel2, pAreM3 )
}
if( Arma == CSW_M249 && AreM249[ id ] ) {
set_pev( id, pev_viewmodel2, vAreM249 )
set_pev( id, pev_viewmodel2, pAreM249 )
}
if( Arma == CSW_MP5NAVY && AreNavy[ id ] ) {
set_pev( id, pev_viewmodel2, vAreNavy )
set_pev( id, pev_viewmodel2, pAreNavy )
}
if( Arma == CSW_SG552 && AreF2[ id ] ) {
set_pev( id, pev_viewmodel2, vAreF2 )
set_pev( id, pev_viewmodel2, pAreF2 )
}
if( Arma == CSW_M249 && AreGM249[ id ] ) {
set_pev( id, pev_viewmodel2, vAreGM249 )
set_pev( id, pev_viewmodel2, pAreGM249 )
}
if( Arma == CSW_ELITE && AreInfi[ id ] ) {
set_pev( id, pev_viewmodel2, vAreInfi )
set_pev( id, pev_viewmodel2, pAreInfi )
}
}
public CurrWeapon2 ( id ) {
if ( get_user_weapon ( id ) == CSW_M4A1 && AreThomson [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreThomson );
set_pev ( id, pev_weaponmodel2, pAreThomson );
}
if ( get_user_weapon ( id ) == CSW_AUG && AreAug [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreAug );
set_pev ( id, pev_weaponmodel2, pAreAug );
}
if ( get_user_weapon ( id ) == CSW_XM1014 && AreXm [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreXm );
set_pev ( id, pev_weaponmodel2, pAreXm );
}
if ( get_user_weapon ( id ) == CSW_MP5NAVY && AreMp5 [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreMp5 );
set_pev ( id, pev_weaponmodel2, pAreMp5 );
}
if ( get_user_weapon ( id ) == CSW_AK47 && AreM3 [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreM3 );
set_pev ( id, pev_weaponmodel2, pAreM3 );
}
if ( get_user_weapon ( id ) == CSW_M249 && AreM249 [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreM249 );
set_pev ( id, pev_weaponmodel2, pAreM249 );
}
if ( get_user_weapon ( id ) == CSW_MP5NAVY && AreNavy [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreNavy );
set_pev ( id, pev_weaponmodel2, pAreNavy );
}
if ( get_user_weapon ( id ) == CSW_SG552 && AreF2 [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreF2 );
set_pev ( id, pev_weaponmodel2, pAreF2 );
}
if ( get_user_weapon ( id ) == CSW_M249 && AreGM249 [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreGM249 );
set_pev ( id, pev_weaponmodel2, pAreGM249 );
}
if ( get_user_weapon ( id ) == CSW_ELITE && AreInfi [ id ] ) {
set_pev ( id, pev_viewmodel2, vAreInfi );
set_pev ( id, pev_weaponmodel2, pAreInfi );
}
}
public fwTakeDamage( Victim, Inflictor, Attacker, Float:Damage ) {
if( is_valid_player( Attacker ) && get_user_weapon( Attacker ) == CSW_M4A1 && AreThomson[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.5 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_AUG && AreAug[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.5 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_XM1014 && AreXm[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.5 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_MP5NAVY && AreMp5[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.5 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_AK47 && AreM3[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.5 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_M249 && AreM249[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 4.0 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_MP5NAVY && AreNavy[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 4.0 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_SG552 && AreF2[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 4.0 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_M249 && AreGM249[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 4.0 )
}
if( is_valid_player( Attacker) && get_user_weapon( Attacker ) == CSW_ELITE && AreInfi[ Attacker ] ) {
SetHamParamFloat( 4, Damage * 2.8 )
}
}