AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   extra clip for weapon help! (https://forums.alliedmods.net/showthread.php?t=207035)

windyking 01-28-2013 23:37

extra clip for weapon help!
 
PHP Code:

/*
[ZP] Extra Item: Golden MP5 NAVY
Team: Humans
Description: This plugin adds a new weapon for Human Teams.
Weapon Cost: 15
Features:
- This weapon do more damage
- This weapon has zoom
- Launch Lasers
- This weapon has unlimited bullets

Cvars:

- zp_gmp5_dmg_multiplier <5> - Damage Multiplier for Golden mp5?
- zp_gmp5_gold_bullets <1|0> - Golden bullets effect ?
- zp_gmp5_custom_model <1|0> - golden mp5 Custom Model
- zp_gmp5_unlimited_clip <1|0> - golden mp5 Unlimited Clip 
*/
 
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
#define is_valid_player(%1) (1 <= %1 <= 32)
new gmp5_V_MODEL[64] = "models/zombie_plague/v_mp5navygold.mdl"
new gmp5_P_MODEL[64] = "models/zombie_plague/p_mp5navygold.mdl"
/* Pcvars */
new cvar_dmgmultipliercvar_goldbullets,  cvar_custommodelcvar_uclip
// Item ID
new g_itemid
new bool:g_Hasmp5navy[33]
new 
g_hasZoom33 ]
new 
bullets33 ]
// Sprite
new m_spriteTexture
const Wep_mp5navy = ((1<<CSW_MP5NAVY))
public 
plugin_init()
{
 
 
/* CVARS */
 
cvar_dmgmultiplier register_cvar("zp_gmp5_dmg_multiplier""5")
 
cvar_custommodel register_cvar("zp_gmp5_custom_model""1")
 
cvar_goldbullets register_cvar("zp_gmp5_gold_bullets""1")
 
cvar_uclip register_cvar("zp_gmp5_unlimited_clip""1")
 
 
// Register The Plugin
 
register_plugin("[ZP] Extra: Golden MP5""1.1""Wisam187")
 
// Register Zombie Plague extra item
 
g_itemid zp_register_extra_item("Golden MP5"15ZP_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_forwardFM_CmdStart"fw_CmdStart" )
 
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
 
}
public 
client_connect(id)
{
 
g_Hasmp5navy[id] = false
}
public 
client_disconnect(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 
zp_user_infected_post(id)
{
 if (
zp_get_user_zombie(id))
 {
  
g_Hasmp5navy[id] = false
 
}
}
public 
checkModel(id)
{
 if ( 
zp_get_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(idpev_viewmodel2gmp5_V_MODEL)
  
set_pev(idpev_weaponmodel2gmp5_P_MODEL)
 }
 return 
PLUGIN_HANDLED
}
public 
checkWeapon(id)
{
 new 
plrClipplrAmmoplrWeap[32]
 new 
plrWeapId
 
 plrWeapId 
get_user_weapon(idplrClip plrAmmo)
 
 if (
plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
 {
  
checkModel(id)
 }
 else 
 {
  return 
PLUGIN_CONTINUE
 
}
 
 if (
plrClip == && get_pcvar_num(cvar_uclip))
 {
  
// If the user is out of ammo..
  
get_weaponname(plrWeapIdplrWeap31)
  
// Get the name of their weapon
  
give_item(idplrWeap)
  
engclient_cmd(idplrWeap
  
engclient_cmd(idplrWeap)
  
engclient_cmd(idplrWeap)
 }
 return 
PLUGIN_HANDLED
}
 
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }
}
public 
fw_CmdStartiduc_handleseed )
{
 if( !
is_user_aliveid ) ) 
  return 
PLUGIN_HANDLED
 
 
if( ( get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) )
 {
  new 
szClipszAmmo
  
new szWeapID get_user_weaponidszClipszAmmo )
  
  if( 
szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
  {
   
g_hasZoom[id] = true
   cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM)
   
emit_soundidCHAN_ITEM"weapons/zoom.wav"0.202.400100 )
  }
  
  else if ( 
szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
  {
   
g_hasZoomid ] = false
   cs_set_user_zoom
idCS_RESET_ZOOM)
   
  }
  
 }
 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(idpteam15)
  
  if ((
bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id]) 
  {
   new 
vec1[3], vec2[3]
   
get_user_origin(idvec11// origin; your camera point.
   
get_user_origin(idvec24// termina; where your bullet goes (4 is cs-only)
   
   
   //BEAMENTPOINTS
   
message_beginMSG_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_shortm_spriteTexture )
   
write_byte(1// framestart
   
write_byte(5// framerate
   
write_byte(2// life
   
write_byte(10// width
   
write_byte(0// noise
   
write_byte255 )     // r, g, b
   
write_byte215 )       // r, g, b
   
write_byte)       // r, g, b
   
write_byte(200// brightness
   
write_byte(150// speed
   
message_end()
  }
 
  
bullets[id] = clip
 
}
 
}
public 
zp_extra_item_selected(playeritemid)
{
 if ( 
itemid == g_itemid )
 {
  if ( 
user_has_weapon(playerCSW_MP5NAVY) )
  {
   
drop_prim(player)
  }
  
  
give_item(player"weapon_mp5navy")
  
client_print(playerprint_chat"[ZP] You bought Golden MP5")
  
g_Hasmp5navy[player] = true;
 }
}
stock drop_prim(id
{
 new 
weapons[32], num
 get_user_weapons
(idweaponsnum)
 for (new 
0numi++) {
  if (
Wep_mp5navy & (1<<weapons[i])) 
  {
   static 
wname[32]
   
get_weaponname(weapons[i], wnamesizeof wname 1)
   
engclient_cmd(id"drop"wname)
  }
 }
}
/*
[ZP] Extra Item: Golden MP5 NAVY
Team: Humans
Description: This plugin adds a new weapon for Human Teams.
Weapon Cost: 15
Features:
- This weapon do more damage
- This weapon has zoom
- Launch Lasers
- This weapon has unlimited bullets

Cvars:

- zp_gmp5_dmg_multiplier <5> - Damage Multiplier for Golden mp5?
- zp_gmp5_gold_bullets <1|0> - Golden bullets effect ?
- zp_gmp5_custom_model <1|0> - golden mp5 Custom Model
- zp_gmp5_unlimited_clip <1|0> - golden mp5 Unlimited Clip 
*/
 
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
#define is_valid_player(%1) (1 <= %1 <= 32)
new gmp5_V_MODEL[64] = "models/zombie_plague/v_mp5navygold.mdl"
new gmp5_P_MODEL[64] = "models/zombie_plague/p_mp5navygold.mdl"
/* Pcvars */
new cvar_dmgmultipliercvar_goldbullets,  cvar_custommodelcvar_uclip
// Item ID
new g_itemid
new bool:g_Hasmp5navy[33]
new 
g_hasZoom33 ]
new 
bullets33 ]
// Sprite
new m_spriteTexture
const Wep_mp5navy = ((1<<CSW_MP5NAVY))
public 
plugin_init()
{
 
 
/* CVARS */
 
cvar_dmgmultiplier register_cvar("zp_gmp5_dmg_multiplier""5")
 
cvar_custommodel register_cvar("zp_gmp5_custom_model""1")
 
cvar_goldbullets register_cvar("zp_gmp5_gold_bullets""1")
 
cvar_uclip register_cvar("zp_gmp5_unlimited_clip""1")
 
 
// Register The Plugin
 
register_plugin("[ZP] Extra: Golden MP5""1.1""Wisam187")
 
// Register Zombie Plague extra item
 
g_itemid zp_register_extra_item("Golden MP5"15ZP_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_forwardFM_CmdStart"fw_CmdStart" )
 
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
 
}
public 
client_connect(id)
{
 
g_Hasmp5navy[id] = false
}
public 
client_disconnect(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 
zp_user_infected_post(id)
{
 if (
zp_get_user_zombie(id))
 {
  
g_Hasmp5navy[id] = false
 
}
}
public 
checkModel(id)
{
 if ( 
zp_get_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(idpev_viewmodel2gmp5_V_MODEL)
  
set_pev(idpev_weaponmodel2gmp5_P_MODEL)
 }
 return 
PLUGIN_HANDLED
}
public 
checkWeapon(id)
{
 new 
plrClipplrAmmoplrWeap[32]
 new 
plrWeapId
 
 plrWeapId 
get_user_weapon(idplrClip plrAmmo)
 
 if (
plrWeapId == CSW_MP5NAVY && g_Hasmp5navy[id])
 {
  
checkModel(id)
 }
 else 
 {
  return 
PLUGIN_CONTINUE
 
}
 
 if (
plrClip == && get_pcvar_num(cvar_uclip))
 {
  
// If the user is out of ammo..
  
get_weaponname(plrWeapIdplrWeap31)
  
// Get the name of their weapon
  
give_item(idplrWeap)
  
engclient_cmd(idplrWeap
  
engclient_cmd(idplrWeap)
  
engclient_cmd(idplrWeap)
 }
 return 
PLUGIN_HANDLED
}
 
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_MP5NAVY && g_Hasmp5navy[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }
}
public 
fw_CmdStartiduc_handleseed )
{
 if( !
is_user_aliveid ) ) 
  return 
PLUGIN_HANDLED
 
 
if( ( get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) )
 {
  new 
szClipszAmmo
  
new szWeapID get_user_weaponidszClipszAmmo )
  
  if( 
szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && !g_hasZoom[id] == true)
  {
   
g_hasZoom[id] = true
   cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM)
   
emit_soundidCHAN_ITEM"weapons/zoom.wav"0.202.400100 )
  }
  
  else if ( 
szWeapID == CSW_MP5NAVY && g_Hasmp5navy[id] == true && g_hasZoom[id])
  {
   
g_hasZoomid ] = false
   cs_set_user_zoom
idCS_RESET_ZOOM)
   
  }
  
 }
 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(idpteam15)
  
  if ((
bullets[id] > clip) && (wpnid == CSW_MP5NAVY) && g_Hasmp5navy[id]) 
  {
   new 
vec1[3], vec2[3]
   
get_user_origin(idvec11// origin; your camera point.
   
get_user_origin(idvec24// termina; where your bullet goes (4 is cs-only)
   
   
   //BEAMENTPOINTS
   
message_beginMSG_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_shortm_spriteTexture )
   
write_byte(1// framestart
   
write_byte(5// framerate
   
write_byte(2// life
   
write_byte(10// width
   
write_byte(0// noise
   
write_byte255 )     // r, g, b
   
write_byte215 )       // r, g, b
   
write_byte)       // r, g, b
   
write_byte(200// brightness
   
write_byte(150// speed
   
message_end()
  }
 
  
bullets[id] = clip
 
}
 
}
public 
zp_extra_item_selected(playeritemid)
{
 if ( 
itemid == g_itemid )
 {
  if ( 
user_has_weapon(playerCSW_MP5NAVY) )
  {
   
drop_prim(player)
  }
  
  
give_item(player"weapon_mp5navy")
  
client_print(playerprint_chat"[ZP] You bought Golden MP5")
  
g_Hasmp5navy[player] = true;
 }
}
stock drop_prim(id
{
 new 
weapons[32], num
 get_user_weapons
(idweaponsnum)
 for (new 
0numi++) {
  if (
Wep_mp5navy & (1<<weapons[i])) 
  {
   static 
wname[32]
   
get_weaponname(weapons[i], wnamesizeof wname 1)
   
engclient_cmd(id"drop"wname)
  }
 }


i need a code to this golden mp5 have extra clip ammo(30/120 -> 300/500)
i hope somebody fix the code for me, thks very much
p/s: sorry for my bad english. :oops:

naven 02-01-2013 03:30

Re: extra clip for weapon help!
 
http://forums.alliedmods.net/showthread.php?t=181261
Searching is so much faster than waiting for people to response.


All times are GMT -4. The time now is 20:29.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.