Aller au contenu principal

Menu Contextuel

Les menus contextuels dans zUI permettent d'afficher des actions spécifiques en fonction de l'élément ou de la situation sur laquelle l'utilisateur interagit. Ces menus sont polyvalents et peuvent être adaptés à différents types d'entités comme des véhicules, des objets, des personnages, ou même des emplacements spécifiques.

Fonction CreateContext

La syntaxe pour créer un menu contextuel est la suivante :

zUI.CreateContext(ContextID, Callback)

Paramètres

  • ContextID [string] : L'identifiant unique du menu contextuel. Cet ID est utilisé pour référencer et déclencher ce menu dans votre code.
  • Callback [function(Items, coords3D, Entity)] : Une fonction appelée pour générer les éléments du menu. Elle reçoit trois paramètres :
    • Items : Un gestionnaire pour ajouter des éléments (boutons, séparateurs, etc.) au menu contextuel.
    • coords3D : Les coordonnées 3D où le menu est ouvert.
    • Entity : L'entité liée à l'interaction (si applicable).

Contextes Disponibles

Vous pouvez définir des menus contextuels pour plusieurs types d'entités ou situations spécifiques :

1. Vehicle

Conçu pour interagir avec des véhicules, par exemple ouvrir, verrouiller, ou réparer un véhicule.

Exemple :

zUI.CreateContext("vehicle", function(Items, coords3D, Entity)
Items:AddSeparator("Options du véhicule")
Items:AddButton("Démarrer", "Démarrez ce véhicule.", nil, function(onSelected)
if onSelected then
print("Véhicule démarré !")
end
end)
end)


2. Props

Pour interagir avec des objets physiques (props), comme les ramasser ou les examiner.

Exemple :

zUI.CreateContext("props", function(Items, coords3D, Entity)
Items:AddSeparator("Options des objets")
Items:AddButton("Ramasser", "Ramassez cet objet.", nil, function(onSelected)
if onSelected then
print("Objet ramassé !")
end
end)
end)


3. Ped

Conçu pour interagir avec des personnages ou PNJ (Peds).

Exemple :

zUI.CreateContext("ped", function(Items, coords3D, Entity)
Items:AddSeparator("Options du personnage")
Items:AddButton("Parler", "Engagez une conversation.", nil, function(onSelected)
if onSelected then
print("Conversation commencée !")
end
end)
end)


4. Vector

Pour interagir avec un point spécifique dans l'espace (par exemple, un lieu marqué).

Exemple :

zUI.CreateContext("vector", function(Items, coords3D)
Items:AddSeparator("Options de position")
Items:AddButton("Explorer", "Explorez cet endroit.", nil, function(onSelected)
if onSelected then
print("Lieu exploré !")
end
end)
end)


5. Other

Un contexte générique pour des situations ou entités non couvertes par les catégories ci-dessus.

Exemple :

zUI.CreateContext("other", function(Items, coords3D, Entity)
Items:AddSeparator("Options diverses")
Items:AddButton("Action personnalisée", "Réalisez une action spécifique.", nil, function(onSelected)
if onSelected then
print("Action personnalisée exécutée !")
end
end)
end)


Résumé

Pour utiliser les menus contextuels dans zUI :

  1. Utilisez zUI.CreateContext pour définir un menu contextuel en fonction d'un type d'entité ou d'un scénario.
  2. Personnalisez les éléments du menu en ajoutant des boutons, séparateurs, ou styles spécifiques.
  3. Adaptez vos menus à différents types d'interaction grâce aux contextes Vehicle, Props, Ped, Vector, ou Other.

Ces menus permettent de créer une expérience utilisateur riche et fluide, essentielle pour vos projets interactifs.