Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fakemeta>
- #include <hamsandwich>
- #include <reapi>
- #include <engine>
- #define DEFAULT_FOV 90
- #define BIG_EXPLOSION_VOLUME 2048
- #define NORMAL_GUN_FLASH 256
- #define SCOUT_DAMAGE 75
- #define SCOUT_RANGE_MODIFER 0.98
- new g_Event
- new fm_fwd
- public plugin_init()
- {
- register_plugin("Cazapatos", "1.0", "Sugisaki")
- RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_scout", "pfn_Weapon_PrimaryAttackPre")
- register_forward(FM_UpdateClientData, "FM_UpdateClientData_Post", true)
- RegisterHam(Ham_Spawn, "player", "pfn_PlayerSpawnPost", 1)
- }
- public plugin_precache()
- {
- precache_sound("weapons/dryfire_rifle.wav")
- fm_fwd = register_forward(FM_PrecacheEvent, "pfn_PrecacheEvent", 1)
- }
- public pfn_PrecacheEvent(type, ev[])
- {
- if(equal(ev, "events/scout.sc"))
- {
- g_Event = get_orig_retval()
- unregister_forward(FM_PrecacheEvent, fm_fwd, 1)
- }
- }
- public pfn_Weapon_PrimaryAttackPre(ent)
- {
- new id = get_member(ent, m_pPlayer)
- new clip = get_member(ent, m_Weapon_iClip)
- new Float:vecAiming[3], Float:vecSrc[3], Float:vecDir[3], flag
- new pFOV = get_member(id, m_iFOV)
- if(pFOV != DEFAULT_FOV)
- {
- set_member(id, m_bResumeZoom, true)
- set_member(id, m_iLastZoom, pFOV)
- set_member(id, m_iFOV, DEFAULT_FOV)
- }
- if(clip <= 0)
- {
- if(get_member(ent, m_Weapon_fFireOnEmpty))
- {
- emit_sound(id, CHAN_WEAPON, "weapons/dryfire_rifle.wav", 0.8, ATTN_NORM, 0, PITCH_NORM)
- set_member(ent, m_Weapon_flNextPrimaryAttack, 0.2)
- }
- return HAM_SUPERCEDE
- }
- set_member(ent, m_Weapon_iClip, --clip)
- new Float:PunchAngle[3], Float:angles[3]
- pev(id, pev_angles, angles)
- pev(id, pev_punchangle, PunchAngle)
- new Float:global_Time;
- global_get(glb_time, global_Time)
- set_member(id, m_flEjectBrass, global_Time + 0.56)
- set_member(id, m_iWeaponVolume, BIG_EXPLOSION_VOLUME)
- set_member(id, m_iWeaponFlash, NORMAL_GUN_FLASH)
- ExecuteHam(Ham_Player_GetGunPosition, id, vecSrc)
- global_get(glb_v_forward, vecAiming)
- vecDir = rg_fire_bullets3(id, id, vecSrc, vecAiming, 0.0, 8192.0, 3, BULLET_PLAYER_762MM, SCOUT_DAMAGE, SCOUT_RANGE_MODIFER, true, get_member(id, random_seed));
- flag = 0
- playback_event(flag, id, g_Event, 0.0, Float:{0.0,0.0,0.0}, angles, vecDir[0] * PunchAngle[0] * 100, vecDir[0] * PunchAngle[0] * 100, 0, 0, 0, 0)
- PunchAngle[0] -= 2.0
- set_pev(id, pev_punchangle, PunchAngle)
- set_member(ent, m_Weapon_flNextPrimaryAttack, 1.25)
- set_member(ent, m_Weapon_flNextSecondaryAttack, 1.25)
- return HAM_SUPERCEDE
- }
- public pfn_PlayerSpawnPost(id)
- {
- if(!is_user_alive(id))
- {
- return
- }
- rg_give_item(id, "weapon_scout")
- }
- public FM_UpdateClientData_Post(const id, const bool:BO_SendWeapons, const I_CD)
- {
- set_cd(I_CD, CD_flNextAttack, halflife_time() + 0.001)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement