add sborka

This commit is contained in:
2026-03-31 10:27:04 +03:00
commit f5e5f56c84
2345 changed files with 382127 additions and 0 deletions

View File

@@ -0,0 +1,183 @@
AddCSLuaFile()
SWEP.Base = "tacrp_base"
// spawnable
SWEP.Spawnable = false
SWEP.AdminOnly = false
SWEP.NoAimAssist = true
// names and stuff
SWEP.PrintName = "Arctic's Tactical RP Base Grenade"
SWEP.Category = "[FT] Оружие"
SWEP.SubCatTier = "9Special"
SWEP.SubCatType = "9Throwable"
SWEP.Description = ""
SWEP.ViewModel = "models/weapons/cstrike/c_eq_fraggrenade.mdl"
SWEP.WorldModel = "models/weapons/w_eq_fraggrenade.mdl"
SWEP.ViewModelFOV = 65
SWEP.NoRanger = true
SWEP.NoStatBox = true
SWEP.NPCUsable = false
SWEP.Slot = 4
SWEP.FreeAim = false
SWEP.DrawCrosshair = true
SWEP.DrawCrosshairInSprint = true
SWEP.CrosshairStatic = true
SWEP.Scope = false
SWEP.CanBlindFire = false
SWEP.CanQuickNade = false
SWEP.CanMeleeAttack = false
SWEP.Firemode = 0
SWEP.Ammo = ""
SWEP.PrimaryGrenade = ""
SWEP.Sway = 0
SWEP.QuickNadeTimeMult = 0.6
function SWEP:Equip(newowner)
local wep = self:GetOwner():GetActiveWeapon()
if self:GetOwner():IsPlayer() and wep != self and wep.ArcticTacRP and !wep:CheckGrenade(nil, true) then
self:GetOwner():SetNWInt("ti_nade", TacRP.QuickNades[self.PrimaryGrenade].Index)
end
if engine.ActiveGamemode() == "terrortown" and SERVER then
if self:IsOnFire() then
self:Extinguish()
end
self.fingerprints = self.fingerprints or {}
if !table.HasValue(self.fingerprints, newowner) then
table.insert(self.fingerprints, newowner)
end
if self:HasSpawnFlags(SF_WEAPON_START_CONSTRAINED) then
local flags = self:GetSpawnFlags()
local newflags = bit.band(flags, bit.bnot(SF_WEAPON_START_CONSTRAINED))
self:SetKeyValue("spawnflags", newflags)
end
end
if engine.ActiveGamemode() == "terrortown" and SERVER and IsValid(newowner) and (self.StoredAmmo or 0) > 0 and self.Primary.Ammo != "none" then
newowner:GiveAmmo(self.StoredAmmo, self.Primary.Ammo)
self.StoredAmmo = 0
end
end
function SWEP:ThinkSprint()
end
function SWEP:ThinkSights()
end
function SWEP:ThinkGrenade()
if self:GetPrimedGrenade() and self:GetAnimLockTime() < CurTime() then
if !self:GetOwner():KeyDown(self.GrenadeDownKey) then
self:ThrowGrenade()
self:SetPrimedGrenade(false)
elseif SERVER and self.GrenadeDownKey == IN_ATTACK then
self.GrenadeThrowCharge = math.Clamp(CurTime() - self:GetAnimLockTime(), 0, 0.25) * 2
end
elseif !self:GetPrimedGrenade() then
local nade = TacRP.QuickNades[self:GetValue("PrimaryGrenade")]
if !TacRP.IsGrenadeInfiniteAmmo(nade) and self:GetOwner():GetAmmoCount(nade.Ammo) == 0 then
if SERVER then
self:Remove()
elseif CLIENT and IsValid(self:GetOwner():GetPreviousWeapon()) and self:GetOwner():GetPreviousWeapon():IsWeapon() then
input.SelectWeapon(self:GetOwner():GetPreviousWeapon())
end
end
end
end
function SWEP:PrimaryAttack()
if engine.ActiveGamemode() == "terrortown" and GetRoundState() == ROUND_PREP and
((TTT2 and !GetConVar("ttt_nade_throw_during_prep"):GetBool()) or (!TTT2 and GetConVar("ttt_no_nade_throw_during_prep"):GetBool())) then
return
end
self.Primary.Automatic = false
self.Secondary.Automatic = false
self.GrenadeDownKey = IN_ATTACK
self.GrenadeThrowOverride = false
self.GrenadeThrowCharge = 0
if self:GetValue("Melee") and self:GetOwner():KeyDown(IN_USE) then
self:Melee()
return
end
if self:StillWaiting() then
return
end
self:SetBaseSettings()
local stop = self:RunHook("Hook_PreShoot")
if stop then return end
self:PrimeGrenade()
self:SetNextPrimaryFire(self:GetAnimLockTime())
self:SetNextSecondaryFire(self:GetAnimLockTime())
self:RunHook("Hook_PostShoot")
if game.SinglePlayer() and SERVER then self:CallOnClient("PrimaryAttack") end
end
function SWEP:SecondaryAttack()
if engine.ActiveGamemode() == "terrortown" and GetRoundState() == ROUND_PREP and GetConVar("ttt_no_nade_throw_during_prep"):GetBool() then
return
end
self.Primary.Automatic = false
self.Secondary.Automatic = false
self.GrenadeDownKey = IN_ATTACK2
self.GrenadeThrowOverride = true
if self:StillWaiting() then
return
end
self:SetBaseSettings()
local stop = self:RunHook("Hook_PreShoot")
if stop then return end
self:PrimeGrenade()
self:SetNextPrimaryFire(self:GetAnimLockTime())
self:SetNextSecondaryFire(self:GetAnimLockTime())
self:RunHook("Hook_PostShoot")
if game.SinglePlayer() and SERVER then self:CallOnClient("SecondaryAttack") end
end
function SWEP:Reload()
end
function SWEP:PreDrop()
if SERVER and IsValid(self:GetOwner()) and self.Primary.Ammo != "" and self.Primary.Ammo != "none" then
local ammo = self:Ammo1()
if ammo > 0 then
self.StoredAmmo = 1
self:GetOwner():RemoveAmmo(1, self.Primary.Ammo)
end
end
end