Configuration du métier de police FiveM : grades, service, armurerie et compte de police
Comment configurer un métier de police sur un serveur FiveM : métier et grades, basculement de service, armurerie avec magasin et stash, menotage et escorte, vérifications du compte de police, MDT et dispatch.
Le symptôme : vous avez ajouté un métier de police, mais personne ne peut prendre son service, l'armurerie est ouverte à tout le monde, ou les vols disent « pas assez de police » alors que trois agents sont en ligne.
Un métier de police fonctionnant est une poignée de petites pièces qui doivent être d'accord sur une chose : le nom du métier et qui est en service. Cet article parcourt chaque pièce et où elle se casse généralement.
Le métier et ses grades
Le métier est une ligne de données : un nom, une étiquette et une liste de grades (cadet, agent, sergent, chef). Le numéro de grade est ce que vous vérifiez plus tard, donc décidez de l'ordre en premier et gardez-le. Comment créer le métier dans chaque framework est couvert dans ajouter un métier sur ESX et ajouter un métier sur QBCore. Sur QBox, le métier vit dans les données partagées qbx_core à la place d'un fichier qb-core.
Deux règles qui évitent de la douleur :
- Utilisez un seul nom interne partout, par exemple
police. Chaque script qui dit « police uniquement » compare contre cette chaîne. - Donnez au patron le grade que votre framework utilise pour les patrons, de sorte que la société et les menus de gestion fonctionnent.
Le basculement de service
Être un agent de police et être en service ne sont pas la même chose. Les vols, la dispatch et les salaires ne doivent compter que les agents en service.
- QBCore et QBox gardent un champ
ondutysur le métier, et un basculement le change. Un métier peut être défini pour démarrer en service ou hors service par défaut. - ESX n'a pas de champ de service dans le métier de base. De nombreuses configurations utilisent un second métier hors service, ou un drapeau que votre ressource de police garde, donc vérifiez comment la vôtre le fait avant d'écrire un compte.
Quel que soit le framework, le basculement doit s'exécuter sur le serveur, et le serveur décide de la valeur. Un événement client qui dit « je suis en service » sans vérification est une faille.
L'armurerie : magasin ou stash
Ne distribuez pas les armes à partir d'un événement client. Utilisez vos propres outils d'inventaire. Avec ox_inventory, vous pouvez restreindre un magasin ou un stash à un métier et un grade minimum, ce qui est l'armurerie la plus propre :
-- shop entry (in the ox_inventory shops data)
PoliceArmory = {
name = 'Police Armory',
groups = { police = 0 }, -- job name and minimum grade
inventory = {
{ name = 'radio', price = 0 },
{ name = 'handcuffs', price = 0 },
},
locations = { vec3(452.6, -980.0, 30.7) },
}Un stash fonctionne de la même façon pour les casiers à preuves et le stockage partagé. Consultez ox_inventory shops et ox_inventory stashes. Gardez les noms groups et la vérification du grade les mêmes que le nom de votre métier, sinon l'armurerie reste verrouillée pour tout le monde.
Menotage et escorte
Le menotage est un ensemble de petites pièces, pas une seule fonctionnalité :
- L'agent joue une animation et le serveur vérifie que la cible est proche et que l'agent a le métier.
- La cible reçoit un état menotté, une animation menottée et des contrôles désactivés (pas de tir, pas de course, pas d'entrée de véhicules par eux-mêmes).
- L'escorte attache la cible à l'agent, ou la suit, jusqu'à la libération.
Gardez le drapeau menotté comme un state bag pour que chaque client le voit, et pour que les joueurs qui arrivent plus tard le voient aussi. Vérifiez la distance et le métier sur le serveur, de la façon que sécuriser vos événements serveur décrit. N'oubliez pas de nettoyer le drapeau quand le joueur est libéré, meurt ou s'en va.
Compte de police pour les vols
Les vols, les braquages et certains travaux de drogue demandent « combien d'agents sont en service ». La réponse doit venir du serveur :
-- ESX (server)
local function policeOnline()
local count = 0
for _, xPlayer in pairs(ESX.GetExtendedPlayers('job', 'police')) do
count += 1
end
return count
end-- QBCore (server)
local function policeOnline()
local count = 0
for _, player in pairs(QBCore.Functions.GetQBPlayers()) do
local job = player.PlayerData.job
if job.name == 'police' and job.onduty then
count += 1
end
end
return count
endSur QBox, les versions récentes de qbx_core livrent aussi des exports de compte de service, donc vérifiez sa documentation avant d'écrire votre propre boucle. Si vous utilisez une paire de métier hors service sur ESX, comptez uniquement le nom en service.
Comptez toujours sur le serveur, et comptez à nouveau quand le vol commence, pas seulement quand le joueur s'approche. Consultez scripts de vol pour le flux complet.
MDT et dispatch sont séparés
Le métier de police vous donne un métier et un compte. Ce sont généralement d'autres ressources :
- MDT : dossiers, mandats, citoyens et recherche de véhicules.
- Dispatch : appels 911, blips d'alerte, statut des agents.
- Evidence et fourrière : souvent leurs propres scripts à nouveau.
Vérifiez la config de chacun pour le nom du métier. Un dispatch qui ne montre jamais les alertes est presque toujours configuré pour un nom de métier différent de celui que vous avez créé.
Liste de contrôle
| Symptôme | Solution |
|---|---|
| Armurerie ouverte à tout le monde | Ajoutez le nom du métier et un grade minimum aux groups du magasin ou du stash |
| Armurerie verrouillée pour les agents | Le nom du métier dans l'armurerie ne correspond pas au nom du métier que vous avez créé |
| Vol dit pas de police, agents en ligne | Comptez uniquement les agents en service, avec le nom exact du métier, sur le serveur |
| Dispatch ne montre pas les alertes | Définissez le nom du métier de police dans la config de dispatch |
| Le joueur reste menotté après libération | Nettoyer l'état menotté à la libération, à la mort et à la déconnexion |
| N'importe qui peut prendre son service | Effectuez le basculement sur le serveur et vérifiez d'abord le métier |
Réponses rapides
Comment compter les agents de police en ligne ?
Sur le serveur, bouclez sur les joueurs connectés et comptez ceux dont le métier est votre métier de police et qui sont en service. Faites-le sur le serveur, jamais sur le client, car les vols et les braquages font confiance à ce nombre.
Un métier de police inclut-il un MDT et un dispatch ?
Généralement non. Le métier lui-même est seulement le métier, les grades, le service et une armurerie. Le MDT (dossiers, mandats) et le dispatch (appels, blips) sont des ressources distinctes qui lisent le métier du joueur.
Où dois-je donner des armes à la police ?
Mettez-les dans une armurerie : un magasin d'inventaire ou un stash limité au métier de police et à un grade minimum. Ne donnez jamais d'armes à partir d'un événement client.

