{"id":6866,"date":"2024-02-05T09:20:01","date_gmt":"2024-02-05T08:20:01","guid":{"rendered":"https:\/\/esx-scripts.com\/how-to-make-people-walk-when-they-are-handcuffed-modding-tutorials\/"},"modified":"2025-08-27T08:42:53","modified_gmt":"2025-08-27T06:42:53","slug":"permettre-la-marche-menottee","status":"publish","type":"post","link":"https:\/\/fivemx.com\/fr\/enable-handcuffed-walk\/","title":{"rendered":"Guide\u00a0: Autoriser les mouvements tout en \u00e9tant menott\u00e9 (FiveM) Indispensable"},"content":{"rendered":"<p><strong>Guide : Autoriser les mouvements tout en \u00e9tant menott\u00e9 (FiveM)<\/strong>  <\/p>\n<p>Sur les serveurs de jeu de r\u00f4le avec FiveM, les menottes ajoutent une touche de r\u00e9alisme et de tension. De nombreux joueurs trouvent que le gel par d\u00e9faut peut \u00eatre trop restrictif, rendant l&#039;exp\u00e9rience artificielle. Ce guide vous explique comment permettre aux joueurs de se d\u00e9placer avec les menottes sur tous les frameworks populaires (QBCore, ESX et vRP), tout en emp\u00eachant les actions les plus \u00e9videntes comme tirer ou conduire.  <\/p>\n<p>\u2014<\/p>\n<h2>Comprendre le d\u00e9roulement du menottage  <\/h2>\n<p>Lorsqu&#039;un joueur est menott\u00e9, le serveur active g\u00e9n\u00e9ralement quelques param\u00e8tres c\u00f4t\u00e9 client\u00a0:<br \/>\n<em> L&#039;animation des menottes est jou\u00e9e (par exemple, \u00ab\u00a0mp_arresting\u00a0\u00bb, \u00ab\u00a0idle\u00a0\u00bb).<br \/>\n<\/em> Les commandes des menottes sont activ\u00e9es (`SetEnableHandcuffs`).<br \/>\n<em> L&#039;entit\u00e9 est g\u00e9n\u00e9ralement gel\u00e9e pour verrouiller le joueur en place.  <\/p>\n<p>Pour permettre le mouvement, vous devez d\u00e9geler l&#039;entit\u00e9 <strong>avant<\/strong> en maintenant tous les autres contr\u00f4les restrictifs actifs. Le d\u00e9fi consiste \u00e0 localiser les lignes exactes dans chaque cadre et \u00e0 les ajuster sans perturber la logique existante.  <\/p>\n<p>\u2014<\/p>\n<h2>QBCore Framework (et QBOX) \u2013 \u00c9tape par \u00e9tape  <\/h2>\n<h3>1. Trouvez le code des menottes  <\/h3>\n<p>Recherchez dans les scripts de travail ou d&#039;utilitaires de la police le signal qui d\u00e9clenche le menottage. Il ressemble g\u00e9n\u00e9ralement \u00e0 ceci\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nTaskPlayAnim(playerPed, &#039;mp_arresting&#039;, &#039;idle&#039;, 8.0, -8, -1, 49, 0, 0, 0, 0)<br \/>\nSetEnableHandcuffs(joueurPed, vrai)<br \/>\nFreezeEntityPosition(joueurPed, vrai)<br \/>\n\u201c`<\/p>\n<h3>2. Permettre le mouvement  <\/h3>\n<p>Remplacer l&#039;appel de gel\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nFreezeEntityPosition(playerPed, false) \u2014 Autorise la marche libre<br \/>\n\u201c`<\/p>\n<p>Votre extrait mis \u00e0 jour devient\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nTaskPlayAnim(playerPed, &#039;mp_arresting&#039;, &#039;idle&#039;, 8.0, -8, -1, 49, 0, 0, 0, 0)<br \/>\nSetEnableHandcuffs(joueurPed, vrai)<br \/>\nFreezeEntityPosition(joueurPed, faux)<br \/>\n\u201c`<\/p>\n<h3>3. Gardez les contr\u00f4les restreints  <\/h3>\n<p>Cr\u00e9ez un thread continu qui d\u00e9sactive les actions potentiellement probl\u00e9matiques\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nCitoyen.CreateThread(fonction()<br \/>\n    bien que ce soit vrai<br \/>\n        Citoyen.Attendez(10)<br \/>\n        si IsHandcuffed alors<br \/>\n            DisableControlAction(0, 24, true) \u2014 Attaque<br \/>\n            DisableControlAction(0, 25, true) \u2014 Objectif<br \/>\n            DisableControlAction(0, 142, true) \u2014 MeleeAttackAlternate<br \/>\n            DisableControlAction(0, 75, true) \u2014 Quitter le v\u00e9hicule<br \/>\n            DisableControlAction(0, 92, true) \u2014 Tirer dans le v\u00e9hicule<br \/>\n        fin<br \/>\n    fin<br \/>\nfin)<br \/>\n\u201c`<br \/>\nRemplacez \u00ab\u00a0IsHandcuffed\u00a0\u00bb par la variable qui indique l\u2019\u00e9tat de menottage pour votre script sp\u00e9cifique.  <\/p>\n<p>\u2014<\/p>\n<h2>ESX Framework \u2013 Comment proc\u00e9der\u00a0?  <\/h2>\n<h3>1. Localisez la section principale des menottes  <\/h3>\n<p>Recherchez `esx_policejob\/client\/main.lua` et localisez le code suivant\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nTaskPlayAnim(playerPed, &#039;mp_arresting&#039;, &#039;idle&#039;, 8.0, -8, -1, 49, 0, 0, 0, 0)<br \/>\nSetEnableHandcuffs(joueurPed, vrai)<br \/>\nSetPedCanPlayGestureAnims(joueurPed, faux)<br \/>\nFreezeEntityPosition(joueurPed, vrai)<br \/>\n\u201c`<\/p>\n<h3>2. Retirez le gel  <\/h3>\n<p>Changez `FreezeEntityPosition(playerPed, true)` en `false` pour que la marche soit possible.  <\/p>\n<h3>3. D\u00e9sactiver les commandes cl\u00e9s  <\/h3>\n<p>Impl\u00e9mentez un fil similaire pour garder les armes et les commandes de v\u00e9hicules \u00e0 distance\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nCitoyen.CreateThread(fonction()<br \/>\n    bien que ce soit vrai<br \/>\n        Citoyen.Attendez(10)<br \/>\n        si IsHandcuffed alors<br \/>\n            DisableControlAction(0, 142, true) \u2014 MeleeAttackAlternate<br \/>\n            DisableControlAction(0, 30, true) \u2014 MoveLeftRight<br \/>\n            DisableControlAction(0, 31, true) \u2014 D\u00e9placer vers le haut vers le bas<br \/>\n            DisableControlAction(0, 24, true) \u2014 Tirer<br \/>\n            DisableControlAction(0, 92, true) \u2014 Tirer dans la voiture<br \/>\n            DisableControlAction(0, 75, true) \u2014 Quitter le v\u00e9hicule<br \/>\n        fin<br \/>\n    fin<br \/>\nfin)<br \/>\n\u201c`<br \/>\nAssurez-vous de lier \u00ab\u00a0IsHandcuffed\u00a0\u00bb \u00e0 votre indicateur de menottes ESX.<\/p>\n<p>\u2014<\/p>\n<h2>vRP \u2013 Personnalisation du mouvement  <\/h2>\n<h3>1. Trouvez la d\u00e9claration des menottes  <\/h3>\n<p>La logique principale r\u00e9side souvent dans \u00ab\u00a0vrp\/modules\/police.lua\u00a0\u00bb ou dans une ressource personnalis\u00e9e. Recherchez\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nvRPclient.playAnim(joueur, {true, {{mp_arresting, idle}}, true})<br \/>\nvRPclient.setHandcuffed(joueur, vrai)<br \/>\nvRPclient.setFreeze(joueur, vrai)<br \/>\n\u201c`<\/p>\n<h3>2. D\u00e9geler pour le mouvement  <\/h3>\n<p>\u00c9changer la ligne de gel\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nvRPclient.setFreeze(joueur, faux)<br \/>\n\u201c`<\/p>\n<h3>3. Verrouiller des actions sp\u00e9cifiques  <\/h3>\n<p>Ins\u00e9rer ou modifier un script client pour d\u00e9sactiver en continu les contr\u00f4les ind\u00e9sirables\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nCitoyen.CreateThread(fonction()<br \/>\n    bien que ce soit vrai<br \/>\n        Citoyen.Attendez(10)<br \/>\n        si IsHandcuffed alors<br \/>\n            DisableControlAction(0, 24, true) \u2014 Attaque<br \/>\n            DisableControlAction(0, 25, true) \u2014 Objectif<br \/>\n            DisableControlAction(0, 142, true) \u2014 MeleeAttackAlternate<br \/>\n            DisableControlAction(0, 75, true) \u2014 Quitter le v\u00e9hicule<br \/>\n            DisableControlAction(0, 92, true) \u2014 Tirer dans le v\u00e9hicule<br \/>\n            DisableControlAction(0, 30, true) \u2014 D\u00e9placer vers la gauche\/droite<br \/>\n            DisableControlAction(0, 31, true) \u2014 D\u00e9placer vers le haut\/bas<br \/>\n        fin<br \/>\n    fin<br \/>\nfin)<br \/>\n\u201c`<\/p>\n<h3>4. Synchronisez le drapeau des menottes  <\/h3>\n<p>D\u00e9finissez une variable globale et \u00e9coutez un \u00e9v\u00e9nement c\u00f4t\u00e9 serveur\u00a0:<br \/>\n\u00ab\u00a0Lua<br \/>\nlocal IsHandcuffed = faux<br \/>\nRegisterNetEvent(&#039;vrp:menottes&#039;)<br \/>\nAddEventHandler(&#039;vrp:menottes&#039;, fonction(\u00e9tat)<br \/>\n    IsHandcuffed = statut<br \/>\nfin)<br \/>\n\u201c`<br \/>\nD\u00e9clenchez cet \u00e9v\u00e9nement chaque fois qu&#039;un joueur est menott\u00e9 ou lib\u00e9r\u00e9.<\/p>\n<p>\u2014<\/p>\n<h2>Consid\u00e9rations finales  <\/h2>\n<p><\/em> <strong>Testez soigneusement<\/strong> sur une copie de votre serveur avant de mettre en ligne les modifications.<br \/>\n<em> Ajustez la liste \u00ab\u00a0DisableControlAction\u00a0\u00bb pour qu&#039;elle corresponde \u00e0 vos r\u00e8gles de jeu de r\u00f4le\u00a0: certains serveurs peuvent vouloir autoriser certains mouvements ou \u00e9changes.<br \/>\n<\/em> Gardez toujours vos variables claires et coh\u00e9rentes\u00a0; les espaces r\u00e9serv\u00e9s comme \u00ab\u00a0IsHandcuffed\u00a0\u00bb doivent \u00eatre li\u00e9s \u00e0 des indicateurs de script r\u00e9els.  <\/p>\n<p>\u2014<\/p>\n<p><strong>Conclusion \u2013 Votre plan de mobilit\u00e9 ultime avec menottes<\/strong>  <\/p>\n<p>En suivant ceci <strong>Guide : Autoriser les mouvements tout en \u00e9tant menott\u00e9 (FiveM)<\/strong>, vous pouvez introduire des m\u00e9canismes de menottes r\u00e9alistes permettant aux joueurs de se d\u00e9placer tout en ressentant les contraintes li\u00e9es \u00e0 leur entrave. Cette approche pr\u00e9serve l&#039;immersion du gameplay sur les serveurs QBCore, ESX et vRP, rendant les rencontres de jeu de r\u00f4le plus fluides et plus engageantes pour tous.<\/p>","protected":false},"excerpt":{"rendered":"<p>Vous souhaitez que les joueurs menott\u00e9s puissent se d\u00e9placer dans FiveM sans perdre en r\u00e9alisme\u00a0? Notre guide pratique vous guide \u00e0 travers des ajustements de code faciles pour QBCore, ESX et vRP, permettant ainsi les mouvements tout en d\u00e9sactivant les actions ind\u00e9sirables.<\/p>","protected":false},"author":1,"featured_media":174476,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2877,1900,1899],"tags":[],"class_list":["post-6866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free-fivem-job-scripts","category-troubleshooting","category-tutorials"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/posts\/6866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/comments?post=6866"}],"version-history":[{"count":0,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/posts\/6866\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/media\/174476"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/media?parent=6866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/categories?post=6866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemx.com\/fr\/wp-json\/wp\/v2\/tags?post=6866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}