Économisez 20 % avec WELCOMEVoir les promotions
Personnage menotté par la Police, dans FIveM

Autoriser le mouvement menotté dans FiveM

Guide : Autoriser les mouvements tout en étant menotté (FiveM) Dans les serveurs de role‑play avec FiveM, les menottes ajoutent une touche de réalisme et de tension. De nombreux joueurs découvrent que le comportement de gel par défaut peut être trop restrictif, rendant l'expérience artificielle. Ce guide vous montre comment permettre aux joueurs de se déplacer tout en étant menottés sur tous les frameworks populaires—QBCore, ESX et vRP—tout en empêchant les actions les plus évidentes comme tirer ou conduire. —

Comprendre le déroulement du menottage

Lorsqu'un joueur est menotté, le serveur active généralement quelques paramètres côté client : L'animation des menottes est jouée (par exemple, « mp_arresting », « idle »). Les commandes des menottes sont activées (`SetEnableHandcuffs`). L'entité est généralement gelée pour verrouiller le joueur sur place. Pour autoriser le mouvement, vous devez dégeler l'entité avant en gardant tous les autres contrôles restrictifs actifs. Le défi est de localiser les lignes exactes dans chaque framework et de les ajuster sans casser votre logique existante. —

QBCore Framework (et QBOX) – Étape par étape

1. Trouvez le code des menottes

Recherchez dans les scripts de job de police ou utilitaires le signal qui déclenche le menottage. Il ressemble normalement à : “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, true) “`

2. Permettre le mouvement

Remplacez l'appel de gel : “`lua FreezeEntityPosition(playerPed, false) — Permet la marche libre “` Votre extrait mis à jour devient : “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, false) “`

3. Gardez les contrôles restreints

Créez un thread continu qui désactive les actions potentiellement problématiques : “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Attaque DisableControlAction(0, 25, true) — Viser DisableControlAction(0, 142, true) — AttaqueMêléeAlternée DisableControlAction(0, 75, true) — Sortir du véhicule DisableControlAction(0, 92, true) — Tirer dans le véhicule end end end) “` Remplacez `IsHandcuffed` par la variable qui indique l'état de menottage pour votre script spécifique. —

ESX Framework – Comment procéder ?

1. Localisez la section principale des menottes

Trouvez `esx_policejob\/client\/main.lua` et localisez le code suivant : “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) SetPedCanPlayGestureAnims(playerPed, false) FreezeEntityPosition(playerPed, true) “`

2. Retirez le gel

Changez `FreezeEntityPosition(playerPed, true)` en `false` pour que la marche soit possible.

3. Désactiver les commandes clés

Implémentez un thread similaire pour tenir à distance les armes et les contrôles de véhicule : “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 142, true) — AttaqueMêléeAlternée DisableControlAction(0, 30, true) — DéplacementGaucheDroite DisableControlAction(0, 31, true) — DéplacementHautBas DisableControlAction(0, 24, true) — Tirer DisableControlAction(0, 92, true) — Tirer dans la voiture DisableControlAction(0, 75, true) — Sortir du véhicule end end end) “` Assurez-vous de lier `IsHandcuffed` à votre indicateur de menottage ESX. —

vRP – Personnalisation du mouvement

1. Trouvez la déclaration des menottes

La logique principale réside souvent dans `vrp\/modules\/police.lua` ou une ressource personnalisée. Recherchez : “`lua vRPclient.playAnim(player, {true, {{mp_arresting, idle}}, true}) vRPclient.setHandcuffed(player, true) vRPclient.setFreeze(player, true) “`

2. Dégeler pour le mouvement

Échangez la ligne de gel : “`lua vRPclient.setFreeze(player, false) “`

3. Verrouiller des actions spécifiques

Insérez ou modifiez un script client pour désactiver en continu les contrôles indésirables : “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Attaque DisableControlAction(0, 25, true) — Viser DisableControlAction(0, 142, true) — AttaqueMêléeAlternée DisableControlAction(0, 75, true) — Sortir du véhicule DisableControlAction(0, 92, true) — Tirer dans le véhicule DisableControlAction(0, 30, true) — Déplacement Gauche\/Droite DisableControlAction(0, 31, true) — Déplacement Haut\/Bas end end end) “`

4. Synchronisez le drapeau des menottes

Définissez une variable globale et écoutez un événement côté serveur : “`lua local IsHandcuffed = false RegisterNetEvent(‘vrp:handcuff’) AddEventHandler(‘vrp:handcuff’, function(status) IsHandcuffed = status end) “` Déclenchez cet événement lorsqu'un joueur est menotté ou libéré. —

Considérations finales

Testez soigneusement sur une copie de votre serveur avant de mettre en ligne les modifications. Ajustez la liste « DisableControlAction » pour qu'elle corresponde à vos règles de jeu de rôle : certains serveurs peuvent vouloir autoriser certains mouvements ou échanges. Gardez toujours vos variables claires et cohérentes ; les espaces réservés comme `IsHandcuffed` doivent être liés aux indicateurs réels du script. — Conclusion – Votre plan de mobilité ultime avec menottes En suivant ceci Guide : Autoriser les mouvements tout en étant menotté (FiveM), vous pouvez introduire des mécanismes de menottes réalistes qui permettent aux joueurs de se déplacer tout en ressentant les restrictions d'être entravés. Cette approche conserve un gameplay détaillé pour les serveurs QBCore, ESX et vRP, rendant les rencontres de role‑play plus fluides et plus engageantes pour tout le monde.

Chemins FiveMX associés

Utilisez ces pages internes comme prochaine étape de révision avant de choisir une ressource pour un serveur en direct:

Laisser un commentaire