Page 1 of 2

Custom Weapons Menu

Posted: 10 Aug 2018, 16:15
by Raheem
Golden Weapons

Description:
  • This plugin add custom weapons for higher level, it's an upgrade for Level Weapons Menu.
    1. Level 15 - Unlock Golden M3
    2. Level 20 - Unlock Golden MP5
    3. Level 25 - Unlock Golden M4A1
    4. Level 30 - Unlock Golden AK-47
    Thanks for Spir0x he suggested these guns in this order.
Information:
  • You will find the golden guns cvars inside each .sma file, change it as you need.
  • This will work on Zombie Escape Mod version >= 1.3
Screenshots:
  • ImageImageImageImageImage
Downloads:

Re: Custom Weapons Menu

Posted: 10 Aug 2018, 17:13
by czirimbolo
L 08/10/2018 - 19:13:10: Invalid CVAR pointer
L 08/10/2018 - 19:13:10: [AMXX] Displaying debug trace (plugin "ze_golden_m3.amxx", version "1.0")
L 08/10/2018 - 19:13:10: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 08/10/2018 - 19:13:10: [AMXX] [0] ze_golden_m3.sma::make_tracer (line 209)

Re: Custom Weapons Menu

Posted: 10 Aug 2018, 17:52
by Raheem
Fixed.

Re: Custom Weapons Menu

Posted: 11 Aug 2018, 23:03
by sPe3doN

Code: Select all

expected at least 6, real 1
L 08/11/2018 - 22:51:39: [AMXX] Run time error 1 (plugin "ze_golden_m4a1.amxx") - forced exit
L 08/11/2018 - 22:51:39: [AMXX] Plugin ("ze_golden_mp5.amxx") is setting itself as failed.
L 08/11/2018 - 22:51:39: [AMXX] Plugin says: [ReAPI]: Api minor version mismatch; expected at least 6, real 1
L 08/11/2018 - 22:51:39: [AMXX] Run time error 1 (plugin "ze_golden_mp5.amxx") - forced exit
L 08/11/2018 - 22:51:39: [AMXX] Plugin ("ze_goldenak.amxx") is setting itself as failed.
L 08/11/2018 - 22:51:39: [AMXX] Plugin says: [ReAPI]: Api minor version mismatch; expected at least 6, real 1
L 08/11/2018 - 22:51:39: [AMXX] Run time error 1 (plugin "ze_goldenak.amxx") - forced exit
L 08/11/2018 - 22:51:53: Called dynanative into a paused plugin.
L 08/11/2018 - 22:51:53: [AMXX] Run time error 10 (plugin "ze_weapon_menu.amxx") (native "give_golden_mp5") - debug not enabled!

Re: Custom Weapons Menu

Posted: 11 Aug 2018, 23:34
by Raheem
Compile these plugins with your compiler and make sure that reapi includes match reapi version you are using on your server.

Re: Custom Weapons Menu

Posted: 13 Aug 2018, 09:18
by Prekrasnoe Daleko
Raheem , help.
L 08/13/2018 - 12:18:35: Invalid index 13 (count: 13
L 08/13/2018 - 12:18:35: [AMXX] Displaying debug trace (plugin "ze_weapon_menu.amxx", version "1.1")
L 08/13/2018 - 12:18:35: [AMXX] Run time error 10: native error (native "ArrayGetString")
L 08/13/2018 - 12:18:35: [AMXX] [0] ze_weapon_menu.sma::Show_Menu_Buy_Primary (line 446)
L 08/13/2018 - 12:18:35: [AMXX] [1] ze_weapon_menu.sma::Menu_Buy_Primary (line 598)
L 08/13/2018 - 12:18:38: Invalid index 13 (count: 13)
L 08/13/2018 - 12:18:38: [AMXX] Displaying debug trace (plugin "ze_weapon_menu.amxx", version "1.1")
L 08/13/2018 - 12:18:38: [AMXX] Run time error 10: native error (native "ArrayGetString")
L 08/13/2018 - 12:18:38: [AMXX] [0] ze_weapon_menu.sma::Show_Menu_Buy_Primary (line 446)
L 08/13/2018 - 12:18:38: [AMXX] [1] ze_weapon_menu.sma::Show_Available_Buy_Menus (line 324)
L 08/13/2018 - 12:18:38: [AMXX] [2] ze_weapon_menu.sma::Cmd_Buy (line 249)
L 08/13/2018 - 12:18:39: Invalid index 13 (count: 13)
L 08/13/2018 - 12:18:39: [AMXX] Displaying debug trace (plugin "ze_weapon_menu.amxx", version "1.1")
L 08/13/2018 - 12:18:39: [AMXX] Run time error 10: native error (native "ArrayGetString")
L 08/13/2018 - 12:18:39: [AMXX] [0] ze_weapon_menu.sma::Show_Menu_Buy_Primary (line 446)
L 08/13/2018 - 12:18:39: [AMXX] [1] ze_weapon_menu.sma::Show_Available_Buy_Menus (line 324)
L 08/13/2018 - 12:18:39: [AMXX] [2] ze_weapon_menu.sma::Cmd_Buy (line 249)

Re: Custom Weapons Menu

Posted: 13 Aug 2018, 10:27
by Raheem
In zombie_escape.ini you should have these weapons:
  • Code: Select all

    PRIMARY = weapon_xm1014 , weapon_ump45 , weapon_m3 , weapon_mp5navy , weapon_p90 , weapon_galil , weapon_famas , weapon_sg550 , weapon_g3sg1 , weapon_m249 , weapon_sg552 , weapon_aug , weapon_m4a1 , weapon_ak47
In case you removed any of them you will get this error, they should be 14 weapon not less/more. If you need to remove weapons you can tell me which you don't need and in this case i will need to edit the plugin for you.

Re: Custom Weapons Menu

Posted: 13 Aug 2018, 11:45
by Prekrasnoe Daleko
Raheem wrote: 5 years ago In zombie_escape.ini you should have these weapons:
  • Code: Select all

    PRIMARY = weapon_xm1014 , weapon_ump45 , weapon_m3 , weapon_mp5navy , weapon_p90 , weapon_galil , weapon_famas , weapon_sg550 , weapon_g3sg1 , weapon_m249 , weapon_sg552 , weapon_aug , weapon_m4a1 , weapon_ak47
In case you removed any of them you will get this error, they should be 14 weapon not less/more. If you need to remove weapons you can tell me which you don't need and in this case i will need to edit the plugin for you.
thanks Raheem all work

Re: Custom Weapons Menu

Posted: 14 Aug 2018, 20:28
by Prekrasnoe Daleko
Raheem, gold weapons very little patrons 1 magazine

Re: Custom Weapons Menu

Posted: 14 Aug 2018, 20:44
by Raheem
Issue from the weapons itself OK here it's just compile them using our ZE compiler.

1. M3
  • Code: Select all

    /*
    [ZP] Extra Item: Golden M3
    Team: Humans
    
    Description: This plugin adds a new weapon for Human Teams.
    Weapon Cost: 30
    
    Features:
    - This weapon do more damage
    - This weapon has zoom
    - Launch Lasers
    - This weapon has unlimited bullets
    
    Cvars:
    
    
    - ze_goldenm3_dmg <5> - Damage Multiplier for Golden M3
    - ze_goldenm3_custom_model <1|0> - Golden M3 Custom Model
    - ze_goldenm3_unlimited_clip <1|0> - Golden M3 Unlimited Clip 
    
    */
    
    
    
    #include <zombie_escape>
    #include <engine>
    #include <fun>
    #include <cstrike>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    #define ENG_NULLENT		-1
    #define EV_INT_WEAPONKEY	EV_INT_impulse
    #define GAK_WEAPONKEY	666
    new const g_GAKEnt[] = "weapon_m3"
    
    new M3_V_MODEL[64] = "models/zombie_escape/v_golden_m3.mdl"
    new M3_P_MODEL[64] = "models/p_m3.mdl"
    new M3_W_MODEL[64] = "models/zombie_escape/w_golden_m3.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_custommodel, cvar_uclip, cvar_goldbullets
    
    new bool:g_HasM3[33]
    
    new g_hasZoom[ 33 ]
    new bullets[ 33 ]
    
    // Sprite
    new m_spriteTexture
    
    const Wep_M3 = ((1<<CSW_M3))
    
    public plugin_init()
    {
    	
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("ze_goldenm3_dmg", "2")
    	cvar_custommodel = register_cvar("ze_goldenm3_custom_model", "1")
    	cvar_uclip = register_cvar("ze_goldenm3_unlimited_clip", "0")
    	cvar_goldbullets = 	cvar_uclip = register_cvar("ze_goldenm3_goldbullets", "1")
    	
    	// Register The Plugin
    	register_plugin("[ZP] Extra: Golden M3", "1.0", "TheArmagedon")
    	register_cvar("Shidla", "[ZP] Golden M3", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Death Msg
    	register_event("DeathMsg", "Death", "a")
    	// Weapon Pick Up
    	register_event("WeapPickup","checkModel","b","1=19")
    	// Current Weapon Event
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	
    	register_forward(FM_SetModel, "fw_SetModel")
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m3", "native_give_golden_m3", 1)
    }
    
    public client_connect(id)
    {
    	g_HasM3[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasM3[id] = false
    }
    
    public Death()
    {
    	g_HasM3[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasM3[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(M3_V_MODEL)
    	precache_model(M3_P_MODEL)
    	precache_model(M3_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public zp_user_infected_post(id)
    {
    	if (ze_is_user_zombie(id))
    	{
    		g_HasM3[id] = false
    	}
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_M3 && g_HasM3[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, M3_V_MODEL)
    		set_pev(id, pev_weaponmodel2, M3_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_M3 && g_HasM3[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M3 && g_HasM3[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_M3 && g_HasM3[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_M3 && g_HasM3[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_M3) && g_HasM3[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // r, g, b
    			write_byte( 215 )       // r, g, b
    			write_byte( 0 )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public native_give_golden_m3(player)
    {
    	if ( user_has_weapon(player, CSW_M3) )
    	{
    		drop_prim(player)
    	}
    	
    	give_item(player, "weapon_m3")
    	cs_set_user_bpammo(player, CSW_M3, 32)
    	
    	g_HasM3[player] = true;
    }
    
    // Set Model
    public fw_SetModel(entity, model[])
    {
    	// Entity is not valid
    	if(!is_valid_ent(entity))
    		return FMRES_IGNORED;
    		
    	// Entity model is not w_ak47
    	if(!equal(model, "models/w_m3.mdl")) 
    		return FMRES_IGNORED;
    		
    	// Get classname
    	static szClassName[33]
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	// Not a Weapon box
    	if(!equal(szClassName, "weaponbox"))
    		return FMRES_IGNORED
    	
    	// Some vars
    	static iOwner, iStoredGalilID
    	
    	// Get owner
    	iOwner = entity_get_edict(entity, EV_ENT_owner)
    	
    	// Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	iStoredGalilID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
    	
    	// Entity classname is weaponbox, and galil has founded
    	if(g_HasM3[iOwner] && is_valid_ent(iStoredGalilID))
    	{
    		// Setting weapon options
    		entity_set_int(iStoredGalilID, EV_INT_WEAPONKEY, GAK_WEAPONKEY)
    
    		// Reset user vars
    		g_HasM3[iOwner] = false
    		
    		// Set weaponbox new model
    		entity_set_model(entity, M3_W_MODEL)
    		
    		return FMRES_SUPERCEDE
    	}
    
    	return FMRES_IGNORED
    }
    
    // Give
    public fw_GAK47AddToPlayer (GAK47, id)
    {
    	// Make sure that this is M79
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_WEAPONKEY) == GAK_WEAPONKEY)
    	{
    		// Update
    		g_HasM3[id] = true
    
    		// Reset weapon options
    		entity_set_int(GAK47, EV_INT_WEAPONKEY, 0)
    
    		return HAM_HANDLED
    	}
    
    	return HAM_IGNORED
    }
    
    stock drop_prim(id) 
    {
    	new weapons[32], num
    	get_user_weapons(id, weapons, num)
    	for (new i = 0; i < num; i++) {
    		if (Wep_M3 & (1<<weapons[i])) 
    		{
    			static wname[32]
    			get_weaponname(weapons[i], wname, sizeof wname - 1)
    			engclient_cmd(id, "drop", wname)
    		}
    	}
    }
2. MP5
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    
    new gmp5_V_MODEL[64] = "models/zombie_escape/v_mp5navygold.mdl"
    new gmp5_P_MODEL[64] = "models/zombie_escape/p_mp5navygold.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_Hasmp5navy[33], g_hasZoom[ 33 ], bullets[ 33 ]
    // Sprite
    new m_spriteTexture
    
    const Wep_mp5navy = ((1<<CSW_MP5NAVY))
    
    public plugin_init()
    {
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("gmp5_dmg_multiplier", "3")
    	cvar_custommodel = register_cvar("gmp5_custom_model", "1")
    	cvar_goldbullets = register_cvar("gmp5_gold_bullets", "1")
    	cvar_uclip = register_cvar("gmp5_unlimited_clip", "0")
    	
    	// Register The Plugin
    	register_plugin("Golden MP5", "1.1", "Wisam187 : JaCk")
    
    	// Events
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Hams
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	
    }
    
    public client_connect(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public Death()
    {
    	g_Hasmp5navy[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(gmp5_V_MODEL)
    	precache_model(gmp5_P_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, gmp5_V_MODEL)
    		set_pev(id, pev_weaponmodel2, gmp5_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( random(256) )     // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_mp5", "native_give_golden_mp5", 1)
    }
    
    public native_give_golden_mp5(id)
    {
    	g_Hasmp5navy[id] = true
    	rg_give_item(id, "weapon_mp5navy", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
    }
3. M4A1
  • Code: Select all

    #include <zombie_escape>
    #include <fun>
    #include <cstrike>
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    new M4_V_MODEL[64] = "models/zombie_escape/v_golden_m4a1.mdl"
    new M4_P_MODEL[64] = "models/zombie_escape/p_golden_m4a1.mdl"
    new M4_W_MODEL[64] = "models/zombie_escape/w_golden_m4a1.mdl"
     
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
     
    new bool:g_HasM4[33]
    
    new bullets[ 33 ]
     
    // Sprite
    new m_spriteTexture
     
    const Wep_m4a1 = ((1<<CSW_M4A1))
     
    public plugin_init()
    {
       
        /* CVARS */
        cvar_dmgmultiplier = register_cvar("zp_goldenm4_dmg_multiplier", "4")
        cvar_custommodel = register_cvar("zp_goldenm4_custom_model", "1")
        cvar_goldbullets = register_cvar("zp_goldenm4_gold_bullets", "1")
        cvar_uclip = register_cvar("zp_goldenm4_unlimited_clip", "0")
       
        // Register The Plugin
        register_plugin("Golden M4A1", "1.1", "SPIR0X")
    
        // Death Msg
        register_event("DeathMsg", "Death", "a")
        // Weapon Pick Up
        register_event("WeapPickup","checkModel","b","1=19")
        // Current Weapon Event
        register_event("CurWeapon","checkWeapon","be","1=1")
        register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
        // Ham TakeDamage
        RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
        RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
       
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m4a1", "native_give_golden_m4a1", 1)
    }
     
    public client_connect(id)
    {
        g_HasM4[id] = false
    }
     
    public client_disconnected(id)
    {
        g_HasM4[id] = false
    }
     
    public Death()
    {
        g_HasM4[read_data(2)] = false
    }
     
    public fwHamPlayerSpawnPost(id)
    {
        g_HasM4[id] = false
    }
     
    public plugin_precache()
    {
        precache_model(M4_V_MODEL)
        precache_model(M4_P_MODEL)
        precache_model(M4_W_MODEL)
        m_spriteTexture = precache_model("sprites/dot.spr")
        precache_sound("weapons/zoom.wav")
    }
     
    public ze_user_infected(id, iInfector)
    {
        if (ze_is_user_zombie(id))
        {
            g_HasM4[id] = false
        }
    }
     
    public checkModel(id)
    {
        if (ze_is_user_zombie(id))
            return PLUGIN_HANDLED
       
        new szWeapID = read_data(2)
       
        if ( szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) )
        {
            set_pev(id, pev_viewmodel2, M4_V_MODEL)
            set_pev(id, pev_weaponmodel2, M4_P_MODEL)
            set_pev(id, pev_weaponmodel2, M4_W_MODEL)
        }
        return PLUGIN_HANDLED
    }
     
    public checkWeapon(id)
    {
        new plrClip, plrAmmo, plrWeap[32]
        new plrWeapId
       
        plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
       
        if (plrWeapId == CSW_M4A1 && g_HasM4[id])
        {
            checkModel(id)
        }
        else
        {
            return PLUGIN_CONTINUE
        }
       
        if (plrClip == 0 && get_pcvar_num(cvar_uclip))
        {
            // If the user is out of ammo..
            get_weaponname(plrWeapId, plrWeap, 31)
            // Get the name of their weapon
            rg_give_item(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
        }
        return PLUGIN_HANDLED
    }
     
     
     
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public make_tracer(id)
    {
        if (get_pcvar_num(cvar_goldbullets))
        {
            new clip,ammo
            new wpnid = get_user_weapon(id,clip,ammo)
            new pteam[16]
           
            get_user_team(id, pteam, 15)
           
            if ((bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id])
            {
                new vec1[3], vec2[3]
                get_user_origin(id, vec1, 1) // origin; your camera point.
                get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
               
               
                //BEAMENTPOINTS
                message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte (0)     //TE_BEAMENTPOINTS 0
                write_coord(vec1[0])
                write_coord(vec1[1])
                write_coord(vec1[2])
                write_coord(vec2[0])
                write_coord(vec2[1])
                write_coord(vec2[2])
                write_short( m_spriteTexture )
                write_byte(1) // framestart
                write_byte(5) // framerate
                write_byte(2) // life
                write_byte(10) // width
                write_byte(0) // noise
                write_byte( 255 )     // r, g, b
                write_byte( 215 )       // r, g, b
                write_byte( 0 )       // r, g, b
                write_byte(200) // brightness
                write_byte(150) // speed
                message_end()
            }
       
            bullets[id] = clip
        }
       
    }
     
    public native_give_golden_m4a1(player)
    {
        if (user_has_weapon(player, CSW_M4A1))
        {
            drop_prim(player)
        }
           
        give_item(player, "weapon_m4a1")
    	cs_set_user_bpammo(player, CSW_M4A1, 90)
    	
        g_HasM4[player] = true;
    }
     
    stock drop_prim(id)
    {
        new weapons[32], num
        get_user_weapons(id, weapons, num)
        for (new i = 0; i < num; i++) {
            if (Wep_m4a1 & (1<<weapons[i]))
            {
                static wname[32]
                get_weaponname(weapons[i], wname, sizeof wname - 1)
                engclient_cmd(id, "drop", wname)
            }
        }
    }
4. AK47
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    #include <engine>
    
    #define NAME "Golden Ak 47"
    #define COST 30
    #define LIMIT 0
    #define is_valid_player(%1) (1 <= %1 <= get_maxplayers())
    new const g_GAKEnt[] = "weapon_ak47"
    
    new AK_V_MODEL[64] = "models/zombie_escape/v_golden_ak47.mdl"
    new AK_P_MODEL[64] = "models/zombie_escape/p_golden_ak47.mdl"
    new AK_W_MODEL[64] = "models/zombie_escape/w_golden_ak47.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_HasAk[33], g_hasZoom[33], bullets[33]
    // Sprite
    new m_spriteTexture
    const Wep_ak47 = ((1<<CSW_AK47))
    
    public plugin_init()
    {
    	// Register The Plugin
    	register_plugin("Golden Ak 47", "1.1", "AlejandroSk / JaCk")
    	register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Event
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	// Forwards
    	register_forward(FM_SetModel, "fw_SetModel")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "5")
    	cvar_custommodel = register_cvar("goldenak_custom_model", "1")
    	cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
    	cvar_uclip = register_cvar("goldenak_unlimited_clip", "0")
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_ak47", "native_give_golden_ak47", 1)
    }
    
    public native_give_golden_ak47(id)
    {
    	g_HasAk[id] = true
    	rg_give_item(id, "weapon_ak47", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_AK47, 90)
    }
    
    public client_connect(id)
    {
    	g_HasAk[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasAk[id] = false
    }
    
    public Death()
    {
    	g_HasAk[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasAk[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(AK_V_MODEL)
    	precache_model(AK_P_MODEL)
    	precache_model(AK_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_HasAk[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, AK_V_MODEL)
    		set_pev(id, pev_weaponmodel2, AK_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_AK47 && g_HasAk[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_AK47 && g_HasAk[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // R
    			write_byte( 215 )       // G
    			write_byte( 0 )       // B
    			write_byte(200) // Alpha
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public fw_SetModel(entity, model[])
    {
    	if(!is_valid_ent(entity)) // Entity is not valid
    		return FMRES_IGNORED;
    		
    	if(!equal(model, "models/w_ak47.mdl")) // Entity model is not w_ak47
    		return FMRES_IGNORED;
    		
    	static szClassName[33] // Get classname
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	if(!equal(szClassName, "weaponbox")) // Not a Weapon box
    		return FMRES_IGNORED
    	
    	static iOwner, iStoredGalilID // Some vars
    	
    	iOwner = entity_get_edict(entity, EV_ENT_owner) // Get owner
    	
    	iStoredGalilID = find_ent_by_owner(-1, "weapon_ak47", entity) // Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	
    	if(g_HasAk[iOwner] && is_valid_ent(iStoredGalilID)) // Entity classname is weaponbox, and galil has founded
    	{
    		entity_set_int(iStoredGalilID, EV_INT_impulse, 666) // Setting weapon options
    		g_HasAk[iOwner] = false // Reset user vars
    		entity_set_model(entity, AK_W_MODEL) // Set weaponbox new model
    		return FMRES_SUPERCEDE
    	}
    	return FMRES_IGNORED
    }
    
    public fw_GAK47AddToPlayer(GAK47, id)
    {
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_impulse) == 666) // Make sure that this is our gun
    	{
    		g_HasAk[id] = true
    		entity_set_int(GAK47, EV_INT_impulse, 0)
    		return HAM_HANDLED
    	}
    	return HAM_IGNORED
    }

Re: Custom Weapons Menu

Posted: 14 Aug 2018, 21:19
by Prekrasnoe Daleko
thanks all work
Raheem wrote: 5 years ago Issue from the weapons itself OK here it's just compile them using our ZE compiler.

1. M3
  • Code: Select all

    /*
    [ZP] Extra Item: Golden M3
    Team: Humans
    
    Description: This plugin adds a new weapon for Human Teams.
    Weapon Cost: 30
    
    Features:
    - This weapon do more damage
    - This weapon has zoom
    - Launch Lasers
    - This weapon has unlimited bullets
    
    Cvars:
    
    
    - ze_goldenm3_dmg <5> - Damage Multiplier for Golden M3
    - ze_goldenm3_custom_model <1|0> - Golden M3 Custom Model
    - ze_goldenm3_unlimited_clip <1|0> - Golden M3 Unlimited Clip 
    
    */
    
    
    
    #include <zombie_escape>
    #include <engine>
    #include <fun>
    #include <cstrike>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    #define ENG_NULLENT		-1
    #define EV_INT_WEAPONKEY	EV_INT_impulse
    #define GAK_WEAPONKEY	666
    new const g_GAKEnt[] = "weapon_m3"
    
    new M3_V_MODEL[64] = "models/zombie_escape/v_golden_m3.mdl"
    new M3_P_MODEL[64] = "models/p_m3.mdl"
    new M3_W_MODEL[64] = "models/zombie_escape/w_golden_m3.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_custommodel, cvar_uclip, cvar_goldbullets
    
    new bool:g_HasM3[33]
    
    new g_hasZoom[ 33 ]
    new bullets[ 33 ]
    
    // Sprite
    new m_spriteTexture
    
    const Wep_M3 = ((1<<CSW_M3))
    
    public plugin_init()
    {
    	
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("ze_goldenm3_dmg", "2")
    	cvar_custommodel = register_cvar("ze_goldenm3_custom_model", "1")
    	cvar_uclip = register_cvar("ze_goldenm3_unlimited_clip", "0")
    	cvar_goldbullets = 	cvar_uclip = register_cvar("ze_goldenm3_goldbullets", "1")
    	
    	// Register The Plugin
    	register_plugin("[ZP] Extra: Golden M3", "1.0", "TheArmagedon")
    	register_cvar("Shidla", "[ZP] Golden M3", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Death Msg
    	register_event("DeathMsg", "Death", "a")
    	// Weapon Pick Up
    	register_event("WeapPickup","checkModel","b","1=19")
    	// Current Weapon Event
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	
    	register_forward(FM_SetModel, "fw_SetModel")
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m3", "native_give_golden_m3", 1)
    }
    
    public client_connect(id)
    {
    	g_HasM3[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasM3[id] = false
    }
    
    public Death()
    {
    	g_HasM3[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasM3[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(M3_V_MODEL)
    	precache_model(M3_P_MODEL)
    	precache_model(M3_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public zp_user_infected_post(id)
    {
    	if (ze_is_user_zombie(id))
    	{
    		g_HasM3[id] = false
    	}
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_M3 && g_HasM3[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, M3_V_MODEL)
    		set_pev(id, pev_weaponmodel2, M3_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_M3 && g_HasM3[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M3 && g_HasM3[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_M3 && g_HasM3[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_M3 && g_HasM3[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_M3) && g_HasM3[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // r, g, b
    			write_byte( 215 )       // r, g, b
    			write_byte( 0 )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public native_give_golden_m3(player)
    {
    	if ( user_has_weapon(player, CSW_M3) )
    	{
    		drop_prim(player)
    	}
    	
    	give_item(player, "weapon_m3")
    	cs_set_user_bpammo(player, CSW_M3, 32)
    	
    	g_HasM3[player] = true;
    }
    
    // Set Model
    public fw_SetModel(entity, model[])
    {
    	// Entity is not valid
    	if(!is_valid_ent(entity))
    		return FMRES_IGNORED;
    		
    	// Entity model is not w_ak47
    	if(!equal(model, "models/w_m3.mdl")) 
    		return FMRES_IGNORED;
    		
    	// Get classname
    	static szClassName[33]
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	// Not a Weapon box
    	if(!equal(szClassName, "weaponbox"))
    		return FMRES_IGNORED
    	
    	// Some vars
    	static iOwner, iStoredGalilID
    	
    	// Get owner
    	iOwner = entity_get_edict(entity, EV_ENT_owner)
    	
    	// Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	iStoredGalilID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
    	
    	// Entity classname is weaponbox, and galil has founded
    	if(g_HasM3[iOwner] && is_valid_ent(iStoredGalilID))
    	{
    		// Setting weapon options
    		entity_set_int(iStoredGalilID, EV_INT_WEAPONKEY, GAK_WEAPONKEY)
    
    		// Reset user vars
    		g_HasM3[iOwner] = false
    		
    		// Set weaponbox new model
    		entity_set_model(entity, M3_W_MODEL)
    		
    		return FMRES_SUPERCEDE
    	}
    
    	return FMRES_IGNORED
    }
    
    // Give
    public fw_GAK47AddToPlayer (GAK47, id)
    {
    	// Make sure that this is M79
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_WEAPONKEY) == GAK_WEAPONKEY)
    	{
    		// Update
    		g_HasM3[id] = true
    
    		// Reset weapon options
    		entity_set_int(GAK47, EV_INT_WEAPONKEY, 0)
    
    		return HAM_HANDLED
    	}
    
    	return HAM_IGNORED
    }
    
    stock drop_prim(id) 
    {
    	new weapons[32], num
    	get_user_weapons(id, weapons, num)
    	for (new i = 0; i < num; i++) {
    		if (Wep_M3 & (1<<weapons[i])) 
    		{
    			static wname[32]
    			get_weaponname(weapons[i], wname, sizeof wname - 1)
    			engclient_cmd(id, "drop", wname)
    		}
    	}
    }
2. MP5
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    
    new gmp5_V_MODEL[64] = "models/zombie_escape/v_mp5navygold.mdl"
    new gmp5_P_MODEL[64] = "models/zombie_escape/p_mp5navygold.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_Hasmp5navy[33], g_hasZoom[ 33 ], bullets[ 33 ]
    // Sprite
    new m_spriteTexture
    
    const Wep_mp5navy = ((1<<CSW_MP5NAVY))
    
    public plugin_init()
    {
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("gmp5_dmg_multiplier", "3")
    	cvar_custommodel = register_cvar("gmp5_custom_model", "1")
    	cvar_goldbullets = register_cvar("gmp5_gold_bullets", "1")
    	cvar_uclip = register_cvar("gmp5_unlimited_clip", "0")
    	
    	// Register The Plugin
    	register_plugin("Golden MP5", "1.1", "Wisam187 : JaCk")
    
    	// Events
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Hams
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	
    }
    
    public client_connect(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public Death()
    {
    	g_Hasmp5navy[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(gmp5_V_MODEL)
    	precache_model(gmp5_P_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, gmp5_V_MODEL)
    		set_pev(id, pev_weaponmodel2, gmp5_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( random(256) )     // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_mp5", "native_give_golden_mp5", 1)
    }
    
    public native_give_golden_mp5(id)
    {
    	g_Hasmp5navy[id] = true
    	rg_give_item(id, "weapon_mp5navy", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
    }
3. M4A1
  • Code: Select all

    #include <zombie_escape>
    #include <fun>
    #include <cstrike>
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    new M4_V_MODEL[64] = "models/zombie_escape/v_golden_m4a1.mdl"
    new M4_P_MODEL[64] = "models/zombie_escape/p_golden_m4a1.mdl"
    new M4_W_MODEL[64] = "models/zombie_escape/w_golden_m4a1.mdl"
     
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
     
    new bool:g_HasM4[33]
    
    new bullets[ 33 ]
     
    // Sprite
    new m_spriteTexture
     
    const Wep_m4a1 = ((1<<CSW_M4A1))
     
    public plugin_init()
    {
       
        /* CVARS */
        cvar_dmgmultiplier = register_cvar("zp_goldenm4_dmg_multiplier", "4")
        cvar_custommodel = register_cvar("zp_goldenm4_custom_model", "1")
        cvar_goldbullets = register_cvar("zp_goldenm4_gold_bullets", "1")
        cvar_uclip = register_cvar("zp_goldenm4_unlimited_clip", "0")
       
        // Register The Plugin
        register_plugin("Golden M4A1", "1.1", "SPIR0X")
    
        // Death Msg
        register_event("DeathMsg", "Death", "a")
        // Weapon Pick Up
        register_event("WeapPickup","checkModel","b","1=19")
        // Current Weapon Event
        register_event("CurWeapon","checkWeapon","be","1=1")
        register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
        // Ham TakeDamage
        RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
        RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
       
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m4a1", "native_give_golden_m4a1", 1)
    }
     
    public client_connect(id)
    {
        g_HasM4[id] = false
    }
     
    public client_disconnected(id)
    {
        g_HasM4[id] = false
    }
     
    public Death()
    {
        g_HasM4[read_data(2)] = false
    }
     
    public fwHamPlayerSpawnPost(id)
    {
        g_HasM4[id] = false
    }
     
    public plugin_precache()
    {
        precache_model(M4_V_MODEL)
        precache_model(M4_P_MODEL)
        precache_model(M4_W_MODEL)
        m_spriteTexture = precache_model("sprites/dot.spr")
        precache_sound("weapons/zoom.wav")
    }
     
    public ze_user_infected(id, iInfector)
    {
        if (ze_is_user_zombie(id))
        {
            g_HasM4[id] = false
        }
    }
     
    public checkModel(id)
    {
        if (ze_is_user_zombie(id))
            return PLUGIN_HANDLED
       
        new szWeapID = read_data(2)
       
        if ( szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) )
        {
            set_pev(id, pev_viewmodel2, M4_V_MODEL)
            set_pev(id, pev_weaponmodel2, M4_P_MODEL)
            set_pev(id, pev_weaponmodel2, M4_W_MODEL)
        }
        return PLUGIN_HANDLED
    }
     
    public checkWeapon(id)
    {
        new plrClip, plrAmmo, plrWeap[32]
        new plrWeapId
       
        plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
       
        if (plrWeapId == CSW_M4A1 && g_HasM4[id])
        {
            checkModel(id)
        }
        else
        {
            return PLUGIN_CONTINUE
        }
       
        if (plrClip == 0 && get_pcvar_num(cvar_uclip))
        {
            // If the user is out of ammo..
            get_weaponname(plrWeapId, plrWeap, 31)
            // Get the name of their weapon
            rg_give_item(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
        }
        return PLUGIN_HANDLED
    }
     
     
     
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public make_tracer(id)
    {
        if (get_pcvar_num(cvar_goldbullets))
        {
            new clip,ammo
            new wpnid = get_user_weapon(id,clip,ammo)
            new pteam[16]
           
            get_user_team(id, pteam, 15)
           
            if ((bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id])
            {
                new vec1[3], vec2[3]
                get_user_origin(id, vec1, 1) // origin; your camera point.
                get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
               
               
                //BEAMENTPOINTS
                message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte (0)     //TE_BEAMENTPOINTS 0
                write_coord(vec1[0])
                write_coord(vec1[1])
                write_coord(vec1[2])
                write_coord(vec2[0])
                write_coord(vec2[1])
                write_coord(vec2[2])
                write_short( m_spriteTexture )
                write_byte(1) // framestart
                write_byte(5) // framerate
                write_byte(2) // life
                write_byte(10) // width
                write_byte(0) // noise
                write_byte( 255 )     // r, g, b
                write_byte( 215 )       // r, g, b
                write_byte( 0 )       // r, g, b
                write_byte(200) // brightness
                write_byte(150) // speed
                message_end()
            }
       
            bullets[id] = clip
        }
       
    }
     
    public native_give_golden_m4a1(player)
    {
        if (user_has_weapon(player, CSW_M4A1))
        {
            drop_prim(player)
        }
           
        give_item(player, "weapon_m4a1")
    	cs_set_user_bpammo(player, CSW_M4A1, 90)
    	
        g_HasM4[player] = true;
    }
     
    stock drop_prim(id)
    {
        new weapons[32], num
        get_user_weapons(id, weapons, num)
        for (new i = 0; i < num; i++) {
            if (Wep_m4a1 & (1<<weapons[i]))
            {
                static wname[32]
                get_weaponname(weapons[i], wname, sizeof wname - 1)
                engclient_cmd(id, "drop", wname)
            }
        }
    }
4. AK47
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    #include <engine>
    
    #define NAME "Golden Ak 47"
    #define COST 30
    #define LIMIT 0
    #define is_valid_player(%1) (1 <= %1 <= get_maxplayers())
    new const g_GAKEnt[] = "weapon_ak47"
    
    new AK_V_MODEL[64] = "models/zombie_escape/v_golden_ak47.mdl"
    new AK_P_MODEL[64] = "models/zombie_escape/p_golden_ak47.mdl"
    new AK_W_MODEL[64] = "models/zombie_escape/w_golden_ak47.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_HasAk[33], g_hasZoom[33], bullets[33]
    // Sprite
    new m_spriteTexture
    const Wep_ak47 = ((1<<CSW_AK47))
    
    public plugin_init()
    {
    	// Register The Plugin
    	register_plugin("Golden Ak 47", "1.1", "AlejandroSk / JaCk")
    	register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Event
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	// Forwards
    	register_forward(FM_SetModel, "fw_SetModel")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "5")
    	cvar_custommodel = register_cvar("goldenak_custom_model", "1")
    	cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
    	cvar_uclip = register_cvar("goldenak_unlimited_clip", "0")
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_ak47", "native_give_golden_ak47", 1)
    }
    
    public native_give_golden_ak47(id)
    {
    	g_HasAk[id] = true
    	rg_give_item(id, "weapon_ak47", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_AK47, 90)
    }
    
    public client_connect(id)
    {
    	g_HasAk[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasAk[id] = false
    }
    
    public Death()
    {
    	g_HasAk[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasAk[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(AK_V_MODEL)
    	precache_model(AK_P_MODEL)
    	precache_model(AK_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_HasAk[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, AK_V_MODEL)
    		set_pev(id, pev_weaponmodel2, AK_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_AK47 && g_HasAk[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_AK47 && g_HasAk[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // R
    			write_byte( 215 )       // G
    			write_byte( 0 )       // B
    			write_byte(200) // Alpha
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public fw_SetModel(entity, model[])
    {
    	if(!is_valid_ent(entity)) // Entity is not valid
    		return FMRES_IGNORED;
    		
    	if(!equal(model, "models/w_ak47.mdl")) // Entity model is not w_ak47
    		return FMRES_IGNORED;
    		
    	static szClassName[33] // Get classname
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	if(!equal(szClassName, "weaponbox")) // Not a Weapon box
    		return FMRES_IGNORED
    	
    	static iOwner, iStoredGalilID // Some vars
    	
    	iOwner = entity_get_edict(entity, EV_ENT_owner) // Get owner
    	
    	iStoredGalilID = find_ent_by_owner(-1, "weapon_ak47", entity) // Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	
    	if(g_HasAk[iOwner] && is_valid_ent(iStoredGalilID)) // Entity classname is weaponbox, and galil has founded
    	{
    		entity_set_int(iStoredGalilID, EV_INT_impulse, 666) // Setting weapon options
    		g_HasAk[iOwner] = false // Reset user vars
    		entity_set_model(entity, AK_W_MODEL) // Set weaponbox new model
    		return FMRES_SUPERCEDE
    	}
    	return FMRES_IGNORED
    }
    
    public fw_GAK47AddToPlayer(GAK47, id)
    {
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_impulse) == 666) // Make sure that this is our gun
    	{
    		g_HasAk[id] = true
    		entity_set_int(GAK47, EV_INT_impulse, 0)
    		return HAM_HANDLED
    	}
    	return HAM_IGNORED
    }

Re: Custom Weapons Menu

Posted: 15 Aug 2018, 12:46
by Spir0x
Raheem wrote: 5 years ago Issue from the weapons itself OK here it's just compile them using our ZE compiler.

1. M3
  • Code: Select all

    /*
    [ZP] Extra Item: Golden M3
    Team: Humans
    
    Description: This plugin adds a new weapon for Human Teams.
    Weapon Cost: 30
    
    Features:
    - This weapon do more damage
    - This weapon has zoom
    - Launch Lasers
    - This weapon has unlimited bullets
    
    Cvars:
    
    
    - ze_goldenm3_dmg <5> - Damage Multiplier for Golden M3
    - ze_goldenm3_custom_model <1|0> - Golden M3 Custom Model
    - ze_goldenm3_unlimited_clip <1|0> - Golden M3 Unlimited Clip 
    
    */
    
    
    
    #include <zombie_escape>
    #include <engine>
    #include <fun>
    #include <cstrike>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    #define ENG_NULLENT		-1
    #define EV_INT_WEAPONKEY	EV_INT_impulse
    #define GAK_WEAPONKEY	666
    new const g_GAKEnt[] = "weapon_m3"
    
    new M3_V_MODEL[64] = "models/zombie_escape/v_golden_m3.mdl"
    new M3_P_MODEL[64] = "models/p_m3.mdl"
    new M3_W_MODEL[64] = "models/zombie_escape/w_golden_m3.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_custommodel, cvar_uclip, cvar_goldbullets
    
    new bool:g_HasM3[33]
    
    new g_hasZoom[ 33 ]
    new bullets[ 33 ]
    
    // Sprite
    new m_spriteTexture
    
    const Wep_M3 = ((1<<CSW_M3))
    
    public plugin_init()
    {
    	
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("ze_goldenm3_dmg", "2")
    	cvar_custommodel = register_cvar("ze_goldenm3_custom_model", "1")
    	cvar_uclip = register_cvar("ze_goldenm3_unlimited_clip", "0")
    	cvar_goldbullets = 	cvar_uclip = register_cvar("ze_goldenm3_goldbullets", "1")
    	
    	// Register The Plugin
    	register_plugin("[ZP] Extra: Golden M3", "1.0", "TheArmagedon")
    	register_cvar("Shidla", "[ZP] Golden M3", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Death Msg
    	register_event("DeathMsg", "Death", "a")
    	// Weapon Pick Up
    	register_event("WeapPickup","checkModel","b","1=19")
    	// Current Weapon Event
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	
    	register_forward(FM_SetModel, "fw_SetModel")
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m3", "native_give_golden_m3", 1)
    }
    
    public client_connect(id)
    {
    	g_HasM3[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasM3[id] = false
    }
    
    public Death()
    {
    	g_HasM3[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasM3[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(M3_V_MODEL)
    	precache_model(M3_P_MODEL)
    	precache_model(M3_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public zp_user_infected_post(id)
    {
    	if (ze_is_user_zombie(id))
    	{
    		g_HasM3[id] = false
    	}
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_M3 && g_HasM3[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, M3_V_MODEL)
    		set_pev(id, pev_weaponmodel2, M3_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_M3 && g_HasM3[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M3 && g_HasM3[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_M3 && g_HasM3[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_M3 && g_HasM3[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_M3) && g_HasM3[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // r, g, b
    			write_byte( 215 )       // r, g, b
    			write_byte( 0 )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public native_give_golden_m3(player)
    {
    	if ( user_has_weapon(player, CSW_M3) )
    	{
    		drop_prim(player)
    	}
    	
    	give_item(player, "weapon_m3")
    	cs_set_user_bpammo(player, CSW_M3, 32)
    	
    	g_HasM3[player] = true;
    }
    
    // Set Model
    public fw_SetModel(entity, model[])
    {
    	// Entity is not valid
    	if(!is_valid_ent(entity))
    		return FMRES_IGNORED;
    		
    	// Entity model is not w_ak47
    	if(!equal(model, "models/w_m3.mdl")) 
    		return FMRES_IGNORED;
    		
    	// Get classname
    	static szClassName[33]
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	// Not a Weapon box
    	if(!equal(szClassName, "weaponbox"))
    		return FMRES_IGNORED
    	
    	// Some vars
    	static iOwner, iStoredGalilID
    	
    	// Get owner
    	iOwner = entity_get_edict(entity, EV_ENT_owner)
    	
    	// Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	iStoredGalilID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
    	
    	// Entity classname is weaponbox, and galil has founded
    	if(g_HasM3[iOwner] && is_valid_ent(iStoredGalilID))
    	{
    		// Setting weapon options
    		entity_set_int(iStoredGalilID, EV_INT_WEAPONKEY, GAK_WEAPONKEY)
    
    		// Reset user vars
    		g_HasM3[iOwner] = false
    		
    		// Set weaponbox new model
    		entity_set_model(entity, M3_W_MODEL)
    		
    		return FMRES_SUPERCEDE
    	}
    
    	return FMRES_IGNORED
    }
    
    // Give
    public fw_GAK47AddToPlayer (GAK47, id)
    {
    	// Make sure that this is M79
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_WEAPONKEY) == GAK_WEAPONKEY)
    	{
    		// Update
    		g_HasM3[id] = true
    
    		// Reset weapon options
    		entity_set_int(GAK47, EV_INT_WEAPONKEY, 0)
    
    		return HAM_HANDLED
    	}
    
    	return HAM_IGNORED
    }
    
    stock drop_prim(id) 
    {
    	new weapons[32], num
    	get_user_weapons(id, weapons, num)
    	for (new i = 0; i < num; i++) {
    		if (Wep_M3 & (1<<weapons[i])) 
    		{
    			static wname[32]
    			get_weaponname(weapons[i], wname, sizeof wname - 1)
    			engclient_cmd(id, "drop", wname)
    		}
    	}
    }
2. MP5
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    
    #define is_valid_player(%1) (1 <= %1 <= 32)
    
    new gmp5_V_MODEL[64] = "models/zombie_escape/v_mp5navygold.mdl"
    new gmp5_P_MODEL[64] = "models/zombie_escape/p_mp5navygold.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_Hasmp5navy[33], g_hasZoom[ 33 ], bullets[ 33 ]
    // Sprite
    new m_spriteTexture
    
    const Wep_mp5navy = ((1<<CSW_MP5NAVY))
    
    public plugin_init()
    {
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("gmp5_dmg_multiplier", "3")
    	cvar_custommodel = register_cvar("gmp5_custom_model", "1")
    	cvar_goldbullets = register_cvar("gmp5_gold_bullets", "1")
    	cvar_uclip = register_cvar("gmp5_unlimited_clip", "0")
    	
    	// Register The Plugin
    	register_plugin("Golden MP5", "1.1", "Wisam187 : JaCk")
    
    	// Events
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Hams
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	
    }
    
    public client_connect(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public Death()
    {
    	g_Hasmp5navy[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(gmp5_V_MODEL)
    	precache_model(gmp5_P_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_Hasmp5navy[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, gmp5_V_MODEL)
    		set_pev(id, pev_weaponmodel2, gmp5_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( random(256) )     // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte( random(256) )       // r, g, b
    			write_byte(200) // brightness
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_mp5", "native_give_golden_mp5", 1)
    }
    
    public native_give_golden_mp5(id)
    {
    	g_Hasmp5navy[id] = true
    	rg_give_item(id, "weapon_mp5navy", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
    }
3. M4A1
  • Code: Select all

    #include <zombie_escape>
    #include <fun>
    #include <cstrike>
     
    #define is_valid_player(%1) (1 <= %1 <= 32)
     
    new M4_V_MODEL[64] = "models/zombie_escape/v_golden_m4a1.mdl"
    new M4_P_MODEL[64] = "models/zombie_escape/p_golden_m4a1.mdl"
    new M4_W_MODEL[64] = "models/zombie_escape/w_golden_m4a1.mdl"
     
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
     
    new bool:g_HasM4[33]
    
    new bullets[ 33 ]
     
    // Sprite
    new m_spriteTexture
     
    const Wep_m4a1 = ((1<<CSW_M4A1))
     
    public plugin_init()
    {
       
        /* CVARS */
        cvar_dmgmultiplier = register_cvar("zp_goldenm4_dmg_multiplier", "4")
        cvar_custommodel = register_cvar("zp_goldenm4_custom_model", "1")
        cvar_goldbullets = register_cvar("zp_goldenm4_gold_bullets", "1")
        cvar_uclip = register_cvar("zp_goldenm4_unlimited_clip", "0")
       
        // Register The Plugin
        register_plugin("Golden M4A1", "1.1", "SPIR0X")
    
        // Death Msg
        register_event("DeathMsg", "Death", "a")
        // Weapon Pick Up
        register_event("WeapPickup","checkModel","b","1=19")
        // Current Weapon Event
        register_event("CurWeapon","checkWeapon","be","1=1")
        register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
        // Ham TakeDamage
        RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
        RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
       
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_m4a1", "native_give_golden_m4a1", 1)
    }
     
    public client_connect(id)
    {
        g_HasM4[id] = false
    }
     
    public client_disconnected(id)
    {
        g_HasM4[id] = false
    }
     
    public Death()
    {
        g_HasM4[read_data(2)] = false
    }
     
    public fwHamPlayerSpawnPost(id)
    {
        g_HasM4[id] = false
    }
     
    public plugin_precache()
    {
        precache_model(M4_V_MODEL)
        precache_model(M4_P_MODEL)
        precache_model(M4_W_MODEL)
        m_spriteTexture = precache_model("sprites/dot.spr")
        precache_sound("weapons/zoom.wav")
    }
     
    public ze_user_infected(id, iInfector)
    {
        if (ze_is_user_zombie(id))
        {
            g_HasM4[id] = false
        }
    }
     
    public checkModel(id)
    {
        if (ze_is_user_zombie(id))
            return PLUGIN_HANDLED
       
        new szWeapID = read_data(2)
       
        if ( szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) )
        {
            set_pev(id, pev_viewmodel2, M4_V_MODEL)
            set_pev(id, pev_weaponmodel2, M4_P_MODEL)
            set_pev(id, pev_weaponmodel2, M4_W_MODEL)
        }
        return PLUGIN_HANDLED
    }
     
    public checkWeapon(id)
    {
        new plrClip, plrAmmo, plrWeap[32]
        new plrWeapId
       
        plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
       
        if (plrWeapId == CSW_M4A1 && g_HasM4[id])
        {
            checkModel(id)
        }
        else
        {
            return PLUGIN_CONTINUE
        }
       
        if (plrClip == 0 && get_pcvar_num(cvar_uclip))
        {
            // If the user is out of ammo..
            get_weaponname(plrWeapId, plrWeap, 31)
            // Get the name of their weapon
            rg_give_item(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
            engclient_cmd(id, plrWeap)
        }
        return PLUGIN_HANDLED
    }
     
     
     
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public make_tracer(id)
    {
        if (get_pcvar_num(cvar_goldbullets))
        {
            new clip,ammo
            new wpnid = get_user_weapon(id,clip,ammo)
            new pteam[16]
           
            get_user_team(id, pteam, 15)
           
            if ((bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id])
            {
                new vec1[3], vec2[3]
                get_user_origin(id, vec1, 1) // origin; your camera point.
                get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
               
               
                //BEAMENTPOINTS
                message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
                write_byte (0)     //TE_BEAMENTPOINTS 0
                write_coord(vec1[0])
                write_coord(vec1[1])
                write_coord(vec1[2])
                write_coord(vec2[0])
                write_coord(vec2[1])
                write_coord(vec2[2])
                write_short( m_spriteTexture )
                write_byte(1) // framestart
                write_byte(5) // framerate
                write_byte(2) // life
                write_byte(10) // width
                write_byte(0) // noise
                write_byte( 255 )     // r, g, b
                write_byte( 215 )       // r, g, b
                write_byte( 0 )       // r, g, b
                write_byte(200) // brightness
                write_byte(150) // speed
                message_end()
            }
       
            bullets[id] = clip
        }
       
    }
     
    public native_give_golden_m4a1(player)
    {
        if (user_has_weapon(player, CSW_M4A1))
        {
            drop_prim(player)
        }
           
        give_item(player, "weapon_m4a1")
    	cs_set_user_bpammo(player, CSW_M4A1, 90)
    	
        g_HasM4[player] = true;
    }
     
    stock drop_prim(id)
    {
        new weapons[32], num
        get_user_weapons(id, weapons, num)
        for (new i = 0; i < num; i++) {
            if (Wep_m4a1 & (1<<weapons[i]))
            {
                static wname[32]
                get_weaponname(weapons[i], wname, sizeof wname - 1)
                engclient_cmd(id, "drop", wname)
            }
        }
    }
4. AK47
  • Code: Select all

    #include <zombie_escape>
    #include <cstrike>
    #include <fun>
    #include <engine>
    
    #define NAME "Golden Ak 47"
    #define COST 30
    #define LIMIT 0
    #define is_valid_player(%1) (1 <= %1 <= get_maxplayers())
    new const g_GAKEnt[] = "weapon_ak47"
    
    new AK_V_MODEL[64] = "models/zombie_escape/v_golden_ak47.mdl"
    new AK_P_MODEL[64] = "models/zombie_escape/p_golden_ak47.mdl"
    new AK_W_MODEL[64] = "models/zombie_escape/w_golden_ak47.mdl"
    
    /* Pcvars */
    new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    new bool:g_HasAk[33], g_hasZoom[33], bullets[33]
    // Sprite
    new m_spriteTexture
    const Wep_ak47 = ((1<<CSW_AK47))
    
    public plugin_init()
    {
    	// Register The Plugin
    	register_plugin("Golden Ak 47", "1.1", "AlejandroSk / JaCk")
    	register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
    
    	// Event
    	register_event("DeathMsg", "Death", "a")
    	register_event("WeapPickup","checkModel","b","1=19")
    	register_event("CurWeapon","checkWeapon","be","1=1")
    	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    	// Ham TakeDamage
    	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    	RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    	// Forwards
    	register_forward(FM_SetModel, "fw_SetModel")
    	register_forward( FM_CmdStart, "fw_CmdStart" )
    	/* CVARS */
    	cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "5")
    	cvar_custommodel = register_cvar("goldenak_custom_model", "1")
    	cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
    	cvar_uclip = register_cvar("goldenak_unlimited_clip", "0")
    }
    
    public plugin_natives()
    {
    	register_native("give_golden_ak47", "native_give_golden_ak47", 1)
    }
    
    public native_give_golden_ak47(id)
    {
    	g_HasAk[id] = true
    	rg_give_item(id, "weapon_ak47", GT_REPLACE)
    	cs_set_user_bpammo(id, CSW_AK47, 90)
    }
    
    public client_connect(id)
    {
    	g_HasAk[id] = false
    }
    
    public client_disconnected(id)
    {
    	g_HasAk[id] = false
    }
    
    public Death()
    {
    	g_HasAk[read_data(2)] = false
    }
    
    public fwHamPlayerSpawnPost(id)
    {
    	g_HasAk[id] = false
    }
    
    public plugin_precache()
    {
    	precache_model(AK_V_MODEL)
    	precache_model(AK_P_MODEL)
    	precache_model(AK_W_MODEL)
    	m_spriteTexture = precache_model("sprites/dot.spr")
    	precache_sound("weapons/zoom.wav")
    }
    
    public ze_user_infected(id)
    {
    	g_HasAk[id] = false
    }
    
    public checkModel(id)
    {
    	if ( ze_is_user_zombie(id) )
    		return PLUGIN_HANDLED
    	
    	new szWeapID = read_data(2)
    	
    	if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
    	{
    		set_pev(id, pev_viewmodel2, AK_V_MODEL)
    		set_pev(id, pev_weaponmodel2, AK_P_MODEL)
    	}
    	return PLUGIN_HANDLED
    }
    
    public checkWeapon(id)
    {
    	new plrClip, plrAmmo, plrWeap[32]
    	new plrWeapId
    	
    	plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    	
    	if (plrWeapId == CSW_AK47 && g_HasAk[id])
    	{
    		checkModel(id)
    	}
    	else 
    	{
    		return PLUGIN_CONTINUE
    	}
    	
    	if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    	{
    		// If the user is out of ammo..
    		get_weaponname(plrWeapId, plrWeap, 31)
    		// Get the name of their weapon
    		give_item(id, plrWeap)
    		engclient_cmd(id, plrWeap) 
    		engclient_cmd(id, plrWeap)
    		engclient_cmd(id, plrWeap)
    	}
    	return PLUGIN_HANDLED
    }
    
    public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    {
        if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] )
        {
            SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
        }
    }
    
    public fw_CmdStart( id, uc_handle, seed )
    {
    	if( !is_user_alive( id ) ) 
    		return PLUGIN_HANDLED
    	
    	if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    	{
    		new szClip, szAmmo
    		new szWeapID = get_user_weapon( id, szClip, szAmmo )
    		
    		if( szWeapID == CSW_AK47 && g_HasAk[id] == true && !g_hasZoom[id] == true)
    		{
    			g_hasZoom[id] = true
    			cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    			emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    		}
    		
    		else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
    		{
    			g_hasZoom[ id ] = false
    			cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    			
    		}
    		
    	}
    	return PLUGIN_HANDLED
    }
    
    
    public make_tracer(id)
    {
    	if (get_pcvar_num(cvar_goldbullets))
    	{
    		new clip,ammo
    		new wpnid = get_user_weapon(id,clip,ammo)
    		new pteam[16]
    		
    		get_user_team(id, pteam, 15)
    		
    		if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id]) 
    		{
    			new vec1[3], vec2[3]
    			get_user_origin(id, vec1, 1) // origin; your camera point.
    			get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    			
    			
    			//BEAMENTPOINTS
    			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    			write_byte (0)     //TE_BEAMENTPOINTS 0
    			write_coord(vec1[0])
    			write_coord(vec1[1])
    			write_coord(vec1[2])
    			write_coord(vec2[0])
    			write_coord(vec2[1])
    			write_coord(vec2[2])
    			write_short( m_spriteTexture )
    			write_byte(1) // framestart
    			write_byte(5) // framerate
    			write_byte(2) // life
    			write_byte(10) // width
    			write_byte(0) // noise
    			write_byte( 255 )     // R
    			write_byte( 215 )       // G
    			write_byte( 0 )       // B
    			write_byte(200) // Alpha
    			write_byte(150) // speed
    			message_end()
    		}
    	
    		bullets[id] = clip
    	}
    	
    }
    
    public fw_SetModel(entity, model[])
    {
    	if(!is_valid_ent(entity)) // Entity is not valid
    		return FMRES_IGNORED;
    		
    	if(!equal(model, "models/w_ak47.mdl")) // Entity model is not w_ak47
    		return FMRES_IGNORED;
    		
    	static szClassName[33] // Get classname
    	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    		
    	if(!equal(szClassName, "weaponbox")) // Not a Weapon box
    		return FMRES_IGNORED
    	
    	static iOwner, iStoredGalilID // Some vars
    	
    	iOwner = entity_get_edict(entity, EV_ENT_owner) // Get owner
    	
    	iStoredGalilID = find_ent_by_owner(-1, "weapon_ak47", entity) // Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    	
    	if(g_HasAk[iOwner] && is_valid_ent(iStoredGalilID)) // Entity classname is weaponbox, and galil has founded
    	{
    		entity_set_int(iStoredGalilID, EV_INT_impulse, 666) // Setting weapon options
    		g_HasAk[iOwner] = false // Reset user vars
    		entity_set_model(entity, AK_W_MODEL) // Set weaponbox new model
    		return FMRES_SUPERCEDE
    	}
    	return FMRES_IGNORED
    }
    
    public fw_GAK47AddToPlayer(GAK47, id)
    {
    	if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_impulse) == 666) // Make sure that this is our gun
    	{
    		g_HasAk[id] = true
    		entity_set_int(GAK47, EV_INT_impulse, 0)
    		return HAM_HANDLED
    	}
    	return HAM_IGNORED
    }
Raheem i need to update weapons codes to these ones ?

Re: Custom Weapons Menu

Posted: 15 Aug 2018, 15:48
by Raheem
Yes

Re: Custom Weapons Menu

Posted: 16 Aug 2018, 13:21
by Night Fury
Raheem wrote: 5 years agoYes

Code: Select all

register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
What's this?! LOL!

Re: Custom Weapons Menu

Posted: 24 Aug 2018, 17:57
by czirimbolo
L 08/24/2018 - 18:32:30: [AMXX] Displaying debug trace (plugin "ze_golden_mp5.amxx", version "1.1")
L 08/24/2018 - 18:32:30: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 08/24/2018 - 18:32:30: [AMXX] [0] ze_golden_mp5.sma::fw_TakeDamage (line 122)
L 08/24/2018 - 18:32:30: Invalid player id 30
L 08/24/2018 - 18:32:30: [AMXX] Displaying debug trace (plugin "ze_golden_m3.amxx", version "1.0")
L 08/24/2018 - 18:32:30: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 08/24/2018 - 18:32:30: [AMXX] [0] ze_golden_m3.sma::fw_TakeDamage (line 173)
L 08/24/2018 - 18:32:30: Invalid player id 30
L 08/24/2018 - 18:32:30: [AMXX] Displaying debug trace (plugin "ze_golden_m4a1.amxx", version "1.1")
L 08/24/2018 - 18:32:30: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 08/24/2018 - 18:32:30: [AMXX] [0] ze_golden_m4a1.sma::fw_TakeDamage (line 139)

Re: Custom Weapons Menu

Posted: 25 Aug 2018, 11:33
by Spir0x
OMG i didn't understand anything in this topic.. So raheem you updated the files the latest or i need take these codes here look at these bugs.

Re: Custom Weapons Menu

Posted: 25 Aug 2018, 18:37
by Raheem
czirimbolo, this problems from weapons itself will try fix them if found time.

Spir0x, i did't update the main post with the bpammo fix so you will need to compile the 4 weapons i posted and don't use ones in the .zip
Jack GamePlay wrote: 5 years ago
Raheem wrote: 5 years agoYes

Code: Select all

register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
What's this?! LOL!
It's your weapon... Check it in extra-items section :flushed:

Re: Custom Weapons Menu

Posted: 28 Aug 2018, 15:47
by czirimbolo
Thanks Raheem, I am waitng for your fix because every day I have massive errors because of this guns

Re: Custom Weapons Menu

Posted: 29 Aug 2018, 03:22
by Raheem
We must check if user is alive or not by this (in take damage callback):
  • Code: Select all

    	if (!is_user_alive(victim) || !is_user_alive(attacker))
    		return
M3:
    1. /*
    2. [ZP] Extra Item: Golden M3
    3. Team: Humans
    4.  
    5. Description: This plugin adds a new weapon for Human Teams.
    6. Weapon Cost: 30
    7.  
    8. Features:
    9. - This weapon do more damage
    10. - This weapon has zoom
    11. - Launch Lasers
    12. - This weapon has unlimited bullets
    13.  
    14. Cvars:
    15.  
    16.  
    17. - ze_goldenm3_dmg <5> - Damage Multiplier for Golden M3
    18. - ze_goldenm3_custom_model <1|0> - Golden M3 Custom Model
    19. - ze_goldenm3_unlimited_clip <1|0> - Golden M3 Unlimited Clip
    20.  
    21. */
    22.  
    23.  
    24.  
    25. #include <zombie_escape>
    26. #include <engine>
    27. #include <fun>
    28. #include <cstrike>
    29.  
    30. #define is_valid_player(%1) (1 <= %1 <= 32)
    31. #define ENG_NULLENT     -1
    32. #define EV_INT_WEAPONKEY    EV_INT_impulse
    33. #define GAK_WEAPONKEY   666
    34. new const g_GAKEnt[] = "weapon_m3"
    35.  
    36. new M3_V_MODEL[64] = "models/zombie_escape/v_golden_m3.mdl"
    37. new M3_P_MODEL[64] = "models/p_m3.mdl"
    38. new M3_W_MODEL[64] = "models/zombie_escape/w_golden_m3.mdl"
    39.  
    40. /* Pcvars */
    41. new cvar_dmgmultiplier, cvar_custommodel, cvar_uclip, cvar_goldbullets
    42.  
    43. new bool:g_HasM3[33]
    44.  
    45. new g_hasZoom[ 33 ]
    46. new bullets[ 33 ]
    47.  
    48. // Sprite
    49. new m_spriteTexture
    50.  
    51. const Wep_M3 = ((1<<CSW_M3))
    52.  
    53. public plugin_init()
    54. {
    55.    
    56.     /* CVARS */
    57.     cvar_dmgmultiplier = register_cvar("ze_goldenm3_dmg", "2")
    58.     cvar_custommodel = register_cvar("ze_goldenm3_custom_model", "1")
    59.     cvar_uclip = register_cvar("ze_goldenm3_unlimited_clip", "0")
    60.     cvar_goldbullets =  cvar_uclip = register_cvar("ze_goldenm3_goldbullets", "1")
    61.    
    62.     // Register The Plugin
    63.     register_plugin("[ZP] Extra: Golden M3", "1.0", "TheArmagedon")
    64.     register_cvar("Shidla", "[ZP] Golden M3", FCVAR_SERVER|FCVAR_SPONLY)
    65.  
    66.     // Death Msg
    67.     register_event("DeathMsg", "Death", "a")
    68.     // Weapon Pick Up
    69.     register_event("WeapPickup","checkModel","b","1=19")
    70.     // Current Weapon Event
    71.     register_event("CurWeapon","checkWeapon","be","1=1")
    72.     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    73.     // Ham TakeDamage
    74.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    75.     register_forward( FM_CmdStart, "fw_CmdStart" )
    76.     RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    77.     RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    78.    
    79.     register_forward(FM_SetModel, "fw_SetModel")
    80.    
    81. }
    82.  
    83. public plugin_natives()
    84. {
    85.     register_native("give_golden_m3", "native_give_golden_m3", 1)
    86. }
    87.  
    88. public client_connect(id)
    89. {
    90.     g_HasM3[id] = false
    91. }
    92.  
    93. public client_disconnected(id)
    94. {
    95.     g_HasM3[id] = false
    96. }
    97.  
    98. public Death()
    99. {
    100.     g_HasM3[read_data(2)] = false
    101. }
    102.  
    103. public fwHamPlayerSpawnPost(id)
    104. {
    105.     g_HasM3[id] = false
    106. }
    107.  
    108. public plugin_precache()
    109. {
    110.     precache_model(M3_V_MODEL)
    111.     precache_model(M3_P_MODEL)
    112.     precache_model(M3_W_MODEL)
    113.     m_spriteTexture = precache_model("sprites/dot.spr")
    114.     precache_sound("weapons/zoom.wav")
    115. }
    116.  
    117. public zp_user_infected_post(id)
    118. {
    119.     if (ze_is_user_zombie(id))
    120.     {
    121.         g_HasM3[id] = false
    122.     }
    123. }
    124.  
    125. public checkModel(id)
    126. {
    127.     if ( ze_is_user_zombie(id) )
    128.         return PLUGIN_HANDLED
    129.    
    130.     new szWeapID = read_data(2)
    131.    
    132.     if ( szWeapID == CSW_M3 && g_HasM3[id] == true && get_pcvar_num(cvar_custommodel) )
    133.     {
    134.         set_pev(id, pev_viewmodel2, M3_V_MODEL)
    135.         set_pev(id, pev_weaponmodel2, M3_P_MODEL)
    136.     }
    137.     return PLUGIN_HANDLED
    138. }
    139.  
    140. public checkWeapon(id)
    141. {
    142.     new plrClip, plrAmmo, plrWeap[32]
    143.     new plrWeapId
    144.    
    145.     plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    146.    
    147.     if (plrWeapId == CSW_M3 && g_HasM3[id])
    148.     {
    149.         checkModel(id)
    150.     }
    151.     else
    152.     {
    153.         return PLUGIN_CONTINUE
    154.     }
    155.    
    156.     if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    157.     {
    158.         // If the user is out of ammo..
    159.         get_weaponname(plrWeapId, plrWeap, 31)
    160.         // Get the name of their weapon
    161.         give_item(id, plrWeap)
    162.         engclient_cmd(id, plrWeap)
    163.         engclient_cmd(id, plrWeap)
    164.         engclient_cmd(id, plrWeap)
    165.     }
    166.     return PLUGIN_HANDLED
    167. }
    168.  
    169.  
    170.  
    171. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    172. {
    173.     if (!is_user_alive(victim) || !is_user_alive(attacker))
    174.         return
    175.    
    176.     if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M3 && g_HasM3[attacker] )
    177.     {
    178.         SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
    179.     }
    180. }
    181.  
    182. public fw_CmdStart( id, uc_handle, seed )
    183. {
    184.     if( !is_user_alive( id ) )
    185.         return PLUGIN_HANDLED
    186.    
    187.     if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    188.     {
    189.         new szClip, szAmmo
    190.         new szWeapID = get_user_weapon( id, szClip, szAmmo )
    191.        
    192.         if( szWeapID == CSW_M3 && g_HasM3[id] == true && !g_hasZoom[id] == true)
    193.         {
    194.             g_hasZoom[id] = true
    195.             cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    196.             emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    197.         }
    198.        
    199.         else if ( szWeapID == CSW_M3 && g_HasM3[id] == true && g_hasZoom[id])
    200.         {
    201.             g_hasZoom[ id ] = false
    202.             cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    203.            
    204.         }
    205.        
    206.     }
    207.     return PLUGIN_HANDLED
    208. }
    209.  
    210.  
    211. public make_tracer(id)
    212. {
    213.     if (get_pcvar_num(cvar_goldbullets))
    214.     {
    215.         new clip,ammo
    216.         new wpnid = get_user_weapon(id,clip,ammo)
    217.         new pteam[16]
    218.        
    219.         get_user_team(id, pteam, 15)
    220.        
    221.         if ((bullets[id] > clip) && (wpnid == CSW_M3) && g_HasM3[id])
    222.         {
    223.             new vec1[3], vec2[3]
    224.             get_user_origin(id, vec1, 1) // origin; your camera point.
    225.             get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
    226.            
    227.            
    228.             //BEAMENTPOINTS
    229.             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    230.             write_byte (0)     //TE_BEAMENTPOINTS 0
    231.             write_coord(vec1[0])
    232.             write_coord(vec1[1])
    233.             write_coord(vec1[2])
    234.             write_coord(vec2[0])
    235.             write_coord(vec2[1])
    236.             write_coord(vec2[2])
    237.             write_short( m_spriteTexture )
    238.             write_byte(1) // framestart
    239.             write_byte(5) // framerate
    240.             write_byte(2) // life
    241.             write_byte(10) // width
    242.             write_byte(0) // noise
    243.             write_byte( 255 )     // r, g, b
    244.             write_byte( 215 )       // r, g, b
    245.             write_byte( 0 )       // r, g, b
    246.             write_byte(200) // brightness
    247.             write_byte(150) // speed
    248.             message_end()
    249.         }
    250.    
    251.         bullets[id] = clip
    252.     }
    253.    
    254. }
    255.  
    256. public native_give_golden_m3(player)
    257. {
    258.     if ( user_has_weapon(player, CSW_M3) )
    259.     {
    260.         drop_prim(player)
    261.     }
    262.    
    263.     give_item(player, "weapon_m3")
    264.     cs_set_user_bpammo(player, CSW_M3, 32)
    265.    
    266.     g_HasM3[player] = true;
    267. }
    268.  
    269. // Set Model
    270. public fw_SetModel(entity, model[])
    271. {
    272.     // Entity is not valid
    273.     if(!is_valid_ent(entity))
    274.         return FMRES_IGNORED;
    275.        
    276.     // Entity model is not w_ak47
    277.     if(!equal(model, "models/w_m3.mdl"))
    278.         return FMRES_IGNORED;
    279.        
    280.     // Get classname
    281.     static szClassName[33]
    282.     entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    283.        
    284.     // Not a Weapon box
    285.     if(!equal(szClassName, "weaponbox"))
    286.         return FMRES_IGNORED
    287.    
    288.     // Some vars
    289.     static iOwner, iStoredGalilID
    290.    
    291.     // Get owner
    292.     iOwner = entity_get_edict(entity, EV_ENT_owner)
    293.    
    294.     // Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    295.     iStoredGalilID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
    296.    
    297.     // Entity classname is weaponbox, and galil has founded
    298.     if(g_HasM3[iOwner] && is_valid_ent(iStoredGalilID))
    299.     {
    300.         // Setting weapon options
    301.         entity_set_int(iStoredGalilID, EV_INT_WEAPONKEY, GAK_WEAPONKEY)
    302.  
    303.         // Reset user vars
    304.         g_HasM3[iOwner] = false
    305.        
    306.         // Set weaponbox new model
    307.         entity_set_model(entity, M3_W_MODEL)
    308.        
    309.         return FMRES_SUPERCEDE
    310.     }
    311.  
    312.     return FMRES_IGNORED
    313. }
    314.  
    315. // Give
    316. public fw_GAK47AddToPlayer (GAK47, id)
    317. {
    318.     // Make sure that this is M79
    319.     if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_WEAPONKEY) == GAK_WEAPONKEY)
    320.     {
    321.         // Update
    322.         g_HasM3[id] = true
    323.  
    324.         // Reset weapon options
    325.         entity_set_int(GAK47, EV_INT_WEAPONKEY, 0)
    326.  
    327.         return HAM_HANDLED
    328.     }
    329.  
    330.     return HAM_IGNORED
    331. }
    332.  
    333. stock drop_prim(id)
    334. {
    335.     new weapons[32], num
    336.     get_user_weapons(id, weapons, num)
    337.     for (new i = 0; i < num; i++) {
    338.         if (Wep_M3 & (1<<weapons[i]))
    339.         {
    340.             static wname[32]
    341.             get_weaponname(weapons[i], wname, sizeof wname - 1)
    342.             engclient_cmd(id, "drop", wname)
    343.         }
    344.     }
    345. }
MP5:
    1. #include <zombie_escape>
    2. #include <cstrike>
    3. #include <fun>
    4.  
    5. #define is_valid_player(%1) (1 <= %1 <= 32)
    6.  
    7. new gmp5_V_MODEL[64] = "models/zombie_escape/v_mp5navygold.mdl"
    8. new gmp5_P_MODEL[64] = "models/zombie_escape/p_mp5navygold.mdl"
    9.  
    10. /* Pcvars */
    11. new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    12. new bool:g_Hasmp5navy[33], g_hasZoom[ 33 ], bullets[ 33 ]
    13. // Sprite
    14. new m_spriteTexture
    15.  
    16. const Wep_mp5navy = ((1<<CSW_MP5NAVY))
    17.  
    18. public plugin_init()
    19. {
    20.     /* CVARS */
    21.     cvar_dmgmultiplier = register_cvar("gmp5_dmg_multiplier", "3")
    22.     cvar_custommodel = register_cvar("gmp5_custom_model", "1")
    23.     cvar_goldbullets = register_cvar("gmp5_gold_bullets", "1")
    24.     cvar_uclip = register_cvar("gmp5_unlimited_clip", "0")
    25.    
    26.     // Register The Plugin
    27.     register_plugin("Golden MP5", "1.1", "Wisam187 : JaCk")
    28.  
    29.     // Events
    30.     register_event("DeathMsg", "Death", "a")
    31.     register_event("WeapPickup","checkModel","b","1=19")
    32.     register_event("CurWeapon","checkWeapon","be","1=1")
    33.     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    34.     // Hams
    35.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    36.     register_forward( FM_CmdStart, "fw_CmdStart" )
    37.     RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    38.    
    39. }
    40.  
    41. public client_connect(id)
    42. {
    43.     g_Hasmp5navy[id] = false
    44. }
    45.  
    46. public client_disconnected(id)
    47. {
    48.     g_Hasmp5navy[id] = false
    49. }
    50.  
    51. public Death()
    52. {
    53.     g_Hasmp5navy[read_data(2)] = false
    54. }
    55.  
    56. public fwHamPlayerSpawnPost(id)
    57. {
    58.     g_Hasmp5navy[id] = false
    59. }
    60.  
    61. public plugin_precache()
    62. {
    63.     precache_model(gmp5_V_MODEL)
    64.     precache_model(gmp5_P_MODEL)
    65.     m_spriteTexture = precache_model("sprites/dot.spr")
    66.     precache_sound("weapons/zoom.wav")
    67. }
    68.  
    69. public ze_user_infected(id)
    70. {
    71.     g_Hasmp5navy[id] = false
    72. }
    73.  
    74. public checkModel(id)
    75. {
    76.     if ( ze_is_user_zombie(id) )
    77.         return PLUGIN_HANDLED
    78.    
    79.     new szWeapID = read_data(2)
    80.    
    81.     if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && get_pcvar_num(cvar_custommodel) )
    82.     {
    83.         set_pev(id, pev_viewmodel2, gmp5_V_MODEL)
    84.         set_pev(id, pev_weaponmodel2, gmp5_P_MODEL)
    85.     }
    86.     return PLUGIN_HANDLED
    87. }
    88.  
    89. public checkWeapon(id)
    90. {
    91.     new plrClip, plrAmmo, plrWeap[32]
    92.     new plrWeapId
    93.    
    94.     plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    95.    
    96.     if (plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
    97.     {
    98.         checkModel(id)
    99.     }
    100.     else
    101.     {
    102.         return PLUGIN_CONTINUE
    103.     }
    104.    
    105.     if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    106.     {
    107.         // If the user is out of ammo..
    108.         get_weaponname(plrWeapId, plrWeap, 31)
    109.         // Get the name of their weapon
    110.         give_item(id, plrWeap)
    111.         engclient_cmd(id, plrWeap)
    112.         engclient_cmd(id, plrWeap)
    113.         engclient_cmd(id, plrWeap)
    114.     }
    115.     return PLUGIN_HANDLED
    116. }
    117.  
    118.  
    119.  
    120. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    121. {
    122.     if (!is_user_alive(victim) || !is_user_alive(attacker))
    123.         return
    124.    
    125.     if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
    126.     {
    127.         SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
    128.     }
    129. }
    130.  
    131. public fw_CmdStart( id, uc_handle, seed )
    132. {
    133.     if( !is_user_alive( id ) )
    134.         return PLUGIN_HANDLED
    135.    
    136.     if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    137.     {
    138.         new szClip, szAmmo
    139.         new szWeapID = get_user_weapon( id, szClip, szAmmo )
    140.        
    141.         if( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
    142.         {
    143.             g_hasZoom[id] = true
    144.             cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    145.             emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    146.         }
    147.        
    148.         else if ( szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
    149.         {
    150.             g_hasZoom[ id ] = false
    151.             cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    152.            
    153.         }
    154.        
    155.     }
    156.     return PLUGIN_HANDLED
    157. }
    158.  
    159.  
    160. public make_tracer(id)
    161. {
    162.     if (get_pcvar_num(cvar_goldbullets))
    163.     {
    164.         new clip,ammo
    165.         new wpnid = get_user_weapon(id,clip,ammo)
    166.         new pteam[16]
    167.        
    168.         get_user_team(id, pteam, 15)
    169.        
    170.         if ((bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id])
    171.         {
    172.             new vec1[3], vec2[3]
    173.             get_user_origin(id, vec1, 1) // origin; your camera point.
    174.             get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    175.            
    176.            
    177.             //BEAMENTPOINTS
    178.             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    179.             write_byte (0)     //TE_BEAMENTPOINTS 0
    180.             write_coord(vec1[0])
    181.             write_coord(vec1[1])
    182.             write_coord(vec1[2])
    183.             write_coord(vec2[0])
    184.             write_coord(vec2[1])
    185.             write_coord(vec2[2])
    186.             write_short( m_spriteTexture )
    187.             write_byte(1) // framestart
    188.             write_byte(5) // framerate
    189.             write_byte(2) // life
    190.             write_byte(10) // width
    191.             write_byte(0) // noise
    192.             write_byte( random(256) )     // r, g, b
    193.             write_byte( random(256) )       // r, g, b
    194.             write_byte( random(256) )       // r, g, b
    195.             write_byte(200) // brightness
    196.             write_byte(150) // speed
    197.             message_end()
    198.         }
    199.    
    200.         bullets[id] = clip
    201.     }
    202.    
    203. }
    204.  
    205. public plugin_natives()
    206. {
    207.     register_native("give_golden_mp5", "native_give_golden_mp5", 1)
    208. }
    209.  
    210. public native_give_golden_mp5(id)
    211. {
    212.     g_Hasmp5navy[id] = true
    213.     rg_give_item(id, "weapon_mp5navy", GT_REPLACE)
    214.     cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
    215. }
M4A1:
    1. #include <zombie_escape>
    2. #include <fun>
    3. #include <cstrike>
    4.  
    5. #define is_valid_player(%1) (1 <= %1 <= 32)
    6.  
    7. new M4_V_MODEL[64] = "models/zombie_escape/v_golden_m4a1.mdl"
    8. new M4_P_MODEL[64] = "models/zombie_escape/p_golden_m4a1.mdl"
    9. new M4_W_MODEL[64] = "models/zombie_escape/w_golden_m4a1.mdl"
    10.  
    11. /* Pcvars */
    12. new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    13.  
    14. new bool:g_HasM4[33]
    15.  
    16. new bullets[ 33 ]
    17.  
    18. // Sprite
    19. new m_spriteTexture
    20.  
    21. const Wep_m4a1 = ((1<<CSW_M4A1))
    22.  
    23. public plugin_init()
    24. {
    25.    
    26.     /* CVARS */
    27.     cvar_dmgmultiplier = register_cvar("zp_goldenm4_dmg_multiplier", "4")
    28.     cvar_custommodel = register_cvar("zp_goldenm4_custom_model", "1")
    29.     cvar_goldbullets = register_cvar("zp_goldenm4_gold_bullets", "1")
    30.     cvar_uclip = register_cvar("zp_goldenm4_unlimited_clip", "0")
    31.    
    32.     // Register The Plugin
    33.     register_plugin("Golden M4A1", "1.1", "SPIR0X")
    34.  
    35.     // Death Msg
    36.     register_event("DeathMsg", "Death", "a")
    37.     // Weapon Pick Up
    38.     register_event("WeapPickup","checkModel","b","1=19")
    39.     // Current Weapon Event
    40.     register_event("CurWeapon","checkWeapon","be","1=1")
    41.     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    42.     // Ham TakeDamage
    43.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    44.     RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    45.    
    46. }
    47.  
    48. public plugin_natives()
    49. {
    50.     register_native("give_golden_m4a1", "native_give_golden_m4a1", 1)
    51. }
    52.  
    53. public client_connect(id)
    54. {
    55.     g_HasM4[id] = false
    56. }
    57.  
    58. public client_disconnected(id)
    59. {
    60.     g_HasM4[id] = false
    61. }
    62.  
    63. public Death()
    64. {
    65.     g_HasM4[read_data(2)] = false
    66. }
    67.  
    68. public fwHamPlayerSpawnPost(id)
    69. {
    70.     g_HasM4[id] = false
    71. }
    72.  
    73. public plugin_precache()
    74. {
    75.     precache_model(M4_V_MODEL)
    76.     precache_model(M4_P_MODEL)
    77.     precache_model(M4_W_MODEL)
    78.     m_spriteTexture = precache_model("sprites/dot.spr")
    79.     precache_sound("weapons/zoom.wav")
    80. }
    81.  
    82. public ze_user_infected(id, iInfector)
    83. {
    84.     if (ze_is_user_zombie(id))
    85.     {
    86.         g_HasM4[id] = false
    87.     }
    88. }
    89.  
    90. public checkModel(id)
    91. {
    92.     if (ze_is_user_zombie(id))
    93.         return PLUGIN_HANDLED
    94.    
    95.     new szWeapID = read_data(2)
    96.    
    97.     if ( szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) )
    98.     {
    99.         set_pev(id, pev_viewmodel2, M4_V_MODEL)
    100.         set_pev(id, pev_weaponmodel2, M4_P_MODEL)
    101.         set_pev(id, pev_weaponmodel2, M4_W_MODEL)
    102.     }
    103.     return PLUGIN_HANDLED
    104. }
    105.  
    106. public checkWeapon(id)
    107. {
    108.     new plrClip, plrAmmo, plrWeap[32]
    109.     new plrWeapId
    110.    
    111.     plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    112.    
    113.     if (plrWeapId == CSW_M4A1 && g_HasM4[id])
    114.     {
    115.         checkModel(id)
    116.     }
    117.     else
    118.     {
    119.         return PLUGIN_CONTINUE
    120.     }
    121.    
    122.     if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    123.     {
    124.         // If the user is out of ammo..
    125.         get_weaponname(plrWeapId, plrWeap, 31)
    126.         // Get the name of their weapon
    127.         rg_give_item(id, plrWeap)
    128.         engclient_cmd(id, plrWeap)
    129.         engclient_cmd(id, plrWeap)
    130.         engclient_cmd(id, plrWeap)
    131.     }
    132.     return PLUGIN_HANDLED
    133. }
    134.  
    135.  
    136.  
    137. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    138. {
    139.     if (!is_user_alive(victim) || !is_user_alive(attacker))
    140.         return
    141.    
    142.     if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
    143.     {
    144.         SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
    145.     }
    146. }
    147.  
    148. public make_tracer(id)
    149. {
    150.     if (get_pcvar_num(cvar_goldbullets))
    151.     {
    152.         new clip,ammo
    153.         new wpnid = get_user_weapon(id,clip,ammo)
    154.         new pteam[16]
    155.        
    156.         get_user_team(id, pteam, 15)
    157.        
    158.         if ((bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id])
    159.         {
    160.             new vec1[3], vec2[3]
    161.             get_user_origin(id, vec1, 1) // origin; your camera point.
    162.             get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
    163.            
    164.            
    165.             //BEAMENTPOINTS
    166.             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    167.             write_byte (0)     //TE_BEAMENTPOINTS 0
    168.             write_coord(vec1[0])
    169.             write_coord(vec1[1])
    170.             write_coord(vec1[2])
    171.             write_coord(vec2[0])
    172.             write_coord(vec2[1])
    173.             write_coord(vec2[2])
    174.             write_short( m_spriteTexture )
    175.             write_byte(1) // framestart
    176.             write_byte(5) // framerate
    177.             write_byte(2) // life
    178.             write_byte(10) // width
    179.             write_byte(0) // noise
    180.             write_byte( 255 )     // r, g, b
    181.             write_byte( 215 )       // r, g, b
    182.             write_byte( 0 )       // r, g, b
    183.             write_byte(200) // brightness
    184.             write_byte(150) // speed
    185.             message_end()
    186.         }
    187.    
    188.         bullets[id] = clip
    189.     }
    190.    
    191. }
    192.  
    193. public native_give_golden_m4a1(player)
    194. {
    195.     if (user_has_weapon(player, CSW_M4A1))
    196.     {
    197.         drop_prim(player)
    198.     }
    199.        
    200.     give_item(player, "weapon_m4a1")
    201.     cs_set_user_bpammo(player, CSW_M4A1, 90)
    202.    
    203.     g_HasM4[player] = true;
    204. }
    205.  
    206. stock drop_prim(id)
    207. {
    208.     new weapons[32], num
    209.     get_user_weapons(id, weapons, num)
    210.     for (new i = 0; i < num; i++) {
    211.         if (Wep_m4a1 & (1<<weapons[i]))
    212.         {
    213.             static wname[32]
    214.             get_weaponname(weapons[i], wname, sizeof wname - 1)
    215.             engclient_cmd(id, "drop", wname)
    216.         }
    217.     }
    218. }
Ak47:
    1. #include <zombie_escape>
    2. #include <cstrike>
    3. #include <fun>
    4. #include <engine>
    5.  
    6. #define NAME "Golden Ak 47"
    7. #define COST 30
    8. #define LIMIT 0
    9. #define is_valid_player(%1) (1 <= %1 <= get_maxplayers())
    10. new const g_GAKEnt[] = "weapon_ak47"
    11.  
    12. new AK_V_MODEL[64] = "models/zombie_escape/v_golden_ak47.mdl"
    13. new AK_P_MODEL[64] = "models/zombie_escape/p_golden_ak47.mdl"
    14. new AK_W_MODEL[64] = "models/zombie_escape/w_golden_ak47.mdl"
    15.  
    16. /* Pcvars */
    17. new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_uclip
    18. new bool:g_HasAk[33], g_hasZoom[33], bullets[33]
    19. // Sprite
    20. new m_spriteTexture
    21. const Wep_ak47 = ((1<<CSW_AK47))
    22.  
    23. public plugin_init()
    24. {
    25.     // Register The Plugin
    26.     register_plugin("Golden Ak 47", "1.1", "AlejandroSk / JaCk")
    27.     register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
    28.  
    29.     // Event
    30.     register_event("DeathMsg", "Death", "a")
    31.     register_event("WeapPickup","checkModel","b","1=19")
    32.     register_event("CurWeapon","checkWeapon","be","1=1")
    33.     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
    34.     // Ham TakeDamage
    35.     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    36.     RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    37.     RegisterHam(Ham_Item_AddToPlayer, g_GAKEnt, "fw_GAK47AddToPlayer")
    38.     // Forwards
    39.     register_forward(FM_SetModel, "fw_SetModel")
    40.     register_forward( FM_CmdStart, "fw_CmdStart" )
    41.     /* CVARS */
    42.     cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "5")
    43.     cvar_custommodel = register_cvar("goldenak_custom_model", "1")
    44.     cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
    45.     cvar_uclip = register_cvar("goldenak_unlimited_clip", "0")
    46. }
    47.  
    48. public plugin_natives()
    49. {
    50.     register_native("give_golden_ak47", "native_give_golden_ak47", 1)
    51. }
    52.  
    53. public native_give_golden_ak47(id)
    54. {
    55.     g_HasAk[id] = true
    56.     rg_give_item(id, "weapon_ak47", GT_REPLACE)
    57.     cs_set_user_bpammo(id, CSW_AK47, 90)
    58. }
    59.  
    60. public client_connect(id)
    61. {
    62.     g_HasAk[id] = false
    63. }
    64.  
    65. public client_disconnected(id)
    66. {
    67.     g_HasAk[id] = false
    68. }
    69.  
    70. public Death()
    71. {
    72.     g_HasAk[read_data(2)] = false
    73. }
    74.  
    75. public fwHamPlayerSpawnPost(id)
    76. {
    77.     g_HasAk[id] = false
    78. }
    79.  
    80. public plugin_precache()
    81. {
    82.     precache_model(AK_V_MODEL)
    83.     precache_model(AK_P_MODEL)
    84.     precache_model(AK_W_MODEL)
    85.     m_spriteTexture = precache_model("sprites/dot.spr")
    86.     precache_sound("weapons/zoom.wav")
    87. }
    88.  
    89. public ze_user_infected(id)
    90. {
    91.     g_HasAk[id] = false
    92. }
    93.  
    94. public checkModel(id)
    95. {
    96.     if ( ze_is_user_zombie(id) )
    97.         return PLUGIN_HANDLED
    98.    
    99.     new szWeapID = read_data(2)
    100.    
    101.     if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && get_pcvar_num(cvar_custommodel) )
    102.     {
    103.         set_pev(id, pev_viewmodel2, AK_V_MODEL)
    104.         set_pev(id, pev_weaponmodel2, AK_P_MODEL)
    105.     }
    106.     return PLUGIN_HANDLED
    107. }
    108.  
    109. public checkWeapon(id)
    110. {
    111.     new plrClip, plrAmmo, plrWeap[32]
    112.     new plrWeapId
    113.    
    114.     plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
    115.    
    116.     if (plrWeapId == CSW_AK47 && g_HasAk[id])
    117.     {
    118.         checkModel(id)
    119.     }
    120.     else
    121.     {
    122.         return PLUGIN_CONTINUE
    123.     }
    124.    
    125.     if (plrClip == 0 && get_pcvar_num(cvar_uclip))
    126.     {
    127.         // If the user is out of ammo..
    128.         get_weaponname(plrWeapId, plrWeap, 31)
    129.         // Get the name of their weapon
    130.         give_item(id, plrWeap)
    131.         engclient_cmd(id, plrWeap)
    132.         engclient_cmd(id, plrWeap)
    133.         engclient_cmd(id, plrWeap)
    134.     }
    135.     return PLUGIN_HANDLED
    136. }
    137.  
    138. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
    139. {
    140.     if (!is_user_alive(victim) || !is_user_alive(attacker))
    141.         return
    142.    
    143.     if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] )
    144.     {
    145.         SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
    146.     }
    147. }
    148.  
    149. public fw_CmdStart( id, uc_handle, seed )
    150. {
    151.     if( !is_user_alive( id ) )
    152.         return PLUGIN_HANDLED
    153.    
    154.     if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    155.     {
    156.         new szClip, szAmmo
    157.         new szWeapID = get_user_weapon( id, szClip, szAmmo )
    158.        
    159.         if( szWeapID == CSW_AK47 && g_HasAk[id] == true && !g_hasZoom[id] == true)
    160.         {
    161.             g_hasZoom[id] = true
    162.             cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
    163.             emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
    164.         }
    165.        
    166.         else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
    167.         {
    168.             g_hasZoom[ id ] = false
    169.             cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
    170.            
    171.         }
    172.        
    173.     }
    174.     return PLUGIN_HANDLED
    175. }
    176.  
    177.  
    178. public make_tracer(id)
    179. {
    180.     if (get_pcvar_num(cvar_goldbullets))
    181.     {
    182.         new clip,ammo
    183.         new wpnid = get_user_weapon(id,clip,ammo)
    184.         new pteam[16]
    185.        
    186.         get_user_team(id, pteam, 15)
    187.        
    188.         if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id])
    189.         {
    190.             new vec1[3], vec2[3]
    191.             get_user_origin(id, vec1, 1) // origin; your camera point.
    192.             get_user_origin(id, vec2, 3) // termina; where your bullet goes (4 is cs-only)
    193.            
    194.            
    195.             //BEAMENTPOINTS
    196.             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    197.             write_byte (0)     //TE_BEAMENTPOINTS 0
    198.             write_coord(vec1[0])
    199.             write_coord(vec1[1])
    200.             write_coord(vec1[2])
    201.             write_coord(vec2[0])
    202.             write_coord(vec2[1])
    203.             write_coord(vec2[2])
    204.             write_short( m_spriteTexture )
    205.             write_byte(1) // framestart
    206.             write_byte(5) // framerate
    207.             write_byte(2) // life
    208.             write_byte(10) // width
    209.             write_byte(0) // noise
    210.             write_byte( 255 )     // R
    211.             write_byte( 215 )       // G
    212.             write_byte( 0 )       // B
    213.             write_byte(200) // Alpha
    214.             write_byte(150) // speed
    215.             message_end()
    216.         }
    217.    
    218.         bullets[id] = clip
    219.     }
    220.    
    221. }
    222.  
    223. public fw_SetModel(entity, model[])
    224. {
    225.     if(!is_valid_ent(entity)) // Entity is not valid
    226.         return FMRES_IGNORED;
    227.        
    228.     if(!equal(model, "models/w_ak47.mdl")) // Entity model is not w_ak47
    229.         return FMRES_IGNORED;
    230.        
    231.     static szClassName[33] // Get classname
    232.     entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
    233.        
    234.     if(!equal(szClassName, "weaponbox")) // Not a Weapon box
    235.         return FMRES_IGNORED
    236.    
    237.     static iOwner, iStoredGalilID // Some vars
    238.    
    239.     iOwner = entity_get_edict(entity, EV_ENT_owner) // Get owner
    240.    
    241.     iStoredGalilID = find_ent_by_owner(-1, "weapon_ak47", entity) // Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward
    242.    
    243.     if(g_HasAk[iOwner] && is_valid_ent(iStoredGalilID)) // Entity classname is weaponbox, and galil has founded
    244.     {
    245.         entity_set_int(iStoredGalilID, EV_INT_impulse, 666) // Setting weapon options
    246.         g_HasAk[iOwner] = false // Reset user vars
    247.         entity_set_model(entity, AK_W_MODEL) // Set weaponbox new model
    248.         return FMRES_SUPERCEDE
    249.     }
    250.     return FMRES_IGNORED
    251. }
    252.  
    253. public fw_GAK47AddToPlayer(GAK47, id)
    254. {
    255.     if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_impulse) == 666) // Make sure that this is our gun
    256.     {
    257.         g_HasAk[id] = true
    258.         entity_set_int(GAK47, EV_INT_impulse, 0)
    259.         return HAM_HANDLED
    260.     }
    261.     return HAM_IGNORED
    262. }

Re: Custom Weapons Menu

Posted: 29 Aug 2018, 12:36
by Spir0x
OMG i need to update these 4 guns for the third time ?