add sborka
This commit is contained in:
174
garrysmod/addons/tacrp/lua/weapons/tacrp_c4_detonator.lua
Normal file
174
garrysmod/addons/tacrp/lua/weapons/tacrp_c4_detonator.lua
Normal file
@@ -0,0 +1,174 @@
|
||||
SWEP.Base = "tacrp_base"
|
||||
SWEP.Spawnable = true
|
||||
|
||||
AddCSLuaFile()
|
||||
|
||||
// names and stuff
|
||||
SWEP.PrintName = "C4 Detonator"
|
||||
SWEP.Category = "[FT] Специальное Оружие"
|
||||
|
||||
SWEP.NoAimAssist = true
|
||||
|
||||
SWEP.SubCatTier = "9Special"
|
||||
SWEP.SubCatType = "9Equipment"
|
||||
|
||||
SWEP.Description = "Device for touching off C4 charges or other types of remote explosives."
|
||||
SWEP.Description_Quote = "\"Yeah, fuck you too!\"" -- The Thing (1982)
|
||||
|
||||
SWEP.ViewModel = "models/weapons/tacint/v_c4.mdl"
|
||||
SWEP.WorldModel = "models/weapons/tacint/w_c4_det.mdl"
|
||||
|
||||
SWEP.NoRanger = true
|
||||
SWEP.NoStatBox = true
|
||||
|
||||
|
||||
SWEP.ArcadeStats = {
|
||||
MeleeSpeedMult = 1,
|
||||
}
|
||||
|
||||
SWEP.Slot = 4
|
||||
|
||||
SWEP.NPCUsable = false
|
||||
|
||||
// misc. shooting
|
||||
|
||||
SWEP.Firemode = 1
|
||||
|
||||
SWEP.RPM = 120
|
||||
|
||||
SWEP.CanBlindFire = false
|
||||
|
||||
SWEP.Ammo = "ti_c4"
|
||||
SWEP.ClipSize = -1
|
||||
SWEP.Primary.ClipSize = -1
|
||||
SWEP.SupplyAmmoAmount = 3
|
||||
|
||||
// handling
|
||||
|
||||
SWEP.MoveSpeedMult = 1
|
||||
|
||||
|
||||
SWEP.MeleeSpeedMultTime = 2 // seconds to apply slow down for
|
||||
|
||||
SWEP.SprintToFireTime = 0.25
|
||||
|
||||
SWEP.Scope = false
|
||||
SWEP.NoSecondaryMelee = true
|
||||
|
||||
// hold types
|
||||
|
||||
SWEP.HoldType = "normal"
|
||||
SWEP.HoldTypeSprint = "normal"
|
||||
|
||||
SWEP.GestureShoot = ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL
|
||||
SWEP.GestureReload = ACT_HL2MP_GESTURE_RELOAD_PISTOL
|
||||
|
||||
SWEP.PassiveAng = Angle(0, 0, 0)
|
||||
SWEP.PassivePos = Vector(1, -2, -5)
|
||||
|
||||
SWEP.SprintAng = Angle(0, 30, 0)
|
||||
SWEP.SprintPos = Vector(2, 0, -12)
|
||||
|
||||
SWEP.HolsterVisible = true
|
||||
SWEP.HolsterSlot = TacRP.HOLSTER_SLOT_GEAR
|
||||
SWEP.HolsterPos = Vector(2, 0, 0)
|
||||
SWEP.HolsterAng = Angle(-90, -90, 15)
|
||||
|
||||
// sounds
|
||||
|
||||
local path = "TacRP/weapons/c4/"
|
||||
|
||||
SWEP.AnimationTranslationTable = {
|
||||
["deploy"] = "deploy",
|
||||
["melee"] = {"melee1", "melee2"}
|
||||
}
|
||||
|
||||
// attachments
|
||||
|
||||
SWEP.Attachments = {
|
||||
[1] = {
|
||||
PrintName = "Accessory",
|
||||
Category = {"acc_holster"},
|
||||
AttachSound = "TacRP/weapons/flashlight_on.wav",
|
||||
DetachSound = "TacRP/weapons/flashlight_off.wav",
|
||||
},
|
||||
[2] = {
|
||||
PrintName = "Perk",
|
||||
Category = {"perk_melee", "perk_throw"},
|
||||
AttachSound = "TacRP/weapons/flashlight_on.wav",
|
||||
DetachSound = "TacRP/weapons/flashlight_off.wav",
|
||||
}
|
||||
}
|
||||
|
||||
SWEP.FreeAim = false
|
||||
|
||||
SWEP.AttachmentCapacity = 30 // amount of "Capacity" this gun can accept
|
||||
|
||||
SWEP.DrawCrosshair = false
|
||||
|
||||
local function addsound(name, spath)
|
||||
sound.Add({
|
||||
name = name,
|
||||
channel = 16,
|
||||
volume = 1.0,
|
||||
sound = spath
|
||||
})
|
||||
end
|
||||
|
||||
addsound("TacInt_C4_Detonator.Detonator_Press", path .. "detonator_press.wav")
|
||||
addsound("TacInt_C4_Detonator.antenna_open", path .. "antenna_open.wav")
|
||||
|
||||
function SWEP:PrimaryAttack()
|
||||
if self:GetValue("Melee") then
|
||||
if self:GetOwner():KeyDown(IN_USE) then
|
||||
self.Primary.Automatic = true
|
||||
self:Melee()
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if self:StillWaiting() then return end
|
||||
|
||||
self:SetBaseSettings()
|
||||
|
||||
self:PlayAnimation("detonate")
|
||||
|
||||
for i, k in pairs(ents.FindByClass("tacrp_proj_nade_*")) do
|
||||
if (k:GetOwner() == self:GetOwner() or k.Attacker == self:GetOwner()) and k.RemoteFuse then
|
||||
k:RemoteDetonate()
|
||||
end
|
||||
end
|
||||
|
||||
self:SetNextPrimaryFire(CurTime() + (60 / self:GetValue("RPM")))
|
||||
end
|
||||
|
||||
function SWEP:IsQuickNadeAllowed()
|
||||
return true // Otherwise it's useless!
|
||||
end
|
||||
|
||||
function SWEP:SecondaryAttack()
|
||||
local nade = self:GetOwner():GetNWInt("ti_nade")
|
||||
if nade != 12 and nade != 6 then
|
||||
self:GetOwner():SetNWInt("ti_nade", 12)
|
||||
end
|
||||
self:PrimeGrenade()
|
||||
end
|
||||
|
||||
SWEP.AutoSpawnable = false
|
||||
|
||||
if engine.ActiveGamemode() == "terrortown" then
|
||||
SWEP.AutoSpawnable = false
|
||||
SWEP.HolsterVisible = false
|
||||
SWEP.Kind = WEAPON_EQUIP
|
||||
SWEP.Slot = 6
|
||||
SWEP.CanBuy = { ROLE_TRAITOR }
|
||||
SWEP.EquipMenuData = {
|
||||
type = "Weapon",
|
||||
desc = "A remote detonator for C4s and Breaching Charges.\nComes with 1 C4 and 3 Breaching Charges.",
|
||||
}
|
||||
|
||||
function SWEP:TTTBought(buyer)
|
||||
buyer:GiveAmmo(1, "ti_c4")
|
||||
buyer:GiveAmmo(3, "ti_charge")
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user