Approved Custom Weapons Menu

Plug-ins compatibility with Zombie Escape 1.x only!


User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

Custom Weapons Menu

#1

Post by Raheem » 5 years ago

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:
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#2

Post by czirimbolo » 5 years ago

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)
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#3

Post by Raheem » 5 years ago

Fixed.
He who fails to plan is planning to fail

User avatar
sPe3doN
Senior Member
Senior Member
Algeria
Posts: 258
Joined: 7 years ago
Contact:

#4

Post by sPe3doN » 5 years ago

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!
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#5

Post by Raheem » 5 years ago

Compile these plugins with your compiler and make sure that reapi includes match reapi version you are using on your server.
He who fails to plan is planning to fail

Prekrasnoe Daleko
Member
Member
Russia
Posts: 32
Joined: 6 years ago
Location: Россия,Крым
Contact:

#6

Post by Prekrasnoe Daleko » 5 years ago

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)

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#7

Post by Raheem » 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.
He who fails to plan is planning to fail

Prekrasnoe Daleko
Member
Member
Russia
Posts: 32
Joined: 6 years ago
Location: Россия,Крым
Contact:

#8

Post by Prekrasnoe Daleko » 5 years ago

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

Prekrasnoe Daleko
Member
Member
Russia
Posts: 32
Joined: 6 years ago
Location: Россия,Крым
Contact:

#9

Post by Prekrasnoe Daleko » 5 years ago

Raheem, gold weapons very little patrons 1 magazine

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#10

Post by Raheem » 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
    }
He who fails to plan is planning to fail

Prekrasnoe Daleko
Member
Member
Russia
Posts: 32
Joined: 6 years ago
Location: Россия,Крым
Contact:

#11

Post by Prekrasnoe Daleko » 5 years ago

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
    }

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#12

Post by Spir0x » 5 years ago

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 ?

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#13

Post by Raheem » 5 years ago

Yes
He who fails to plan is planning to fail

User avatar
Night Fury
Mod Developer
Mod Developer
Posts: 677
Joined: 7 years ago
Contact:

#14

Post by Night Fury » 5 years ago

Raheem wrote: 5 years agoYes

Code: Select all

register_cvar("JaCk", "Golden AK47", FCVAR_SERVER|FCVAR_SPONLY)
What's this?! LOL!
Want your own mod edition? PM me.
Accepting private projects.
Discord: Fury#7469
Image

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#15

Post by czirimbolo » 5 years ago

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)
Image

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#16

Post by Spir0x » 5 years ago

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.

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#17

Post by Raheem » 5 years ago

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:
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#18

Post by czirimbolo » 5 years ago

Thanks Raheem, I am waitng for your fix because every day I have massive errors because of this guns
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#19

Post by Raheem » 5 years ago

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. }
He who fails to plan is planning to fail

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#20

Post by Spir0x » 5 years ago

OMG i need to update these 4 guns for the third time ?

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 0 guests