-- Exemples d'options ajoutées PAR CODE (client). À copier dans ton propre script, ce fichier n'est pas chargé par le manifest. -- Les options sont retirées automatiquement quand ta ressource s'arrête. local CM = exports['tc-contextmenu'] -- 1. Bouton simple sur les véhicules, avec callback Lua CM:add({ key = 'veh_lock', -- clé finale : ":veh_lock" label = 'Verrouiller / déverrouiller', icon = 'lock', target = { types = { 'vehicle' } }, distance = 5.0, onSelect = function(ctx) local lock = GetVehicleDoorLockStatus(ctx.entity) SetVehicleDoorsLocked(ctx.entity, lock == 2 and 1 or 2) end, }) -- 2. Sous-menu + enfants, réservés à un métier CM:add({ key = 'police', type = 'submenu', label = 'Police', icon = 'shield', target = { types = { 'player' } }, require = { jobs = { police = 0 } } }) CM:add({ parent = 'police', label = 'Fouiller', icon = 'search', target = { types = { 'player' } }, onSelect = function(ctx) TriggerServerEvent('monscript:fouiller', ctx.serverId) end }) CM:add({ parent = 'police', label = 'Menotter', icon = 'lock', target = { types = { 'player' } }, canInteract = function(ctx) return not IsPedCuffed(ctx.entity) end, -- condition dynamique onSelect = function(ctx) TriggerServerEvent('monscript:menotter', ctx.serverId) end }) -- 3. Libellé dynamique + condition d'objet (vérifiée côté serveur) sur un modèle précis CM:add({ label = function(ctx) return ('Fouiller la poubelle (%s)'):format(ctx.model) end, target = { types = { 'object' }, models = { 'prop_bin_01a', 'prop_dumpster_01a' } }, require = { items = { gant = 1 } }, onSelect = function(ctx) print('poubelle', ctx.entity) end, }) -- 4. Option PERMANENTE créée depuis un script serveur (stockée en base, modifiable avec /gestioncontexte) : -- exports['tc-contextmenu']:addOption({ -- key = 'pnj_parler', label = 'Parler', icon = 'phone', -- target = { types = { 'ped' } }, distance = 3.0, -- action = { type = 'server_event', name = 'monscript:parler', args = { sujet = 'rumeur' } }, -- })