Menus

Documentation pour la création des menus en jeu.

Les menus sont basés sur ceux ceux de la librairie OverExtended.

Il est donc nécéssaire d'importer la librairie à chaque fois.

Déclaration d'un menu

Enregistrement du menu en cache sous l'id spécifié au moment de la création

lib.registerMenu(data, cb)

Structure de l'objet

Nom de la propriété
Type
Description

id

string

Identifiant unique du composant de menu.

title

string

Titre du menu qui sera affiché en haut.

subtitle

string

Sous-titre affiché sous le titre dans l'en-tête du menu.

image

string

URL de l'image affichée à gauche du titre et du sous-titre dans l'en-tête du menu.

options

array

Tableau de propriétés représentant les options du menu. Chacune de ces propriétés est décrite ci-dessous.

label

string

Étiquette associée à l'option.

subtitle (optionnel)

string

Texte affiché sous le titre de l'option. Généralement combiné avec l'image spécifique à l'option.

image (optionnel)

string

URL de l'image affichée à gauche du bouton de l'option.

progress (optionnel)

number

Indique la progression dans le menu (si applicable).

progressBarEditable (optionnel)

boolean

Permet d'activer la modification d'une barre de progression à l'aide des flèches. Par défaut : false.

colorScheme (optionnel)

string

Schéma de couleurs utilisé pour styliser le menu.

icon (optionnel)

string

Icône FontAwesome affichée à gauche de l'option. Supporte également les URL d'images (png, webp), mais l'utilisation d'icônes FontAwesome est recommandée.

iconColor (optionnel)

string

Couleur de l'icône affichée à gauche.

iconAnimation (optionnel)

string

Animation de l'icône (valeurs possibles : spin, spinPulse, spinReverse, pulse, beat, fade, beatFade, bounce, shake).

values (optionnel)

array

Liste de valeurs ou d'objets {label: string, description: string} pour créer une liste défilante latérale.

checked (optionnel)

boolean

Si défini sur true ou false, le bouton devient une case à cocher. Si values est également fourni, le bouton devient une liste déroulante défilante.

description (optionnel)

string

Affiche une infobulle en dessous du menu pour l'élément survolé.

defaultIndex (optionnel)

number

Définit l'index actuel de la liste sur le nombre spécifié.

args (optionnel)

object

Permet de passer des arguments à travers le bouton. Si le bouton a des values, isScroll est automatiquement passé. Si checked est défini, isCheck est automatiquement passé.

close (optionnel)

boolean

Si défini sur false, le menu ne se fermera pas après l'interaction avec cette option.

position (optionnel)

string

Position du menu à l'écran (top-left, top-right, bottom-left, bottom-right). Par défaut : top-left.

disableInput (optionnel)

boolean

Si défini sur true, désactive l'entrée utilisateur. Par défaut : false.

canClose (optionnel)

boolean

Si défini sur false, l'utilisateur ne pourra pas fermer le menu sans appuyer sur l'un des boutons.

isSubmenu (optionnel)

boolean

Si défini sur true, un icône spécifique est affiché pour indiquer qu'il s'agit d'un sous-menu.

isSeparator (optionnel)

boolean

Crée un séparateur. Doit être uniquement accompagné d'un label pour faire un sous-titre.

onClose

function

Fonction exécutée lorsque le menu est fermé via la touche Escape ou Backspace.

onSelected

function

Fonction exécutée lorsque l'option sélectionnée dans le menu change.

onSideScroll

function

Fonction exécutée chaque fois qu'un élément de la liste défilante est modifié.

onCheck

function

Fonction exécutée chaque fois qu'une case à cocher est basculée.

onProgressUpdate

function

Fonction exécutée lorsqu'une barre de progression est modifiée.

cb

function

Fonction de rappel lorsque l'élément du menu est pressé.

Fonctions utilitaires

lib.showMenu

Afficher un menu avec l'id passé en paramètre

lib.showMenu(id)
  • id: string

lib.hideMenu

Ferme le menu si le paramètre passé est true

lib.hideMenu(onExit)
  • onExit: boolean (Si true execute la fonction onClose du menu)

lib.getOpenMenu

Récupère l'id du menu actuellement ouvert

lib.getOpenMenu()

lib.setMenuOptions

Modifie les options du menu spécifié

lib.setMenuOptions(id, options, index)

  • id: string

  • options: table (object or array)

  • index?: number

    • Si spécifié, ne modifiera que l'index ciblé du menu.

Exemple

lib.registerMenu({
    id = 'custom_menu',
    title = 'Temps & Météo',
    subtitle = 'ADMINISTRATION',
    image = 'https://cdn-icons-png.flaticon.com/512/7211/7211100.png',
    position = 'top-right',

    onProgressUpdate = function(selected, scrollIndex, args, progress)
        print('Progress updated', selected, progress)
    end,

    options = {
        {
            label = 'Bouton Submenu',
            icon = 'arrows-up-down-left-right',
            description = 'La description de baisé',
            isSubmenu = true
        },
        {
            label = 'Type de véhicule',
            values = {
                'Sport',
                'Super-Sport',
                {
                    label = 'Moto',
                    description = 'Moto de biker uniquement'
                }
            },
            icon = 'tag',
            description = 'Listing des catégories'
        },
        {
            label = 'Niveau de mazout',
            progress = 30,
            icon = 'oil-can',
            description = 'Augmentez le mazout avec les flèches',
            progressBarEditable = true,
            colorScheme = '#20C997',
            iconColor = '#55778d'
        },
        {
            label = 'Button animé',
            icon = 'spinner',
            iconAnimation = 'spin'
        },
        {
            label = 'Serveurs',
            isSeparator = true
        },
        {
            label = 'Tryade',
            image = 'https://i.postimg.cc/NM95gBhp/Tryade-2023-Dev.png',
            subtitle = 'Roleplay',
            isSubmenu = true
        }
    }
})

Mis à jour