Personnalisation
Chaque boutique est configurĂ©e dans le panneau et stockĂ©e dans votre base de donnĂ©es â voir đȘ CrĂ©er une boutique. Les fichiers rĂ©gissent ce que toutes les boutiques ont en commun.
Quel fichier décide de quoi
Section intitulĂ©e « Quel fichier dĂ©cide de quoi »| Fichier | Ce quâil dĂ©cide | Ouvert ? |
|---|---|---|
config.lua | Framework, langue, interaction, ped par défaut, commande, images, catégories, rÚgles de braquage, identifiants | Oui |
bridge/server.lua | Argent, comptes, items, inventaire, jobs, notifications, callbacks, et alerte de police personnalisée | Oui |
bridge/client.lua | Notifications, invites dâaide, donnĂ©es du joueur et callbacks cĂŽtĂ© client | Oui |
bridge/target.lua | Comment les vendeurs et points de vente sont injectés dans ox_target ou qb-target | Oui |
bridge/utils.lua | Lit les identifiants dâun joueur (Steam, licence, Discord, FiveM, Xbox) | Oui |
locales/*.lua | Textes en jeu : notifications, invites dâinteraction, messages de braquage | Oui |
html/locales.js | Textes au sein des panneaux et de la fenĂȘtre de boutique, pour les douze langues | Lisible |
html/index.html, style.css, script.js | Les panneaux et la fenĂȘtre de boutique | Lisible |
list/peds.lua | ModÚles de peds proposés dans le panneau | Sous escrow |
mic_shopcreator.sql | Les neuf tables, importées une seule fois | Oui |
client.lua, server.lua | Logique des boutiques | Sous escrow |
config.lua
Section intitulée « config.lua »Général
Section intitulĂ©e « GĂ©nĂ©ral »| Option | Ce quâelle fait | Par dĂ©faut |
|---|---|---|
Config.Locale | La langue, en jeu et dans les panneaux. Voir Langues | 'en' |
Config.Framework | 'esx' ou 'qbcore'. Non dĂ©tectĂ© automatiquement. Sur QBox, utilisez 'qbcore' â QBox gĂšre les ressources QBCore via sa couche de compatibilitĂ© | 'esx' |
Config.Command | La commande ouvrant le panneau du Shop Creator | 'shopcreator' |
Config.IdentifierType | Comment les propriétaires et employés sont identifiés : 'discord', 'license', 'esx' ou 'citizenid'. Voir Installation | 'discord' |
Vendeurs et interaction
Section intitulĂ©e « Vendeurs et interaction »| Option | Ce quâelle fait | Par dĂ©faut |
|---|---|---|
Config.Interaction | 'ox_target', 'qb-target' ou 'default' (invite dâaide et E) | 'ox_target' |
Config.RadiusInteract | Avec 'default', distance en mĂštres pour pouvoir interagir | 2.0 |
Config.SpawnNPC | false ne fait apparaĂźtre aucun vendeur : un marqueur (avec 'default') ou une sphĂšre target marque lâendroit. Pas de vendeur = personne Ă braquer | true |
Config.DefaultPed | ModĂšle utilisĂ© si un emplacement nâen a pas, ou en a un invalide | 'a_f_m_bevhills_01' |
Config.PedSpawnDistance | Les vendeurs nâexistent que lorsquâun joueur se trouve Ă moins de cette distance en mĂštres | 20.0 |
| Option | Ce quâelle fait | Par dĂ©faut |
|---|---|---|
Config.Categories | CatĂ©gories proposĂ©es lors de lâajout dâun produit ; la fenĂȘtre de boutique regroupe les produits selon celles-ci | items, weapons, misc |
Config.InventoryImagePath | Liste de dossiers dâimages. Pour chaque produit, la fenĂȘtre tente <nom_item>.png dans chaque dossier successivement et affiche le premier valide | nui://ox_inventory/web/images/ |
Config.AllowEmployeesAddProducts | Dans les boutiques possédées, autorise ou non les employés à ajouter de nouveaux produits. Les propriétaires le peuvent toujours | false |
Vous nâutilisez pas ox_inventory ? Faites pointer Config.InventoryImagePath vers le dossier dâimages de votre inventaire, par exemple nui://qb-inventory/html/images/. Ajoutez une seconde entrĂ©e si vos images sont rĂ©parties dans plusieurs dossiers.
Braquages
Section intitulĂ©e « Braquages »| Option | Ce quâelle fait | Par dĂ©faut |
|---|---|---|
Config.BlacklistWeapons | Conçu pour interdire certaines armes. Cette version ne le lit pas : nâimporte quelle arme dĂ©clenche un braquage, seules les mains nues nâen lancent pas | weapon_unarmed, weapon_nightstick, weapon_stungun |
Config.RobberyNotifyJobs | MĂ©tiers alertĂ©s lorsquâun braquage dĂ©bute | police |
Config.PoliceAlert | "default" alerte les métiers ci-dessus avec notification et blip pendant 1 minute. "custom" appelle TriggerPoliceAlert dans bridge/server.lua à la place | "default" |
Config.RobberyCooldown | Temps de recharge par dĂ©faut si aucun nâest configurĂ© sur la boutique. ComptĂ© en minutes (le commentaire de config.lua mentionne des secondes) | 300 |
Config.TakeRobberyMoneyFromVault | Dans les boutiques possĂ©dĂ©es, lâargent dĂ©robĂ© est prĂ©levĂ© du coffre-fort â et sâarrĂȘte lorsquâil est vide | true |
| Option | Ce quâelle fait | Par dĂ©faut |
|---|---|---|
Config.Screenshot | Joint une capture dâĂ©cran du joueur aux logs Discord. NĂ©cessite screenshot-basic en fonctionnement | true |
LâURL du webhook se dĂ©finit par boutique dans le panneau, pas ici.
Commandes et permissions
Section intitulĂ©e « Commandes et permissions »| Commande | Qui peut lâutiliser | Ce quâelle fait |
|---|---|---|
/shopcreator | ACE mic_shop.open | Ouvre le panneau du Shop Creator. Renommable via Config.Command, et assignable Ă une touche FiveM comme toute commande |
Les propriĂ©taires et employĂ©s nâont besoin dâaucune permission : la fenĂȘtre de boutique leur affiche une icĂŽne dâengrenage vers les ParamĂštres de la boutique lorsquâils ouvrent une boutique quâils possĂšdent ou oĂč ils travaillent.
Douze langues sont fournies : en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar et nl. Les textes sont répartis en deux endroits régis par Config.Locale :
locales/<code>.luaâ ce que le jeu affiche : notifications, textes dâaide, messages de braquage.html/locales.jsâ ce que les panneaux et la fenĂȘtre de boutique affichent, un bloc par langue.
Ajouter une langue :
- Copiez
locales/en.luaverslocales/<code>.luaet traduisez le texte sur la droite de chaque ligne. Conservez les clés et les éventuels%s. - Ajoutez
locales/<code>.luaĂshared_scriptsdansfxmanifest.lua, aux cĂŽtĂ©s des autres, afin que les clients le tĂ©lĂ©chargent. - Dans
html/locales.js, copiez le bloc'en', renommez-le avec votre code, puis traduisez-le. - Réglez
Config.Localesur votre code, faitesrefresh, puis redémarrez.
Une clĂ© manquante dans votre fichier Lua sâaffichera en jeu sous la forme Translation not found: <key>.
Le bridge
Section intitulĂ©e « Le bridge »Quatre fichiers ouverts se trouvent dans bridge/. Ne modifiez pas les noms de fonctions â le code du script les appelle directement par leur nom.
bridge/server.lua â un bloc pour ESX, un pour QBCore, sĂ©lectionnĂ© selon Config.Framework.
| Fonction | Ă quoi elle sert |
|---|---|
GetPlayer, GetPlayerJob | Lâobjet joueur et son job |
GetMoney, AddMoney, RemoveMoney | Argent liquide |
GetAccount, AddAccountMoney, RemoveAccountMoney | Comptes nommés : bank, black_money |
GetInventoryItem, AddInventoryItem, RemoveInventoryItem | Items. Lit Ă travers ox_inventory lorsquâil est actif |
GetPlayerInventory | Inventaire du propriĂ©taire, listĂ© lorsquâil approvisionne sa boutique |
ShowNotification | Notifications cÎté serveur |
RegisterServerCallback | Callbacks via ESX ou QBCore |
TriggerPoliceAlert(x, y, z, shopLabel) | AppelĂ© lors de chaque braquage quand Config.PoliceAlert = "custom". Vide par dĂ©faut â insĂ©rez votre dispatch |
bridge/client.lua â ShowNotification, ShowHelpNotification, GetPlayerData et TriggerServerCallback. Sur QBCore, ShowHelpNotification est vide ; remplissez-le avec votre propre systĂšme dâaide ou de texte Ă lâĂ©cran si vous utilisez Config.Interaction = 'default' ou souhaitez voir lâinvite dâembauche dâemployĂ©.
bridge/target.lua â ajoute lâoption « ouvrir la boutique » Ă chaque vendeur (ou Ă une sphĂšre quand Config.SpawnNPC est dĂ©sactivĂ©) pour ox_target ou qb-target, et la retire lors des modifications.
Dispatch de police sur mesure : dĂ©finissez Config.PoliceAlert = "custom" et Ă©crivez lâalerte de votre ressource de dispatch dans TriggerPoliceAlert au sein de bridge/server.lua. Elle reçoit les coordonnĂ©es du vendeur et le nom de la boutique.
Exports client pour ouvrir des boutiques depuis une autre ressource :
| Export | Arguments | Ce quâil fait |
|---|---|---|
OpenShop | shop ID, location ID | Ouvre la fenĂȘtre de cette boutique, en respectant son cooldown et ses restrictions de job |
OpenShopAsEmployee | shop ID, location ID | Identique Ă OpenShop ; lâengrenage des rĂ©glages apparaĂźt si le joueur y travaille |
OpenShopAsOwner | â | Ouvre le panneau du Shop Creator si le joueur a la permission mic_shop.open |
Les ressources de target peuvent aussi dĂ©clencher lâĂ©vĂ©nement client mic_shopcreator:client:openShop avec shopId et locationId dans les donnĂ©es, ce qui correspond au comportement interne des options de target. Les identifiants de boutique et de lieu sont ceux visibles dans le panneau.