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:truesi le menu est ouvert,falsesinon
-- 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()
-- 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 :
entityounil: handle de l'entite vehicule, ounilsi aucun vehicule n'est suivi
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:truesi 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)
-- 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:truesi 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 notificationtype(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)
