在 lua 中循环无限制的车辆生成菜单

Citizen.CreateThread(function()
    while true do
        Citizen.Wait(0)
        local playerPed = GetPlayerPed()
        local rank = exports.XpM:XPM_GetRank() --从经验系统 XpM 中获取玩家等级
print('等级:' .. rank)
        if rank>50 then
          EighthItem(mainMenu) --玩家可选择车辆的所有不同菜单
          FifthItem(mainMenu)
          SixthItem(mainMenu)
          ThirdItem(mainMenu)
          ForuthItem(mainMenu)
          SeventhItem(mainMenu)
          FirstItem(mainMenu)
          SecondItem(mainMenu)
        elseif rank>40 then
          FifthItem(mainMenu)
          SixthItem(mainMenu)
          ThirdItem(mainMenu)
          ForuthItem(mainMenu)
          SeventhItem(mainMenu)
          FirstItem(mainMenu)
          SecondItem(mainMenu)
        elseif rank>30 then
          SixthItem(mainMenu)
          ThirdItem(mainMenu)
          ForuthItem(mainMenu)
          SeventhItem(mainMenu)
          FirstItem(mainMenu)
          SecondItem(mainMenu)
        elseif rank>20 then
          ThirdItem(mainMenu)
          ForuthItem(mainMenu)
          SeventhItem(mainMenu)
          FirstItem(mainMenu)
          SecondItem(mainMenu)
        else
          ForuthItem(mainMenu)
          SeventhItem(mainMenu)
          FirstItem(mainMenu)
          SecondItem(mainMenu)
        end
       _menuPool:RefreshIndex()
    end
end)
Citizen.CreateThread(function()
    while true do   --
        Citizen.Wait(0)
        _menuPool:ProcessMenus()
        if not IsPedInAnyVehicle(PlayerPedId()) and IsControlJustPressed(1, 243) then  --控制台
            mainMenu:Visible(not mainMenu:Visible())
        elseif IsPedInAnyVehicle(PlayerPedId()) and IsControlJustPressed(1, 243) then  --控制台
            exports['mythic_notify']:SendAlert('error', '玩家正在驾驶载具')
        end
    end
end)

这段代码用于通过菜单生成车辆,但是当运行代码时,菜单会无限制地循环。等级参数用于为特定等级的人打开特定车辆类别。玩家的等级与一个经验系统脚本相关联并检索以在打开菜单之前检查等级并提供相应的可用类别。

点赞
用户17180433
用户17180433

只需创建一个布尔变量来定义循环是否已经运行过。

例如:

local LoopRan = false
Citizen.CreateThread(function()
 while true do
  while LoopRan == false do
   -- 做一些事情
   LoopRan = true
   Citizen.Wait(1337)
  end
 end
end)
2021-11-15 09:09:30