Aller au contenu

Registre des armesJeu

Chaque arme achetée ou donnée en jeu avec un numéro de série crée sa fiche dans SuperMDT : inventaires pris en charge, limites et scripts personnalisés.

Sur cette page07
  1. L’activer
  2. Ce qui arrive dans SuperMDT
  3. Compatibilité
  4. Ce qui ne marche pas
  5. Ton script est personnalisé ?
  6. Réglages de la passerelle
  7. Dépannage

Avec le registre des armes automatique, chaque arme qui arrive en jeu dans l’inventaire d’un personnage avec un numéro de série crée ou met à jour sa fiche dans le module Armes : numéro, modèle, propriétaire. Tes agents retrouvent le propriétaire d’une arme saisie sans que personne ait rien saisi.

  1. Vérifie que ton inventaire est dans le tableau de compatibilité.
  2. Dans Configuration › Jeu › Intégrations, active Registre des armes automatique.
  3. Sous l’interrupteur, SuperMDT affiche ce que la passerelle a détecté (« Utilise ox_inventory », par exemple). Si rien n’apparaît, tape supermdt hello dans la console du serveur.

Réservé aux administrateurs de l’organisation et aux grades qui ont Administration déléguée › Régler le jeu. Côté serveur, l’intégration peut encore être coupée dans config.lua (Config.Integrations.weapons.enabled = false).

  • Une fiche par numéro de série, jamais de doublon, avec le badge Jeu.
  • Le modèle et le propriétaire suivent le jeu, en lecture seule dans le MDT. Le statut (volée, saisie…), la photo, les notes et les champs personnalisés restent ceux du MDT.
  • Une fiche déjà saisie dans le MDT avec le même numéro est complétée (modèle, propriétaire) ; ses autres champs ne bougent pas.
  • Une fiche archivée n’est jamais recréée.
  • Chaque création ou mise à jour est inscrite au journal d’audit (« a importé depuis le jeu l’arme », « a mis à jour depuis le jeu l’arme »).
  • Un numéro n’est envoyé qu’une fois : la passerelle le retient (stockage de la ressource). Une arme rendue puis reprise, ou un numéro recopié par un script, ne change donc jamais le propriétaire d’une fiche.

Les armes antérieures à l’activation ne sont pas importées avec un inventaire en temps réel (ox_inventory, qb-inventory 2.2 et plus) ; elles le sont avec les inventaires lus par relecture (voir la colonne « Mode »).

Si l’intégration au jeu est ensuite coupée, un grade qui a Armes › Détacher du jeu (commandement par défaut) ou un administrateur peut Détacher du jeu une fiche : elle devient entièrement modifiable (voir Véhicules et armes).

  • Testé en jeu essayé en jeu sur un vrai serveur.
  • Vérifié sur le code écrit d’après le code source ou l’API native du script, et couvert par les tests de la passerelle, mais pas encore essayé en jeu.
  • Expérimental écrit d’après la documentation publique de l’éditeur, jamais essayé. Vérifie-le avant de t’y fier ; SuperMDT et supermdt status le signalent.
  • Non pris en charge détecté et signalé, mais rien n’est importé.

Temps réel : l’arme arrive quelques secondes après son achat. Relecture : la passerelle relit les inventaires des joueurs connectés, à l’arrivée du personnage puis toutes les 15 minutes ; l’arme est rattachée au premier personnage chez qui elle est vue.

Framework Inventaire État Mode À savoir
ESX, QBCore, Qbox ox_inventory Vérifié sur le code Temps réel Numéro metadata.serial. Achat, don (AddItem, /giveitem), fabrication. L’arme est vérifiée dans l’inventaire 3 s après (achat refusé : rien).
QBCore qb-inventory 2.2 et plus Testé en jeu Temps réel Numéro info.serie, donné par qb-inventory à toute arme.
QBCore qb-inventory avant 2.2 Testé en jeu Relecture Pas d’écouteur d’ajout dans ces versions.
QBCore ps-inventory Expérimental Relecture Numéro info.serie ; d’après le code de la version 1.1.0 (dépôt archivé).
ESX, QBCore, Qbox qs-inventory (Quasar) Expérimental Relecture Numéro info.serie ; l’ajout d’une arme avance la relecture du joueur.
ESX, QBCore codem-inventory Expérimental Relecture Numéro metadata.serial ; une arme sans ce champ n’est pas enregistrée.
ESX, QBCore tgiann-inventory Expérimental Relecture Numéro serie.
ESX, QBCore, Qbox core_inventory (C8RE) Expérimental Relecture Numéro metadata.serial.
ESX Inventaire de base d’ESX (loadout) Non pris en charge — Les armes d’ESX n’ont aucun numéro de série. Il faut ox_inventory. SuperMDT l’indique sous l’interrupteur.

Si plusieurs inventaires sont démarrés, la passerelle en utilise un seul, et Configuration › Jeu dit lequel.

  • Armes sans numéro de série : objets sans munitions, armes créées sans numéro (registered = false dans ox_inventory…). Rien n’est créé.
  • Transferts entre joueurs : le propriétaire reste le premier (l’acheteur). Un changement de propriétaire se fait dans le MDT.
  • Armes créées dans un coffre ou un véhicule, et les déplacements internes (coffre, sol, fouille) : non suivis.
  • Armes de service : pour ne pas les enregistrer, indique leur préfixe de numéro dans Config.Integrations.weapons.skipSerialPrefixes (par exemple { 'POL' } pour l’armurerie de la police d’ox_inventory). Un texte de 3 caractères au plus est aussi reconnu au milieu du numéro, là où ox_inventory le place (482913POL105377).

Le registre lit l’inventaire, pas la boutique. Un script d’armurerie ou de fabrication personnalisé fonctionne donc s’il crée l’arme par l’inventaire pris en charge :

Ton script… Résultat
appelle exports.ox_inventory:AddItem (ou l’AddItem de qb-inventory) L’arme est enregistrée, avec le numéro donné par l’inventaire.
crée l’arme dans un inventaire en relecture, avec le champ de numéro attendu Elle est enregistrée à la relecture suivante.
écrit directement en base de données, ou utilise un inventaire hors du tableau Rien n’est enregistré.
donne des armes sans numéro de série Rien n’est enregistré.

Dans config.lua, Config.Integrations.weapons :

Réglage Rôle Défaut
enabled L’intégration côté serveur de jeu (false : coupée, quoi que dise SuperMDT) activé
skipSerialPrefixes Préfixes de numéros à ignorer aucun
verifyDelayMs Délai avant de vérifier l’arme dans l’inventaire 3 000 ms
scanMinutes Relecture des inventaires (inventaires en relecture) 15 min
scanIntervalMs Un joueur relu au plus toutes les… 2 000 ms

Une arme achetée n’apparaît pas ? Tape supermdt status (ligne « Armes ») et supermdt log. Les causes habituelles : intégration non activée, arme sans numéro, préfixe ignoré, achat refusé, inventaire non pris en charge, ou inventaire en relecture (attendre la relecture suivante, ou supermdt resync pour relire tout de suite les inventaires des joueurs connectés). La ligne « Armes » de supermdt status compte les armes vues, envoyées et ignorées, et dit si l’inventaire est lu par relecture.