Notify Amélioré

Affiche une notification avancée. Gère automatiquement les icônes et les couleurs selon le type. Accepte les chaînes de caractères (simple) ou les tables (avancé).

exports.void_lib:Notify(data)

Paramètres (Table)

  • data: table
    • title?: string
      Le titre en gras de la notification.
    • description: string
      Le texte principal.
    • type?: 'info' | 'success' | 'error' | 'warning'
      Définit la couleur et l'icône automatique. Défaut: 'info'.
    • duration?: number
      Temps d'affichage en ms. Défaut: 5000.
    • icon?: string
      Force une icône FontAwesome spécifique (ex: 'car').

Exemples d'utilisation

1. Notification Avancée (Complète)

exports.void_lib:Notify({
    title = 'Transfert Réussi',
    description = 'Vous avez envoyé 500$ à un joueur.',
    type = 'success',
    duration = 4000,
    icon = 'money-bill-wave'
})

2. Notification d'Erreur Simple

exports.void_lib:Notify({
    title = 'Accès Refusé',
    description = 'Vous ne possédez pas les clés de ce véhicule.',
    type = 'error'
})

3. Rétrocompatibilité (Ancienne méthode)

exports.void_lib:Notify("Véhicule déverrouillé", 3000)

TextUI

Affiche une indication d'interaction (touche et texte) de manière persistante sur l'écran.

exports.void_lib:TextUI(text, key, position)
exports.void_lib:HideTextUI()

Paramètres

  • text: string
    Le texte de l'action à réaliser (ex: "Fouiller le coffre").
  • key: string
    La touche à afficher dans le bloc (ex: "E", "ALT").
  • position?: 'top-center' | 'top-left' | 'top-right' | 'left-center' | 'right-center' | 'bottom-center'
    La position du TextUI sur l'écran. Si non défini, s'affiche en 'top-center'.

Exemple

exports.void_lib:TextUI("Récolter des pommes", "E", "right-center")
Wait(5000)
exports.void_lib:HideTextUI()

AlertDialog Synchrone

Affiche une boîte de dialogue modale au centre de l'écran. L'exécution du script est suspendue jusqu'à ce que le joueur interagisse.

exports.void_lib:AlertDialog(data)

Paramètres

  • data: table (object)
    • header: string
      Le titre de la boîte de dialogue.
    • content: string
      Le contenu/message principal du dialogue.
    • cancel?: boolean
      Affiche le bouton d'annulation si défini sur true.
    • confirmText?: string
      Permet de personnaliser le texte du bouton de confirmation (Défaut: "CONFIRMER").
    • cancelText?: string
      Permet de personnaliser le texte du bouton d'annulation (Défaut: "ANNULER").

Retour (Returns)

Retourne 'confirm' si le joueur a cliqué sur le bouton de confirmation, sinon retourne 'cancel' si le joueur a cliqué sur annuler.

Exemple

local alert = exports.void_lib:AlertDialog({
    header = "ACHAT D'ARME",
    content = "Êtes-vous sûr de vouloir acheter un Pistolet pour 5000 $ ?",
    cancel = true,
    cancelText = "REFUSER",
    confirmText = "ACHETER"
})

if alert == 'confirm' then
    print("Arme achetée")
else
    print("Achat annulé")
end

ProgressBar Synchrone

Affiche une barre de progression en bas de l'écran. Désactive automatiquement les mouvements et les attaques du joueur pendant son exécution.

exports.void_lib:ProgressBar(data)

Paramètres

  • data: table (object)
    • label: string
      Le texte affiché au-dessus de la barre de progression.
    • duration: number
      La durée totale de la barre en millisecondes.
    • canCancel?: boolean
      Autorise le joueur à annuler l'action en cours en appuyant sur ECHAP ou RETOUR.

Retour (Returns)

Retourne true si la barre est arrivée à 100%, ou false si le joueur a annulé l'action.

Exemple

local success = exports.void_lib:ProgressBar({
    label = "Crochetage de la serrure...",
    duration = 3500,
    canCancel = true
})

if success then print("Porte ouverte") end

SkillCheck Synchrone

Lance un mini-jeu de synchronisation nécessitant que le joueur appuie sur Espace au bon moment.

exports.void_lib:SkillCheck(difficulties)

Paramètres

  • difficulties: string | table
    La difficulté requise. Valeurs acceptées : 'easy', 'normal', 'hard'.
    Peut être défini comme un tableau (ex: {'easy', 'normal'}) pour obliger le joueur à réussir plusieurs étapes à la suite.

Retour (Returns)

Retourne true si le joueur a réussi toutes les étapes, false s'il a échoué.

Exemple

local hasPassed = exports.void_lib:SkillCheck({'easy', 'normal', 'hard'})

if hasPassed then
    print("Piratage du terminal réussi")
else
    print("Échec du piratage")
end

OpenRadial Synchrone

Affiche un menu circulaire contextuel autour du curseur de la souris. L'exécution du script est suspendue jusqu'à la sélection.

exports.void_lib:OpenRadial(items)

Paramètres

  • items: table (array of objects)
    Un tableau contenant les objets à afficher dans le menu.
    • id: string
      L'identifiant unique retourné si l'action est sélectionnée.
    • label: string
      Le texte court affiché sous l'icône.
    • icon: string
      Le nom de l'icône FontAwesome (sans le préfixe fa-solid fa-).

Retour (Returns)

Retourne l'id de l'action sous forme de string si le joueur clique sur un item. Retourne false si le joueur ferme le menu en cliquant au centre, avec un clic droit, ou via ECHAP.

Exemple

RegisterCommand('menu_police', function()
    local action = exports.void_lib:OpenRadial({
        { id = 'handcuff', label = 'Menotter', icon = 'link' },
        { id = 'search', label = 'Fouiller', icon = 'magnifying-glass' }
    })

    if action == 'handcuff' then
        print("Mise des menottes...")
    elseif action == false then
        print("Le joueur a fermé le menu")
    end
end)

Context Menu

Génère un menu d'options vertical riche. Supporte les icônes, les descriptions, les états désactivés, les sous-menus et le déclenchement direct d'événements ou de fonctions Lua.

exports.void_lib:RegisterContext(data)
exports.void_lib:ShowContext(id)

Paramètres RegisterContext(data)

  • data: table (object)
    • id: string
      L'identifiant unique de votre menu (utilisé pour l'afficher ensuite).
    • title: string
      Le titre du menu affiché dans l'en-tête.
    • options: table (array of objects)
      Les différents boutons du menu.
      • title: string - Le titre du bouton.
      • description?: string - Un petit texte sous le titre.
      • icon?: string - Une icône FontAwesome (sans fa-).
      • disabled?: boolean - Grise le bouton et le rend inactif.
      • menu?: string - L'ID d'un autre menu à ouvrir (sous-menu).
      • action?: function(args) - Une fonction Lua à exécuter au clic.
      • event?: string - Déclenche un événement Client (TriggerEvent).
      • serverEvent?: string - Déclenche un événement Serveur (TriggerServerEvent).
      • args?: any - Données envoyées à la fonction ou à l'événement.

Exemple d'utilisation

-- 1. Enregistrement (Au lancement du script)
exports.void_lib:RegisterContext({
    id = 'mon_menu',
    title = 'Interaction',
    options = {
        {
            title = 'Ouvrir le coffre',
            description = 'Accéder à l\'inventaire',
            icon = 'box-open',
            action = function()
                print("Coffre ouvert !")
            end
        },
        {
            title = 'Bouton Inactif',
            icon = 'lock',
            disabled = true
        }
    }
})

-- 2. Affichage (Lié à une touche ou commande)
RegisterCommand('openmenu', function()
    exports.void_lib:ShowContext('mon_menu')
end)

Création de gang

Documentation en cours de rédaction...