Raised This Month: $ Target: $400
 0% 

zp_extra_sniper error


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Kvothe
Junior Member
Join Date: Oct 2018
Old 11-30-2018 , 11:14   zp_extra_sniper error
Reply With Quote #1

L 11/30/2018 - 22:53:58: [AMXX] Displaying debug trace (plugin "zp_extra_sniper.amxx")
L 11/30/2018 - 22:53:58: [AMXX] Run time error 4: index out of bounds
L 11/30/2018 - 22:53:58: [AMXX] [0] zp_extra_sniper.sma::fw_SCOUT_PrimaryAttack (line 563)
L 11/30/2018 - 22:53:58: [AMXX] Displaying debug trace (plugin "zp_extra_sniper.amxx")
L 11/30/2018 - 22:53:58: [AMXX] Run time error 4: index out of bounds
L 11/30/2018 - 22:53:58: [AMXX] [0] zp_extra_sniper.sma::fw_SCOUT_PrimaryAttack_P ost (line 651)

This plugin my local computer no error but my internet server is error.
I can take weapons working normally. Only error log + no sound 4 sniper. anyone help ?

This line 563 = if (!g_has_m24[Player])
PHP Code:
public fw_SCOUT_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon415)
    
    if (!
g_has_m24[Player])
        return;
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)

This line 651 = if(g_has_m24[Player])
PHP Code:
public fw_SCOUT_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon415)
    
    if(
g_has_m24[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_m24),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        if (!
g_clip_ammo[Player])
            return
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[2], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playeranim_reload)
    
        
make_blood_and_bulletholes(Player)
    }

Full code
PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <zombieplague>

enum
{
    
anim_idle,
    
anim_reload,
    
anim_draw,
    
anim_shoot1,
    
anim_shoot2,
    
anim_shoot3
}

#define ENG_NULLENT        -1
#define EV_INT_WEAPONKEY    EV_INT_impulse
#define SVD_WEAPONKEY    801
#define VSK94_WEAPONKEY        802
#define M24_WEAPONKEY    803
#define M400_WEAPONKEY    804
#define SG1_WEAPONKEY    805
#define MAX_PLAYERS  32
const USE_STOPPED 0
const OFFSET_ACTIVE_ITEM 373
const OFFSET_WEAPONOWNER 41
const OFFSET_LINUX 5
const OFFSET_LINUX_WEAPONS 4
#define WEAP_LINUX_XTRA_OFF            4
#define m_fKnown                44
#define m_flNextPrimaryAttack             46
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF            5
#define m_flNextAttack                83
#define SVD_RELOAD_TIME 3.5
#define VSK_RELOAD_TIME 3.5
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const 
WEAPONENTNAMES[][] = { """weapon_p228""""weapon_scout""weapon_hegrenade""weapon_xm1014""weapon_c4""weapon_mac10",
            
"weapon_aug""weapon_smokegrenade""weapon_elite""weapon_fiveseven""weapon_ump45""weapon_sg550",
            
"weapon_galil""weapon_famas""weapon_usp""weapon_glock18""weapon_awp""weapon_mp5navy""weapon_m249",
            
"weapon_m3""weapon_m4a1""weapon_tmp""weapon_g3sg1""weapon_flashbang""weapon_deagle""weapon_sg552",
            
"weapon_ak47""weapon_knife""weapon_p90" }
new const 
Fire_Sounds[][] = { "weapons/svd-1.wav""weapons/vsk-11.wav""weapons/m24-1weapnsl.wav""weapons/m400-1.wav" }
new const 
GUNSHOT_DECALS[] = { 4142434445 }
new 
SVD_V_MODEL[64] = "models/sd/v_svd_fix.mdl"
new SVD_P_MODEL[64] = "models/sd/p_svd.mdl"
new SVD_W_MODEL[64] = "models/sd/w_svd.mdl"
new VSK94_V_MODEL[64] = "models/sd/v_vsk94.mdl"
new VSK94_P_MODEL[64] = "models/sd/p_vsk94.mdl"
new VSK94_W_MODEL[64] = "models/sd/w_vsk94.mdl"
new M24_V_MODEL[64] = "models/sd/v_m24.mdl"
new M24_P_MODEL[64] = "models/sd/p_m24.mdl"
new M24_W_MODEL[64] = "models/sd/w_m24.mdl"
new M400_V_MODEL[64] = "models/sd/v_m400.mdl"
new M400_P_MODEL[64] = "models/sd/p_m400.mdl"
new M400_W_MODEL[64] = "models/sd/w_m400.mdl"
new cvar_dmg_svdcvar_recoil_svdg_itemid_svdcvar_spd_svdcvar_ammo_svd
new cvar_dmg_vsk94cvar_recoil_vsk94g_itemid_vsk94cvar_spd_vsk94cvar_ammo_vsk94
new cvar_dmg_m24cvar_recoil_m24g_itemid_m24cvar_ammo_m24
new cvar_dmg_m400cvar_recoil_m400g_itemid_m400cvar_ammo_m400
new cvar_clip_svdcvar_clip_vsk94cvar_clip_m400cvar_clip_m24
new g_has_svd[33], g_has_vsk94[33], g_has_m24[33], g_has_m400[33]
new 
g_MaxPlayersg_orig_event_svdg_orig_event_sg550g_orig_event_scoutg_orig_event_awpg_IsInPrimaryAttackg_clip_ammo[33], g_svd_TmpClip[33], g_vsk_TmpClip[33]
new 
Float:cl_pushangle[MAX_PLAYERS 1][3], m_iBlood[2]

public 
plugin_init()
{
    
register_plugin("[ZP] Extra: Sniper""1.1""Crock")
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
    
register_event("CurWeapon","CurrentWeapon","be","1=1")
    
RegisterHam(Ham_Item_AddToPlayer"weapon_g3sg1""fw_SVD_AddToPlayer")
    
RegisterHam(Ham_Item_AddToPlayer"weapon_sg550""fw_SG550_AddToPlayer")
    
RegisterHam(Ham_Item_AddToPlayer"weapon_scout""fw_SCOUT_AddToPlayer")
    
RegisterHam(Ham_Item_AddToPlayer"weapon_awp""fw_AWP_AddToPlayer")
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    for (new 
1sizeof WEAPONENTNAMESi++)
        if (
WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "fw_Item_Deploy_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_g3sg1""fw_SVD_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_g3sg1""fw_SVD_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg550""fw_SG550_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg550""fw_SG550_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_scout""fw_SCOUT_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_scout""fw_SCOUT_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_awp""fw_AWP_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_awp""fw_AWP_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_PostFrame"weapon_g3sg1""SVD__ItemPostFrame");
    
RegisterHam(Ham_Weapon_Reload"weapon_g3sg1""SVD__Reload");
    
RegisterHam(Ham_Weapon_Reload"weapon_g3sg1""SVD__Reload_Post"1);
    
RegisterHam(Ham_Item_PostFrame"weapon_sg550""SG550__ItemPostFrame");
    
RegisterHam(Ham_Weapon_Reload"weapon_sg550""SG550__Reload");
    
RegisterHam(Ham_Weapon_Reload"weapon_sg550""SG550__Reload_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"fwPlaybackEvent")
    
    
cvar_dmg_svd register_cvar("zp_svd_dmg""0.6")
    
cvar_recoil_svd register_cvar("zp_svd_recoil""0.8")
    
cvar_clip_svd register_cvar("zp_svd_clip""20")
    
cvar_ammo_svd register_cvar("zp_svd_ammo""90")
    
cvar_spd_svd register_cvar("zp_svd_spd""2")
    
    
cvar_dmg_vsk94 register_cvar("zp_vsk94_dmg""0.6")
    
cvar_recoil_vsk94 register_cvar("zp_vsk94_recoil""0.8")
    
cvar_clip_vsk94 register_cvar("zp_vsk94_clip""20")
    
cvar_ammo_vsk94 register_cvar("zp_vsk94_ammo""100")
    
cvar_spd_vsk94 register_cvar("zp_vsk94_spd""0.4")
    
    
cvar_dmg_m24 register_cvar("zp_m24_dmg""2.3")
    
cvar_recoil_m24 register_cvar("zp_m24_recoil""0.8")
    
cvar_clip_m24 register_cvar("zp_m24_clip""7")
    
cvar_ammo_m24 register_cvar("zp_m24_ammo""35")
    
    
cvar_dmg_m400 register_cvar("zp_m400_dmg""2.0")
    
cvar_recoil_m400 register_cvar("zp_m400_recoil""0.8")
    
cvar_clip_m400 register_cvar("zp_m400_clip""10")
    
cvar_ammo_m400 register_cvar("zp_m400_ammo""40")
    
    
    
g_itemid_svd zp_register_extra_item("svd"1ZP_TEAM_HUMAN)
    
g_itemid_vsk94 zp_register_extra_item("vsk94"1ZP_TEAM_HUMAN)
    
g_itemid_m24 zp_register_extra_item("m24"1ZP_TEAM_HUMAN)
    
g_itemid_m400 zp_register_extra_item("m400"1ZP_TEAM_HUMAN)
    
g_MaxPlayers get_maxplayers()
}

public 
plugin_precache()
{
    
precache_model(SVD_V_MODEL)
    
precache_model(SVD_P_MODEL)
    
precache_model(SVD_W_MODEL)
    
precache_model(VSK94_V_MODEL)
    
precache_model(VSK94_P_MODEL)
    
precache_model(VSK94_W_MODEL)
    
precache_model(M24_V_MODEL)
    
precache_model(M24_P_MODEL)
    
precache_model(M24_W_MODEL)
    
precache_model(M400_V_MODEL)
    
precache_model(M400_P_MODEL)
    
precache_model(M400_W_MODEL)
    for(new 
0sizeof Fire_Soundsi++)
        
precache_sound(Fire_Sounds[i])
    
m_iBlood[0] = precache_model("sprites/blood.spr")
    
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
    
register_forward(FM_PrecacheEvent"fwPrecacheEvent_Post"1)
}

public 
fwPrecacheEvent_Post(type, const name[])
{
    if (
equal("events/g3sg1.sc"name))
    {
        
g_orig_event_svd get_orig_retval()
        return 
FMRES_HANDLED
    
}
    else if (
equal("events/sg550.sc"name))
    {
        
g_orig_event_sg550 get_orig_retval()
        return 
FMRES_HANDLED
    
}
    else if (
equal("events/scout.sc"name))
    {
        
g_orig_event_scout get_orig_retval()
        return 
FMRES_HANDLED
    
}
    else if (
equal("events/awp.sc"name))
    {
        
g_orig_event_awp get_orig_retval()
        return 
FMRES_HANDLED
    
}

    return 
FMRES_IGNORED
}

public 
client_connect(id)
{
    
g_has_svd[id] = false
    g_has_vsk94
[id] = false
    g_has_m24
[id] = false
    g_has_m400
[id] = false
}

public 
client_disconnect(id)
{
    
g_has_svd[id] = false
    g_has_vsk94
[id] = false
    g_has_m24
[id] = false
    g_has_m400
[id] = false
}

public 
zp_user_infected_post(id)
{
    if (
zp_get_user_zombie(id))
    {
        
g_has_svd[id] = false
        g_has_vsk94
[id] = false
        g_has_m24
[id] = false
        g_has_m400
[id] = false
    
}
}

public 
fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity))
        return 
FMRES_IGNORED;
    
    static 
szClassName[33]
    
entity_get_string(entityEV_SZ_classnameszClassNamecharsmax(szClassName))
        
    if(!
equal(szClassName"weaponbox"))
        return 
FMRES_IGNORED;
    
    static 
iOwner
    
    iOwner 
entity_get_edict(entityEV_ENT_owner)
    
    if(
equal(model"models/w_g3sg1.mdl"))
    {
        static 
iStoredSVDID
        
        iStoredSVDID 
find_ent_by_owner(ENG_NULLENT"weapon_g3sg1"entity)
    
        if(!
is_valid_ent(iStoredSVDID))
            return 
FMRES_IGNORED;
    
        if(
g_has_svd[iOwner])
        {
            
entity_set_int(iStoredSVDIDEV_INT_WEAPONKEYSVD_WEAPONKEY)
            
            
g_has_svd[iOwner] = false
            
            entity_set_model
(entitySVD_W_MODEL)
            
            return 
FMRES_SUPERCEDE;
        }
    }
    else if(
equal(model"models/w_sg550.mdl"))
    {
        static 
iStoredSG550ID
        
        iStoredSG550ID 
find_ent_by_owner(ENG_NULLENT"weapon_sg550"entity)
        
        if(!
is_valid_ent(iStoredSG550ID))
            return 
FMRES_IGNORED;
        
        if(
g_has_vsk94[iOwner])
        {
            
entity_set_int(iStoredSG550IDEV_INT_WEAPONKEYVSK94_WEAPONKEY)
            
            
g_has_vsk94[iOwner] = false
            
            entity_set_model
(entityVSK94_W_MODEL)
            
            return 
FMRES_SUPERCEDE;
        }
    }
    else if(
equal(model"models/w_scout.mdl"))
    {
        static 
iStoredSCOUTID
        
        iStoredSCOUTID 
find_ent_by_owner(ENG_NULLENT"weapon_scout"entity)
        
        if(!
is_valid_ent(iStoredSCOUTID))
            return 
FMRES_IGNORED;
        
        if(
g_has_m24[iOwner])
        {
            
entity_set_int(iStoredSCOUTIDEV_INT_WEAPONKEYM24_WEAPONKEY)
            
            
g_has_m24[iOwner] = false
            
            entity_set_model
(entityM24_W_MODEL)
            
            return 
FMRES_SUPERCEDE;
        }
    }
    else if(
equal(model"models/w_awp.mdl"))
    {
        static 
iStoredAWPID
        
        iStoredAWPID 
find_ent_by_owner(ENG_NULLENT"weapon_awp"entity)
        
        if(!
is_valid_ent(iStoredAWPID))
            return 
FMRES_IGNORED;
        
        if(
g_has_m400[iOwner])
        {
            
entity_set_int(iStoredAWPIDEV_INT_WEAPONKEYM400_WEAPONKEY)
            
            
g_has_m400[iOwner] = false
            
            entity_set_model
(entityM400_W_MODEL)
            
            return 
FMRES_SUPERCEDE;
        }
    }
    
    return 
FMRES_IGNORED;
}

public 
zp_extra_item_selected(iditemid)
{
    if(
itemid == g_itemid_svd)
    {    
        
drop_weapons(id1);
        new 
iWep2 give_item(id,"weapon_g3sg1")
        if( 
iWep2 )
        {
            
cs_set_weapon_ammoiWep2get_pcvar_num(cvar_clip_svd) )
            
cs_set_user_bpammo (idCSW_G3SG1get_pcvar_num(cvar_ammo_svd))
        }
        
g_has_svd[id] = true;
    }
    else if(
itemid == g_itemid_vsk94)
    {    
        
drop_weapons(id1);
        new 
iWep3 give_item(id,"weapon_sg550")
        if( 
iWep3 )
        {
            
cs_set_weapon_ammoiWep3get_pcvar_num(cvar_clip_vsk94) )
            
cs_set_user_bpammo (idCSW_SG550get_pcvar_num(cvar_ammo_vsk94))
        }
        
g_has_vsk94[id] = true;
    }
    else if(
itemid == g_itemid_m24)
    {    
        
drop_weapons(id1);
        new 
iWep3 give_item(id,"weapon_scout")
        if( 
iWep3 )
        {
            
cs_set_weapon_ammoiWep3get_pcvar_num(cvar_clip_m24) )
            
cs_set_user_bpammo (idCSW_SCOUTget_pcvar_num(cvar_ammo_m24))
        }
        
g_has_m24[id] = true;
    }
    else if(
itemid == g_itemid_m400)
    {
        
drop_weapons(id1);
        new 
iWep3 give_item(id,"weapon_awp")
        if( 
iWep3 )
        {
            
cs_set_weapon_ammoiWep3get_pcvar_num(cvar_clip_m400) )
            
cs_set_user_bpammo (idCSW_AWPget_pcvar_num(cvar_ammo_m400))
        }
        
        
g_has_m400[id] = true;
    }
}

public 
fw_SVD_AddToPlayer(SVDid)
{
    if(!
is_valid_ent(SVD) || !is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(
entity_get_int(SVDEV_INT_WEAPONKEY) == SVD_WEAPONKEY)
    {
        
g_has_svd[id] = true
        
        entity_set_int
(SVDEV_INT_WEAPONKEY0)
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
fw_SG550_AddToPlayer(SG550id)
{
    if(!
is_valid_ent(SG550) || !is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(
entity_get_int(SG550EV_INT_WEAPONKEY) == VSK94_WEAPONKEY)
    {
        
g_has_vsk94[id] = true
        
        entity_set_int
(SG550EV_INT_WEAPONKEY0)
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
fw_SCOUT_AddToPlayer(SCOUTid)
{
    if(!
is_valid_ent(SCOUT) || !is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(
entity_get_int(SCOUTEV_INT_WEAPONKEY) == M24_WEAPONKEY)
    {
        
g_has_m24[id] = true
        
        entity_set_int
(SCOUTEV_INT_WEAPONKEY0)
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
fw_AWP_AddToPlayer(AWPid)
{
    if(!
is_valid_ent(AWP) || !is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(
entity_get_int(AWPEV_INT_WEAPONKEY) == M400_WEAPONKEY)
    {
        
g_has_m400[id] = true
        
        entity_set_int
(AWPEV_INT_WEAPONKEY0)
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{
    if (
use_type == USE_STOPPED && is_user_connected(caller))
        
replace_weapon_models(callerget_user_weapon(caller))
}

public 
fw_Item_Deploy_Post(weapon_ent)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_ent)
    
    static 
weaponid
    weaponid 
cs_get_weapon_id(weapon_ent)
    
    
replace_weapon_models(ownerweaponid)
}

public 
CurrentWeapon(id)
{
     
replace_weapon_models(idread_data(2))

     if((
read_data(2) != CSW_G3SG1 || !g_has_svd[id]) && (read_data(2) != CSW_SG550 || !g_has_vsk94[id]))
          return
     
     static 
Float:iSpeed
     
if(g_has_svd[id])
          
iSpeed get_pcvar_float(cvar_spd_svd)
     else if(
g_has_vsk94[id])
          
iSpeed get_pcvar_float(cvar_spd_vsk94)
     
     static 
weapon[32],Ent
     get_weaponname
(read_data(2),weapon,31)
     
Ent find_ent_by_owner(-1,weapon,id)
     if(
Ent)
     {
          static 
Float:DelayFloat:M_Delay
          Delay 
get_pdata_floatEnt464) * iSpeed
          M_Delay 
get_pdata_floatEnt474) * iSpeed
          
if (Delay 0.0)
          {
               
set_pdata_float(Ent46Delay4)
               
set_pdata_float(Ent47M_Delay4)
          }
     }
}

public 
replace_weapon_models(idweaponid)
{
    switch (
weaponid)
    {
        case 
CSW_G3SG1:
        {
            if (
zp_get_user_zombie(id) || zp_get_user_survivor(id))
                return;
            
            if(
g_has_svd[id])
            {
                
set_pev(idpev_viewmodel2SVD_V_MODEL)
                
set_pev(idpev_weaponmodel2SVD_P_MODEL)
            }
        }
        case 
CSW_SG550:
        {
            if (
zp_get_user_zombie(id) || zp_get_user_survivor(id))
                return;
            
            if(
g_has_vsk94[id])
            {
                
set_pev(idpev_viewmodel2VSK94_V_MODEL)
                
set_pev(idpev_weaponmodel2VSK94_P_MODEL)
            }
        }
        case 
CSW_SCOUT:
        {
            if (
zp_get_user_zombie(id) || zp_get_user_survivor(id))
                return;
            
            if(
g_has_m24[id])
            {
                
set_pev(idpev_viewmodel2M24_V_MODEL)
                
set_pev(idpev_weaponmodel2M24_P_MODEL)
            }
        }
        case 
CSW_AWP:
        {
            if (
zp_get_user_zombie(id) || zp_get_user_survivor(id))
                return;
            
            if(
g_has_m400[id])
            {
                
set_pev(idpev_viewmodel2M400_V_MODEL)
                
set_pev(idpev_weaponmodel2M400_P_MODEL)
            }
        }
    }
}

public 
fw_UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
    if(!
is_user_alive(Player) || (get_user_weapon(Player) != CSW_G3SG1 && get_user_weapon(Player) != CSW_SG550 && get_user_weapon(Player) != CSW_SCOUT && get_user_weapon(Player) != CSW_AWP) || 
        (
get_user_weapon(Player) == CSW_G3SG1 && !g_has_svd[Player]) || (get_user_weapon(Player) == CSW_SG550 && !g_has_vsk94[Player]) || (get_user_weapon(Player) == CSW_SCOUT && !g_has_m24[Player]) || (get_user_weapon(Player) == CSW_AWP && !g_has_m400[Player]))
        return 
FMRES_IGNORED
    
    set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
    return 
FMRES_HANDLED
}

public 
fw_SVD_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon415)
    
    if (!
g_has_svd[Player])
        return;
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fw_SG550_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon415)
    
    if (!
g_has_vsk94[Player])
        return;
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fw_SCOUT_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon415)
    
    if (!
g_has_m24[Player])
        return;
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fw_AWP_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon415)
    
    if (!
g_has_m400[Player])
        return;
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_orig_event_svd && eventid != g_orig_event_sg550 && eventid != g_orig_event_scout && eventid != g_orig_event_awp) || !g_IsInPrimaryAttack)
        return 
FMRES_IGNORED
    
if (!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED

    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}

public 
fw_SVD_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon415)
    
    if(
g_has_svd[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_svd),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        if (!
g_clip_ammo[Player])
            return
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playeranim_reload)
    
        
make_blood_and_bulletholes(Player)
    }
}

public 
fw_SG550_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon415)
    
    if(
g_has_vsk94[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_vsk94),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        if (!
g_clip_ammo[Player])
            return
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[1], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playeranim_reload)
    
        
make_blood_and_bulletholes(Player)
    }
}

public 
fw_SCOUT_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon415)
    
    if(
g_has_m24[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_m24),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        if (!
g_clip_ammo[Player])
            return
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[2], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playeranim_reload)
    
        
make_blood_and_bulletholes(Player)
    }
}

public 
fw_AWP_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon415)
    
    if(
g_has_m400[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_m400),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        if (!
g_clip_ammo[Player])
            return
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[3], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playeranim_reload)
    
        
make_blood_and_bulletholes(Player)
    }
}

public 
SVD__ItemPostFrame(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_svd[id])
        return 
HAM_IGNORED;

    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)

    new 
iBpAmmo cs_get_user_bpammo(idCSW_G3SG1);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)

    new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF

    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(get_pcvar_num(cvar_clip_svd) - iClipiBpAmmo)
    
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idCSW_G3SG1iBpAmmo-j);
        
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}

    return 
HAM_IGNORED;
}

public 
SVD__Reload(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_svd[id])
        return 
HAM_IGNORED;

    
g_svd_TmpClip[id] = -1;

    new 
iBpAmmo cs_get_user_bpammo(idCSW_G3SG1);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)

    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE;

    if (
iClip >= get_pcvar_num(cvar_clip_svd))
        return 
HAM_SUPERCEDE;


    
g_svd_TmpClip[id] = iClip;

    return 
HAM_IGNORED;
}

public 
SVD__Reload_Post(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_svd[id])
        return 
HAM_IGNORED;

    if (
g_svd_TmpClip[id] == -1)
        return 
HAM_IGNORED;

    
set_pdata_int(weapon_entitym_iClipg_svd_TmpClip[id], WEAP_LINUX_XTRA_OFF)

    
set_pdata_float(weapon_entitym_flTimeWeaponIdleSVD_RELOAD_TIMEWEAP_LINUX_XTRA_OFF)

    
set_pdata_float(idm_flNextAttackSVD_RELOAD_TIMEPLAYER_LINUX_XTRA_OFF)

    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)

    
// relaod animation
    
UTIL_PlayWeaponAnimation(id3)

    return 
HAM_IGNORED;
}

public 
SG550__ItemPostFrame(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_vsk94[id])
        return 
HAM_IGNORED;

    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)

    new 
iBpAmmo cs_get_user_bpammo(idCSW_SG550);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)

    new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF

    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(get_pcvar_num(cvar_clip_vsk94) - iClipiBpAmmo)
    
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idCSW_SG550iBpAmmo-j);
        
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}

    return 
HAM_IGNORED;
}

public 
SG550__Reload(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_vsk94[id])
        return 
HAM_IGNORED;

    
g_vsk_TmpClip[id] = -1;

    new 
iBpAmmo cs_get_user_bpammo(idCSW_SG550);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)

    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE;

    if (
iClip >= get_pcvar_num(cvar_clip_vsk94))
        return 
HAM_SUPERCEDE;


    
g_vsk_TmpClip[id] = iClip;

    return 
HAM_IGNORED;
}

public 
SG550__Reload_Post(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;

    if (!
g_has_vsk94[id])
        return 
HAM_IGNORED;

    if (
g_vsk_TmpClip[id] == -1)
        return 
HAM_IGNORED;

    
set_pdata_int(weapon_entitym_iClipg_vsk_TmpClip[id], WEAP_LINUX_XTRA_OFF)

    
set_pdata_float(weapon_entitym_flTimeWeaponIdleVSK_RELOAD_TIMEWEAP_LINUX_XTRA_OFF)

    
set_pdata_float(idm_flNextAttackVSK_RELOAD_TIMEPLAYER_LINUX_XTRA_OFF)

    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)

    
// relaod animation
    
UTIL_PlayWeaponAnimation(id3)

    return 
HAM_IGNORED;
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if (
victim != attacker && is_user_connected(attacker))
    {
        if(
get_user_weapon(attacker) == CSW_G3SG1)
        {
            if(
g_has_svd[attacker])
                
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_svd))
        }
        else if(
get_user_weapon(attacker) == CSW_SG550)
        {
            if(
g_has_vsk94[attacker])
                
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_vsk94))
        }
        else if(
get_user_weapon(attacker) == CSW_SCOUT)
        {
            if(
g_has_m24[attacker])
                
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_m24))
        }
        else if(
get_user_weapon(attacker) == CSW_AWP)
        {
            if(
g_has_m400[attacker])
                
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_m400))
        }
    }
}

public 
message_DeathMsg(msg_idmsg_destid)
{
    static 
szTruncatedWeapon[33], iAttackeriVictim
    
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon))
    
    
iAttacker get_msg_arg_int(1)
    
iVictim get_msg_arg_int(2)
    
    if(!
is_user_connected(iAttacker) || iAttacker == iVictim)
        return 
PLUGIN_CONTINUE
    
    
if(equal(szTruncatedWeapon"g3sg1") && get_user_weapon(iAttacker) == CSW_G3SG1)
    {
        if(
g_has_svd[iAttacker])
            
set_msg_arg_string(4"svd")
    }
    else if(
equal(szTruncatedWeapon"sg550") && get_user_weapon(iAttacker) == CSW_SG550)
    {
        if(
g_has_vsk94[iAttacker])
            
set_msg_arg_string(4"vsk94")
    }
    else if(
equal(szTruncatedWeapon"scout") && get_user_weapon(iAttacker) == CSW_SCOUT)
    {
        if(
g_has_m24[iAttacker])
            
set_msg_arg_string(4"m24")
    }
    else if(
equal(szTruncatedWeapon"awp") && get_user_weapon(iAttacker) == CSW_AWP)
    {
        if(
g_has_m400[iAttacker])
            
set_msg_arg_string(4"m400")
    }
    
    return 
PLUGIN_CONTINUE
}

stock fm_cs_get_current_weapon_ent(id)
{
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX);
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS);
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()
}

stock make_blood_and_bulletholes(id)
{
    new 
aimOrigin[3], targetbody
    get_user_origin
(idaimOrigin3)
    
get_user_aiming(idtargetbody)
    
    if(
target && target <= g_MaxPlayers && zp_get_user_zombie(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
        
pev(idpev_originfStart)
        
        
velocity_by_aim(id64fVel)
        
        
fStart[0] = float(aimOrigin[0])
        
fStart[1] = float(aimOrigin[1])
        
fStart[2] = float(aimOrigin[2])
        
fEnd[0] = fStart[0]+fVel[0]
        
fEnd[1] = fStart[1]+fVel[1]
        
fEnd[2] = fStart[2]+fVel[2]
        
        new 
res
        engfunc
(EngFunc_TraceLinefStartfEnd0targetres)
        
get_tr2(resTR_vecEndPosfRes)
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY
        
write_byte(TE_BLOODSPRITE)
        
write_coord(floatround(fStart[0])) 
        
write_coord(floatround(fStart[1])) 
        
write_coord(floatround(fStart[2])) 
        
write_shortm_iBlood ])
        
write_shortm_iBlood ] )
        
write_byte(70)
        
write_byte(random_num(1,2))
        
message_end()
        
        
    } 
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_DECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
write_short(target)
            
message_end()
        } 
        else 
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_WORLDDECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
message_end()
        }
        
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
write_short(id)
        
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
        
message_end()
    }
}

stock drop_weapons(iddropwhat)
{
     static 
weapons[32], numiweaponid
     num 
0
     get_user_weapons
(idweaponsnum)
     
     for (
0numi++)
     {
          
weaponid weapons[i]
          
          if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
          {
               static 
wname[32]
               
get_weaponname(weaponidwnamesizeof wname 1)
               
engclient_cmd(id"drop"wname)
          }
     }


Last edited by Kvothe; 11-30-2018 at 15:02.
Kvothe is offline
Old 11-30-2018, 14:16
Kvothe
This message has been deleted by Kvothe.
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