2014-10-02 08:49:54 +08:00
AddCSLuaFile ( )
2018-05-02 06:32:59 +08:00
SWEP.PrintName = " 'Hunter' Rifle "
SWEP.Description = " Fires special large caliber rounds. The reloading time is slow but it packs a powerful punch. "
SWEP.Slot = 3
SWEP.SlotPos = 0
2014-10-02 08:49:54 +08:00
2018-05-02 06:32:59 +08:00
if CLIENT then
2014-10-02 08:49:54 +08:00
SWEP.ViewModelFlip = false
SWEP.ViewModelFOV = 60
SWEP.HUD3DBone = " v_weapon.awm_parent "
SWEP.HUD3DPos = Vector ( - 1.25 , - 3.5 , - 16 )
SWEP.HUD3DAng = Angle ( 0 , 0 , 0 )
SWEP.HUD3DScale = 0.02
end
sound.Add (
{
name = " Weapon_Hunter.Single " ,
channel = CHAN_WEAPON ,
volume = 1.0 ,
soundlevel = 100 ,
pitchstart = 134 ,
pitchend = 10 ,
sound = " weapons/awp/awp1.wav "
} )
SWEP.Base = " weapon_zs_base "
SWEP.HoldType = " ar2 "
SWEP.ViewModel = " models/weapons/cstrike/c_snip_awp.mdl "
SWEP.WorldModel = " models/weapons/w_snip_awp.mdl "
SWEP.UseHands = true
SWEP.ReloadSound = Sound ( " Weapon_AWP.ClipOut " )
SWEP.Primary . Sound = Sound ( " Weapon_Hunter.Single " )
2018-05-02 06:32:59 +08:00
SWEP.Primary . Damage = 111
2014-10-02 08:49:54 +08:00
SWEP.Primary . NumShots = 1
SWEP.Primary . Delay = 1.5
SWEP.ReloadDelay = SWEP.Primary . Delay
SWEP.Primary . ClipSize = 1
SWEP.Primary . Automatic = false
SWEP.Primary . Ammo = " 357 "
SWEP.Primary . DefaultClip = 15
SWEP.Primary . Gesture = ACT_HL2MP_GESTURE_RANGE_ATTACK_CROSSBOW
SWEP.ReloadGesture = ACT_HL2MP_GESTURE_RELOAD_SHOTGUN
2018-05-02 06:32:59 +08:00
SWEP.ConeMax = 5.75
2014-10-02 08:49:54 +08:00
SWEP.ConeMin = 0
SWEP.IronSightsPos = Vector ( 5.015 , - 8 , 2.52 )
SWEP.IronSightsAng = Vector ( 0 , 0 , 0 )
SWEP.WalkSpeed = SPEED_SLOWER
2018-05-02 06:32:59 +08:00
SWEP.Tier = 3
2014-10-02 08:49:54 +08:00
SWEP.TracerName = " AR2Tracer "
2018-05-02 06:32:59 +08:00
GAMEMODE : AttachWeaponModifier ( SWEP , WEAPON_MODIFIER_RELOAD_SPEED , 0.1 )
GAMEMODE : AddNewRemantleBranch ( SWEP , 1 , " 'Hunter' Explosive Rifle " , " Uses twice as much ammo, reloads slowly, but overkill damage is dealt as an explosion " , function ( wept )
wept.Primary . ClipSize = 2
wept.RequiredClip = 2
wept.ReloadSpeed = 0.9
wept.OnZombieKilled = function ( self , zombie , total , dmginfo )
local killer = self : GetOwner ( )
local minushp = - zombie : Health ( )
if killer : IsValid ( ) and minushp > 10 then
local pos = zombie : GetPos ( )
timer.Simple ( 0.15 , function ( )
util.BlastDamagePlayer ( killer : GetActiveWeapon ( ) , killer , pos , 72 , minushp , DMG_ALWAYSGIB , 0.94 )
end )
local effectdata = EffectData ( )
effectdata : SetOrigin ( pos )
util.Effect ( " Explosion " , effectdata , true , true )
end
end
end )
2014-10-02 08:49:54 +08:00
function SWEP : IsScoped ( )
return self : GetIronsights ( ) and self.fIronTime and self.fIronTime + 0.25 <= CurTime ( )
end
function SWEP : SendWeaponAnimation ( )
self : SendWeaponAnim ( ACT_VM_PRIMARYATTACK )
2018-05-02 06:32:59 +08:00
local owner = self : GetOwner ( )
local vm = owner : GetViewModel ( )
local speed = self.ReloadSpeed * self : GetReloadSpeedMultiplier ( )
if vm : IsValid ( ) then
vm : SetPlaybackRate ( 0.5 * speed )
end
self : SetReloadFinish ( CurTime ( ) + 2.5 / speed )
end
function SWEP : MockReload ( )
local speed = self.ReloadSpeed * self : GetReloadSpeedMultiplier ( )
self : SetReloadFinish ( CurTime ( ) + 2.5 / speed )
end
function SWEP : Reload ( )
local owner = self : GetOwner ( )
if owner : IsHolding ( ) then return end
if self : GetIronsights ( ) then
self : SetIronsights ( false )
end
if self : CanReload ( ) then
self : MockReload ( )
end
end
function SWEP : Deploy ( )
self.BaseClass . Deploy ( self )
if self : Clip1 ( ) <= 0 then
self : MockReload ( )
end
return true
end
function SWEP : Think ( )
self.BaseClass . Think ( self )
if self : Clip1 ( ) <= 0 and self : GetPrimaryAmmoCount ( ) <= 0 then
self : MockReload ( )
end
2014-10-02 08:49:54 +08:00
end
function SWEP . BulletCallback ( attacker , tr , dmginfo )
local effectdata = EffectData ( )
effectdata : SetOrigin ( tr.HitPos )
effectdata : SetNormal ( tr.HitNormal )
util.Effect ( " hit_hunter " , effectdata )
end
if CLIENT then
SWEP.IronsightsMultiplier = 0.25
function SWEP : GetViewModelPosition ( pos , ang )
2018-05-02 06:32:59 +08:00
if GAMEMODE.DisableScopes then return end
2014-10-02 08:49:54 +08:00
if self : IsScoped ( ) then
return pos + ang : Up ( ) * 256 , ang
end
return self.BaseClass . GetViewModelPosition ( self , pos , ang )
end
function SWEP : DrawHUDBackground ( )
2018-05-02 06:32:59 +08:00
if GAMEMODE.DisableScopes then return end
2014-10-02 08:49:54 +08:00
if self : IsScoped ( ) then
2018-05-02 06:32:59 +08:00
self : DrawRegularScope ( )
2014-10-02 08:49:54 +08:00
end
end
end