Files
wnsrc/lua/entities/ent_mannable_combinesniper.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

115 lines
2.6 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
AddCSLuaFile()
ENT.Base = "ent_mannable_bakubase"
ENT.PrintName = "Combine Sniper rifle"
ENT.Category = "Jakub Baku Emplacements"
ENT.Spawnable = true
ENT.AdminOnly = false
if(SERVER) then
ENT._HideGunModel = true
ENT._Automatic = false
ENT._DoNetworking = true
ENT.ShootDelay = 1
function ENT:DoInit()
self._HideGunModel = true
self._Automatic = false
self._DoNetworking = true
self.ShootDelay = 1
end
function ENT:DoRemove()
end
function ENT:OnActivateGun()
if(!IsValid(self._User) || !self._User:IsPlayer()) then return end
self._User:SetFOV(20)
end
function ENT:OnDeactivateGun()
if(!IsValid(self._User) || !self._User:IsPlayer()) then return end
self._User:SetFOV(0)
end
function ENT:DoImpactEffect(tr, _dmg)
local ef = EffectData()
ef:SetOrigin(tr.HitPos + tr.HitNormal * 2)
ef:SetNormal(tr.HitNormal)
ef:SetScale(1)
util.Effect("AR2Impact", ef)
return true
end
function ENT:DoShoot(dest)
local bullet = {
TracerName = "AR2Tracer",
Damage = 40,
Force = 10,
Spread = Vector(0, 0, 0),
Src = self:GetAttachment(1).Pos,
Dir = dest,
Attacker = self._User,
Inflictor = self,
Callback = function(_att, _tr, _dmg)
if(_tr.HitGroup == HITGROUP_HEAD) then
_dmg:SetDamage(1000)
end
end
}
self:FireBullets(bullet)
self:EmitSound("NPC_Sniper.FireBullet")
local ef = EffectData()
ef:SetEntity(self)
ef:SetAttachment(1)
ef:SetFlags(5)
util.Effect("MuzzleFlash", ef)
end
else
function ENT:DoInit()
local mat = Matrix()
if(IsMounted("ep2")) then
self:SetupCustomModel("models/weapons/w_combine_sniper.mdl")
mat:Rotate(Angle(0, 180, 0))
else
self:SetupCustomModel("models/weapons/w_snip_scout.mdl")
mat:Rotate(Angle(12, 0, 180))
end
self._GunModelMatrix = mat
end
local overlay = Material("effects/combine_binocoverlay")
function ENT:OnActivateGun()
if(self._User == LocalPlayer()) then
hook.Add("HUDPaint", "MannableSniperOverlay", function()
render.SetMaterial(overlay)
render.DrawScreenQuad()
end)
end
end
function ENT:OnDeactivateGun()
if(self._User == LocalPlayer()) then
hook.Remove("HUDPaint", "MannableSniperOverlay")
end
end
local _beam = Material("sprites/bluelaser1")
end