twinded_lgw_billing
Un systeme complet de facturation pour RedM. Envoyez des factures personnelles, d'entreprise a joueur, et d'entreprise a entreprise avec support multi-devises (Dollars & Or), traitement automatique des paiements et logging webhook Discord.
Dependances
| Ressource | Requise | Notes |
|---|---|---|
| twinded_libs | Oui | Librairie partagee gratuite |
| twinded_lgw_society | Non | Active les factures d'entreprise (B2P et B2B) |
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. La table de base de donnees est creee automatiquement au premier demarrage.
Paiements hors-ligne
Le credit hors-ligne (payer un joueur deconnecte) utilise une mise a jour SQL directe sur la table characters. Ceci est compatible avec VORP par defaut. D'autres frameworks peuvent necessiter des ajustements.
Installation
ensure twinded_libs
ensure twinded_lgw_billingSi vous utilisez les factures d'entreprise, assurez-vous egalement que twinded_lgw_society est demarre avant cette ressource.
Fichiers de configuration
| Fichier | Description |
|---|---|
settings.lua | Commande, montants, distance, taux de change, webhook |
lang.lua | Chaines de traduction (tout le texte visible par le joueur) |
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.Command | string | "twinded_lgw_billing" | Commande pour ouvrir le menu de facturation |
Config.NearbyDistance | number | 5.0 | Distance (metres) pour detecter les joueurs a proximite pour la facturation |
Config.MinAmount | number | 1.0 | Montant minimum de facture |
Config.MaxAmount | number | 50000.0 | Montant maximum de facture |
Config.MaxReasonLength | number | 200 | Nombre maximum de caracteres pour le motif de la facture |
Config.ExchangeRate | number | 2 | Taux de conversion Dollar vers Or |
Config.Table | string | "twinded_lgw_billing" | Nom de la table de base de donnees |
Config.Webhook.type | string | "discord" | 'discord' ou 'custom' |
Config.Webhook.url | string | "" | URL du webhook Discord |
webhook.lua — Champs de donnees personnalises
Lors de l'utilisation de Config.Webhook.type = 'custom', l'objet data._meta contient :
| Champ | Type | Description |
|---|---|---|
action | string | Type d'evenement : "creation", "paiement", "refus", "suppression" |
amount | number | Montant de la facture |
currency | number | Type de devise (0 = dollars, 1 = or) |
invoiceId | number | ID de la facture en base de donnees |
issuerName | string | Nom de l'emetteur de la facture |
targetName | string | Nom du destinataire de la facture |
billType | string | "personal", "business_to_player", ou "business_to_business" |
Fonctionnalites
- Factures personnelles — Envoyez des factures en votre nom, choisissez dollars ou or
- Entreprise a joueur (B2P) — Facturez un joueur au nom de votre entreprise
- Entreprise a entreprise (B2B) — Facturez la tresorerie d'une autre entreprise
- Double devise — Dollars ($) et Or avec conversion automatique
- Integration societe — Add-on optionnel twinded_lgw_society (fonctionne en standalone pour les factures personnelles)
- Paiements hors-ligne — L'emetteur recoit les fonds meme s'il est deconnecte (mise a jour directe en BD)
- Gestion des factures — Consultez, payez, refusez ou supprimez des factures
- Protection d'auto-facturation — Impossible de se facturer soi-meme ou sa propre entreprise
- Migration automatique — Table de base de donnees creee automatiquement au demarrage
- Rate limiting — Cooldown anti-spam
- Logging webhook — Discord ou handler personnalise
Commande
| Commande | Description |
|---|---|
/twinded_lgw_billing | Ouvrir le menu de facturation (configurable dans settings.lua) |
Depannage
| Probleme | Solution |
|---|---|
| Le script ne demarre pas | Assurez-vous que twinded_libs est demarre avant |
| Pas d'option factures d'entreprise | Assurez-vous que twinded_lgw_society est demarre et que votre personnage a un job de societe |
| Impossible de trouver les joueurs proches | Verifiez Config.NearbyDistance — les joueurs doivent etre a portee |
| Le paiement echoue | Verifiez que le payeur a suffisamment de fonds dans la bonne devise |
| Conflit de nom de table | Changez Config.Table dans settings.lua |

