{"id":180791,"date":"2025-03-25T15:14:22","date_gmt":"2025-03-25T14:14:22","guid":{"rendered":"https:\/\/fivemx.com\/?p=180791"},"modified":"2026-07-24T08:06:38","modified_gmt":"2026-07-24T06:06:38","slug":"interface-utilisateur-textuelle","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/fr\/text-ui\/","title":{"rendered":"sc_textUI pour FiveM : exports, installation et masquage des invites"},"content":{"rendered":"<p>sc_textUI de ScubeScripts est une ressource d\u2019invites textuelles FiveM ind\u00e9pendante des frameworks. La version 1.0.0 examin\u00e9e utilise ui\/textui.html et ne d\u00e9clare aucune d\u00e9pendance ESX ou QBCore. Le code a \u00e9t\u00e9 v\u00e9rifi\u00e9 au commit e97687f41b97895464522842927fe230e28c1822.<\/p>\n<p><a href=\"https:\/\/github.com\/ScubeScripts\/sc_textUI\">Source du cr\u00e9ateur<\/a><\/p>\n<h2>Utiliser l\u2019interface document\u00e9e<\/h2>\n<p>Les scripts client appellent exports.sc_textUI:showUI(key, message) et exports.sc_textUI:hideUI(). Les scripts serveur utilisent TriggerClientEvent pour envoyer sc_textUI:showUI \u00e0 playerId avec key et message, ou sc_textUI:hideUI \u00e0 playerId. La NUI affecte la touche et le message avec textContent. Cela affiche une invite ; votre code d\u2019interaction doit r\u00e9aliser l\u2019action et les \u00e9ventuels contr\u00f4les de permissions c\u00f4t\u00e9 serveur.<\/p>\n<h2>Installer et int\u00e9grer d\u2019abord une seule interaction<\/h2>\n<p>Placez sc_textUI dans resources et ajoutez ensure sc_textUI avant les ressources qui appellent ses exports. Gardez fxmanifest.lua directement dans le dossier de la ressource. Le README contient un exemple facultatif de remplacement d\u2019ESX TextUI ; sauvegardez l\u2019int\u00e9gration originale avant de l\u2019adapter. Confiez l\u2019invite visible \u00e0 une seule ressource \u00e0 la fois pour \u00e9viter que l\u2019une masque le message d\u2019une autre.<\/p>\n<h2>Masquer les invites p\u00e9rim\u00e9es et tester les traductions longues<\/h2>\n<p>Appelez hideUI lorsque le joueur quitte l\u2019interaction, meurt, se t\u00e9l\u00e9porte ou change d\u2019\u00e9tat. G\u00e9rez aussi la remise en \u00e9tat lors des arr\u00eats de ressource et reconnexions. Testez les messages traduits longs, l\u2019\u00e9chelle de l\u2019interface et plusieurs tailles d\u2019\u00e9cran. La boucle de marqueur ex\u00e9cut\u00e9e \u00e0 chaque image dans le README est un exemple d\u2019int\u00e9gration, pas une exigence intrins\u00e8que de performance. Mesurez votre boucle r\u00e9elle avant d\u2019annoncer des performances.<\/p>\n<h2>Source et licence<\/h2>\n<p>Le d\u00e9p\u00f4t inclut GPL-3.0. Conservez sa licence et ses mentions avec le code redistribu\u00e9 et examinez la licence avant de distribuer des modifications. Cette v\u00e9rification confirme l\u2019interface document\u00e9e et les fichiers examin\u00e9s ; ce n\u2019est ni un benchmark en jeu ni une garantie de compatibilit\u00e9 avec toute int\u00e9gration d\u2019interface.<\/p>","protected":false},"excerpt":{"rendered":"<p>Installez sc_textUI de ScubeScripts avec ses v\u00e9ritables exports client et \u00e9v\u00e9nements serveur, puis testez le masquage des invites et les traductions.<\/p>","protected":false},"author":27669,"featured_media":181024,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2330,2297,2298],"tags":[2858,3001,2928,3000,2859],"class_list":["post-180791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hud","category-free","category-scripts","tag-esx","tag-fivem-script","tag-free","tag-free-script","tag-qbcore"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/users\/27669"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/comments?post=180791"}],"version-history":[{"count":8,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180791\/revisions"}],"predecessor-version":[{"id":214326,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180791\/revisions\/214326"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media\/181024"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media?parent=180791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/categories?post=180791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/tags?post=180791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}