Raised This Month: $51 Target: $400
 12% 

View Poll Results: Is This Awesome Pack For Zombie Plague?
Poor... 96 19.75%
Nothing Special.. 38 7.82%
Good. 109 22.43%
Totally AWESOME! 41 8.44%
EXTREMELY FUCKIN' GREAT! 202 41.56%
Voters: 486. You may not vote on this poll

"Counter-Strike: Online - Transformation Pack [ 2012 Edition ] ( By jc980 )"


Post New Thread Reply   
 
Thread Tools Display Modes
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 11-12-2010 , 08:46   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #381

Quote:
Originally Posted by ZombiMod.Com View Post
This way you can play with real players PUBLIC or just with bots?
BOTH. you can with podbots(zombies) with zbots(human bots helpers) and real players(human). since i dont have a server to test them public. ill just test it in lan in my computer shop.
__________________
jc980 is offline
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 11-12-2010 , 09:35   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #382

"NEW UPDATE"

Please Test ZP Extra Items! Post Here For Any Errors!

MP7A1:
PHP Code:
/*================================================================================
[CSO WPN Mod]
Mod: [ZP] Extra Item
Team: Humans

Cvars:
 zp_cso_<wpn>_dmg <3> = weapon Damage Multiplier
 zp_cso_<wpn>_uclip <1|0> = Weapon have unlimited clip?
 zp_cso_<wpn>_speed <1> = weapon firing speed
 zp_cso_<wpn>_zoom <1|0> = weapon allow zoom
 zp_cso_<wpn>_clip <50> = weapon clip
 zp_cso_<wpn>_ammo <200> = weapon ammo
 zp_cso_<wpn>_recoil <0> = weapon recoil
 zp_cso_<wpn>_round <1|0> - weapon only for one round?
 zp_cso_<wpn>_gravity <235> - weapon gravity
================================================================================*/


#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
#include <engine>

// Info Plugin
#define VERSION "1.0"
#define AUTHOR "jc980"


// Info Weapon
#define CURENT_WEAPON CSW_MP5
new models_weapon[64] = "mp7a1"
new name_weapon[64] = "CSO MP7A1"


new plugin_name[64] = "[ZP] Extra Item: %s"
new name_class_weapon[64] = "zp_cso_%s"
new V_MODEL[64] = "models/cso/v_%s.mdl"
new P_MODEL[64] = "models/cso/p_%s.mdl"
new W_MODEL[64] = "models/cso/w_%s.mdl"

new cvar_dmg_name[64] = "zp_cso_%s_dmg"
new cvar_uclip_name[64] = "zp_cso_%s_uclip"
new cvar_speed_name[64] = "zp_cso_%s_speed"
new cvar_zoom_name[64] = "zp_cso_%s_zoom"
new cvar_clip_name[64] = "zp_cso_%s_clip"
new cvar_ammo_name[64] = "zp_cso_%s_ammo"
new cvar_recoil_name[64] = "zp_cso_%s_recoil"
new cvar_round_name[64] = "zp_cso_%s_round"
new cvar_gravity_name[64] = "zp_cso_%s_gravity"

#define is_valid_player(%1) (1 <= %1 <= 32)
new user_clip[33], user_ammo[33]
new 
cvar_dmgmultipliercvar_uclipcvar_speedcvar_zoomcvar_clipcvar_ammocvar_recoilcvar_roundcvar_gravity
new g_itemid
new bool:G_HasWp[33]
new 
g_hasZoom33 ]
const 
Wep_drop = ((1<<CURENT_WEAPON))
new 
szWeapon[17]
new 
Float:cl_pushangle[33][3]


////////////////////////////////// Ammo //////////////////////////////////

const SILENT_BS    = ((1<<CSW_USP)|(1<<CURENT_WEAPON))

// weapons offsets
const m_pPlayer            41
const m_iId                43
const m_fKnown                44
const m_flNextPrimaryAttack    46
const m_flNextSecondaryAttack    47
const m_flTimeWeaponIdle        48
const m_iPrimaryAmmoType        49
const m_iClip                51
const m_fInReload            54
const m_fInSpecialReload        55
const m_fSilent            74
const m_flNextAttack        83
const m_rgAmmo_player_Slot0    376

stock 
const g_iDftMaxClip[CSW_P90+1] = {
    -
1,  13, -110,  1,  7,    13030,  1,  30
        
2025303525,   12201030100
        
303020,  2,    73030, -1,  50}
        
stock const g_iReloadAnims[CSW_P90+1] = {
    -
1,  5, -13, -1,  6,   -111, -114
        
4,  23,  1,  1,   1374,  1,  3
        
6111,  3, -1,    411, -1,  1}
        
stock const Float:g_fDelay[CSW_P90+1] = {
    
0.002.700.002.000.000.55,   0.003.153.300.004.50
         
2.703.503.352.453.30,   2.702.202.502.634.70
         
0.553.052.123.500.00,   2.203.002.450.003.40
}


public 
plugin_init()
{
    
// Create value
    
format(V_MODEL63V_MODELmodels_weapon)
    
format(P_MODEL63P_MODELmodels_weapon)
    
format(W_MODEL63W_MODELmodels_weapon)
    
    
format(cvar_dmg_name63cvar_dmg_namemodels_weapon)
    
format(cvar_uclip_name63cvar_uclip_namemodels_weapon)
    
format(cvar_speed_name63cvar_speed_namemodels_weapon)
    
format(cvar_zoom_name63cvar_zoom_namemodels_weapon)
    
format(cvar_clip_name63cvar_clip_namemodels_weapon)
    
format(cvar_ammo_name63cvar_ammo_namemodels_weapon)
    
format(cvar_recoil_name63cvar_recoil_namemodels_weapon)
    
format(cvar_round_name63cvar_round_namemodels_weapon)
    
format(cvar_gravity_name63cvar_gravity_namemodels_weapon)
    
    
format(plugin_name63plugin_namename_weapon)
    
format(name_class_weapon63name_class_weaponmodels_weapon)

    
// Reg Cvar
    
cvar_dmgmultiplier register_cvar(cvar_dmg_name"3")
    
cvar_uclip register_cvar(cvar_uclip_name"0")
    
cvar_speed register_cvar(cvar_speed_name,"1")
    
cvar_zoom register_cvar(cvar_zoom_name,"1")
    
cvar_clip register_cvar(cvar_clip_name,"40")
    
cvar_ammo register_cvar(cvar_ammo_name,"240")
    
cvar_recoil register_cvar(cvar_recoil_name,"0.6")
    
cvar_round register_cvar(cvar_round_name,"0")
    
cvar_gravity register_cvar(cvar_gravity_name,"235")
    
    
register_plugin(plugin_nameVERSIONAUTHOR)
    
g_itemid zp_register_extra_item(name_weapon5ZP_TEAM_HUMAN)

    
register_forward(FM_PlayerPreThink"check_player_speed")
    
//register_event("WeapPickup","checkModel","b","1=19")
    
register_event("DeathMsg""Death""a")
    
register_event("CurWeapon","checkWeapon","be","1=1")
    
register_event("HLTV""event_start_freezetime""a""1=0""2=0")

    
// Ham
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    
get_weaponname(CURENT_WEAPONszWeaponcharsmax(szWeapon))
    
RegisterHam(Ham_Item_PostFrameszWeapon"Item_PostFrame")
    
register_forwardFM_CmdStart"fw_CmdStart" )
    
    
// Recoil
    
RegisterHam(Ham_Weapon_PrimaryAttackszWeapon"fw_primary_attack")
    
RegisterHam(Ham_Weapon_PrimaryAttackszWeapon"fw_primary_attack_post",1

    
register_clcmd("drop","cmd_drop"0)
}

// Other Public
public plugin_precache()
{
    
format(V_MODEL63V_MODELmodels_weapon)
    
format(P_MODEL63P_MODELmodels_weapon)
    
format(W_MODEL63W_MODELmodels_weapon)
    
    
precache_model(V_MODEL)
    
precache_model(P_MODEL)
    
precache_model(W_MODEL)
}

public 
client_connect(id)
{
    
G_HasWp[id] = false
}

public 
client_disconnect(id)
{
    
G_HasWp[id] = false
}

public 
check_player_speed(id)
{
    if (!
is_user_alive(id))
        return;
    
    if(
G_HasWp[id])
    {
        
set_pev(idpev_maxspeedget_pcvar_num(cvar_gravity))
    }
}

public 
Death()
{
    new 
id read_data(2
    if(
G_HasWp[id])
    {
        
create_w_class(iduser_clip[id], user_ammo[id], 0)
        
G_HasWp[id] = false
        
return PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
fwHamPlayerSpawnPost(id)
{
    if (!
get_pcvar_num(cvar_round)) G_HasWp[id] = false
}

public 
zp_user_infected_post(id)
{
    if (
zp_get_user_zombie(id))
    {
        
G_HasWp[id] = false
    
}
}

public 
zp_extra_item_selected(playeritemid)
{
    if ( 
itemid == g_itemid )
    {
        
drop_prim(player)
        
give_weapon(playerget_pcvar_num(cvar_clip), get_pcvar_num(cvar_ammo))
        
client_print(playerprint_chat"[ZP] You Bought %s"name_weapon)
    }
}

public 
event_start_freezetime()
{
    
remove_class_wpn()
}
// End Other Public


// Check Weapon
public checkModel(id)
{
    if ( 
zp_get_user_zombie(id) )
        return 
PLUGIN_HANDLED
    
    
new szWeapID read_data(2)
    
    if ( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        
set_pev(idpev_viewmodel2V_MODEL)
        
set_pev(idpev_weaponmodel2P_MODEL)
    }
    return 
PLUGIN_HANDLED
}

public 
checkWeapon(id)
{
    new 
plrClipplrAmmoplrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    
    if (
plrWeapId == CURENT_WEAPON && G_HasWp[id])
    {
        
checkModel(id)

        
// Speed
        
new Ent get_weapon_ent(id,plrWeapId)
        new 
Float:N_Speed
        
if(Ent
        {
            
N_Speed get_pcvar_float(cvar_speed)
            new 
Float:Delay get_pdata_floatEnt464) * N_Speed    
            
if (Delay 0.0) {
                
set_pdata_floatEnt46Delay4)
            }
        }
    }
    else 
    {
        return 
PLUGIN_CONTINUE
    
}
    

    
    return 
PLUGIN_HANDLED
}
// End Check Weapon


// Control Damage
public fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CURENT_WEAPON && G_HasWp[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }
}
// End Control Damage



// Zoom Wepaon
public fw_CmdStartiduc_handleseed )
{
    if( !
is_user_aliveid ) ) 
        return 
PLUGIN_HANDLED
    
    
    
new szClipszAmmo
    
new szWeapID get_user_weaponidszClipszAmmo )
    
    if( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        
// Zoom Weapon
        
if (get_pcvar_num(cvar_zoom))
        {
            if( ( 
get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) )
            {
                if(!
g_hasZoom[id] == true)
                {
                    
g_hasZoom[id] = true
                    cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM)
                    
client_cmd(id,"spk weapons/zoom")
                }
                else if (
g_hasZoom[id])
                {
                    
g_hasZoomid ] = false
                    cs_set_user_zoom
idCS_RESET_ZOOM)
                }
            }
        }
        
// UClip
        
if (get_pcvar_num(cvar_uclip))
        {
            new 
ent get_weapon_ent(id,CURENT_WEAPON)
            
cs_set_weapon_ammo(entget_pcvar_num(cvar_clip))
        }
        
        
user_clip[id] = szClip
        user_ammo
[id] = szAmmo

    
}
    
    if ( (
g_hasZoomid ] && (pev(idpev_button) & IN_RELOAD)) || (g_hasZoom[id] && szWeapID != CURENT_WEAPON) )
    {
        
g_hasZoom[id] = false
        cs_set_user_zoom
idCS_RESET_ZOOM)
    }

    
    return 
PLUGIN_HANDLED
}
// End Zoom Wepaon


// Recoil of Weapon
public fw_primary_attack(ent)
{
    new 
id pev(ent,pev_owner)
    
pev(id,pev_punchangle,cl_pushangle[id])
    
    return 
HAM_IGNORED
}
public 
fw_primary_attack_post(ent)
{
    new 
id pev(ent,pev_owner)
    new 
szClipszAmmo
    
new szWeapID get_user_weaponidszClipszAmmo )
    
    if( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        new 
Float:push[3]
        
pev(id,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[id],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil),push)
        
xs_vec_add(push,cl_pushangle[id],push)
        
set_pev(id,pev_punchangle,push)
    }
    
    return 
HAM_IGNORED
}
// End Recoil of Weapon


// Drop Weapon
public cmd_drop(id)
{
    new 
plrClipplrAmmo
    
new plrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if(
plrWeapId == CURENT_WEAPON && G_HasWp[id] && is_user_alive(id)) {
        
create_w_class(idplrClipplrAmmo1)        
        return 
PLUGIN_HANDLED
    

    return 
PLUGIN_CONTINUE
}

public 
create_w_class(idclipammotype)
{
    new 
Float:Aim[3],Float:origin[3]
    
VelocityByAim(id64Aim)
    
entity_get_vector(id,EV_VEC_origin,origin)
    
    if (
type == 1) {
        
origin[0] += 2*Aim[0]
        
origin[1] += 2*Aim[1]
    }

    new 
zp_cso_cre_class create_entity("info_target")
    
entity_set_string(zp_cso_cre_class,EV_SZ_classname,name_class_weapon)
    
entity_set_model(zp_cso_cre_class,W_MODEL)    
        
    
entity_set_size(zp_cso_cre_class,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
    
entity_set_int(zp_cso_cre_class,EV_INT_solid,1)
        
    
entity_set_int(zp_cso_cre_class,EV_INT_movetype,6)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser1clip)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser2ammo)
    
entity_set_vector(zp_cso_cre_class,EV_VEC_origin,origin)
    
G_HasWp[id] = false
    remowegun
(id)
}
// End Drop Weapon


// Remove Class Wepaons in new round
public remove_class_wpn()
{
    new 
nextitem  find_ent_by_class(-1,name_class_weapon)
    while(
nextitem) {
        
remove_entity(nextitem)
        
nextitem find_ent_by_class(-1,name_class_weapon)
    }
    return 
PLUGIN_CONTINUE
}
// End Remove Class Wepaons in new round


// Weapon Pickup
public pfn_touch(ptrptd) {
    if(
is_valid_ent(ptr)) {
        
        new 
classname[32]
        
entity_get_string(ptr,EV_SZ_classname,classname,31)
        if(
equal(classnamename_class_weapon)) {
            if(
is_valid_ent(ptd)) {
                new 
id ptd
                
if(id && id 34) {
                    if(!
G_HasWp[id] && is_user_alive(id) && !zp_get_user_zombie(id)) {
                        
give_weapon(id,entity_get_int(ptrEV_INT_iuser1), entity_get_int(ptrEV_INT_iuser2))
                        
remove_entity(ptr)
                    }
                }
            }
        }
    }
}
// End Weapon Pickup


// remove gun and save all guns
public remowegun(id) { 
    new 
wpnList[32
    new 
number
    get_user_weapons
(id,wpnList,number
    for (new 
0;number ;i++) { 
        if (
wpnList[i] == CURENT_WEAPON) {
            
fm_strip_user_gun(idwpnList[i])
        }
    }


//give wpn
public give_weapon(idclipammo){
    
G_HasWp[id] = true
    give_item
(id,szWeapon)
    
cs_set_user_bpammo(idCURENT_WEAPONammo)
    new 
ent get_weapon_ent(id,CURENT_WEAPON)
    
cs_set_weapon_ammo(entclip)
    
}


// Give Ammo Clip
public Item_PostFrame(iEnt)
{
    static 
id id get_pdata_cbase(iEntm_pPlayer4)
    new 
plrClipplrAmmoplrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if (
plrWeapId == CURENT_WEAPON && G_HasWp[id])
    {

    static 
iId iId get_pdata_int(iEntm_iId4)
    static 
iMaxClip iMaxClip get_pcvar_num(cvar_clip)
    static 
fInReload fInReload get_pdata_int(iEntm_fInReload4)
    static 
Float:flNextAttack flNextAttack get_pdata_float(idm_flNextAttack5)

    static 
iAmmoType iAmmoType m_rgAmmo_player_Slot0 get_pdata_int(iEntm_iPrimaryAmmoType4)
    static 
iBpAmmo iBpAmmo get_pdata_int(idiAmmoType5)
    static 
iClip iClip get_pdata_int(iEntm_iClip4)


    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(iMaxClip iClipiBpAmmo)
        
set_pdata_int(iEntm_iClipiClip j4)
        
set_pdata_int(idiAmmoTypeiBpAmmo-j5)        
        
set_pdata_int(iEntm_fInReload04)
        
fInReload 0
    
}
    
    static 
iButton iButton pev(idpev_button)
    if(    (
iButton IN_ATTACK2 && get_pdata_float(iEntm_flNextSecondaryAttack4) <= 0.0)
    ||    (
iButton IN_ATTACK && get_pdata_float(iEntm_flNextPrimaryAttack4) <= 0.0)    )
    {
        return
    }
    
    if( 
iButton IN_RELOAD && !fInReload )
    {
        if( 
iClip >= iMaxClip )
        {
            
set_pev(idpev_buttoniButton & ~IN_RELOAD)
            if( 
SILENT_BS & (1<<iId) && !get_pdata_int(iEntm_fSilent4) )
            {
                
SendWeaponAnimidiId == CSW_USP )
            }
            else
            {
                
SendWeaponAnim(id0)
            }
        }
        else if( 
iClip == g_iDftMaxClip[iId] )
        {
            if( 
iBpAmmo )
            {
                
set_pdata_float(idm_flNextAttackg_fDelay[iId], 5)

                if( 
SILENT_BS & (1<<iId) && get_pdata_int(iEntm_fSilent4) )
                {
                    
SendWeaponAnimidiId == CSW_USP )
                }
                else
                {
                    
SendWeaponAnim(idg_iReloadAnims[iId])
                }
                
set_pdata_int(iEntm_fInReload14)

                
set_pdata_float(iEntm_flTimeWeaponIdleg_fDelay[iId] + 0.54)
            }
        }
    }
    
    }
}
SendWeaponAnim(idiAnim)
{
    
set_pev(idpev_weaponanimiAnim)

    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id)
    
write_byte(iAnim)
    
write_byte(pev(id,pev_body))
    
message_end()
}
// End Give Ammo Clip


// Stock
stock drop_prim(id
{
    new 
weapons[32], num
    get_user_weapons
(idweaponsnum)
    for (new 
0numi++) {
        if (
Wep_drop & (1<<weapons[i])) 
        {
            static 
wname[32]
            
get_weaponname(weapons[i], wnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
            
G_HasWp[id] = false
        
}
    }
}
//get weapon id
stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
    
// who knows what wpnName will be
    
static newName[24];

    
// need to find the name
    
if(wpnidget_weaponname(wpnid,newName,23);

    
// go with what we were told
    
else formatex(newName,23,"%s",wpnName);

    
// prefix it if we need to
    
if(!equal(newName,"weapon_",7))
        
format(newName,23,"weapon_%s",newName);

    return 
fm_find_ent_by_owner(get_maxplayers(),newName,id);

Please Compile Locally. (Update for MP7A1 will be made shortly.)

REX CV-47:
PHP Code:
/*================================================================================
[CSO WPN Mod]
Mod: [ZP] Extra Item
Team: Humans

Cvars:
 zp_cso_<wpn>_dmg <3> = weapon Damage Multiplier
 zp_cso_<wpn>_uclip <1|0> = Weapon have unlimited clip?
 zp_cso_<wpn>_speed <1> = weapon firing speed
 zp_cso_<wpn>_zoom <1|0> = weapon allow zoom
 zp_cso_<wpn>_clip <50> = weapon clip
 zp_cso_<wpn>_ammo <200> = weapon ammo
 zp_cso_<wpn>_recoil <0> = weapon recoil
 zp_cso_<wpn>_round <1|0> - weapon only for one round?
 zp_cso_<wpn>_gravity <235> - weapon gravity
================================================================================*/


#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
#include <engine>

// Info Plugin
#define VERSION "1.0"
#define AUTHOR "jc980"


// Info Weapon
#define CURENT_WEAPON CSW_AK47
new models_weapon[64] = "cv47"
new name_weapon[64] = "CSO REX CV-47"


new plugin_name[64] = "[ZP] Extra Item: %s"
new name_class_weapon[64] = "zp_cso_%s"
new V_MODEL[64] = "models/cso/v_%s.mdl"
new P_MODEL[64] = "models/cso/p_%s.mdl"
new W_MODEL[64] = "models/cso/w_%s.mdl"

new cvar_dmg_name[64] = "zp_cso_%s_dmg"
new cvar_uclip_name[64] = "zp_cso_%s_uclip"
new cvar_speed_name[64] = "zp_cso_%s_speed"
new cvar_zoom_name[64] = "zp_cso_%s_zoom"
new cvar_clip_name[64] = "zp_cso_%s_clip"
new cvar_ammo_name[64] = "zp_cso_%s_ammo"
new cvar_recoil_name[64] = "zp_cso_%s_recoil"
new cvar_round_name[64] = "zp_cso_%s_round"
new cvar_gravity_name[64] = "zp_cso_%s_gravity"

#define is_valid_player(%1) (1 <= %1 <= 32)
new user_clip[33], user_ammo[33]
new 
cvar_dmgmultipliercvar_uclipcvar_speedcvar_zoomcvar_clipcvar_ammocvar_recoilcvar_roundcvar_gravity
new g_itemid
new bool:G_HasWp[33]
new 
g_hasZoom33 ]
const 
Wep_drop = ((1<<CURENT_WEAPON))
new 
szWeapon[17]
new 
Float:cl_pushangle[33][3]


////////////////////////////////// Ammo //////////////////////////////////

const SILENT_BS    = ((1<<CSW_USP)|(1<<CURENT_WEAPON))

// weapons offsets
const m_pPlayer            41
const m_iId                43
const m_fKnown                44
const m_flNextPrimaryAttack    46
const m_flNextSecondaryAttack    47
const m_flTimeWeaponIdle        48
const m_iPrimaryAmmoType        49
const m_iClip                51
const m_fInReload            54
const m_fInSpecialReload        55
const m_fSilent            74
const m_flNextAttack        83
const m_rgAmmo_player_Slot0    376

stock 
const g_iDftMaxClip[CSW_P90+1] = {
    -
1,  13, -110,  1,  7,    13030,  1,  30
        
2025303525,   12201030100
        
303020,  2,    73030, -1,  50}
        
stock const g_iReloadAnims[CSW_P90+1] = {
    -
1,  5, -13, -1,  6,   -111, -114
        
4,  23,  1,  1,   1374,  1,  3
        
6111,  3, -1,    411, -1,  1}
        
stock const Float:g_fDelay[CSW_P90+1] = {
    
0.002.700.002.000.000.55,   0.003.153.300.004.50
         
2.703.503.352.453.30,   2.702.202.502.634.70
         
0.553.052.123.500.00,   2.203.002.450.003.40
}


public 
plugin_init()
{
    
// Create value
    
format(V_MODEL63V_MODELmodels_weapon)
    
format(P_MODEL63P_MODELmodels_weapon)
    
format(W_MODEL63W_MODELmodels_weapon)
    
    
format(cvar_dmg_name63cvar_dmg_namemodels_weapon)
    
format(cvar_uclip_name63cvar_uclip_namemodels_weapon)
    
format(cvar_speed_name63cvar_speed_namemodels_weapon)
    
format(cvar_zoom_name63cvar_zoom_namemodels_weapon)
    
format(cvar_clip_name63cvar_clip_namemodels_weapon)
    
format(cvar_ammo_name63cvar_ammo_namemodels_weapon)
    
format(cvar_recoil_name63cvar_recoil_namemodels_weapon)
    
format(cvar_round_name63cvar_round_namemodels_weapon)
    
format(cvar_gravity_name63cvar_gravity_namemodels_weapon)
    
    
format(plugin_name63plugin_namename_weapon)
    
format(name_class_weapon63name_class_weaponmodels_weapon)

    
// Reg Cvar
    
cvar_dmgmultiplier register_cvar(cvar_dmg_name"3")
    
cvar_uclip register_cvar(cvar_uclip_name"0")
    
cvar_speed register_cvar(cvar_speed_name,"1")
    
cvar_zoom register_cvar(cvar_zoom_name,"1")
    
cvar_clip register_cvar(cvar_clip_name,"60")
    
cvar_ammo register_cvar(cvar_ammo_name,"180")
    
cvar_recoil register_cvar(cvar_recoil_name,"0.4")
    
cvar_round register_cvar(cvar_round_name,"0")
    
cvar_gravity register_cvar(cvar_gravity_name,"235")
    
    
register_plugin(plugin_nameVERSIONAUTHOR)
    
g_itemid zp_register_extra_item(name_weapon15ZP_TEAM_HUMAN)

    
//register_event("WeapPickup","checkModel","b","1=19")
    
register_forward(FM_PlayerPreThink"check_player_speed")
    
register_event("DeathMsg""Death""a")
    
register_event("CurWeapon","checkWeapon","be","1=1")
    
register_event("HLTV""event_start_freezetime""a""1=0""2=0")

    
// Ham
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
//RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
    
get_weaponname(CURENT_WEAPONszWeaponcharsmax(szWeapon))
    
RegisterHam(Ham_Item_PostFrameszWeapon"Item_PostFrame")
    
register_forwardFM_CmdStart"fw_CmdStart" )
    
    
// Recoil
    
RegisterHam(Ham_Weapon_PrimaryAttackszWeapon"fw_primary_attack")
    
RegisterHam(Ham_Weapon_PrimaryAttackszWeapon"fw_primary_attack_post",1

    
register_clcmd("drop","cmd_drop"0)
}

// Other Public
public plugin_precache()
{
    
format(V_MODEL63V_MODELmodels_weapon)
    
format(P_MODEL63P_MODELmodels_weapon)
    
format(W_MODEL63W_MODELmodels_weapon)
    
    
precache_model(V_MODEL)
    
precache_model(P_MODEL)
    
precache_model(W_MODEL)
}

public 
client_connect(id)
{
    
G_HasWp[id] = false
}

public 
client_disconnect(id)
{
    
G_HasWp[id] = false
}

public 
check_player_speed(id)
{
    if (!
is_user_alive(id))
        return;
    
    if(
G_HasWp[id])
    {
        
set_pev(idpev_maxspeedget_pcvar_num(cvar_gravity))
    }
}

public 
Death()
{
    new 
id read_data(2
    if(
G_HasWp[id])
    {
        
create_w_class(iduser_clip[id], user_ammo[id], 0)
        
G_HasWp[id] = false
        
return PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
fwHamPlayerSpawnPost(id)
{
    if (!
get_pcvar_num(cvar_round)) G_HasWp[id] = false
}

public 
zp_user_infected_post(id)
{
    if (
zp_get_user_zombie(id))
    {
        
G_HasWp[id] = false
    
}
}

public 
zp_extra_item_selected(playeritemid)
{
    if ( 
itemid == g_itemid )
    {
        
drop_prim(player)
        
give_weapon(playerget_pcvar_num(cvar_clip), get_pcvar_num(cvar_ammo))
        
client_print(playerprint_chat"[ZP] You Bought %s"name_weapon)
    }
}

public 
event_start_freezetime()
{
    
remove_class_wpn()
}
// End Other Public


// Check Weapon
public checkModel(id)
{
    if ( 
zp_get_user_zombie(id) )
        return 
PLUGIN_HANDLED
    
    
new szWeapID read_data(2)
    
    if ( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        
set_pev(idpev_viewmodel2V_MODEL)
        
set_pev(idpev_weaponmodel2P_MODEL)
    }
    return 
PLUGIN_HANDLED
}

public 
checkWeapon(id)
{
    new 
plrClipplrAmmoplrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    
    if (
plrWeapId == CURENT_WEAPON && G_HasWp[id])
    {
        
checkModel(id)

        
// Speed
        
new Ent get_weapon_ent(id,plrWeapId)
        new 
Float:N_Speed
        
if(Ent
        {
            
N_Speed get_pcvar_float(cvar_speed)
            new 
Float:Delay get_pdata_floatEnt464) * N_Speed    
            
if (Delay 0.0) {
                
set_pdata_floatEnt46Delay4)
            }
        }
    }
    else 
    {
        return 
PLUGIN_CONTINUE
    
}
    

    
    return 
PLUGIN_HANDLED
}
// End Check Weapon


// Control Damage
public fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CURENT_WEAPON && G_HasWp[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }
}
// End Control Damage



// Zoom Wepaon
public fw_CmdStartiduc_handleseed )
{
    if( !
is_user_aliveid ) ) 
        return 
PLUGIN_HANDLED
    
    
    
new szClipszAmmo
    
new szWeapID get_user_weaponidszClipszAmmo )
    
    if( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        
// Zoom Weapon
        
if (get_pcvar_num(cvar_zoom))
        {
            if( ( 
get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) )
            {
                if(!
g_hasZoom[id] == true)
                {
                    
g_hasZoom[id] = true
                    cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM)
                    
client_cmd(id,"spk weapons/zoom")
                }
                else if (
g_hasZoom[id])
                {
                    
g_hasZoomid ] = false
                    cs_set_user_zoom
idCS_RESET_ZOOM)
                }
            }
        }
        
// UClip
        
if (get_pcvar_num(cvar_uclip))
        {
            new 
ent get_weapon_ent(id,CURENT_WEAPON)
            
cs_set_weapon_ammo(entget_pcvar_num(cvar_clip))
        }
        
        
user_clip[id] = szClip
        user_ammo
[id] = szAmmo

    
}
    
    if ( (
g_hasZoomid ] && (pev(idpev_button) & IN_RELOAD)) || (g_hasZoom[id] && szWeapID != CURENT_WEAPON) )
    {
        
g_hasZoom[id] = false
        cs_set_user_zoom
idCS_RESET_ZOOM)
    }

    
    return 
PLUGIN_HANDLED
}
// End Zoom Wepaon


// Recoil of Weapon
public fw_primary_attack(ent)
{
    new 
id pev(ent,pev_owner)
    
pev(id,pev_punchangle,cl_pushangle[id])
    
    return 
HAM_IGNORED
}
public 
fw_primary_attack_post(ent)
{
    new 
id pev(ent,pev_owner)
    new 
szClipszAmmo
    
new szWeapID get_user_weaponidszClipszAmmo )
    
    if( 
szWeapID == CURENT_WEAPON && G_HasWp[id] == true)
    {
        new 
Float:push[3]
        
pev(id,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[id],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil),push)
        
xs_vec_add(push,cl_pushangle[id],push)
        
set_pev(id,pev_punchangle,push)
    }
    
    return 
HAM_IGNORED
}
// End Recoil of Weapon


// Drop Weapon
public cmd_drop(id)
{
    new 
plrClipplrAmmo
    
new plrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if(
plrWeapId == CURENT_WEAPON && G_HasWp[id] && is_user_alive(id)) {
        
create_w_class(idplrClipplrAmmo1)        
        return 
PLUGIN_HANDLED
    

    return 
PLUGIN_CONTINUE
}

public 
create_w_class(idclipammotype)
{
    new 
Float:Aim[3],Float:origin[3]
    
VelocityByAim(id64Aim)
    
entity_get_vector(id,EV_VEC_origin,origin)
    
    if (
type == 1) {
        
origin[0] += 2*Aim[0]
        
origin[1] += 2*Aim[1]
    }

    new 
zp_cso_cre_class create_entity("info_target")
    
entity_set_string(zp_cso_cre_class,EV_SZ_classname,name_class_weapon)
    
entity_set_model(zp_cso_cre_class,W_MODEL)    
        
    
entity_set_size(zp_cso_cre_class,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
    
entity_set_int(zp_cso_cre_class,EV_INT_solid,1)
        
    
entity_set_int(zp_cso_cre_class,EV_INT_movetype,6)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser1clip)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser2ammo)
    
entity_set_vector(zp_cso_cre_class,EV_VEC_origin,origin)
    
G_HasWp[id] = false
    remowegun
(id)
}
// End Drop Weapon


// Remove Class Wepaons in new round
public remove_class_wpn()
{
    new 
nextitem  find_ent_by_class(-1,name_class_weapon)
    while(
nextitem) {
        
remove_entity(nextitem)
        
nextitem find_ent_by_class(-1,name_class_weapon)
    }
    return 
PLUGIN_CONTINUE
}
// End Remove Class Wepaons in new round


// Weapon Pickup
public pfn_touch(ptrptd) {
    if(
is_valid_ent(ptr)) {
        
        new 
classname[32]
        
entity_get_string(ptr,EV_SZ_classname,classname,31)
        if(
equal(classnamename_class_weapon)) {
            if(
is_valid_ent(ptd)) {
                new 
id ptd
                
if(id && id 34) {
                    if(!
G_HasWp[id] && is_user_alive(id) && !zp_get_user_zombie(id)) {
                        
give_weapon(id,entity_get_int(ptrEV_INT_iuser1), entity_get_int(ptrEV_INT_iuser2))
                        
remove_entity(ptr)
                    }
                }
            }
        }
    }
}
// End Weapon Pickup


// remove gun and save all guns
public remowegun(id) { 
    new 
wpnList[32
    new 
number
    get_user_weapons
(id,wpnList,number
    for (new 
0;number ;i++) { 
        if (
wpnList[i] == CURENT_WEAPON) {
            
fm_strip_user_gun(idwpnList[i])
        }
    }


//give wpn
public give_weapon(idclipammo){
    
G_HasWp[id] = true
    give_item
(id,szWeapon)
    
cs_set_user_bpammo(idCURENT_WEAPONammo)
    new 
ent get_weapon_ent(id,CURENT_WEAPON)
    
cs_set_weapon_ammo(entclip)
    
}


// Give Ammo Clip
public Item_PostFrame(iEnt)
{
    static 
id id get_pdata_cbase(iEntm_pPlayer4)
    new 
plrClipplrAmmoplrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if (
plrWeapId == CURENT_WEAPON && G_HasWp[id])
    {

    static 
iId iId get_pdata_int(iEntm_iId4)
    static 
iMaxClip iMaxClip get_pcvar_num(cvar_clip)
    static 
fInReload fInReload get_pdata_int(iEntm_fInReload4)
    static 
Float:flNextAttack flNextAttack get_pdata_float(idm_flNextAttack5)

    static 
iAmmoType iAmmoType m_rgAmmo_player_Slot0 get_pdata_int(iEntm_iPrimaryAmmoType4)
    static 
iBpAmmo iBpAmmo get_pdata_int(idiAmmoType5)
    static 
iClip iClip get_pdata_int(iEntm_iClip4)


    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(iMaxClip iClipiBpAmmo)
        
set_pdata_int(iEntm_iClipiClip j4)
        
set_pdata_int(idiAmmoTypeiBpAmmo-j5)        
        
set_pdata_int(iEntm_fInReload04)
        
fInReload 0
    
}
    
    static 
iButton iButton pev(idpev_button)
    if(    (
iButton IN_ATTACK2 && get_pdata_float(iEntm_flNextSecondaryAttack4) <= 0.0)
    ||    (
iButton IN_ATTACK && get_pdata_float(iEntm_flNextPrimaryAttack4) <= 0.0)    )
    {
        return
    }
    
    if( 
iButton IN_RELOAD && !fInReload )
    {
        if( 
iClip >= iMaxClip )
        {
            
set_pev(idpev_buttoniButton & ~IN_RELOAD)
            if( 
SILENT_BS & (1<<iId) && !get_pdata_int(iEntm_fSilent4) )
            {
                
SendWeaponAnimidiId == CSW_USP )
            }
            else
            {
                
SendWeaponAnim(id0)
            }
        }
        else if( 
iClip == g_iDftMaxClip[iId] )
        {
            if( 
iBpAmmo )
            {
                
set_pdata_float(idm_flNextAttackg_fDelay[iId], 5)

                if( 
SILENT_BS & (1<<iId) && get_pdata_int(iEntm_fSilent4) )
                {
                    
SendWeaponAnimidiId == CSW_USP )
                }
                else
                {
                    
SendWeaponAnim(idg_iReloadAnims[iId])
                }
                
set_pdata_int(iEntm_fInReload14)

                
set_pdata_float(iEntm_flTimeWeaponIdleg_fDelay[iId] + 0.54)
            }
        }
    }
    
    }
}
SendWeaponAnim(idiAnim)
{
    
set_pev(idpev_weaponanimiAnim)

    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id)
    
write_byte(iAnim)
    
write_byte(pev(id,pev_body))
    
message_end()
}
// End Give Ammo Clip


// Stock
stock drop_prim(id
{
    new 
weapons[32], num
    get_user_weapons
(idweaponsnum)
    for (new 
0numi++) {
        if (
Wep_drop & (1<<weapons[i])) 
        {
            static 
wname[32]
            
get_weaponname(weapons[i], wnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
            
G_HasWp[id] = false
        
}
    }
}
//get weapon id
stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
    
// who knows what wpnName will be
    
static newName[24];

    
// need to find the name
    
if(wpnidget_weaponname(wpnid,newName,23);

    
// go with what we were told
    
else formatex(newName,23,"%s",wpnName);

    
// prefix it if we need to
    
if(!equal(newName,"weapon_",7))
        
format(newName,23,"weapon_%s",newName);

    return 
fm_find_ent_by_owner(get_maxplayers(),newName,id);

Please Compile Locally. (Update for REX CV-47 will be made shortly.)

REX SVDEX:
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
#include <engine>
#include <zombieplague> 

new PLUGIN_NAME[]     = "[ZP] Extra Item: REX SVDEX" 
new PLUGIN_AUTHOR[]     = "Clear_Vision,jc980" 
new PLUGIN_VERSION[]     = "1.0" 
new name_class_weapon[64] = "zp_cso_svdex"

new const WEAPON_V_MDL[] = "models/cso/v_svdex.mdl"
new const 
WEAPON_P_MDL[] = "models/cso/p_svdex.mdl"
new const 
WEAPON_W_MDL[] = "models/cso/w_svdex.mdl"
new const 
g_w_blast[] = "models/cso/s_grenade.mdl"
#define WEAPON_CSW CSW_AK47 
new const weapon_n[] = "weapon_ak47"
const 
Wep_drop = ((1<<WEAPON_CSW))

const 
m_pPlayer    41
const 
m_flNextSecondaryAttack 47
const 
m_flNextPrimaryAttack    46

#define IsPlayer(%1)  ( 1 <= %1 <= g_maxplayers ) 
#define DMG_HEGRENADE (1<<24) 
#define fm_get_user_team(%1) get_pdata_int(%1, OFFSET_TEAM) 
#define OFFSET_TEAM 114 

new damage_weaponweapon_recoilweapon_explo_distanceweapon_m203_damage
weapon_m203_ammo
new 
g_maxplayers;     
new 
bool:g_Weapon[33];  
new 
Float:cl_pushangle[33][3]; 
new 
Floatg_LastThrow[33]; 
new 
g_spriteBlast
new 
g_iSVDEXg_launchercvar_gravity
new g_M203ammo[33]; 

public 
plugin_init()  

    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR
    
g_launcher zp_register_extra_item("[ZP] Extra Item: REX SVDEX"10ZP_TEAM_HUMAN
    
    
damage_weapon register_cvar("zp_cso_damage_svdex","5.0"); // damage multiplier 
    
weapon_recoil register_cvar"zp_cso_svdex_recoil""0.8" ); // weapon recoil 
    
    
weapon_explo_distance register_cvar("zp_cso_distance_m203","300"); // Distance of exploding M203 
    
weapon_m203_damage register_cvar("zp_cso_damage_m203","1000"); // damage of M203 
    
weapon_m203_ammo register_cvar("zp_cso_ammo_m203","2"); // M203 ammo 
    
cvar_gravity register_cvar("zp_cso_svdex_gravity","235")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0"
    
register_event("CurWeapon""Event_CurWeapon""be""1=1"); 
    
register_event("HLTV""event_start_freezetime""a""1=0""2=0")
    
register_clcmd("drop","cmd_drop"0)
    
    
register_forward(FM_PlayerPreThink"check_player_speed")
    
RegisterHamHam_Weapon_PrimaryAttackweapon_n"Fwd_AttackSpeedPost" ); 
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_n"Fwd_AttackSpeedPre"); 
    
    
RegisterHamHam_Item_Deploy weapon_n"Fwd_AttackSpeedPost"1); 
    
    
RegisterHam(Ham_TakeDamage"player""Ham_DamageWeapon"); 
    
    
RegisterHam(Ham_Spawn"player""fwd_PlayerSpawn"1
    
    
register_forwardFM_CmdStart"Fwd_CmdStart" ); 
    
register_forward(FM_Touch"Entity_Touched"); 
    
    
g_maxplayers get_maxplayers(); 
    
    
g_iSVDEX create_entity("grenade"

public 
zp_extra_item_selected(playeritemid)  

    if (
itemid == g_launcher
    {
        
drop_prim(player)
        
give_item(player,"weapon_ak47")
        
g_Weapon[player] = true
        client_print
(playerprint_chat"[ZP] You Bought REX SVDEX")
    }

public 
client_connect(id)  

    
g_Weapon[id] = false

public 
event_round_start() 

    
arrayset(g_Weapon033 


public 
event_start_freezetime()
{
    
remove_class_wpn()
}

public 
check_player_speed(id)
{
    if (!
is_user_alive(id))
        return;
    
    if(
g_Weapon[id])
    {
        
set_pev(idpev_maxspeedget_pcvar_num(cvar_gravity))
    }
}

public 
remove_class_wpn()
{
    new 
nextitem  find_ent_by_class(-1,name_class_weapon)
    while(
nextitem) {
        
remove_entity(nextitem)
        
nextitem find_ent_by_class(-1,name_class_weapon)
    }
    return 
PLUGIN_CONTINUE
}

public 
plugin_precache()   

    
engfunc(EngFunc_PrecacheModelWEAPON_V_MDL); 
    
engfunc(EngFunc_PrecacheModelWEAPON_P_MDL); 
    
engfunc(EngFunc_PrecacheModelWEAPON_W_MDL); 
    
engfunc(EngFunc_PrecacheModelg_w_blast); 
    
g_spriteBlast engfunc(EngFunc_PrecacheModel"sprites/dexplo.spr"); 


public 
Fwd_AttackSpeedPre(Ent

    new 
id pev(Ent,pev_owner); 
    
entity_get_vectoridEV_VEC_punchanglecl_pushangle[id]); 

public 
Fwd_AttackSpeedPost( const Entity 

    static 
id id get_pdata_cbase(Entitym_pPlayer4
    if (
g_Weapon[id] && IsPlayer(id) ) 
    { 
        
set_pdata_floatEntity m_flNextSecondaryAttack 9999.0); 
        
        new 
Float:push[3]; 
        
entity_get_vectoridEV_VEC_punchanglecl_pushangle[id]); 
        
xs_vec_subpushcl_pushangle[id], push); 
        
xs_vec_mul_scalarpushget_pcvar_floatweapon_recoil ), push); 
        
xs_vec_addpushcl_pushangle[id], push); 
        
entity_set_vectoridEV_VEC_punchanglepush); 
    } 


public 
zp_user_infected_post(id)
{
    if (
zp_get_user_zombie(id))
    {
        
g_Weapon[id] = false
    
}
}

public 
Ham_DamageWeapon(idinflictorattackerFloat:damagedamagebits)  

    if ( !
IsPlayer(attacker) || !g_Weapon[attacker] || (damagebits DMG_HEGRENADE) ) 
        return 
HAM_IGNORED;  
    
    new 
weapon2 get_user_weapon(attacker__); 
    if( 
weapon2 == WEAPON_CSW
    { 
        
SetHamParamFloat(4damage get_pcvar_float(damage_weapon)); 
        return 
HAM_HANDLED
    } 
    
    return 
HAM_IGNORED

public 
fwd_PlayerSpawn(id

    if ( !
is_user_alive(id)) 
        return; 
    
    
g_M203ammo[id] = get_pcvar_numweapon_m203_ammo ); 


public 
Event_CurWeapon(id)  

    if ( !
g_Weapon[id] || !is_user_alive(id) ) 
        return 
PLUGIN_CONTINUE
    
    new 
Gun read_data(2)  
    
    if( 
Gun == WEAPON_CSW
    { 
        
set_pev(idpev_viewmodel2WEAPON_V_MDL)
        
set_pev(idpev_weaponmodel2WEAPON_P_MDL)
    } 
    
    return 
PLUGIN_CONTINUE

public 
Fwd_CmdStartiduc_handleseed 

    if( !
is_user_aliveid ) || !g_Weapon[id] || zp_get_user_zombie(id) )  
        return 
FMRES_IGNORED
    
    static 
Float:Time
    
Time get_gametime(); 
    
    
    if( ( 
get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) && get_user_weapon(id) == WEAPON_CSW 
    { 
        if (
Time 2.0 g_LastThrow[id]) 
        { 
            
Throw_FireBlast(id);             
            
            
g_LastThrow[id] = Time;  
        } 
    } 
    
    return 
FMRES_IGNORED

public 
Entity_Touched(entvictim

    if ( !
pev_valid(ent) ) 
        return; 
    
    new 
classname[32
    
peventpev_classnameclassname31
    
    new 
attacker entity_get_edict(entEV_ENT_owner); 
    
    if ( 
equal(classname,"M203") ) 
    { 
        new 
FloatTorigin[3], FloatDistanceFloatDamage
        
        new 
Float:fOrigin[3], iOrigin[3]; 
        
entity_get_vectorentEV_VEC_originfOrigin)     
        
iOrigin[0] = floatround(fOrigin[0]) 
        
iOrigin[1] = floatround(fOrigin[1]) 
        
iOrigin[2] = floatround(fOrigin[2])     
        
        
message_begin(MSG_BROADCAST,SVC_TEMPENTITYiOrigin); 
        
write_byte(TE_EXPLOSION); 
        
engfuncEngFunc_WriteCoord,fOrigin[0]); 
        
engfuncEngFunc_WriteCoord,fOrigin[1]); 
        
engfuncEngFunc_WriteCoord,fOrigin[2]); 
        
write_short(g_spriteBlast); 
        
write_byte(32); // scale 
        
write_byte(20); // framerate 
        
write_byte(0); // flags 
        
message_end(); 
        
        for(new 
enemy 1enemy <= g_maxplayersenemy++)  
        { 
            if ( 
is_user_alive(enemy) && zp_get_user_zombie(enemy) &&  fm_get_user_team(enemy) != fm_get_user_team(attacker) ) 
            { 
                
entity_get_vectorenemyEV_VEC_originTorigin
                
                
Distance get_distance_f(fOriginTorigin); 
                
                if ( 
Distance <= get_pcvar_floatweapon_explo_distance ) && get_user_team(attacker) != get_user_team(enemy) ) 
                { 
                    
Damage = (((Distance get_pcvar_floatweapon_explo_distance )) * get_pcvar_floatweapon_m203_damage )) - get_pcvar_floatweapon_m203_damage )) * -1.0
                    
                    if (
Damage 0.0
                    { 
                        
ExecuteHam(Ham_TakeDamageenemyg_iSVDEXattackerDamageDMG_HEGRENADE); 
                    } 
                } 
            } 
        } 
        
        
set_peventpev_flagsFL_KILLME); 
    } 


public 
Throw_FireBlast(id

    if ( !
is_user_alive(id) || g_M203ammo[id] < 
        return; 
    
    
g_M203ammo[id]--; 
    
    
client_print(idprint_chat"M203 ammo : %d"g_M203ammo[id]) 
    
    new 
FloatfOrigin[3], Float:fAngle[3],FloatfVelocity[3]; 
    
    
entity_get_vectoridEV_VEC_originfOrigin); 
    
entity_get_vectoridEV_VEC_view_ofsfAngle); 
    
    
fOrigin[0] += fAngle[0]; 
    
fOrigin[1] += fAngle[1]; 
    
fOrigin[2] += fAngle[2]; 
    
    
fm_velocity_by_aim(id1.0fVelocityfAngle); 
    
fAngle[0] *= -1.0
    
    new 
sprite_ent create_entity("info_target"); 
    
    
entity_set_stringsprite_entEV_SZ_classname"M203"); 
    
entity_set_modelsprite_entg_w_blast); 
    
    
entity_set_edictsprite_entEV_ENT_ownerid); 
    
    
entity_set_sizesprite_entFloat:{-2.1, -2.1, -2.1}, Float:{2.12.12.1}); 
    
    
entity_set_vectorsprite_entEV_VEC_originfOrigin); 
    
    
fOrigin[0] += fVelocity[0] - 30.0
    
fOrigin[1] += fVelocity[1]; 
    
fOrigin[2] += fVelocity[2]; 
    
    
entity_set_intsprite_entEV_INT_movetypeMOVETYPE_BOUNCE); 
    
entity_set_intsprite_entEV_INT_solidSOLID_BBOX); 
    
    
entity_set_floatsprite_entEV_FL_gravity0.7); 
    
    
fVelocity[0] *= 2000.0
    
fVelocity[1] *= 2000.0
    
fVelocity[2] *= 2000.0
    
    
entity_set_vectorsprite_entEV_VEC_velocityfVelocity); 
    
entity_set_vectorsprite_entEV_VEC_anglesfAngle); 
    


stock fm_velocity_by_aim(iIndexFloat:fDistanceFloat:fVelocity[3], Float:fViewAngle[3]) 

    
//new Float:fViewAngle[3] 
    
pev(iIndexpev_v_anglefViewAngle
    
fVelocity[0] = floatcos(fViewAngle[1], degrees) * fDistance 
    fVelocity
[1] = floatsin(fViewAngle[1], degrees) * fDistance 
    fVelocity
[2] = floatcos(fViewAngle[0]+90.0degrees) * fDistance 
    
return 
}

public 
cmd_drop(id)
{
    new 
plrClipplrAmmo
    
new plrWeapId
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if(
plrWeapId == WEAPON_CSW && g_Weapon[id] && is_user_alive(id)) {
        
create_w_class(idplrClipplrAmmo1)        
        return 
PLUGIN_HANDLED
    

    return 
PLUGIN_CONTINUE
}

public 
create_w_class(idclipammotype)
{
    new 
Float:Aim[3],Float:origin[3]
    
VelocityByAim(id64Aim)
    
entity_get_vector(id,EV_VEC_origin,origin)
    
    if (
type == 1) {
        
origin[0] += 2*Aim[0]
        
origin[1] += 2*Aim[1]
    }

    new 
zp_cso_cre_class create_entity("info_target")
    
entity_set_string(zp_cso_cre_class,EV_SZ_classname,name_class_weapon)
    
entity_set_model(zp_cso_cre_class,WEAPON_W_MDL)    
        
    
entity_set_size(zp_cso_cre_class,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
    
entity_set_int(zp_cso_cre_class,EV_INT_solid,1)
        
    
entity_set_int(zp_cso_cre_class,EV_INT_movetype,6)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser1clip)
    
entity_set_int(zp_cso_cre_classEV_INT_iuser2ammo)
    
entity_set_vector(zp_cso_cre_class,EV_VEC_origin,origin)
    
g_Weapon[id] = false
    removegun
(id)
}

// remove gun and save all guns
public removegun(id) { 
    new 
wpnList[32
    new 
number
    get_user_weapons
(id,wpnList,number
    for (new 
0;number ;i++) { 
        if (
wpnList[i] == WEAPON_CSW) {
            
fm_strip_user_gun(idwpnList[i])
        }
    }


stock drop_prim(id
{
    new 
weapons[32], num
    get_user_weapons
(idweaponsnum)
    for (new 
0numi++) {
        if (
Wep_drop & (1<<weapons[i])) 
        {
            static 
wname[32]
            
get_weaponname(weapons[i], wnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
            
g_Weapon[id] = false
        
}
    }
}

public 
pfn_touch(ptrptd) {
    if(
is_valid_ent(ptr)) {
        
        new 
classname[32]
        
entity_get_string(ptr,EV_SZ_classname,classname,31)
        if(
equal(classnamename_class_weapon)) {
            if(
is_valid_ent(ptd)) {
                new 
id ptd
                
if(id && id 34) {
                    if(!
g_Weapon[id] && is_user_alive(id) && !zp_get_user_zombie(id)) {
                        
give_item(id,"weapon_ak47")
                        
g_Weapon[id] = true
                        remove_entity
(ptr)
                    }
                }
            }
        }
    }
}

public 
zp_round_started(survivorid)
{
    if(
zp_get_user_survivor(id))
    {
        
strip_user_weapons(id)
        
give_item(id,"weapon_knife")
        
give_item(id,"weapon_ak47")
        
g_Weapon[id] = true
    
}

Please Compile Locally. (Update for REX SVDEX will be made shortly.)
__________________

Last edited by jc980; 11-12-2010 at 10:42. Reason: Updated.
jc980 is offline
5c0r-|3i0
Veteran Member
Join Date: Nov 2008
Location: Việt Nam
Old 11-12-2010 , 09:52   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #383

@ JC : A R.I.P -off from NST Wpn ( 1st version ) . I guess....These plugins will eat much of your CPU....
5c0r-|3i0 is offline
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 11-12-2010 , 09:58   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #384

Quote:
Originally Posted by 5c0r-|3i0 View Post
@ JC : A R.I.P -off from NST Wpn ( 1st version ) . I guess....These plugins will eat much of your CPU....
USAGE. i used this a a base adding custom gravity(speed of player holding the weapon). im trying to add model change and scope mode(when in zoom) im trying to do that. i know its a rip off. =_=, still doing some more with change mode(switch V_model).

Edit: i also use this for my ZP

updated post #382 added REX SVDEX.
__________________

Last edited by jc980; 11-12-2010 at 10:43.
jc980 is offline
CS_ZVER
Member
Join Date: Jun 2010
Old 11-12-2010 , 11:29   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #385

When I buy SVDEX, I can't move
CS_ZVER is offline
Send a message via ICQ to CS_ZVER
Rhyme
Member
Join Date: Aug 2010
Location: Russia (Moscow)
Old 11-12-2010 , 16:19   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #386

I too when buy SVDEX,CV-47,MP7A1 i can't move. "fix this bug: zp_cso_rex_gravity 0" jc980 you have a cso weapon which shoots at one point but the sight of shaking. gun shoots exactly even when you're in the water or air. shorter weapon shoots at one point but the sight is moving. this is cool
Rhyme is offline
Send a message via ICQ to Rhyme Send a message via Skype™ to Rhyme
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 11-12-2010 , 23:58   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #387

zp_cso_rex_gravity 0 change it to 250 because its YOURE RUNNING SPEED. GOD CHECK THE CODE. that cvar does is it changes the players speed when HOLDING THE GUN! (it means the weight of the gun youre holding! like in normal CS.)
__________________

Last edited by jc980; 11-13-2010 at 00:01.
jc980 is offline
Excalibur.007
Veteran Member
Join Date: Sep 2009
Location: Singapore
Old 11-13-2010 , 01:01   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #388

Seriously, change your attitude. Your talking to everybody with @#$% coming out from your post and tell them nicely.

I'm not forcing you not to use them. But try to reduce using them ^^.

I know your trying to help. But try to be calm and nice ^^.

On-topic: When 2.7 is coming out ?

Last edited by Excalibur.007; 11-13-2010 at 02:15.
Excalibur.007 is offline
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 11-13-2010 , 02:18   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #389

Quote:
Originally Posted by Excalibur.007 View Post
Seriously, change your attitude. Your talking to everybody with @#$% coming out from your post and tell them nicely.

I'm not forcing you not to use them. But try to reduce using them ^^.

I know your trying to help. But try to be calm and nice ^^.

On-topic: When 2.7 is coming out ?
this weekend i think. i still have time issues.

also, do you know how to do something like this?

example the time is 00:03:00 shown on hud. ((HH:MM:SS) hour:minute:second)
then it counts down to zero.
__________________

Last edited by jc980; 11-13-2010 at 02:22.
jc980 is offline
teobrvt1995
Senior Member
Join Date: Aug 2010
Location: Việt Nam
Old 11-13-2010 , 06:13   Re: [ZP] CSO Transformation Pack by jc980 - New Updates!, Upcoming Updates!, Mod News
Reply With Quote #390

it's not for ZP?
teobrvt1995 is offline
Send a message via Yahoo to teobrvt1995
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:48.


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