mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
125
gamemodes/terrortown/entities/weapons/weapon_ttt_stungun.lua
Normal file
125
gamemodes/terrortown/entities/weapons/weapon_ttt_stungun.lua
Normal file
@@ -0,0 +1,125 @@
|
||||
--[[
|
||||
| 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()
|
||||
|
||||
SWEP.HoldType = "ar2"
|
||||
|
||||
if CLIENT then
|
||||
SWEP.PrintName = "stungun_name"
|
||||
SWEP.Slot = 6
|
||||
|
||||
SWEP.ViewModelFlip = false
|
||||
SWEP.ViewModelFOV = 54
|
||||
|
||||
SWEP.EquipMenuData = {
|
||||
type = "item_weapon",
|
||||
desc = "ump_desc"
|
||||
};
|
||||
|
||||
SWEP.Icon = "vgui/ttt/icon_ump"
|
||||
SWEP.IconLetter = "q"
|
||||
end
|
||||
|
||||
SWEP.Base = "weapon_tttbase"
|
||||
|
||||
SWEP.Kind = WEAPON_EQUIP
|
||||
SWEP.WeaponID = AMMO_STUN
|
||||
SWEP.CanBuy = {ROLE_DETECTIVE}
|
||||
SWEP.LimitedStock = false
|
||||
SWEP.AmmoEnt = "item_ammo_smg1_ttt"
|
||||
|
||||
SWEP.Primary.Damage = 9
|
||||
SWEP.Primary.Delay = 0.1
|
||||
SWEP.Primary.Cone = 0.02
|
||||
SWEP.Primary.ClipSize = 30
|
||||
SWEP.Primary.ClipMax = 60
|
||||
SWEP.Primary.DefaultClip = 30
|
||||
SWEP.Primary.Automatic = true
|
||||
SWEP.Primary.Ammo = "SMG1"
|
||||
SWEP.Primary.Recoil = 1.2
|
||||
SWEP.Primary.Sound = Sound( "Weapon_UMP45.Single" )
|
||||
|
||||
SWEP.UseHands = true
|
||||
SWEP.ViewModel = "models/weapons/cstrike/c_smg_ump45.mdl"
|
||||
SWEP.WorldModel = "models/weapons/w_smg_ump45.mdl"
|
||||
|
||||
SWEP.IronSightsPos = Vector(-8.735, -10, 4.039)
|
||||
SWEP.IronSightsAng = Vector(-1.201, -0.201, -2)
|
||||
|
||||
SWEP.HeadshotMultiplier = 4.5 -- brain fizz
|
||||
--SWEP.DeploySpeed = 3
|
||||
|
||||
function SWEP:ShootBullet( dmg, recoil, numbul, cone )
|
||||
local sights = self:GetIronsights()
|
||||
|
||||
numbul = numbul or 1
|
||||
cone = cone or 0.01
|
||||
|
||||
-- 10% accuracy bonus when sighting
|
||||
cone = sights and (cone * 0.9) or cone
|
||||
|
||||
local bullet = {}
|
||||
bullet.Num = numbul
|
||||
bullet.Src = self:GetOwner():GetShootPos()
|
||||
bullet.Dir = self:GetOwner():GetAimVector()
|
||||
bullet.Spread = Vector( cone, cone, 0 )
|
||||
bullet.Tracer = 4
|
||||
bullet.Force = 5
|
||||
bullet.Damage = dmg
|
||||
|
||||
bullet.Callback = function(att, tr, dmginfo)
|
||||
if SERVER or (CLIENT and IsFirstTimePredicted()) then
|
||||
local ent = tr.Entity
|
||||
if (not tr.HitWorld) and IsValid(ent) then
|
||||
local edata = EffectData()
|
||||
|
||||
edata:SetEntity(ent)
|
||||
edata:SetMagnitude(3)
|
||||
edata:SetScale(2)
|
||||
|
||||
util.Effect("TeslaHitBoxes", edata)
|
||||
|
||||
if SERVER and ent:IsPlayer() then
|
||||
local eyeang = ent:EyeAngles()
|
||||
|
||||
local j = 10
|
||||
eyeang.pitch = math.Clamp(eyeang.pitch + math.Rand(-j, j), -90, 90)
|
||||
eyeang.yaw = math.Clamp(eyeang.yaw + math.Rand(-j, j), -90, 90)
|
||||
ent:SetEyeAngles(eyeang)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
self:GetOwner():FireBullets( bullet )
|
||||
self:SendWeaponAnim(self.PrimaryAnim)
|
||||
|
||||
-- Owner can die after firebullets, giving an error at muzzleflash
|
||||
if not IsValid(self:GetOwner()) or not self:GetOwner():Alive() then return end
|
||||
|
||||
self:GetOwner():MuzzleFlash()
|
||||
self:GetOwner():SetAnimation( PLAYER_ATTACK1 )
|
||||
|
||||
if self:GetOwner():IsNPC() then return end
|
||||
|
||||
if ((game.SinglePlayer() and SERVER) or
|
||||
((not game.SinglePlayer()) and CLIENT and IsFirstTimePredicted() )) then
|
||||
|
||||
-- reduce recoil if ironsighting
|
||||
recoil = sights and (recoil * 0.75) or recoil
|
||||
|
||||
local eyeang = self:GetOwner():EyeAngles()
|
||||
eyeang.pitch = eyeang.pitch - recoil
|
||||
self:GetOwner():SetEyeAngles( eyeang )
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user