#include #include #include #include #include #include #include #include #define ENG_NULLENT -1 #define EV_INT_WEAPONKEY EV_INT_impulse #define CV47_WEAPONKEY 100 #define XM8_WEAPONKEY 110 #define F2000_WEAPONKEY 120 #define GUITAR_WEAPONKEY 130 #define DMP7A1_WEAPONKEY 140 #define HK23_WEAPONKEY 300 #define MG3_WEAPONKEY 310 #define QBB95_WEAPONKEY 320 #define M1887_WEAPONKEY 400 #define M24_WEAPONKEY 500 #define M400_WEAPONKEY 510 #define SVD_WEAPONKEY 520 #define VSK94_WEAPONKEY 530 #define MAX_PLAYERS 32 const USE_STOPPED = 0 #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 write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1) const PRIMARY_BIT_SUM = (1< 0) { cs_set_weapon_ammo(iWep1, 60) cs_set_user_bpammo (id, CSW_AK47, 180) } g_has_cv47[id] = true } else if(itemid == g_xm8) { drop_primary(id, 1) new iWep2 = give_item(id, "weapon_aug") if(iWep2 > 0) { cs_set_weapon_ammo(iWep2, 30) cs_set_user_bpammo (id, CSW_AUG, 120) } g_has_xm8[id] = true } else if(itemid == g_f2000) { drop_primary(id, 1) new iWep6 = give_item(id, "weapon_sg552") if(iWep6 > 0) { cs_set_weapon_ammo(iWep6, 30) cs_set_user_bpammo (id, CSW_SG552, 120) } g_has_f2000[id] = true } else if(itemid == g_guitar) { drop_primary(id, 1) new iWep8 = give_item(id, "weapon_galil") if(iWep8 > 0) { cs_set_weapon_ammo(iWep8, 35) cs_set_user_bpammo (id, CSW_GALIL, 150) } g_has_guitar[id] = true } else if(itemid == g_dmp7a1) { drop_primary(id, 1) new iWep9 = give_item(id, "weapon_mac10") if(iWep9 > 0) { cs_set_weapon_ammo(iWep9, 80) cs_set_user_bpammo (id, CSW_MAC10, 160) } g_has_dmp7a1[id] = true } else if(itemid == g_hk23) { drop_primary(id, 1) new iWep3 = give_item(id, "weapon_m249") if(iWep3 > 0) { cs_set_weapon_ammo(iWep3, 100) cs_set_user_bpammo (id, CSW_M249, 200) } g_has_hk23[id] = true } else if(itemid == g_mg3) { drop_primary(id, 1) new iWep4 = give_item(id, "weapon_m249") if(iWep4 > 0) { cs_set_weapon_ammo(iWep4, 120) cs_set_user_bpammo (id, CSW_M249, 200) } g_has_mg3[id] = true } else if(itemid == g_qbb95) { drop_primary(id, 1) new iWep7 = give_item(id, "weapon_m249") if(iWep7 > 0) { cs_set_weapon_ammo(iWep7, 75) cs_set_user_bpammo (id, CSW_M249, 140) } g_has_qbb95[id] = true } else if(itemid == g_m1887) { drop_primary(id, 1) new iWep5 = give_item(id, "weapon_m3") if(iWep5 > 0) { cs_set_weapon_ammo(iWep5, 8) cs_set_user_bpammo (id, CSW_M3, 48) } g_has_m1887[id] = true } else if(itemid == g_m24) { drop_primary(id, 1) new iWep10 = give_item(id, "weapon_scout") if(iWep10 > 0) { cs_set_weapon_ammo(iWep10, 10) cs_set_user_bpammo (id, CSW_SCOUT, 80) } g_has_m24[id] = true } else if(itemid == g_m400) { drop_primary(id, 1) new iWep11 = give_item(id, "weapon_awp") if(iWep11 > 0) { cs_set_weapon_ammo(iWep11, 10) cs_set_user_bpammo (id, CSW_AWP, 70) } g_has_m400[id] = true } else if(itemid == g_svd) { drop_primary(id, 1) new iWep12 = give_item(id, "weapon_g3sg1") if(iWep12 > 0) { cs_set_weapon_ammo(iWep12, 10) cs_set_user_bpammo (id, CSW_G3SG1, 40) } g_has_svd[id] = true } else if(itemid == g_vsk94) { drop_primary(id, 1) new iWep13 = give_item(id, "weapon_sg550") if(iWep13 > 0) { cs_set_weapon_ammo(iWep13, 20) cs_set_user_bpammo (id, CSW_SG550, 90) } g_has_vsk94[id] = true } } public fw_Spawn_Post(iEnt) { if(pev_valid(iEnt)) { static szClassName[32] pev(iEnt, pev_classname, szClassName, charsmax(szClassName)) if(!TrieKeyExists(g_tClassNames, szClassName)) { RegisterHam(Ham_TraceAttack, szClassName, "TraceAttack", 1) TrieSetCell(g_tClassNames, szClassName, 1) } } } public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType) { if(get_user_weapon(iAttacker) != CSW_M3) return if((user_has_weapon(iAttacker, CSW_M3) && !g_has_m1887[iAttacker])) return static Float:flEnd[3] get_tr2(ptr, TR_vecEndPos, flEnd) if(iEnt) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_DECAL) write_coord_f(flEnd[0]) write_coord_f(flEnd[1]) write_coord_f(flEnd[2]) write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]) write_short(iEnt) message_end() } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) write_coord_f(flEnd[0]) write_coord_f(flEnd[1]) write_coord_f(flEnd[2]) write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]) message_end() } message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_GUNSHOTDECAL) write_coord_f(flEnd[0]) write_coord_f(flEnd[1]) write_coord_f(flEnd[2]) write_short(iAttacker) write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]) message_end() } public fw_UseStationary_Post(entity, caller, activator, use_type) { if (use_type == USE_STOPPED && is_user_connected(caller)) replace_weapon_models(caller, get_user_weapon(caller)) } public fw_Wpn_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(owner, weaponid) } public fw_Wpn_Post_Frame(Weapon) { static id; id = pev(Weapon, pev_owner) static iAnim; iAnim = pev(id, pev_weaponanim) new Player = get_pdata_cbase(Weapon, 41, 4) new fInReload = get_pdata_int(Weapon, 54, 4) new Float:flNextAttack = get_pdata_float(Player, 83, 5) new iClip ; iClip = get_pdata_int (Weapon, 51, 4) new iAmmoType = 376 + get_pdata_int(Weapon, 49, 4) new iBpAmmo ; iBpAmmo = get_pdata_int(Player, iAmmoType, 5) if(get_user_weapon(Player) == CSW_AK47) { if(is_user_connected(Player) && g_has_cv47[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(60 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } else if(get_user_weapon(Player) == CSW_AUG) { if(is_user_connected(Player) && g_has_xm8[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(40 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } else if(get_user_weapon(Player) == CSW_SG552) { if(is_user_connected(Player) && g_has_f2000[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(40 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } else if(get_user_weapon(Player) == CSW_GALIL) { if(is_user_connected(Player) && g_has_guitar[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(40 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } else if(get_user_weapon(Player) == CSW_MAC10) { if(is_user_connected(Player) && g_has_dmp7a1[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(80 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } else if(get_user_weapon(Player) == CSW_M249) { if(is_user_connected(Player) && g_has_hk23[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(100 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } else if(is_user_connected(Player) && g_has_mg3[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(120 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } else if(is_user_connected(Player) && g_has_qbb95[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(75 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } if(get_user_weapon(Player) == CSW_M3) { if(is_user_connected(Player) && g_has_m1887[Player] && g_MaxPlayers) { if(iAnim == 3 && g_has_m1887[Player]) { SendWpnAnim(Player, 7) } if(fInReload && flNextAttack <= 1.4) { new j = min(8 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } if(get_user_weapon(Player) == CSW_SCOUT) { if(is_user_connected(Player) && g_has_m24[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(10 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } if(get_user_weapon(Player) == CSW_AWP) { if(is_user_connected(Player) && g_has_m400[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(10 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } if(get_user_weapon(Player) == CSW_G3SG1) { if(is_user_connected(Player) && g_has_svd[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(10 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } if(get_user_weapon(Player) == CSW_SG550) { if(is_user_connected(Player) && g_has_vsk94[Player] && g_MaxPlayers) { if(fInReload && flNextAttack <= 1.4) { new j = min(10 - iClip, iBpAmmo) set_pdata_int(Weapon, 51, iClip + j, 4) set_pdata_int(Player, iAmmoType, iBpAmmo-j, 5) set_pdata_int(Weapon, 54, 0, 4) fInReload = 0 } } } static iButton ; iButton = pev(Player, pev_button) if((iButton & IN_ATTACK2 && get_pdata_float(Weapon, 47, 4 ) <= 0.0) || (iButton & IN_ATTACK && get_pdata_float(Weapon, 47, 4 ) <= 0.0)) return } public fw_Wpn_Add_To_Player(Wpn, id) { if(!is_valid_ent(Wpn) || !is_user_connected(id)) return HAM_IGNORED if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == CV47_WEAPONKEY) { g_has_cv47[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == XM8_WEAPONKEY) { g_has_xm8[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == F2000_WEAPONKEY) { g_has_f2000[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == GUITAR_WEAPONKEY) { g_has_guitar[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == DMP7A1_WEAPONKEY) { g_has_dmp7a1[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == HK23_WEAPONKEY) { g_has_hk23[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == MG3_WEAPONKEY) { g_has_mg3[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == QBB95_WEAPONKEY) { g_has_qbb95[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == M1887_WEAPONKEY) { g_has_m1887[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == M24_WEAPONKEY) { g_has_m24[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == M400_WEAPONKEY) { g_has_m400[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == SVD_WEAPONKEY) { g_has_svd[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } else if(entity_get_int(Wpn, EV_INT_WEAPONKEY) == VSK94_WEAPONKEY) { g_has_vsk94[id] = true entity_set_int(Wpn, EV_INT_WEAPONKEY, 0) return HAM_HANDLED } return HAM_IGNORED } public fw_Wpn_Primary_Attack(Wpn) { new Player = get_pdata_cbase(Wpn, 41, 4) new wpn = get_user_weapon(Player) if((wpn != CSW_AK47 || !g_has_cv47[Player]) && (wpn != CSW_AUG || !g_has_xm8[Player]) && (wpn != CSW_SG552 || !g_has_f2000[Player]) && (wpn != CSW_GALIL || !g_has_guitar[Player]) && (wpn != CSW_MAC10 || !g_has_dmp7a1[Player]) && (wpn != CSW_M249 || !g_has_hk23[Player] && !g_has_mg3[Player] && !g_has_qbb95[Player]) && (wpn != CSW_M3 || !g_has_m1887[Player]) && (wpn != CSW_SCOUT || !g_has_m24[Player]) && (wpn != CSW_AWP || !g_has_m400[Player]) && (wpn != CSW_G3SG1 || !g_has_svd[Player]) && (wpn != CSW_SG550 || !g_has_vsk94[Player])) return g_IsInPrimaryAttack = 1 pev(Player, pev_punchangle, cl_pushangle[Player]) g_clip_ammo[Player] = cs_get_weapon_ammo(Wpn) } public fw_Wpn_Primary_Attack_Post(Wpn) { g_IsInPrimaryAttack = 0 new Player = get_pdata_cbase(Wpn, 41, 4) new Float:Recoil if(g_has_cv47[Player]) Recoil = 0.60 else if(g_has_xm8[Player]) Recoil = 1.1 else if(g_has_f2000[Player]) Recoil = 0.9 else if(g_has_guitar[Player]) Recoil = 0.9 else if(g_has_dmp7a1[Player]) Recoil = 0.75 else if(g_has_hk23[Player]) Recoil = 0.7 else if(g_has_mg3[Player]) Recoil = 1.01 else if(g_has_qbb95[Player]) Recoil = 0.8 else if(g_has_m1887[Player]) Recoil = 1.1 else if(g_has_m24[Player]) Recoil = 1.0 else if(g_has_m400[Player]) Recoil = 1.0 else if(g_has_svd[Player]) Recoil = 3 else if(g_has_vsk94[Player]) Recoil = 1.0 if(get_user_weapon(Player) == CSW_AK47) { if(is_user_connected(Player) && g_has_cv47[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Auto[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(3, 5)) make_decals(Player) } } else if(get_user_weapon(Player) == CSW_AUG) { if(is_user_connected(Player) && g_has_xm8[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Auto[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(3, 5)) make_decals(Player) } } else if(get_user_weapon(Player) == CSW_SG552) { if(is_user_connected(Player) && g_has_f2000[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Auto[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(3, 5)) make_decals(Player) } } else if(get_user_weapon(Player) == CSW_GALIL) { if(is_user_connected(Player) && g_has_guitar[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Auto[3], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(3, 5)) make_decals(Player) } } else if(get_user_weapon(Player) == CSW_MAC10) { if(is_user_connected(Player) && g_has_dmp7a1[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Auto[4], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(3, 5)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_M249) { if(is_user_connected(Player) && g_has_hk23[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Machinegun[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } else if(is_user_connected(Player) && g_has_mg3[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Machinegun[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } else if(is_user_connected(Player) && g_has_qbb95[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Machinegun[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_M3) { if(is_user_connected(Player) && g_has_m1887[Player]) { new Float:push[3] pev(Player, pev_punchangle, push) xs_vec_sub(push, cl_pushangle[Player], push) xs_vec_mul_scalar(push, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Shotgun[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_SCOUT) { if(is_user_connected(Player) && 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, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Sniper[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_AWP) { if(is_user_connected(Player) && 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, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Sniper[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_G3SG1) { if(is_user_connected(Player) && 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, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Sniper[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } if(get_user_weapon(Player) == CSW_SG550) { if(is_user_connected(Player) && 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, Recoil, push) xs_vec_add(push, cl_pushangle[Player], push) set_pev(Player, pev_punchangle, push) if(!g_clip_ammo[Player]) return emit_sound(Player, CHAN_WEAPON, Fire_Sniper[3], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) SendWpnAnim(Player, random_num(1, 2)) make_decals(Player) } } } public fw_Wpn_Reload(weapon_entity) { new id = pev(weapon_entity, pev_owner) new wpn = get_user_weapon(id) if(!is_user_connected(id)) return HAM_IGNORED if((wpn != CSW_M249 || !g_has_hk23[id] && !g_has_mg3[id] && !g_has_qbb95[id]) && (wpn != CSW_M3 || !g_has_m1887[id]) && (wpn != CSW_AK47 || !g_has_cv47[id]) && (wpn != CSW_AUG || !g_has_xm8[id]) && (wpn != CSW_SG552 || !g_has_f2000[id]) && (wpn != CSW_GALIL || !g_has_guitar[id]) && (wpn != CSW_MAC10 || !g_has_dmp7a1[id]) && (wpn != CSW_SCOUT || !g_has_m24[id]) && (wpn != CSW_AWP || !g_has_m400[id]) && (wpn != CSW_G3SG1 || !g_has_svd[id]) && (wpn != CSW_SG550 || !g_has_vsk94[id])) return HAM_IGNORED static iClipExtra if(g_has_cv47[id]) iClipExtra = 60 else if(g_has_xm8[id]) iClipExtra = 40 else if(g_has_f2000[id]) iClipExtra = 40 else if(g_has_guitar[id]) iClipExtra = 40 else if(g_has_dmp7a1[id]) iClipExtra = 60 else if(g_has_hk23[id]) iClipExtra = 110 else if(g_has_mg3[id]) iClipExtra = 120 else if(g_has_qbb95[id]) iClipExtra = 75 else if(g_has_m1887[id]) iClipExtra = 8 else if(g_has_m24[id]) iClipExtra = 10 else if(g_has_m400[id]) iClipExtra = 10 else if(g_has_svd[id]) iClipExtra = 10 else if(g_has_vsk94[id]) iClipExtra = 20 g_tmp[id] = -1 new iAmmoType = 376 + get_pdata_int(weapon_entity, 49, 4) new iBpAmmo = get_pdata_int(id, iAmmoType, 5) new iClip = get_pdata_int(weapon_entity, 51, 5) if(iBpAmmo <= 0) return HAM_SUPERCEDE if(iClip >= iClipExtra) return HAM_SUPERCEDE g_tmp[id] = iClip return HAM_IGNORED } public fw_Wpn_Reload_Post(weapon_entity) { new id = pev(weapon_entity, pev_owner) new wpn = get_user_weapon(id) if(!is_user_connected(id)) return HAM_IGNORED if((wpn != CSW_M249 || !g_has_hk23[id] && !g_has_mg3[id] && !g_has_qbb95[id]) && (wpn != CSW_M3 || !g_has_m1887[id]) && (wpn != CSW_AK47 || !g_has_cv47[id]) && (wpn != CSW_AUG || !g_has_xm8[id]) && (wpn != CSW_SG552 || !g_has_f2000[id]) && (wpn != CSW_GALIL || !g_has_guitar[id]) && (wpn != CSW_MAC10 || !g_has_dmp7a1[id]) && (wpn != CSW_SCOUT || !g_has_m24[id]) && (wpn != CSW_AWP || !g_has_m400[id]) && (wpn != CSW_G3SG1 || !g_has_svd[id]) && (wpn != CSW_SG550 || !g_has_vsk94[id])) return HAM_IGNORED if (g_tmp[id] == -1) return HAM_IGNORED return HAM_IGNORED } public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if (victim != attacker && is_user_connected(attacker)) { if(get_user_weapon(attacker) == CSW_AK47) { if(g_has_cv47[attacker]) SetHamParamFloat(4, damage * 1.3) } else if(get_user_weapon(attacker) == CSW_AUG) { if(g_has_xm8[attacker]) SetHamParamFloat(4, damage * 0.95) } else if(get_user_weapon(attacker) == CSW_SG552) { if(g_has_f2000[attacker]) SetHamParamFloat(4, damage * 1.6) } else if(get_user_weapon(attacker) == CSW_GALIL) { if(g_has_guitar[attacker]) SetHamParamFloat(4, damage * 1.04) } else if(get_user_weapon(attacker) == CSW_MAC10) { if(g_has_dmp7a1[attacker]) SetHamParamFloat(4, damage * 1.52) } else if(get_user_weapon(attacker) == CSW_M249) { if(g_has_hk23[attacker]) SetHamParamFloat(4, damage * 0.94) else if(g_has_mg3[attacker]) SetHamParamFloat(4, damage * 1.065) else if(g_has_qbb95[attacker]) SetHamParamFloat(4, damage * 0.8) } else if(get_user_weapon(attacker) == CSW_M3) { if(g_has_m1887[attacker]) SetHamParamFloat(4, damage * 1.8) } else if(get_user_weapon(attacker) == CSW_SCOUT) { if(g_has_m24[attacker]) SetHamParamFloat(4, damage * 1.64) } else if(get_user_weapon(attacker) == CSW_AWP) { if(g_has_m400[attacker]) SetHamParamFloat(4, damage * 2.50) } else if(get_user_weapon(attacker) == CSW_G3SG1) { if(g_has_svd[attacker]) SetHamParamFloat(4, damage * 1.78) } else if(get_user_weapon(attacker) == CSW_SG550) { if(g_has_vsk94[attacker]) SetHamParamFloat(4, damage * 0.85) } } } public message_DeathMsg(msg_id, msg_dest, id) { static szTruncatedWeapon[33], iAttacker, iVictim get_msg_arg_string(4, szTruncatedWeapon, charsmax(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, "ak47") && get_user_weapon(iAttacker) == CSW_AK47) { if(g_has_cv47[iAttacker]) set_msg_arg_string(4, "aklong") } else if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG) { if(g_has_xm8[iAttacker]) set_msg_arg_string(4, "Hk xm8") } else if(equal(szTruncatedWeapon, "sg552") && get_user_weapon(iAttacker) == CSW_SG552) { if(g_has_f2000[iAttacker]) set_msg_arg_string(4, "F2000") } else if(equal(szTruncatedWeapon, "galil") && get_user_weapon(iAttacker) == CSW_GALIL) { if(g_has_guitar[iAttacker]) set_msg_arg_string(4, "GUITAR") } else if(equal(szTruncatedWeapon, "mac10") && get_user_weapon(iAttacker) == CSW_MAC10) { if(g_has_dmp7a1[iAttacker]) set_msg_arg_string(4, "DMP7A1") } if(equal(szTruncatedWeapon, "m249") && get_user_weapon(iAttacker) == CSW_M249) { if(g_has_hk23[iAttacker]) set_msg_arg_string(4, "hk23") else if(g_has_mg3[iAttacker]) set_msg_arg_string(4, "mg3") else if(g_has_qbb95[iAttacker]) set_msg_arg_string(4, "qbb95") } else if(equal(szTruncatedWeapon, "m3") && get_user_weapon(iAttacker) == CSW_M3) { if(g_has_m1887[iAttacker]) set_msg_arg_string(4, "m1887") } 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") } else 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, "vsk") } return PLUGIN_CONTINUE } public CurrentWeapon(id) { replace_weapon_models(id, read_data(2)) if((read_data(2) != CSW_AK47 || !g_has_cv47[id]) && (read_data(2) != CSW_AUG || !g_has_xm8[id]) && (read_data(2) != CSW_SG552 || !g_has_f2000[id]) && (read_data(2) != CSW_GALIL || !g_has_guitar[id]) && (read_data(2) != CSW_MAC10 || !g_has_dmp7a1[id]) && (read_data(2) != CSW_M249 || !g_has_hk23[id] && g_has_mg3[id] && g_has_qbb95[id]) && (read_data(2) !=CSW_M3 || !g_has_m1887[id]) && (read_data(2) !=CSW_SCOUT || !g_has_m24[id]) && (read_data(2) !=CSW_AWP || !g_has_m400[id]) && (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_cv47[id]) iSpeed = 1.0 else if(g_has_xm8[id]) iSpeed = 1.0 else if(g_has_f2000[id]) iSpeed = 1.0 else if(g_has_guitar[id]) iSpeed = 1.0 else if(g_has_dmp7a1[id]) iSpeed = 0.8 else if(g_has_hk23[id]) iSpeed = 0.95 else if(g_has_mg3[id]) iSpeed = 1.0 else if(g_has_qbb95[id]) iSpeed = 1.0 else if(g_has_m1887[id]) iSpeed = 1.0 else if(g_has_m24[id]) iSpeed = 1.0 else if(g_has_m400[id]) iSpeed = 1.0 else if(g_has_svd[id]) iSpeed = 2.0 else if(g_has_vsk94[id]) iSpeed = 0.4 static weapon[32], Ent get_weaponname(read_data(2),weapon,31) Ent = find_ent_by_owner(-1,weapon,id) if(Ent) { static Float:Delay, Float:M_Delay Delay = get_pdata_float(Ent, 46, 4) * iSpeed M_Delay = get_pdata_float(Ent, 47, 4) * iSpeed if(Delay > 0.0) { set_pdata_float(Ent, 46, Delay, 4) set_pdata_float(Ent, 47, M_Delay, 4) } } } replace_weapon_models(id, weaponid) { switch (weaponid) { case CSW_AK47: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_cv47[id]) { set_pev(id, pev_viewmodel2, V_CV47) set_pev(id, pev_weaponmodel2, P_CV47) } } case CSW_AUG: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_xm8[id]) { set_pev(id, pev_viewmodel2, V_XM8) set_pev(id, pev_weaponmodel2, P_XM8) } } case CSW_SG552: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_f2000[id]) { set_pev(id, pev_viewmodel2, V_F2000) set_pev(id, pev_weaponmodel2, P_F2000) } } case CSW_GALIL: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_guitar[id]) { set_pev(id, pev_viewmodel2, V_GUITAR) set_pev(id, pev_weaponmodel2, P_GUITAR) } } case CSW_MAC10: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_dmp7a1[id]) { set_pev(id, pev_viewmodel2, V_DMP7A1) set_pev(id, pev_weaponmodel2, P_DMP7A1) } } case CSW_M249: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_hk23[id]) { set_pev(id, pev_viewmodel2, V_HK23) set_pev(id, pev_weaponmodel2, P_HK23) } else if(g_has_mg3[id]) { set_pev(id, pev_viewmodel2, V_MG3) set_pev(id, pev_weaponmodel2, P_MG3) } else if(g_has_qbb95[id]) { set_pev(id, pev_viewmodel2, V_QBB95) set_pev(id, pev_weaponmodel2, P_QBB95) } } case CSW_M3: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_m1887[id]) { set_pev(id, pev_viewmodel2, V_M1887) set_pev(id, pev_weaponmodel2, P_M1887) } } case CSW_SCOUT: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_m24[id]) { set_pev(id, pev_viewmodel2, V_M24) set_pev(id, pev_weaponmodel2, P_M24) } } case CSW_AWP: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_m400[id]) { set_pev(id, pev_viewmodel2, V_M400) set_pev(id, pev_weaponmodel2, P_M400) } } case CSW_G3SG1: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_svd[id]) { set_pev(id, pev_viewmodel2, V_SVD) set_pev(id, pev_weaponmodel2, P_SVD) } } case CSW_SG550: { if (zp_get_user_zombie(id) || zp_get_user_survivor(id)) return if(g_has_vsk94[id]) { set_pev(id, pev_viewmodel2, V_VSK94) set_pev(id, pev_weaponmodel2, P_VSK94) } } } } public fw_SetModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED static szClassName[33] entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName)) if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED; static iOwner iOwner = entity_get_edict(entity, EV_ENT_owner) if(equal(model, "models/mz/wak.mdl")) { static StoreAK StoreAK = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity) if(!is_valid_ent(StoreAK)) return FMRES_IGNORED if(g_has_cv47[iOwner]) { entity_set_int(StoreAK, EV_INT_WEAPONKEY, CV47_WEAPONKEY) g_has_cv47[iOwner] = false entity_set_model(entity, W_CV47) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wg.mdl")) { static StoreAug StoreAug = find_ent_by_owner(ENG_NULLENT, "weapon_aug", entity) if(!is_valid_ent(StoreAug)) return FMRES_IGNORED if(g_has_xm8[iOwner]) { entity_set_int(StoreAug, EV_INT_WEAPONKEY, XM8_WEAPONKEY) g_has_xm8[iOwner] = false entity_set_model(entity, W_XM8) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/w_sg.mdl")) { static StoreSg552 StoreSg552 = find_ent_by_owner(ENG_NULLENT, "weapon_sg552", entity) if(!is_valid_ent(StoreSg552)) return FMRES_IGNORED if(g_has_f2000[iOwner]) { entity_set_int(StoreSg552, EV_INT_WEAPONKEY, F2000_WEAPONKEY) g_has_f2000[iOwner] = false entity_set_model(entity, W_F2000) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wgal.mdl")) { static StoreGalil StoreGalil = find_ent_by_owner(ENG_NULLENT, "weapon_galil", entity) if(!is_valid_ent(StoreGalil)) return FMRES_IGNORED if(g_has_guitar[iOwner]) { entity_set_int(StoreGalil, EV_INT_WEAPONKEY, GUITAR_WEAPONKEY) g_has_guitar[iOwner] = false entity_set_model(entity, W_GUITAR) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wmac.mdl")) { static StoreMac10 StoreMac10 = find_ent_by_owner(ENG_NULLENT, "weapon_mac10", entity) if(!is_valid_ent(StoreMac10)) return FMRES_IGNORED if(g_has_dmp7a1[iOwner]) { entity_set_int(StoreMac10, EV_INT_WEAPONKEY, DMP7A1_WEAPONKEY) g_has_dmp7a1[iOwner] = false entity_set_model(entity, W_DMP7A1) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/w24.mdl")) { static StoreM249 StoreM249 = find_ent_by_owner(ENG_NULLENT, "weapon_m249", entity) if(!is_valid_ent(StoreM249)) return FMRES_IGNORED; if(g_has_hk23[iOwner]) { entity_set_int(StoreM249, EV_INT_WEAPONKEY, HK23_WEAPONKEY) g_has_hk23[iOwner] = false entity_set_model(entity, W_HK23) return FMRES_SUPERCEDE } else if(g_has_mg3[iOwner]) { entity_set_int(StoreM249, EV_INT_WEAPONKEY, MG3_WEAPONKEY) g_has_mg3[iOwner] = false entity_set_model(entity, W_MG3) return FMRES_SUPERCEDE } else if(g_has_qbb95[iOwner]) { entity_set_int(StoreM249, EV_INT_WEAPONKEY, QBB95_WEAPONKEY) g_has_qbb95[iOwner] = false entity_set_model(entity, W_QBB95) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wm.mdl")) { static StoreM3 StoreM3 = find_ent_by_owner(ENG_NULLENT, "weapon_m3", entity) if(!is_valid_ent(StoreM3)) return FMRES_IGNORED if(g_has_m1887[iOwner]) { entity_set_int(StoreM3, EV_INT_WEAPONKEY, M1887_WEAPONKEY) g_has_m1887[iOwner] = false entity_set_model(entity, W_M1887) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wsco.mdl")) { static StoreScout StoreScout = find_ent_by_owner(ENG_NULLENT, "weapon_scout", entity) if(!is_valid_ent(StoreScout)) return FMRES_IGNORED if(g_has_m24[iOwner]) { entity_set_int(StoreScout, EV_INT_WEAPONKEY, M24_WEAPONKEY) g_has_m24[iOwner] = false entity_set_model(entity, W_M24) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wa.mdl")) { static StoreAwp StoreAwp = find_ent_by_owner(ENG_NULLENT, "weapon_awp", entity) if(!is_valid_ent(StoreAwp)) return FMRES_IGNORED if(g_has_m400[iOwner]) { entity_set_int(StoreAwp, EV_INT_WEAPONKEY, M400_WEAPONKEY) g_has_m400[iOwner] = false entity_set_model(entity, W_M400) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wg3s.mdl")) { static StoreG3sg1 StoreG3sg1 = find_ent_by_owner(ENG_NULLENT, "weapon_g1sg1", entity) if(!is_valid_ent(StoreG3sg1)) return FMRES_IGNORED if(g_has_svd[iOwner]) { entity_set_int(StoreG3sg1, EV_INT_WEAPONKEY, SVD_WEAPONKEY) g_has_svd[iOwner] = false entity_set_model(entity, W_SVD) return FMRES_SUPERCEDE } } else if(equal(model, "models/mz/wsg5.mdl")) { static StoreSg550 StoreSg550 = find_ent_by_owner(ENG_NULLENT, "weapon_sg550", entity) if(!is_valid_ent(StoreSg550)) return FMRES_IGNORED if(g_has_vsk94[iOwner]) { entity_set_int(StoreSg550, EV_INT_WEAPONKEY, VSK94_WEAPONKEY) g_has_vsk94[iOwner] = false entity_set_model(entity, W_VSK94) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public fw_CmdStart(id, uc_handle, seed) { if(!is_user_alive(id)) return PLUGIN_HANDLED if((get_uc(uc_handle, UC_Buttons)&IN_ATTACK2)&&!(pev(id, pev_oldbuttons)&IN_ATTACK2)) { if(get_user_weapon(id) == CSW_AK47 && !g_hasZoom[id]) { if(g_has_cv47[id]) { g_hasZoom[id] = true cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1) emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100) } } else if(get_user_weapon(id) == CSW_AK47 && g_hasZoom[id]) { if(g_has_cv47[id]) { g_hasZoom[id] = false cs_set_user_zoom(id, CS_RESET_ZOOM, 0) emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100) } } } if(g_hasZoom[id] && (pev(id, pev_button) & IN_RELOAD) || get_user_weapon(id) == CSW_KNIFE) { g_hasZoom[id] = false cs_set_user_zoom(id, CS_RESET_ZOOM, 0) } return PLUGIN_HANDLED } public fw_Update_Client_Data_Post(Player, SendWeapons, CD_Handle) { if(!is_user_alive(Player)) return FMRES_IGNORED new wpn = get_user_weapon(Player) if((wpn != CSW_AK47 || !g_has_cv47[Player]) && (wpn != CSW_AUG || !g_has_xm8[Player]) && (wpn != CSW_SG552 || !g_has_f2000[Player]) && (wpn != CSW_GALIL || !g_has_guitar[Player]) && (wpn != CSW_MAC10 || !g_has_dmp7a1[Player]) && (wpn != CSW_M249 || !g_has_hk23[Player] && !g_has_mg3[Player] && !g_has_qbb95[Player]) && (wpn != CSW_M3 || !g_has_m1887[Player]) && (wpn != CSW_SCOUT || !g_has_m24[Player]) && (wpn != CSW_AWP || !g_has_m400[Player]) && (wpn != CSW_G3SG1 || !g_has_svd[Player]) && (wpn != CSW_SG550 || !g_has_vsk94[Player])) return FMRES_IGNORED set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001) return FMRES_HANDLED } public fw_Playback_Event(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if ((eventid != g_events_ak47 && eventid != g_events_xm8 && eventid != g_events_f2000 && eventid != g_events_guitar && eventid != g_events_dmp7a1 && eventid != g_events_m249 && eventid != g_events_m3 && eventid != g_events_scout && eventid != g_events_awp && eventid != g_events_g3sg1 && eventid != g_events_vsk94) || !g_IsInPrimaryAttack) return FMRES_IGNORED if (!(1 <= invoker <= g_MaxPlayers)) return FMRES_IGNORED playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2) return FMRES_SUPERCEDE } public fw_Precache_Event_Post(type, const name[]) { if(equal("events/ak47.sc", name)) { g_events_ak47 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/aug.sc", name)) { g_events_xm8 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/sg552.sc", name)) { g_events_f2000 = get_orig_retval() return FMRES_HANDLED } else if (equal("events/galil.sc", name)) { g_events_guitar = get_orig_retval() return FMRES_HANDLED } else if(equal("events/mac10.sc", name)) { g_events_dmp7a1 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/m249.sc", name)) { g_events_m249 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/m3.sc", name)) { g_events_m3 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/scout.sc", name)) { g_events_scout = get_orig_retval() return FMRES_HANDLED } else if(equal("events/awp.sc", name)) { g_events_awp = get_orig_retval() return FMRES_HANDLED } else if(equal("events/g3sg1.sc", name)) { g_events_g3sg1 = get_orig_retval() return FMRES_HANDLED } else if(equal("events/sg550.sc", name)) { g_events_vsk94 = get_orig_retval() return FMRES_HANDLED } return FMRES_IGNORED } stock fm_cs_get_current_weapon_ent(id) { return get_pdata_cbase(id, 373, 5) } stock fm_cs_get_weapon_ent_owner(ent) { return get_pdata_cbase(ent, 41, 4) } stock SendWpnAnim(const Player, const Sequence) { set_pev(Player, pev_weaponanim, Sequence) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) write_byte(Sequence) write_byte(pev(Player, pev_body)) message_end() } stock make_decals(id) { new aimOrigin[3], target, body get_user_origin(id, aimOrigin, 3) get_user_aiming(id, target, body) if(target > 0 && target <= g_MaxPlayers && zp_get_user_zombie(target)) { new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3] pev(id, pev_origin, fStart) velocity_by_aim(id, 64, fVel) 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_TraceLine, fStart, fEnd, 0, target, res) get_tr2(res, TR_vecEndPos, fRes) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BLOODSPRITE) write_coord(floatround(fStart[0])) write_coord(floatround(fStart[1])) write_coord(floatround(fStart[2])) write_short(m_iBlood[1]) write_short(m_iBlood[0]) write_byte(70) write_byte(random_num(1, 2)) message_end() } else if(!is_user_connected(target)) { if(target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_DECAL) write_coord(aimOrigin[0]) write_coord(aimOrigin[1]) write_coord(aimOrigin[2]) write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]) write_short(target) message_end() } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) write_coord(aimOrigin[0]) write_coord(aimOrigin[1]) write_coord(aimOrigin[2]) write_byte(GUNSHOT_DECALS[random_num(0, sizeof GUNSHOT_DECALS -1)]) message_end() } message_begin(MSG_BROADCAST, SVC_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(0, sizeof GUNSHOT_DECALS -1)]) message_end() } } stock drop_primary(id, dropwhat) { static weapons[32], num, i, weaponid num = 0 get_user_weapons(id, weapons, num) for (i = 0; i < num; i++) { weaponid = weapons[i] if(dropwhat == 1 && ((1<