如何给代码添加计时器以防止刷屏?(Lua)

我想要给下面的代码(Lua)添加计时器:

CreateThread(function()

    while true do
        Wait(0)
           --if IsControlPressed(1, 47) then  --  G
            local CitoyenCible, distance = getNearPlayer()
            if (distance ~= -1 and distance < 1.5001) then

                if IsPedArmed(GetPlayerPed(-1), 7) then
                    SetCurrentPedWeapon(GetPlayerPed(-1), GetHashKey('WEAPON_UNARMED'), true)
                end

                if (DoesEntityExist(GetPlayerPed(-1)) and not IsEntityDead(GetPlayerPed(-1))) then
                    ChargementAnimation("melee@unarmed@streamed_variations")
                    TaskPlayAnim(GetPlayerPed(-1), "melee@unarmed@streamed_variations", "plyr_takedown_front_slap", 8.0, 1.0, 1500, 1, 0, 0, 0, 0)
                    TriggerServerEvent("RebornProject:SyncGiffle", GetPlayerServerId(CitoyenCible))
                end
            else
                TriggerEvent("RebornProject:Notification", Notif1)
            end
        end
    end
end)
点赞
用户12430009
用户12430009

在线程外添加一个变量。

local Timer = 0

然后再添加另一个线程,当值大于0时启动计时器。

Citizen.CreateThread(function()
  while true do
    Citizen.Wait(0)
    if Timer > 0 then
      Timer = Timer - 1
      Citizen.Wait(1000)
    end
  end
end)

接下来,在需要的地方使用条件语句来添加变量,同时设置计时器。如果你想让线程一遍又一遍地运行,可以利用Citizen.Wait()函数,但是为了避免立即重启,你可以在最后添加一个计时器。Citizen.Wait(milliseconds)

2019-12-09 13:09:28