Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- [ZP] Extra Item: Golden Ak 47
- 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
- Credits:
- KaOs - For his Dual MP5 mod
- Cvars:
- - zp_goldenak_dmg_multiplier <5> - Damage Multiplier for Golden Ak 47
- - zp_goldenak_gold_bullets <1|0> - Golden bullets effect ?
- - zp_goldenak_custom_model <1|0> - Golden ak Custom Model
- - zp_goldenak_unlimited_clip <1|0> - Golden ak Unlimited Clip
- */
- #include <amxmodx>
- #include <fakemeta>
- #include <fun>
- #include <hamsandwich>
- #include <cstrike>
- #include <zombieplague>
- #define is_valid_player(%1) (1 <= %1 <= 32)
- new AK_V_MODEL[64] = "models/zombie_plague/v_golden_ak47.mdl"
- new AK_P_MODEL[64] = "models/zombie_plague/p_golden_ak47.mdl"
- /* Pcvars */
- new cvar_dmgmultiplier, cvar_goldbullets, cvar_custommodel, cvar_uclip
- // Item ID
- new g_itemid
- new bool:g_HasAk[33]
- new g_hasZoom[ 33 ]
- new bullets[ 33 ]
- // Sprite
- new m_spriteTexture
- const Wep_ak47 = ((1<<CSW_AK47))
- const GAK_Limit = 3
- new GAK_BuyCount
- public plugin_init()
- {
- /* CVARS */
- cvar_dmgmultiplier = register_cvar("zp_goldenak_dmg_multiplier", "5")
- cvar_custommodel = register_cvar("zp_goldenak_custom_model", "1")
- cvar_goldbullets = register_cvar("zp_goldenak_gold_bullets", "1")
- cvar_uclip = register_cvar("zp_goldenak_unlimited_clip", "1")
- // Register The Plugin
- register_plugin("[ZP] Extra: Golden Ak 47", "1.1", "AlejandroSk")
- // Register Zombie Plague extra item
- g_itemid = zp_register_extra_item("Golden Ak 47", 30, ZP_TEAM_HUMAN)
- // 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)
- register_event ( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
- }
- public client_connect(id)
- {
- g_HasAk[id] = false
- }
- public client_disconnect(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)
- m_spriteTexture = precache_model("sprites/dot.spr")
- precache_sound("weapons/zoom.wav")
- }
- public zp_user_infected_post(id)
- {
- if (zp_get_user_zombie(id))
- {
- g_HasAk[id] = false
- }
- }
- public checkModel(id)
- {
- if ( zp_get_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, 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 zp_extra_item_selected(player, itemid)
- {
- if ( (itemid == g_itemid) && (GAK_BuyCount <= GAK_Limit) )
- {
- if ( user_has_weapon(player, CSW_AK47) )
- {
- drop_prim(player)
- }
- give_item(player, "weapon_ak47")
- client_print(player, print_chat, "[ZP] You bought Golden Ak - 47")
- GAK_BuyCount++
- g_HasAk[player] = true;
- }
- else if( (itemid == g_itemid) && (GAK_BuyCount > GAK_Limit) ){
- client_print(player, print_chat, "[ZP] You already reached the limit for this extra item (2 per round)")
- }
- }
- public Event_NewRound(){
- GAK_BuyCount = 1
- }
- stock drop_prim(id)
- {
- new weapons[32], num
- get_user_weapons(id, weapons, num)
- for (new i = 0; i < num; i++) {
- if (Wep_ak47 & (1<<weapons[i]))
- {
- static wname[32]
- get_weaponname(weapons[i], wname, sizeof wname - 1)
- engclient_cmd(id, "drop", wname)
- }
- }
- }
- /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
- *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement