- Documentation
- 06Jeu
Service et positionsJeu
La prise de service synchronisée entre le jeu et SuperMDT (dont lb-phone), le réglage de prise de service depuis le MDT, les positions de la carte en direct, le point GPS des appels et le bouton panique en jeu.
Avec l’intégration au jeu, la prise de service est la même en jeu et dans le MDT : un agent qui prend son service au vestiaire apparaît en service dans SuperMDT, et inversement. Les positions des agents en service alimentent la carte en direct. Le module lui-même (pointage, heures, tableau des agents) est décrit dans Prise de service.
Du jeu vers le MDT
Section intitulée « Du jeu vers le MDT »Tu n’as rien à configurer, à part relier tes jobs à tes services. La passerelle suit le service tel que ton framework le connaît :
| Framework | Ce que la passerelle écoute |
|---|---|
| ESX | chargement du personnage, changement de métier, déconnexion ; l’état onDuty du métier |
| QBCore | chargement et déchargement du personnage, changement de métier, QBCore:Server:SetDuty (que qb-core déclenche aussi après sa propre bascule de service) |
| Qbox | les mêmes événements que QBCore, lus par qbx_core |
Dès qu’un personnage passe en service dans un métier relié, SuperMDT ouvre sa session de service dans le service correspondant (journal : « a pris son service depuis le jeu »). La fin de service, une déconnexion ou un changement de personnage la terminent.
La passerelle ne se fie pas aux événements seuls : elle relit l’état des joueurs toutes les 15 secondes, ce qui rattrape un script de métier qui change le service sans prévenir.
Tout script qui passe par le framework marche
Section intitulée « Tout script qui passe par le framework marche »Un vestiaire, un point de service, un menu radial ou une commande /duty : s’ils changent
le service dans le framework, la passerelle le voit. C’est le cas de l’application
« Services » de lb-phone, qui ne gère pas le service elle-même mais passe par le
framework.
Un script qui garde son propre état de service, sans jamais le changer dans le framework, n’est pas vu.
Serveur sans point de service
Section intitulée « Serveur sans point de service »Si ton serveur n’a aucun moyen de prendre son service, la passerelle peut fournir une
commande : set supermdt_duty_command "service" dans server.cfg crée /service, qui
bascule le service du métier actuel dans le framework.
Prise de service refusée
Section intitulée « Prise de service refusée »Le personnage est bien en service dans le jeu, mais SuperMDT refuse de l’enregistrer et le joueur est prévenu par un message en jeu :
| Message | Cause |
|---|---|
| « ton compte n’est lié à aucun membre du MDT » | Compte de jeu non relié |
| « tu n’es pas affecté à ce service » | Le membre n’est pas affecté au service du métier |
| « tu es mis à pied dans ce service » | Le membre est mis à pied |
Ses positions ne sont alors pas envoyées non plus.
Du MDT vers le jeu
Section intitulée « Du MDT vers le jeu »Le réglage Prise de service depuis le MDT se trouve dans Configuration › Services, sur la fiche de chaque service :
| Réglage | Effet |
|---|---|
| Seulement si connecté en jeu | Le bouton du MDT ne marche que si le personnage de ce service est en jeu ; il le met aussi en service en jeu. C’est le réglage par défaut avec le jeu. |
| Autorisée | Le bouton du MDT prend et termine le service, en jeu ou non. |
| Jeu uniquement | Le service se prend en jeu ; le MDT ne fait que l’afficher. |
Une prise ou une fin de service faite dans le MDT est appliquée au personnage en jeu dans les 30 secondes. Dans tous les cas, un superviseur peut terminer la session d’un agent.
Les positions
Section intitulée « Les positions »Les positions des agents alimentent la carte en direct. Seuls les joueurs en service dans un métier relié à un service envoient leur position ; un civil, ou un agent hors service, n’apparaît jamais.
- Intervalle : de 10 à 300 secondes, réglé avec la carte en direct (rappelé dans Configuration › Jeu › Positions). La passerelle l’applique sans redémarrer.
- Économie : une position n’est renvoyée que si le joueur a bougé de plus de 25 mètres, ou après deux intervalles. Les occupants d’un même véhicule partagent une lecture.
- Confidentialité : les positions ne sont jamais enregistrées dans la base de SuperMDT. Elles restent en mémoire dans le relais de la carte, qui oublie un joueur après trois intervalles sans nouvelles.
Il faut OneSync (onesync on) et des artefacts FXServer compatibles Node 22 : sans
eux, tout le reste marche, mais pas les positions.
Ce que tu vois dans supermdt status |
Cause | Que faire |
|---|---|---|
| « Positions : non » | Carte en direct désactivée, relais non configuré, ou OneSync coupé | Activer la carte en direct ; onesync on. |
| « Relais : …, connecté : non » | Pare-feu sortant, artefact trop ancien | supermdt log donne le code de fermeture. |
| Positions « ignorées » | Joueur en service en jeu mais pas dans le MDT (refus, compte non relié) | Voir le message reçu par le joueur à sa prise de service. |
Le point GPS des appels
Section intitulée « Le point GPS des appels »Quand ton unité est engagée sur un appel qui a un point sur la carte (depuis le dispatch, la fiche de l’appel ou la tablette), la passerelle pose en jeu, chez chaque membre de l’unité connecté, un repère sur la position de l’appel et un itinéraire GPS coloré (bleu par défaut). Le repère s’appelle « Appel n° 12 — Vol à main armée » et une petite notification s’affiche : « Itinéraire vers l’appel n° 12 ».
- Ton repère à toi n’est jamais touché : c’est un repère à part, pas le point violet que tu poses sur la carte du jeu.
- Un seul itinéraire SuperMDT à la fois : le dernier choisi, engagement ou Placer le point. Si ton unité est engagée ailleurs ensuite, l’itinéraire suit l’engagement ; un Placer le point plus récent reprend la main.
- Il disparaît au désengagement de ton unité, à la clôture ou au transfert de l’appel, et quand tu arrives sur place (à 30 m, réglable).
- Tu peux le retirer toi-même : menu SuperMDT (F9) › Retirer le point, ou une touche que tu choisis (« Retirer le point GPS SuperMDT » dans Paramètres › Raccourcis clavier › FiveM, aucune par défaut). Le retrait est immédiat et ne concerne que toi ; le point ne revient pas pour le même choix, comme à l’arrivée. C’est la seule façon de retirer un point posé avec Placer le point. Retirer le point d’un engagement ne désengage pas ton unité : elle reste sur l’appel dans le MDT.
- Il suit l’appel : si le lieu de l’appel est modifié, le point se déplace.
Le point arrive en une à deux secondes par le relais de la carte en direct ; sans relais, en 30 secondes au plus (la passerelle relit la liste à chaque sondage). Aucune requête n’est faite joueur par joueur : la passerelle reçoit une seule liste pour tout le serveur.
Il faut l’intégration au jeu et un joueur connecté, dont le compte est relié au membre. Pour poser le point d’un appel sans t’engager, utilise Placer le point sur la fiche de l’appel, dans le dispatch ou dans le menu de l’appel sur la carte.
Régler les points GPS
Section intitulée « Régler les points GPS »Dans config_shared.lua, bloc Config.Waypoints :
| Réglage | Par défaut | Effet |
|---|---|---|
enabled |
true |
false : ni point ni itinéraire (le serveur ne demande même pas la liste) |
sprite |
1 |
l’icône du point (1 : cercle standard) |
colour |
3 |
la couleur du point (3 : bleu) ; évite le violet (repère du joueur) et le rouge (bouton panique) |
routeColour |
3 |
la couleur de l’itinéraire GPS (3 : bleu) |
scale |
1.0 |
la taille du point |
notify |
true |
la notification « Itinéraire vers l’appel n° 12 » quand un point est posé |
clearOnArrival |
true |
retirer le point quand le joueur arrive sur place ; il ne revient pas pour le même appel, sauf si l’appel est déplacé ou choisi de nouveau dans le MDT |
arriveDistance |
30.0 |
la distance d’arrivée, en mètres |
clearKey |
'' |
la touche par défaut de « Retirer le point » (commande supermdt_waypoint_clear) : aucune ; chaque joueur peut en choisir une |
Les numéros d’icône et de couleur sont ceux de la
liste des blips de FiveM. Dans la
console du serveur, supermdt status affiche une ligne « Points GPS des appels » : activé ou
non, le nombre de points suivis et de joueurs concernés, et d’où vient la dernière liste
(relais ou sondage).
Diagnostiquer le point GPS
Section intitulée « Diagnostiquer le point GPS »- Côté joueur, dans la console F8 :
supermdt_clientaffiche l’état du point GPS (actif, affiché, appel suivi, origine : engagement ou Placer le point, dernier événement).supermdt_client debugactive les traces du point GPS dans la console, jusqu’au prochain redémarrage du jeu ; la même commande les coupe. - Côté serveur,
supermdt statusdonne la ligne « Points GPS des appels » (ci-dessus). Pour le détail (listes reçues, points envoyés et retirés, joueur par joueur), active le journal détaillé avec le convarsupermdt_debug(voir Les convars). Déclaré avecsetr supermdt_debug true, il active aussi les traces du point GPS chez les joueurs. - Rien n’apparaît : vérifie que le compte du joueur est relié au membre,
que son personnage est connecté, et que
Config.Waypoints.enabledvauttrue. Si le joueur est déjà arrivé sur place (clearOnArrival) ou a retiré le point (Retirer le point), le point ne revient pas pour le même appel : un nouveau Placer le point le repose.
Le bouton panique en jeu
Section intitulée « Le bouton panique en jeu »Un agent en service peut déclencher le bouton panique sans ouvrir la tablette :
- la commande
/panique; - une touche : F10 par défaut sur QBCore et Qbox (libre dans GTA V et hors des
raccourcis F6 et F7) ; aucune par défaut sur ESX, où F10 est prise par
esx_adminmenu. Chaque joueur la choisit ou la change dans Paramètres › Raccourcis
clavier › FiveM › « Bouton panique SuperMDT (alerte au dispatch) ». Le serveur peut la
changer ou la retirer
(
Config.Panic.key). La touche est indépendante de la commande (elle est rattachée à la commande internesupermdt_panic) : on peut garder l’une sans l’autre.
La commande et la touche se coupent de deux façons :
- côté serveur de jeu :
command = ''(la commande n’est pas enregistrée du tout) oukeyEnabled = false(pas de touche) dansConfig.Panic; - côté MDT, service par service : Commande en jeu et Touche en jeu dans Configuration › Opérations › Bouton panique (voir Bouton panique). Le joueur qui les utilise reçoit alors « ton service a désactivé la commande (ou la touche) de panique en jeu ». Le MDT et la tablette restent disponibles.
La passerelle lit la position du personnage côté serveur (il faut OneSync) et l’envoie avec l’alerte. SuperMDT crée un appel urgent, ou rattache l’alerte à l’appel où l’unité du joueur est déjà engagée.
Les réglages de la passerelle
Section intitulée « Les réglages de la passerelle »Dans config_shared.lua, bloc Config.Panic :
| Réglage | Par défaut | Effet |
|---|---|---|
enabled |
true |
la commande et la touche existent |
command |
'panique' |
le nom de la commande ; '' : pas de commande de chat |
keyEnabled |
true |
la touche existe (commande interne supermdt_panic) |
key |
'F10' |
la touche par défaut ('' : aucune ; sur ESX, Config.FrameworkKeys.esx.panic la remplace, vide par défaut). FiveM retient la touche par commande : la changer ne modifie pas celle des joueurs qui l’ont déjà enregistrée |
confirm |
false |
true : il faut deux appuis en moins de confirmWindowMs (2 000 ms) pour déclencher |
cooldownMs |
3000 |
délai minimal entre deux appuis pris en compte, côté joueur |
sound |
true |
un son discret quand SuperMDT répond |
alertSound |
true |
le son des alertes des collègues (voir plus bas) |
alertRoute |
true |
l’itinéraire GPS vers le point d’une alerte |
alertBlipMinutes |
10 |
durée maximale du point clignotant sur la carte du jeu |
Dans config.lua, Config.PanicServer.cooldownMs (5000) limite chaque joueur à une
alerte toutes les 5 secondes côté serveur, en plus du délai minimal réglé pour le service
dans SuperMDT (Configuration › Opérations › Bouton panique).
Ce que le joueur voit
Section intitulée « Ce que le joueur voit »| Message | Cause |
|---|---|
| « alerte panique envoyée au dispatch (appel #N) » | Un appel urgent a été créé |
| « alerte panique envoyée au dispatch, sur ton appel en cours (#N) » | L’alerte est rattachée à l’appel où son unité est engagée |
| « prends ton service pour utiliser le bouton panique » | Le personnage n’est pas en service |
| « tu n’as pas la permission d’utiliser le bouton panique » | Son grade n’a pas Bouton panique › Déclencher |
| « ton métier n’est relié à aucun service du MDT » | Métier non relié |
| « ton compte de jeu n’est relié à aucun membre du MDT » | Compte non relié |
| « le bouton panique est désactivé dans ton service » | Bouton coupé dans Configuration › Opérations |
| « ton service a désactivé la commande de panique en jeu » | Commande en jeu coupée dans Configuration › Opérations |
| « ton service a désactivé la touche de panique en jeu » | Touche en jeu coupée dans Configuration › Opérations |
| « ton alerte panique est déjà en cours » | Une seule alerte ouverte par agent |
| « alerte panique déjà envoyée, réessaie dans N s » | Délai minimal entre deux alertes |
| « l’alerte panique n’a pas pu être envoyée, réessaie » | SuperMDT injoignable ou erreur passagère |
Dans la console du serveur, supermdt status affiche une ligne « Bouton panique » : disponible
ou non, et le nombre d’alertes envoyées, acceptées et refusées.
Les alertes des collègues, en jeu
Section intitulée « Les alertes des collègues, en jeu »Quand un agent déclenche le bouton panique, les autres agents en service du même service le voient aussi en jeu, même sans ouvrir la tablette et même panneau de dispatch rapide masqué :
- une notification rouge qui clignote à l’écran : « Détresse : nom (unité) », l’appel, et la distance et la direction depuis ton personnage (« à 420 m au nord-est ») ;
- une carte rouge en tête du dispatch rapide (bord qui clignote, pastille qui pulse, distance et flèche vers l’agent) ;
- un son d’alerte (trois bips, au plus une salve toutes les 5 secondes). Chacun le coupe
ou le rétablit avec
/panique son(sans commande de chat :/supermdt_panic_sound), choix retenu sur son PC ; - un point rouge clignotant sur la carte du jeu, avec l’itinéraire GPS vers l’alerte la plus récente.
Tout disparaît dès que l’alerte est acquittée ou close (le point, au plus tard après
alertBlipMinutes). Rien n’arrive aux joueurs hors service, ni à ceux d’un autre service,
ni à l’agent en détresse lui-même ; trois alertes au plus à la fois. Il faut le dispatch
rapide activé par l’organisation (Configuration › Jeu › En jeu) et
Config.QuickDispatch.panicAlerts = true (par défaut) : la page du panneau reste alors
chargée en service, invisible tant qu’il n’y a pas d’alerte.