Залив
This commit is contained in:
86
gamemodes/cod_custom/entities/weapons/tdm_knife.lua
Normal file
86
gamemodes/cod_custom/entities/weapons/tdm_knife.lua
Normal file
@@ -0,0 +1,86 @@
|
||||
AddCSLuaFile()
|
||||
|
||||
SWEP.PrintName = "Knife"
|
||||
SWEP.Slot = 0
|
||||
SWEP.SlotPos = 4
|
||||
SWEP.Instructions = ""
|
||||
SWEP.ViewModel = "models/tdmg/wep/c_combat_knife.mdl"
|
||||
SWEP.ViewModelFOV = 75
|
||||
SWEP.UseHands = true
|
||||
|
||||
SWEP.Primary.Automatic = false
|
||||
SWEP.Primary.ClipSize = -1
|
||||
SWEP.Primary.DefaultClip = -1
|
||||
SWEP.Secondary.ClipSize = -1
|
||||
SWEP.Secondary.DefaultClip = -1
|
||||
SWEP.Secondary.Automatic = false
|
||||
|
||||
SWEP.HitDistance = 56
|
||||
|
||||
SWEP.DrawAmmo = false
|
||||
|
||||
function SWEP:Initialize()
|
||||
self:SetHoldType("knife")
|
||||
end
|
||||
|
||||
function SWEP:Knifing()
|
||||
self:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
|
||||
|
||||
local ply = self:GetOwner()
|
||||
ply:ViewPunch(Angle(0,-20,10))
|
||||
timer.Simple(0.1, function()
|
||||
if !IsValid(ply) then return end
|
||||
ply:SetAnimation(PLAYER_ATTACK1)
|
||||
end)
|
||||
|
||||
if SERVER then
|
||||
ply:EmitSound("tdmg/wep/knife_miss.wav")
|
||||
timer.Simple(0.15, function()
|
||||
if !IsValid(ply) or !IsValid(self) then return end
|
||||
|
||||
local tr = util.TraceLine( {
|
||||
start = self.Owner:GetShootPos(),
|
||||
endpos = self.Owner:GetShootPos() + self.Owner:GetAimVector() * self.HitDistance,
|
||||
filter = self.Owner,
|
||||
mask = MASK_SHOT_HULL
|
||||
} )
|
||||
|
||||
if ( !IsValid( tr.Entity ) ) then
|
||||
tr = util.TraceHull( {
|
||||
start = self.Owner:GetShootPos(),
|
||||
endpos = self.Owner:GetShootPos() + self.Owner:GetAimVector() * self.HitDistance,
|
||||
filter = self.Owner,
|
||||
mins = Vector( -16, -16, -8 ),
|
||||
maxs = Vector( 16, 16, 8 ),
|
||||
mask = MASK_SHOT_HULL
|
||||
} )
|
||||
end
|
||||
|
||||
local ent = tr.Entity
|
||||
|
||||
if IsValid(ent) and (ent:IsPlayer() or ent:IsNPC()) then
|
||||
ent:TakeDamage(250, ply, self)
|
||||
ply:EmitSound("tdmg/wep/knife_hit"..math.random(1,3)..".wav")
|
||||
elseif tr.Hit then
|
||||
ply:EmitSound("physics/concrete/rock_impact_hard"..math.random(1,6)..".wav")
|
||||
end
|
||||
end)
|
||||
timer.Simple(0.5, function()
|
||||
if !IsValid(ply) or !IsValid(self) then return end
|
||||
|
||||
ply:SetActiveWeapon(nil)
|
||||
ply:SelectWeapon(ply.FastKnifeBeforeWep)
|
||||
self:Remove()
|
||||
end)
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function SWEP:PrimaryAttack() end
|
||||
|
||||
function SWEP:SecondaryAttack() end
|
||||
|
||||
function SWEP:Reload() end
|
||||
|
||||
function SWEP:DrawWorldModel() end
|
||||
Reference in New Issue
Block a user