Accueil › Documentation › Demandes de braquage · origen_ilegalv2
Le module de demandes de braquage permet aux membres d’un gang de soumettre une demande formelle de braquage au département de police directement depuis le panneau de gang. La police l’approuve ou la refuse, et le gang peut suivre l’état en temps réel.
Ce module est totalement indépendant de origen_robberies. Il ne lance ni ne gère le braquage lui-même : il ne s’occupe que du handshake de demande et d’approbation entre le gang et la police.
L’onglet Robbery Requests n’apparaît dans le panneau de gang que si origen_police est en cours d’exécution. Si la ressource est arrêtée ou non installée, l’onglet est masqué automatiquement.
config/robbery_request.lua)Config.RobberyRequest.Enabled = true -- enable/disable the entire module
Config.RobberyRequest.Permission = 'request_robbery'
Config.RobberyRequest.Anonymous = true
Config.RobberyRequest.PendingExpireMinutes = 15
Config.RobberyRequest.ApprovedExpireMinutes = 30| Clé | Type | Par défaut | Description |
|---|---|---|---|
Enabled |
boolean |
true |
Active ou désactive tout le module. Même à true, l’onglet se masque si origen_police n’est pas démarré. |
Permission |
string |
'request_robbery' |
Permission de grade requise pour envoyer et annuler des demandes. Les leaders l’ont toujours. Voir Configuration. |
Anonymous |
boolean |
true |
Si true, le panneau de la police affiche "Anonymous" à la place du vrai nom du gang et du demandeur. L’ID du gang est quand même envoyé en interne pour la validation. |
PendingExpireMinutes |
number |
15 |
Minutes après lesquelles une demande pending expire si la police ne répond pas. 0 = pas d’expiration. |
ApprovedExpireMinutes |
number |
30 |
Minutes après lesquelles une demande approved expire si le gang ne lance pas le braquage. 0 = pas d’expiration. |
Config.RobberyRequest.Requests)Chaque entrée de la liste représente un type de braquage pouvant être demandé.
Config.RobberyRequest.Requests = {
{
id = "small_robbery",
label = "Small Robbery",
image = "https://r2.fivemanage.com/.../small_rob.png",
active = true,
requiredCops = 1,
minParticipants = 1,
maxParticipants = 3,
cooldownSeconds = 900,
rejectedRequestCooldownSeconds = 300,
},
{
id = "medium_robbery",
label = "Medium Robbery",
image = "https://r2.fivemanage.com/.../med_rob.png",
active = true,
requiredCops = 4,
minParticipants = 2,
maxParticipants = 6,
cooldownSeconds = 1800,
rejectedRequestCooldownSeconds = 600,
},
{
id = "large_robbery",
label = "Large Robbery",
image = "https://r2.fivemanage.com/.../big_rob.png",
active = true,
requiredCops = 6,
minParticipants = 4,
maxParticipants = 6,
cooldownSeconds = 3600,
rejectedRequestCooldownSeconds = 900,
},
-- add as many entries as needed
}| Champ | Type | Description |
|---|---|---|
id |
string |
Identifiant unique et stable du braquage. Utilisé dans les exports et les vérifications d’état. |
label |
string |
Nom affiché dans le panneau de gang. |
image |
string |
URL de l’image de la carte. Laisse "" pour un espace réservé. |
active |
boolean |
Si false, l’entrée est masquée du panneau et ne peut pas être demandée. |
requiredCops |
number |
Nombre minimum d’agents en service requis pour demander ce braquage. |
minParticipants |
number |
Nombre minimum de participants que le gang doit déclarer (inclus). Doit être >= 1. |
maxParticipants |
number |
Nombre maximum de participants (inclus). Doit être >= minParticipants. |
cooldownSeconds |
number |
Temps d’attente (secondes) après la fin du braquage avant de pouvoir redemander ce même braquage (utilise origen_robberies). 0 = pas de cooldown. |
rejectedRequestCooldownSeconds |
number |
Temps (secondes) que le gang doit attendre avant de redemander ce braquage après un refus de la police. Ne bloque que ce braquage ; les autres ne sont pas affectés. 0 = pas de cooldown après refus (le gang peut redemander immédiatement après avoir marqué le refus comme lu). |
id doit être unique parmi toutes les entrées.minParticipants >= 1 et maxParticipants >= minParticipants.requiredCops >= 0, cooldownSeconds >= 0 et rejectedRequestCooldownSeconds >= 0.| État | Description |
|---|---|
pending |
Envoyée, en attente de la réponse de la police. |
approved |
Approuvée par la police. Le gang dispose de ApprovedExpireMinutes pour commencer. |
rejected |
Refusée par la police. Le gang doit accuser réception du refus avant de redemander. |
cancelled |
Annulée par un membre du gang disposant de la permission request_robbery. |
expired |
Expirée sans réponse (pending) ou sans avoir été lancée (approved). |
started |
Le braquage a commencé (terminal ; défini par origen_police). |
pending → approved | rejected | cancelled | expired
approved → cancelled | started | expired
started → (terminal)
rejected → (terminal — gang must acknowledge)
cancelled→ (terminal)
expired → (terminal)rejected n’est pas immédiatement terminal dans le cache du gang. Il reste visible jusqu’à ce que le membre du gang en accuse réception (bouton du panneau), ce qui efface l’entrée et permet de redemander.
request_robbery ouvre le panneau de gang et va dans Robbery Requests.pending déjà existante pour le gang.origen_police et mise en cache comme pending.rejectedRequestCooldownSeconds) peut encore empêcher pendant un certain temps de redemander ce braquage précis ; les autres braquages ne sont pas affectés.started).Lorsque Config.RobberyRequest.Anonymous = true :
gangLabel = "Anonymous" et requestedBy = "Anonymous".gangId est quand même transmis en interne pour que origen_ilegalv2 puisse valider la propriété et les annulations.Pour révéler l’identité du gang à la police, définis Anonymous = false.
Utilise les exports côté serveur documentés dans Exports pour conditionner tes scripts de braquage à une demande approuvée valide :
-- Gate: only allow starting the robbery if approved
local res = exports['origen_ilegalv2']:GetRobberyRequestStatus(source, 'paleto_bank')
if not res.ok or res.status ~= 'approved' then
return -- block
end| Symptôme | Cause | Solution |
|---|---|---|
| L’onglet n’est pas visible dans le panneau de gang | origen_police n’est pas démarré |
Démarre origen_police avant origen_ilegalv2 |
| Erreur « Police unavailable » à l’envoi | origen_police s’est arrêté en cours de session |
Redémarre origen_police ; le cache est vidé automatiquement |
Le gang reste bloqué avec une demande pending |
La police n’a pas répondu avant l’écoulement de PendingExpireMinutes |
La demande expirera automatiquement ; réduis PendingExpireMinutes si besoin |
| Impossible de redemander après un refus | Le refus n’a pas été acquitté, ou rejectedRequestCooldownSeconds est encore actif |
Ferme d’abord la notification de refus ; si un cooldown est configuré, attends qu’il expire (il ne bloque que le même braquage) |
| Le cooldown reste actif après un redémarrage | Le cooldown n’existe qu’en mémoire et se réinitialise au redémarrage de la ressource | Comportement attendu : aucun cooldown persistant entre les redémarrages |