{"id":180821,"date":"2025-03-03T15:20:02","date_gmt":"2025-03-03T14:20:02","guid":{"rendered":"https:\/\/fivemx.com\/?p=180821"},"modified":"2026-08-20T22:16:54","modified_gmt":"2026-08-20T20:16:54","slug":"script-de-referencement-simple","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/fr\/simple-referral-script\/","title":{"rendered":"Script de parrainage simple pour FiveM"},"content":{"rendered":"<p>nkt-referral 1.0.0 de nikartik attribue des codes de parrainage et propose des promos distinctes via un menu ox_lib. Il utilise les identifiants de licence sans pont de framework. Les r\u00e9compenses fournies passent par ox_inventory ; le menu seul ne prouve pas leur r\u00e9ception.<\/p>\n<h2>Installer les d\u00e9pendances et configurer les r\u00e9compenses<\/h2>\n<p>Gardez le dossier nkt-referral et d\u00e9marrez ox_lib et oxmysql avant ensure nkt-referral. D\u00e9marrez aussi ox_inventory si vous conservez les fonctions fournies, ou remplacez-les par votre int\u00e9gration serveur v\u00e9rifi\u00e9e. Le README ne cite qu\u2019Ox Lib, mais le manifeste importe oxmysql et rewards.lua appelle l\u2019inventaire.<\/p>\n<p>Sauvegardez la base avant le premier d\u00e9marrage : la ressource cr\u00e9e referrals avec identifier comme cl\u00e9 primaire, puis code et redeemed. Le client r\u00e9cup\u00e8re son code au d\u00e9marrage et ouvre le menu avec \/refercode. Configurez server\/rewards.lua en gardant default et les cl\u00e9s personnalis\u00e9es en majuscules.<\/p>\n<p>La r\u00e8gle pr\u00e9vue est un code d\u2019un autre joueur par personne. Les promos sont enregistr\u00e9es s\u00e9par\u00e9ment par licence dans une liste JSON pour chaque promo, pas comme un usage unique mondial. Effacer des lignes r\u00e9initialise ces protections et peut permettre d\u2019autres r\u00e9compenses ; ce n\u2019est pas de la maintenance courante.<\/p>\n<h2>Corriger \u00e9tat de validation et distribution<\/h2>\n<p>Les contr\u00f4les d\u2019auto-parrainage et d\u2019usage ant\u00e9rieur existent, mais reposent sur PlayerCodes mis en cache \u00e0 l\u2019initialisation. Une validation r\u00e9ussie ne met pas ce drapeau \u00e0 jour. L\u2019UPDATE ne conditionne pas l\u2019\u00e9criture \u00e0 un \u00e9tat inutilis\u00e9 ; transaction et d\u00e9lai serveur sont absents. R\u00e9servez atomiquement l\u2019usage et synchronisez le cache avant de payer.<\/p>\n<p>La normalisation du code intervient dans la validation, tandis que la distribution re\u00e7oit la saisie originale. Utilisez partout le m\u00eame code canonique. Un propri\u00e9taire hors ligne donne false, mais sa fonction de r\u00e9compense est tout de m\u00eame appel\u00e9e. Mettez ces r\u00e9compenses en attente ou ignorez-les explicitement ; ne transmettez pas un joueur absent \u00e0 l\u2019export d\u2019inventaire.<\/p>\n<p>Les promos lisent et remplacent une liste JSON partag\u00e9e sans transaction. Des demandes simultan\u00e9es peuvent \u00e9craser les enregistrements. Validez types et initialisation du joueur, imposez unicit\u00e9 des codes\/usages et contr\u00f4lez le succ\u00e8s de l\u2019inventaire. Testez doublons, concurrence, propri\u00e9taires hors ligne, casse mixte, reconnexions et inventaires pleins.<\/p>\n<p>Examin\u00e9 le 11 septembre 2026 \u00e0 la r\u00e9vision 8c8fd7e76a851fd4a65a3e2330901fa950e76a3f. Tous les Lua, manifeste et README ont \u00e9t\u00e9 lus. Aucun parrainage, promo, r\u00e9compense ou reset de base n\u2019a \u00e9t\u00e9 ex\u00e9cut\u00e9.<\/p>\n<p><a href=\"https:\/\/github.com\/NikartikTheBear\/nkt-referral\/tree\/8c8fd7e76a851fd4a65a3e2330901fa950e76a3f\">Lire nkt-referral \u00e0 la r\u00e9vision v\u00e9rifi\u00e9e<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Configurer nkt-referral avec ox_lib, oxmysql et r\u00e9compenses. Comprendre promos par joueur, propri\u00e9taires hors ligne et d\u00e9fauts de validation.<\/p>","protected":false},"author":27669,"featured_media":181054,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2297,2298],"tags":[3001,2928,3000],"class_list":["post-180821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free","category-scripts","tag-fivem-script","tag-free","tag-free-script"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180821","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=180821"}],"version-history":[{"count":9,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180821\/revisions"}],"predecessor-version":[{"id":217352,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/180821\/revisions\/217352"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media\/181054"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media?parent=180821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/categories?post=180821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/tags?post=180821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}