Exports & Evenements

HZ-CarControl expose des exports client et des evenements pour permettre l'integration avec vos scripts personnalises.


Exports Client

isMenuOpen

Verifier si le menu CarControl est actuellement ouvert.

local isOpen = exports['hz_carcontrol']:isMenuOpen()

Retour :
  • boolean : true si le menu est ouvert, false sinon
Exemple :

-- Empecher un autre NUI de s'ouvrir si CarControl est actif
if exports['hz_carcontrol']:isMenuOpen() then
    return
end


openMenu

Ouvrir le menu CarControl de maniere programmatique.

exports['hz_carcontrol']:openMenu()

Le joueur doit etre dans un vehicule pour que le menu s'ouvre. Sinon, une notification sera affichee.
Exemple :

-- Ouvrir CarControl depuis un autre script
RegisterCommand('veh', function()
    exports['hz_carcontrol']:openMenu()
end)


closeMenu

Fermer le menu CarControl de maniere programmatique.

exports['hz_carcontrol']:closeMenu()

Exemple :

-- Fermer le menu en entrant dans une zone specifique
AddEventHandler('myzone:entered', function()
    exports['hz_carcontrol']:closeMenu()
end)


getCurrentVehicle

Obtenir le handle de l'entite vehicule actuelle.

local vehicle = exports['hz_carcontrol']:getCurrentVehicle()

Retour :
  • entity ou nil : handle de l'entite vehicule, ou nil si aucun vehicule n'est suivi
Exemple :

local veh = exports['hz_carcontrol']:getCurrentVehicle()
if veh and DoesEntityExist(veh) then
    print('Current vehicle: ' .. GetDisplayNameFromVehicleModel(GetEntityModel(veh)))
end


isCruiseActive

Verifier si le cruise control est actuellement actif.

local active = exports['hz_carcontrol']:isCruiseActive()

Retour :
  • boolean : true si le cruise control est engage

getCruiseSpeed

Obtenir la vitesse actuelle du cruise control.

local speed = exports['hz_carcontrol']:getCruiseSpeed()

Retour :
  • number : vitesse cruise actuelle en km/h (0 si inactif)
Exemple :

-- Afficher les infos cruise dans un HUD
if exports['hz_carcontrol']:isCruiseActive() then
    local speed = exports['hz_carcontrol']:getCruiseSpeed()
    DrawText('CRUISE: ' .. speed .. ' km/h')
end


isLimiterActive

Verifier si le limiteur de vitesse est actuellement actif.

local active = exports['hz_carcontrol']:isLimiterActive()

Retour :
  • boolean : true si le limiteur de vitesse est engage

getLimiterSpeed

Obtenir la valeur actuelle du limiteur de vitesse.

local speed = exports['hz_carcontrol']:getLimiterSpeed()

Retour :
  • number : vitesse du limiteur actuelle en km/h (0 si inactif)

Evenements

Server → Client

HZ-CarControl:openMenu

Forcer l'ouverture du menu sur un joueur specifique.

-- Server
TriggerClientEvent('hz_carcontrol:openMenu', targetPlayerId)


HZ-CarControl:closeMenu

Forcer la fermeture du menu sur un joueur specifique.

-- Server
TriggerClientEvent('hz_carcontrol:closeMenu', targetPlayerId)


HZ-CarControl:notify

Envoyer une notification a un joueur via le bridge CarControl.

-- Server
TriggerClientEvent('hz_carcontrol:notify', targetPlayerId, 'Message text', 'info')

Parametres :
  • message (string) : texte de la notification
  • type (string) : 'info', 'success', 'error'

Client → Server

HZ-CarControl:saveNeonColor

Declenche quand un joueur change une couleur neon (si SaveColor est active).

-- Server
RegisterNetEvent('hz_carcontrol:saveNeonColor', function(plate, r, g, b)
    local src = source
    print('Player ' .. src .. ' set neon color on plate ' .. plate)
end)


HZ-CarControl:logAction

Declenche lors de diverses actions du joueur (uniquement quand Config.Debug = true).

-- Server
RegisterNetEvent('hz_carcontrol:logAction', function(action, data)
    local src = source
    print('Player ' .. src .. ' — ' .. action)
end)


Exemples d'integration

Desactiver le cruise control dans une zone

-- Client: desactiver le cruise en entrant dans une zone sans vitesse
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(1000)
        local coords = GetEntityCoords(PlayerPedId())

        if #(coords - noSpeedZone) < 50.0 then
            if exports['hz_carcontrol']:isCruiseActive() then
                exports['hz_carcontrol']:closeMenu()
                -- Le cruise se desactivera automatiquement a la fermeture du menu
            end
        end
    end
end)

Afficher l'etat CarControl sur un HUD externe

-- Client: interroger l'etat cruise/limiteur pour un HUD personnalise
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(500)

        local cruiseActive = exports['hz_carcontrol']:isCruiseActive()
        local cruiseSpeed  = exports['hz_carcontrol']:getCruiseSpeed()
        local limiterActive = exports['hz_carcontrol']:isLimiterActive()
        local limiterSpeed  = exports['hz_carcontrol']:getLimiterSpeed()

        SendNUIMessage({
            action = 'updateDrivingHUD',
            cruise = cruiseActive and cruiseSpeed or nil,
            limiter = limiterActive and limiterSpeed or nil,
        })
    end
end)


Besoin d'aide pour integrer ces exports ? Rejoignez notre Discord et ouvrez un ticket dans #support !