Accueil › Documentation › Personnalisation · origen_banking
custom/
├── client/
│ ├── framework.lua
│ └── notify.lua
├── server/
│ ├── framework.lua
│ └── inventory.lua
└── shared/
└── notify.luaTous les fichiers de custom/ figurent dans escrow_ignore, ils sont donc entièrement modifiables. N’appelle jamais directement les exports du framework depuis ces fichiers lorsqu’une méthode existe déjà dans le bridge : étends plutôt bridge/framework/<name>/server.lua.
Fines surcouches du bridge du framework actif. Elles ont rarement besoin d’être modifiées.
Internal.GetPlayerData(source) -- Framework player object
Internal.GetPlayerIdentifier(source) -- citizenid / identifier
Internal.GetPlayername(source) -- character display nameInternal.GetMoney(source, account) → numberRenvoie le solde du joueur pour le type de compte donné. Quand account vaut 'cash' et que l’argent liquide est un item de l’inventaire, lit la quantité de l’item au lieu du compte du framework.
Internal.GetMoney = function(source, account)
if account == 'cash' and Custom.CashIsInventoryItem() then
return Custom.GetCashItem(source)
end
return Framework.GetAccountBalance(tonumber(source), account)
end| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du joueur |
account |
string |
Type de compte. Seul 'cash' est personnalisé ici ; tout le reste passe au framework |
Internal.AddMoney(source, account, amount, reason) → booleanDonne de l’argent au joueur. Renvoie false si le montant est invalide ou non positif.
| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du joueur |
account |
string |
Type de compte |
amount |
number |
Montant positif à ajouter |
reason |
string |
Libellé facultatif pour les journaux et les frameworks étendus |
Internal.RemoveMoney(source, account, amount, reason) → booleanRetire de l’argent au joueur. Renvoie false quand le joueur n’en a pas assez.
Custom.IsJobBoss(source, jobName) → booleanRenvoie true quand le joueur est le patron du métier indiqué. Appelée à chaque évaluation de l’accès au compte du métier.
Custom.IsJobBoss = function(source, jobName)
local src = tonumber(source)
if not src or src <= 0 then return false end
local jobData = Framework.GetPlayerJobData(src)
if not jobData then return false end
return jobData.jobName == jobName and jobData.boss == true
endPour restreindre l’accès selon le niveau de grade plutôt que selon l’indicateur isboss :
Custom.IsJobBoss = function(source, jobName)
local job = Framework.GetPlayerJobData(tonumber(source))
return job ~= nil and job.jobName == jobName and job.gradeRank >= 3
endCustom.HasJobBankAccess(source, jobName) → booleanRenvoie true quand le joueur doit voir et utiliser le compte du métier. Par défaut, seul le patron y a accès. Les utilisateurs auxquels l’accès a été accordé manuellement sont gérés séparément via usersAccess.
Pour l’étendre à tous les employés :
Custom.HasJobBankAccess = function(source, jobName)
local job = Framework.GetPlayerJobData(tonumber(source))
return job ~= nil and job.jobName == jobName
endCustom.GetPlayerGangName(source) → string | nilRenvoie le gang auquel appartient le joueur, ou nil. Lit PlayerData.gang sur QB/QBX. ESX n’a pas de gestion native des gangs et renvoie nil.
Custom.GetPlayerGangName = function(source)
return exports['my_gangs']:GetPlayerGang(source)
endCustom.IsGangBoss(source, gangName) → booleanRenvoie true quand le joueur est le chef du gang indiqué.
Custom.IsGangBoss = function(source, gangName)
local Player = Framework.GetPlayer(source)
local gang = Player and Player.PlayerData.gang
return gang and gang.name == gangName and gang.grade.level >= 2
endCustom.HasGangBankAccess(source, gangName) → booleanRenvoie true quand le joueur doit voir et utiliser le compte du gang. Par défaut, seul le chef y a accès.
Gère l’argent liquide en tant qu’item d’inventaire. Custom.CashItem vaut 'cash' sur origen_inventory hors ESX, et 'money' partout ailleurs.
Custom.CashIsInventoryItem() → booleanRenvoie true quand le bridge d’inventaire actif gère l’argent liquide. Si false, toutes les opérations en liquide se rabattent sur le compte du framework.
Custom.GetCashItem(source) → numberRenvoie la quantité de l’item d’argent que le joueur porte. Se rabat sur le solde du framework quand le bridge n’a pas de GetItemCount.
Custom.AddCashItem(source, amount) → booleanDonne de l’argent liquide au joueur sous forme d’item d’inventaire.
Custom.RemoveCashItem(source, amount) → booleanRetire de l’argent liquide au joueur. Renvoie false quand le joueur n’en porte pas assez.
Custom.Notify(data)Point d’entrée unique de toutes les notifications. S’exécute des deux côtés : côté serveur, elle la transmet au client ; côté client, elle délègue au bridge de notifications.
| Champ | Type | Description |
|---|---|---|
title |
string |
Titre de la notification |
description |
string |
Texte du corps |
type |
string |
Type de notification |
duration |
number |
Durée en millisecondes |
source |
number |
Joueur destinataire, côté serveur uniquement. -1 par défaut |
Custom.Notify = function(data)
if isServer then
TriggerClientEvent('ox_lib:notify', data.source or -1, data)
else
Notify.SendNotification(data.title, data.description, data.type, data.duration)
end
endCustom.DrawText(text, key)Affiche l’indication d’interaction près des banques et des distributeurs, au format [key] - text.
Custom.HideText()Masque l’indication actuellement affichée.
Internal.isPlayerLoaded() → booleanRenvoie true une fois le personnage du joueur entièrement chargé. Vérifie citizenid sur QB/QBX et identifier sur ESX.
Internal.GetPlayerIdentifier() → string | nilRenvoie l’identifiant du joueur local.