zombiesurvival-evolved/gamemodes/zombiesurvival/entities/weapons/weapon_zs_zestubber.lua

64 lines
1.5 KiB
Lua
Raw Normal View History

2014-10-02 08:49:54 +08:00
AddCSLuaFile()
SWEP.Base = "weapon_zs_stubber"
SWEP.Primary.Damage = 750
SWEP.Primary.ClipSize = 5
SWEP.WalkSpeed = SPEED_ZOMBIEESCAPE_SLOW
SWEP.Primary.KnockbackScale = ZE_KNOCKBACKSCALE
SWEP.Primary.DefaultClip = 99999
if CLIENT then
local ghostlerp = 0
function SWEP:GetViewModelPosition(pos, ang)
if self:IsScoped() then
return pos + ang:Up() * 256
end
local bIron = self:GetIronsights()
if bIron ~= self.bLastIron then
self.bLastIron = bIron
self.fIronTime = CurTime()
if bIron then
self.SwayScale = 0.3
self.BobScale = 0.1
else
self.SwayScale = 2.0
self.BobScale = 1.5
end
end
local Mul = math.Clamp((CurTime() - (self.fIronTime or 0)) * 4, 0, 1)
if not bIron then Mul = 1 - Mul end
if Mul > 0 then
local Offset = self.IronSightsPos
if self.IronSightsAng then
ang = Angle(ang.p, ang.y, ang.r)
ang:RotateAroundAxis(ang:Right(), self.IronSightsAng.x * Mul)
ang:RotateAroundAxis(ang:Up(), self.IronSightsAng.y * Mul)
ang:RotateAroundAxis(ang:Forward(), self.IronSightsAng.z * Mul)
end
pos = pos + Offset.x * Mul * ang:Right() + Offset.y * Mul * ang:Forward() + Offset.z * Mul * ang:Up()
end
if self.Owner:GetBarricadeGhosting() then
ghostlerp = math.min(1, ghostlerp + FrameTime() * 4)
elseif ghostlerp > 0 then
ghostlerp = math.max(0, ghostlerp - FrameTime() * 5)
end
if ghostlerp > 0 then
pos = pos + 3.5 * ghostlerp * ang:Up()
ang:RotateAroundAxis(ang:Right(), -30 * ghostlerp)
end
return pos, ang
end
end