add sborka
This commit is contained in:
146
garrysmod/addons/tacrp/lua/weapons/tacrp_base/sh_think.lua
Normal file
146
garrysmod/addons/tacrp/lua/weapons/tacrp_base/sh_think.lua
Normal file
@@ -0,0 +1,146 @@
|
||||
function SWEP:Think()
|
||||
local owner = self:GetOwner()
|
||||
|
||||
local stop = self:RunHook("Hook_PreThink")
|
||||
if stop then return end
|
||||
|
||||
local cfm = self:GetCurrentFiremode()
|
||||
if self:GetValue("RunawayBurst") and cfm < 0 then
|
||||
if self:GetBurstCount() >= -cfm then
|
||||
self:SetBurstCount(0)
|
||||
self:SetNextPrimaryFire(CurTime() + self:GetValue("PostBurstDelay"))
|
||||
elseif self:GetBurstCount() > 0 and self:GetBurstCount() < -cfm then
|
||||
self:PrimaryAttack()
|
||||
end
|
||||
else
|
||||
if (owner:KeyReleased(IN_ATTACK) or (cfm < 0 and self:GetBurstCount() >= -cfm)) then
|
||||
if cfm < 0 and self:GetBurstCount() > 1 then
|
||||
if !self:GetValue("AutoBurst") then
|
||||
self.Primary.Automatic = false
|
||||
end
|
||||
local add = 0
|
||||
if self:GetBurstCount() >= -cfm then
|
||||
add = 60 / self:GetValue("RPM")
|
||||
end
|
||||
self:SetNextPrimaryFire(CurTime() + self:GetValue("PostBurstDelay") + add)
|
||||
end
|
||||
self:SetBurstCount(0)
|
||||
end
|
||||
end
|
||||
|
||||
if self:GetPatternCount() > 0 and (self:GetRecoilAmount() == 0 or self:GetReloading()) then
|
||||
self:SetPatternCount(0)
|
||||
end
|
||||
|
||||
if owner:KeyPressed(TacRP.IN_CUSTOMIZE) then
|
||||
if self:GetScopeLevel() == 0 then
|
||||
self:ToggleCustomize(!self:GetCustomize())
|
||||
else
|
||||
if !self:GetValue("AlwaysPeek") then
|
||||
local shouldpeek = !self:GetPeeking()
|
||||
|
||||
if owner:GetInfoNum("tacrp_togglepeek", 0) == 0 then
|
||||
shouldpeek = true
|
||||
end
|
||||
|
||||
self:SetPeeking(shouldpeek)
|
||||
|
||||
if self:GetSightAmount() > 0 then
|
||||
self:SetLastScopeTime(CurTime())
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif !self:GetValue("AlwaysPeek") and owner:GetInfoNum("tacrp_togglepeek", 0) == 0 and self:GetPeeking() and owner:KeyReleased(TacRP.IN_CUSTOMIZE) then
|
||||
self:SetPeeking(false)
|
||||
|
||||
if self:GetSightAmount() > 0 then
|
||||
self:SetLastScopeTime(CurTime())
|
||||
end
|
||||
end
|
||||
|
||||
if owner:KeyPressed(TacRP.IN_TACTICAL) then
|
||||
self:ToggleTactical()
|
||||
end
|
||||
|
||||
self:ThinkRecoil()
|
||||
|
||||
self:ThinkSprint()
|
||||
|
||||
self:ThinkGrenade()
|
||||
|
||||
self:ThinkReload()
|
||||
|
||||
self:ThinkSights()
|
||||
|
||||
self:ThinkFreeAim()
|
||||
|
||||
self:ThinkBlindFire()
|
||||
|
||||
self:ProcessTimers()
|
||||
|
||||
self:ThinkLockOn()
|
||||
|
||||
self:ThinkHoldBreath()
|
||||
|
||||
if self:GetValue("Melee") and self:GetOwner():KeyPressed(TacRP.IN_MELEE) then
|
||||
self:Melee()
|
||||
return
|
||||
end
|
||||
|
||||
if IsValid(self:GetOwner()) and self:GetOwner():IsPlayer() and self:GetValue("TacticalThink") and self:GetTactical() then
|
||||
self:GetValue("TacticalThink")(self)
|
||||
end
|
||||
|
||||
-- if IsValid(self:GetOwner()) and self:GetTactical() and self:GetValue("Minimap") and (SERVER and !game.SinglePlayer()) and (self.NextRadarBeep or 0) < CurTime() then
|
||||
-- self.NextRadarBeep = CurTime() + 1.5
|
||||
-- local f = RecipientFilter()
|
||||
-- f:AddPVS(self:GetPos())
|
||||
-- f:RemovePlayer(self:GetOwner())
|
||||
-- local s = CreateSound(self, "plats/elevbell1.wav", f)
|
||||
-- s:SetSoundLevel(75)
|
||||
-- s:PlayEx(0.25, 105)
|
||||
-- end
|
||||
|
||||
if self:GetJammed() and !self:StillWaiting() and TacRP.ConVars["jam_autoclear"]:GetBool() then
|
||||
local t = self:PlayAnimation("jam", 0.75, true, true)
|
||||
self:GetOwner():DoCustomAnimEvent(PLAYERANIMEVENT_CANCEL_RELOAD, t * 1000)
|
||||
self:SetJammed(false)
|
||||
end
|
||||
|
||||
if self:GetNextIdle() < CurTime() and (SERVER or !game.SinglePlayer()) then
|
||||
self:Idle()
|
||||
end
|
||||
|
||||
if self:GetValue("Bipod") and self:GetInBipod() and !self:CanBipod() then
|
||||
self:ExitBipod()
|
||||
end
|
||||
|
||||
if CLIENT and (IsFirstTimePredicted() or game.SinglePlayer()) then
|
||||
|
||||
self:ThinkNearWall()
|
||||
|
||||
if IsValid(self.MuzzleLight) then
|
||||
if (self.MuzzleLightEnd or 0) < UnPredictedCurTime() then
|
||||
self.MuzzleLight:Remove()
|
||||
self.MuzzleLight = nil
|
||||
else
|
||||
self.MuzzleLight:SetBrightness( math.Remap( UnPredictedCurTime(), self.MuzzleLightStart, self.MuzzleLightEnd, self.MuzzleLightBrightness, 0 ) )
|
||||
self.MuzzleLight:SetFOV( math.Remap( UnPredictedCurTime(), self.MuzzleLightStart, self.MuzzleLightEnd, self.MuzzleLightFOV, 60 ) )
|
||||
self.MuzzleLight:Update()
|
||||
end
|
||||
end
|
||||
|
||||
if !self.LoadedPreset then
|
||||
self.LoadedPreset = true
|
||||
|
||||
if TacRP.ConVars["autosave"]:GetBool() and TacRP.ConVars["free_atts"]:GetBool() then
|
||||
self:LoadPreset()
|
||||
-- self:DoDeployAnimation()
|
||||
end
|
||||
end
|
||||
|
||||
self:CanBipod()
|
||||
end
|
||||
|
||||
self:RunHook("Hook_PostThink")
|
||||
end
|
||||
Reference in New Issue
Block a user