mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
115
lua/entities/ent_mannable_combinesniper.lua
Normal file
115
lua/entities/ent_mannable_combinesniper.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
--[[
|
||||
| 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
|
||||
Reference in New Issue
Block a user