Modules
Client
Menu Radial

Menu Radial

  • O menu radial possui um menu global que, por padrão, é acessado com z e só é exibido quando há pelo menos um item.
  • Você pode adicionar e remover itens do menu global usando lib.addRadialItem e lib.removeRadialItem.
  • Use lib.registerRadial para criar submenus e utilize a propriedade menu nos itens para abrir esses submenus.

lib.addRadialItem

Item ou array de itens adicionados ao menu radial global.

lib.addRadialItem(items)
  • items: table (object ou array)
    • id: string
      • Id usado para remover opções.
    • icon: string
      • Ou um ícone do Font Awesome ou uma URI customizada.
    • iconWidth?: number
    • iconHeight?: number
      • No caso de uma URI customizada, ajuste o tamanho do ícone.
    • label: string
      • O label usa \\n para inserir uma nova linha
    • menu?: string
      • Id de um menu para abrir.
    • onSelect: function(currentMenu: string | nil, itemIndex: number) | string
      • Função executada quando um usuário clica no item.
    • keepOpen?: boolean

lib.removeRadialItem

Id de um item a ser removido do menu global.

lib.removeRadialItem(item)
  • id: string

lib.clearRadialItems

Remove todos os itens do menu radial.

lib.clearRadialItems()

lib.registerRadial

Registra um submenu radial com opções predefinidas.

lib.registerRadial(radial)
  • radial: table (object)
    • id: string
      • Id único do menu usado para abrir via propriedade menu em um item.
    • items: array
      • icon: string
      • label: string
        • O label usa \n para inserir uma nova linha
      • menu?: string
        • Id de um menu para abrir.
      • onSelect?: function(currentMenu: string | nil, itemIndex: number) | string
        • Função executada quando um usuário clica no item.

lib.hideRadial

Oculta o menu radial se estiver aberto.

lib.hideRadial()

lib.disableRadial

Impede que jogadores abram o menu radial.

lib.disableRadial(state)
  • state: boolean
    • Se o menu radial deve ser desabilitado

lib.getCurrentRadialId

Retorna o id do menu radial atualmente aberto.

local id = lib.getCurrentRadialId()

Exemplo de Uso

💡

Ao adicionar itens ao menu radial, sejam globais ou de submenu, use labels o mais curtos possível — labels longos ficarão fora de lugar e não devem ser usados no menu radial devido à sua densidade.

Aqui está um exemplo de uso com algumas opções globais e uma opção utilizando o sistema de pontos da lib.

exports('myMenuHandler', function(menu, item)
    print(menu, item)
 
    if menu == 'police_menu' and item == 1 then
        print('Handcuffs')
    end
end)
 
lib.registerRadial({
  id = 'police_menu',
  items = {
    {
      label = 'Handcuff',
      icon = 'handcuffs',
      onSelect = 'myMenuHandler'
    },
    {
      label = 'Frisk',
      icon = 'hand'
    },
    {
      label = 'Fingerprint',
      icon = 'fingerprint'
    },
    {
      label = 'Jail',
      icon = 'bus'
    },
    {
      label = 'Search',
      icon = 'magnifying-glass',
      onSelect = function()
        print('Search')
      end
    }
  }
})
 
lib.addRadialItem({
  {
    id = 'police',
    label = 'Police',
    icon = 'shield-halved',
    menu = 'police_menu'
  },
  {
    id = 'business_stuff',
    label = 'Business',
    icon = 'briefcase',
    onSelect = function()
      print("Business")
    end
  }
})
 
local coords = GetEntityCoords(cache.ped)
local point = lib.points.new(coords, 5)
 
function point:onEnter()
  lib.addRadialItem({
    id = 'garage_access',
    icon = 'warehouse',
    label = 'Garage',
    onSelect = function()
      print('Garage')
    end
  })
end
 
function point:onExit()
  lib.removeRadialItem('garage_access')
end

radial1 radial2