【问题标题】:Garry's Mod Lua: How to make delay/cooldown?Garry's Mod Lua:如何进行延迟/冷却?
【发布时间】:2020-08-02 06:17:50
【问题描述】:

我故意将 IN_USE 设置为我的主要攻击,而不是 SWEP:PrimaryAttack。但是这样做,它使我可以进行垃圾邮件攻击,所以我正在寻找它的延迟/冷却时间。我环顾了 CurTime 和其他东西;但是,我已经有一个 IF then Else 语句并且不确定如何在其中使用 CurTime 编码。

function SWEP:Think()
    if self.Owner:KeyDown(IN_USE) && self.Owner:IsPlayer() then
        local Angles = self.Owner:GetAngles()

        self:SendAnim()   
        self:SetWeaponHoldType( "melee" )
        timer.Simple(0.1, function() 
            if not IsValid(self) or not self.Owner:Alive() then return end self.Weapon:EmitSound( "weapons/iceaxe/iceaxe_swing1.wav" ) self.Weapon:PrimarySlash() self.Owner:SetAnimation( PLAYER_ATTACK1 ) end )
        timer.Simple(0.35, function() 
            if not IsValid(self) or not self.Owner:Alive() then return end self.Weapon:EmitSound( "weapons/iceaxe/iceaxe_swing1.wav" ) self.Weapon:PrimarySlash() end)
        timer.Simple(0.5, function() if not IsValid(self) or not self.Owner:Alive() then return end self:SetWeaponHoldType( "knife" ) end)
    end

【问题讨论】:

    标签: lua garrys-mod


    【解决方案1】:
    function SWEP:Initialize()
        self.NextUseTime = CurTime()
        self.UseDelay = 1.5
    end
    
    function SWEP:Think()
        if self.Owner:KeyDown(IN_USE) && self.Owner:IsPlayer() && ( self.NextUseTime - CurTime() <= 0 ) then
            local Angles = self.Owner:GetAngles()
    
            self:SendAnim()   
            self:SetWeaponHoldType( "melee" )
            timer.Simple(0.1, function() 
                if not IsValid(self) or not self.Owner:Alive() then return end self.Weapon:EmitSound( "weapons/iceaxe/iceaxe_swing1.wav" ) self.Weapon:PrimarySlash() self.Owner:SetAnimation( PLAYER_ATTACK1 ) end )
            timer.Simple(0.35, function() 
                if not IsValid(self) or not self.Owner:Alive() then return end self.Weapon:EmitSound( "weapons/iceaxe/iceaxe_swing1.wav" ) self.Weapon:PrimarySlash() end)
            timer.Simple(0.5, function() if not IsValid(self) or not self.Owner:Alive() then return end self:SetWeaponHoldType( "knife" ) end)
    
            self.NextUseTime = CurTime() + self.UseDelay
        end
    

    如果您已经有一个 SWEP:Initialize 函数,只需复制其中的内容并将其添加到您现有的函数中。

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2021-02-26
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多