Pour les développeurs

ox_target, qtarget, qb-target

Appelez-les comme vous l'avez toujours fait. HZ-TextUi répond à 24 exports ox_target :

addBoxZone, addSphereZone, addPolyZone, removeZone, zoneExists, addGlobalPed, addGlobalVehicle, addGlobalObject, addGlobalPlayer, addGlobalOption et leurs remove*, addModel / removeModel, addLocalEntity / removeLocalEntity, addEntity / removeEntity, getTargetOptions, isActive, disableTargeting.

Les noms PascalCase de qtarget et qb-target sont servis aussi : AddBoxZone, AddCircleZone, AddPolyZone, AddEntityZone, AddTargetModel, AddTargetEntity, AddTargetBone, AddGlobalPed / Vehicle / Object / Player, et leurs Remove*. Les filtres job, gang et item sont repris.

Les champs d'option suivent ox_target et qb-target : label, icon, distance, onSelect, canInteract, groups, items, menuName, openMenu.

Les prompts HZ

Huit exports pilotent le TextUI 3D directement, avec un pin visible à la proximité plutôt que sur Alt :

exports['hz_textui']:create3DTextUI('my-id', {
    coords = vector3(-1461.18, -31.48, 54.63),
    displayDist = 6.0,     -- distance a laquelle le pin apparait
    interactDist = 2.0,    -- distance a laquelle le libelle s'ouvre
    enableKeyClick = true,
    keyNum = 38, key = 'E',
    text = 'My interaction',
    theme = 'green',       -- 'green' ou 'red'
    job = 'all',
    canInteract = function() return true end,
    triggerData = { triggerName = 'my:event', isServer = false, args = {} },
})

exports['hz_textui']:update3DTextUI('my-id', 'New text', 'red')
exports['hz_textui']:delete3DTextUI('my-id')

Les autres : create3DTextUIOnEntity, create3DTextUIOnPlayers, delete3DTextUIOnPlayers, openTextUi pour un menu 3D défilant, et closeTextUi.

Une chose à savoir sur canInteract

Les options sont stockées par référence dans l'état Lua de HZ-TextUi. Si votre ressource redémarre sans retirer ce qu'elle avait enregistre, son canInteract pointe vers un état qui n'existe plus et échoue à chaque vérification.

HZ-TextUi retire l'option après trois échecs et affiche laquelle et depuis quelle ressource, plutôt que de remplir votre console.

Retirez ce que vous avez enregistré quand votre ressource s'arrête, ou re-enregistrez-le au démarrage.