twinded_lgw_doorlock
Un systeme de verrouillage/deverrouillage de portes pour RedM. Gerez les portes avec autorisation par job et par item, animations de cle, mini-jeu de crochetage et logging webhook Discord.
Dependances
| Ressource | Requise | Notes |
|---|---|---|
| twinded_libs | Oui | Librairie partagee gratuite |
| Ressource de crochetage | Non | Defaut : lockpick — configurable, ou utilisez un handler 'custom' |
| Ressource de son | Non | Defaut : xsound — configurable, ou utilisez un handler 'custom' |
Compatibilite
Cross-framework — fonctionne avec VORP, RSG, QBCore RedM, QRCore, RedEM:RP, RPX, TPZ-CORE et FRP. Le framework est auto-detecte par twinded_libs.
Installation
bash
ensure twinded_libs
ensure twinded_lgw_doorlockFichiers de configuration
| Fichier | Description |
|---|---|
settings.lua | Parametres principaux, liste de portes, son, crochetage, prompts |
lang.lua | Chaines de traduction |
lockpick.lua | Handler de crochetage personnalise (quand Config.Lockpick.type = 'custom') |
sound.lua | Handler de son personnalise (quand Config.Sound.type = 'custom') |
webhook.lua | Handler de webhook personnalise (quand Config.Webhook.type = 'custom') |
Consultez le guide de configuration pour savoir comment surcharger ces fichiers.
Reference de configuration
settings.lua
| Option | Type | Defaut | Description |
|---|---|---|---|
Config.MinDistance | number | 2.0 | Distance d'interaction par defaut (metres) |
Config.Webhook.type | string | "discord" | 'discord' ou 'custom' |
Config.Webhook.url | string | "" | URL du webhook Discord |
Config.Lockpick.type | string | "lockpick" | Nom de la ressource de crochetage. Mettez 'custom' pour votre propre handler |
Config.Lockpick.item | string | "lockpick" | Item d'inventaire requis pour le crochetage |
Config.Lockpick.tries | number | 3 | Nombre de tentatives de crochetage avant echec |
Config.Sound.type | string | "xsound" | Nom de la ressource de son. Mettez 'custom' pour votre propre handler |
Config.Sound.enabled | boolean | true | Activer les sons de verrouillage/deverrouillage |
Config.Sound.file | string | "./sounds/lock.ogg" | Chemin du fichier son |
Config.Sound.volume | number | 0.5 | Volume du son (0.0 a 1.0) |
Config.Sound.range | number | 15.0 | Portee audible du son (metres) |
Config.WitnessJobs | table ou nil | {"police", "sheriff"} | Jobs notifies lors d'evenements de crochetage (nil pour desactiver) |
Champs des entrees de porte
Chaque entree dans Config.DoorList :
| Champ | Type | Description |
|---|---|---|
authorizedJobs | table ou nil | Jobs autorises a verrouiller/deverrouiller (nil = pas d'acces par job) |
authorizedItems | table ou nil | Items qui donnent acces |
object | number | Hash de l'objet de porte |
objCoords | vector3 | Position de la porte dans le monde |
textCoords | vector3 | Position d'affichage du prompt |
objYaw | number | Angle de rotation de la porte |
locked | boolean | Etat verrouille par defaut |
lockpick | boolean | Autoriser le crochetage sur cette porte |
distance | number ou nil | Surcharger la distance d'interaction pour cette porte |
object2 | number ou nil | Hash de la deuxieme porte (pour les doubles portes) |
objYaw2 | number ou nil | Angle de rotation de la deuxieme porte |
lockpick.lua
Handler de crochetage personnalise (quand Config.Lockpick.type = 'custom') :
lua
RegisterNetEvent('twinded_lgw_doorlock:customLockpick', function(tries, cb)
-- Demarrez votre mini-jeu de crochetage
-- Appelez cb(true) en cas de succes, cb(false) en cas d'echec
end)sound.lua
Handler de son personnalise (quand Config.Sound.type = 'custom') :
lua
RegisterNetEvent('twinded_lgw_doorlock:customSound', function(soundId, file, volume, coords, range)
-- Jouez votre son personnalise
end)Fonctionnalites
- Autorisation par job — Restreignez les portes a des jobs specifiques (sheriff, doctor, etc.)
- Autorisation par item — Autorisez l'acces avec des items d'inventaire specifiques
- Animation de cle — Animation realiste de cle avec prop attache
- Crochetage — Mini-jeu de crochetage configurable avec consommation d'item
- Doubles portes — Support des doubles portes avec etat synchronise
- Son positionnel 3D — Sons de verrouillage/deverrouillage audibles par les joueurs a proximite
- Icone de verrou — Indicateur visuel de verrou (rouge = verrouille, vert = deverrouille)
- Persistance d'etat — Les etats des portes persistent pendant la session serveur
- Synchronisation d'etat — Les etats des portes sont diffuses a tous les joueurs en temps reel
- Alertes temoins — Notifie les joueurs forces de l'ordre quand une porte est crochetee
- Handlers personnalises — Surchargez le mini-jeu de crochetage et le systeme de son avec votre propre implementation
- Rate limiting — Cooldown anti-spam
Depannage
| Probleme | Solution |
|---|---|
| Le script ne demarre pas | Assurez-vous que twinded_libs est demarre avant twinded_lgw_doorlock |
| Impossible d'interagir avec les portes | Verifiez Config.MinDistance et distance par entree de porte |
| Pas de son | Verifiez que Config.Sound.type correspond au nom de votre ressource de son |
| Le crochetage ne fonctionne pas | Verifiez que Config.Lockpick.type correspond au nom de votre ressource de crochetage |
| Pas de logs webhook | Definissez Config.Webhook.url et verifiez que Config.Webhook.type est 'discord' |

