dobrograd-13-06-2022/garrysmod/addons/gmod-sweps/lua/weapons/dbg_dog/init.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

83 lines
2.2 KiB
Lua

AddCSLuaFile('shared.lua')
AddCSLuaFile('cl_init.lua')
include('shared.lua')
SWEP.HitDistance = 48
function SWEP:PrimaryAttack()
self.attack = CurTime() + 1
local owner = self:GetOwner()
if owner:GetVelocity():Length2DSqr() < 1 then
owner:DoAnimation(ACT_GMOD_GESTURE_DISAGREE)
end
owner:EmitSound('octoteam/characters/dog/rawr' .. math.random(2) .. '.ogg')
self:SetNextPrimaryFire(CurTime() + 1.5)
end
function SWEP:SecondaryAttack()
local owner = self:GetOwner()
if owner:GetVelocity():Length2DSqr() < 1 then
owner:DoAnimation(ACT_GMOD_GESTURE_BOW)
end
timer.Simple(0.5, function()
if IsValid(owner) then owner:EmitSound('octoteam/characters/dog/bark' .. math.random(5) .. '.ogg') end
end)
self:SetNextSecondaryFire(CurTime() + 0.5)
end
function SWEP:Think()
if not (self.attack and CurTime() > self.attack) then return end
self.attack = nil
local owner = self:GetOwner()
owner:LagCompensation(true)
local aim = owner:EyeAngles():Forward()
local tr = util.TraceLine({
start = owner:GetShootPos(),
endpos = owner:GetShootPos() + aim * self.HitDistance,
filter = owner,
mask = MASK_SHOT_HULL
})
if not IsValid(tr.Entity) then
tr = util.TraceHull({
start = owner:GetShootPos(),
endpos = owner:GetShootPos() + aim * self.HitDistance,
filter = owner,
mins = Vector(-10, -10, -8),
maxs = Vector(10, 10, 8),
mask = MASK_SHOT_HULL
})
end
if IsValid(tr.Entity) and tr.Entity:IsPlayer() and tr.Entity:Health() > 0 then
local dmginfo = DamageInfo()
local attacker = owner
if not IsValid(attacker) then attacker = self end
dmginfo:SetAttacker(attacker)
dmginfo:SetInflictor(self)
local dmgAmount = math.random(8, 12)
dmginfo:SetDamage(dmgAmount)
dmginfo:SetDamageType(DMG_SLASH)
tr.Entity:TakeDamageInfo(dmginfo)
DarkRP.damageHands(tr.Entity, 70)
tr.Entity:MoveModifier('dog-bite', {
walkmul = 0.75,
runmul = 0.75,
nojump = true,
})
tr.Entity:EmitSound('vo/npc/' .. (tr.Entity:IsMale() and '' or 'fe') .. 'male01/pain0' .. math.random(9) .. '.wav')
timer.Create('dog-bite' .. tr.Entity:SteamID(), math.random(2, 4), 1, function()
tr.Entity:MoveModifier('dog-bite')
end)
owner:EmitSound('npc/barnacle/barnacle_crunch' .. math.random(2,3) .. '.wav')
end
owner:LagCompensation(false)
end