{"id":186375,"date":"2025-05-19T14:58:56","date_gmt":"2025-05-19T12:58:56","guid":{"rendered":"https:\/\/fivemx.com\/?p=186375"},"modified":"2026-08-16T13:44:02","modified_gmt":"2026-08-16T11:44:02","slug":"systeme-dinterface-utilisateur-des-taches-yoda","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/fr\/yoda-tasks-task-ui-system\/","title":{"rendered":"Syst\u00e8me Yoda Tasks Task UI pour FiveM"},"content":{"rendered":"<p>Yoda Tasks est un affichage autonome de t\u00e2ches dans le navigateur, cr\u00e9\u00e9 par Yoda-Things. Il pr\u00e9sente une progression ou un message simple via des exports clients et des \u00e9v\u00e9nements. C\u2019est une interface, pas un syst\u00e8me de m\u00e9tiers : il ne conserve pas les objectifs, n\u2019accorde aucune r\u00e9compense et ne v\u00e9rifie pas l\u2019accomplissement d\u2019une activit\u00e9.<\/p>\n<h2>Progression et t\u00e2che active unique<\/h2>\n<p>L\u2019export client showProgTask re\u00e7oit title, count, maxcount, icon et color ; updateProgTask modifie le compteur affich\u00e9. Le client Lua conserve une seule currentTask : pr\u00e9voyez une t\u00e2che active plut\u00f4t qu\u2019une file d\u2019objectifs simultan\u00e9s. Gardez la progression faisant autorit\u00e9 dans votre logique de jeu.<\/p>\n<p>Le navigateur calcule la progression en divisant count par maxcount. Validez un maximum positif et des compteurs num\u00e9riques coh\u00e9rents avant l\u2019appel de l\u2019export. Seule l\u2019\u00e9galit\u00e9 exacte d\u00e9clenche la fin, puis masque l\u2019affichage apr\u00e8s trois secondes. Un compteur d\u00e9passant le maximum ne satisfait pas ce test d\u2019\u00e9galit\u00e9.<\/p>\n<h2>Les interfaces de t\u00e2che simple doivent \u00eatre corrig\u00e9es<\/h2>\n<p>Le README d\u00e9crit showSimpleTask avec un titre et un message. L\u2019impl\u00e9mentation Lua examin\u00e9e accepte plut\u00f4t message et color, puis n\u2019envoie qu\u2019un titre au navigateur. Celui-ci attend un champ message distinct. Alignez le README, les donn\u00e9es Lua et l\u2019interface avant de d\u00e9pendre du comportement document\u00e9 \u00e0 deux champs de texte.<\/p>\n<p>L\u2019export client cancelSimpleTask et son \u00e9v\u00e9nement appellent une fonction Lua nomm\u00e9e cancelSimpleTask qui n\u2019est pas d\u00e9finie dans le fichier client. Une fonction JavaScript similaire existe dans l\u2019interface, mais ne d\u00e9finit pas la fonction Lua. Corrigez le chemin manquant du client au navigateur et testez l\u2019annulation au lieu de supposer que le nom export\u00e9 fonctionne.<\/p>\n<h2>Installation, entr\u00e9es et port\u00e9e de l\u2019examen<\/h2>\n<p>Conservez client\/main.lua, le manifeste et le r\u00e9pertoire ui dans le m\u00eame dossier de ressource, puis d\u00e9marrez-le avant les scripts utilisant ses exports. Le manifeste n\u2019exige aucun framework. L\u2019interface charge Font Awesome depuis un CDN externe ; v\u00e9rifiez les ic\u00f4nes selon la politique navigateur de votre serveur.<\/p>\n<p>Le navigateur assemble le balisage avec innerHTML \u00e0 partir des valeurs fournies pour title, message, icon et color. \u00c9chappez le texte et limitez les ic\u00f4nes et couleurs aux valeurs autoris\u00e9es avant d\u2019afficher des entr\u00e9es non fiables. Testez les limites, la fin, le remplacement, l\u2019annulation, les textes longs et les red\u00e9marrages sur un serveur de d\u00e9veloppement.<\/p>\n<p>Source examin\u00e9e le 10 septembre 2026 \u00e0 la r\u00e9vision 22746bdce33b881410a22421f1e79faff2b8d634. Le README, le manifeste, le client Lua et le code navigateur ont \u00e9t\u00e9 inspect\u00e9s. Aucune correction n\u2019a \u00e9t\u00e9 appliqu\u00e9e \u00e0 la ressource d\u2019origine et aucun test en jeu n\u2019a \u00e9t\u00e9 effectu\u00e9.<\/p>\n<p><a href=\"https:\/\/github.com\/Yoda-Things\/yoda-tasks\/tree\/22746bdce33b881410a22421f1e79faff2b8d634\">Consulter le code de Yoda Tasks<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Yoda Tasks pour FiveM : exports de progression, t\u00e2che unique, incoh\u00e9rences de l\u2019API simple et contr\u00f4les des entr\u00e9es avant int\u00e9gration.<\/p>","protected":false},"author":27669,"featured_media":186507,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2877,2297,2298],"tags":[3001,2928,3000,2866],"class_list":["post-186375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free-fivem-job-scripts","category-free","category-scripts","tag-fivem-script","tag-free","tag-free-script","tag-job"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/186375","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=186375"}],"version-history":[{"count":5,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/186375\/revisions"}],"predecessor-version":[{"id":217321,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/186375\/revisions\/217321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media\/186507"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media?parent=186375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/categories?post=186375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/tags?post=186375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}