Skip to content

tw.menu

Cote : Client

Systeme de menu interactif NUI. Remplacement cross-framework de vorp_menu.

Fonctions

tw.menu.open(data, on_click, on_close)

Ouvre un menu avec la configuration donnee.

ParametreTypeDescription
datatableConfiguration du menu (voir ci-dessous)
on_clickfunction(data, menu)Appelee quand le joueur clique sur un element
on_closefunction(nil, menu)Appelee quand le joueur ferme le menu

Structure de data :

ChampTypeDescription
titlestringTitre du menu
subtitlestring?Sous-titre affiche sous le titre
itemstableTableau d'elements du menu

Structure d'un element :

ChampTypeDescription
labelstringTexte affiche
valueanyValeur passee au callback de clic
descstring?Texte de description
rightLabelstring?Label aligne a droite (ex: prix)
disabledboolean?Si true, l'element est grise et non cliquable
childtable?Sous-menu imbrique (meme structure que data)

Callback on_click :

Le parametre data contient :

ChampTypeDescription
data.currenttable{ value, label, desc } de l'element clique

Le parametre menu est un handle avec une methode :close().

Callback on_close :

Appelee quand le menu est ferme par le joueur (Echap). Le premier parametre est nil, le second est le handle du menu.


tw.menu.close()

Ferme le menu actuellement ouvert.


tw.menu.isOpen()

Verifie si un menu est actuellement ouvert.

Retour : boolean

Exemples

lua
tw.menu.open({
    title = "General Store",
    subtitle = "Valentine",
    items = {
        { label = "Bread", value = "bread", desc = "Fresh baked bread", rightLabel = "$1.50" },
        { label = "Coffee", value = "coffee", desc = "Hot black coffee", rightLabel = "$0.75" },
        { label = "Ammo", value = "ammo", rightLabel = "$5.00", disabled = true },
    }
}, function(data, menu)
    local item = data.current
    print("Selected: " .. item.label .. " (value: " .. tostring(item.value) .. ")")
    menu:close()
end, function(_, menu)
    print("Menu closed by player")
end)
lua
tw.menu.open({
    title = "Crafting",
    items = {
        { label = "Weapons", value = "weapons", child = {
            title = "Weapons",
            items = {
                { label = "Knife", value = "knife", rightLabel = "2x Iron" },
                { label = "Bow", value = "bow", rightLabel = "3x Wood" },
            }
        }},
        { label = "Food", value = "food", child = {
            title = "Food",
            items = {
                { label = "Cooked Meat", value = "meat", rightLabel = "1x Raw Meat" },
            }
        }},
    }
}, function(data, menu)
    print("Craft: " .. data.current.value)
    menu:close()
end, function(_, menu)
    print("Closed")
end)

Notes

  • Un seul menu peut etre ouvert a la fois. Ouvrir un nouveau menu remplace le menu actuel.
  • Le menu est un overlay NUI rendu dans la couche navigateur.
  • Utilisez menu:close() dans les callbacks pour fermer le menu apres une action.

Premium RedM Scripts — Multi-Framework