Accueil › Documentation › Personnalisation · origen_reports
custom/
└── server.luacustom/** figure dans escrow_ignore, il est donc entièrement modifiable. Toutes les fonctions s’exécutent côté serveur et lisent les valeurs détectées automatiquement de Config.Framework, Config.Inventory, Config.Clothing et Config.Ambulance. Ajoute une nouvelle branche lorsque ta ressource n’est pas prise en charge d’origine.
Avec ox_inventory, la liste des items, la remise d’items et l’ouverture des inventaires sont gérées en interne par la ressource. Custom.getItemList, Custom.giveItem et Custom.openPlayerInventory ne sont jamais appelées dans ce cas, donc les modifier n’a aucun effet.
Custom.getIdentifier(source) → string | nilRenvoie l’identifiant unique utilisé pour enregistrer les signalements et les statistiques du staff. Appelée chaque fois qu’un joueur crée un signalement ou qu’un membre du staff est résolu.
| Framework | Valeur renvoyée |
|---|---|
qb-core / qbx_core |
PlayerData.citizenid |
esx |
xPlayer.getIdentifier() |
| Aucun | L’identifiant license |
Custom.getIdentifier = function(source)
local player = getFrameworkPlayer(source)
if Config.Framework == 'qb-core' or Config.Framework == 'qbx_core' then
return player and player.PlayerData and player.PlayerData.citizenid or nil
elseif Config.Framework == 'esx' then
return player and player.getIdentifier and player.getIdentifier() or nil
end
return GetPlayerIdentifierByType(source, 'license')
endChanger le format de l’identifiant après avoir utilisé la ressource rend orphelins les signalements et les statistiques du staff existants, puisqu’ils sont indexés par cette valeur.
Custom.hasConfigFullAccess(source) → booleanRenvoie true lorsque le joueur correspond à une permission de Config.StaffFullAccess.
Custom.hasConfigBasicAccess(source) → booleanRenvoie true lorsque le joueur correspond à une permission de Config.StaffBasicAccess.
Les deux passent par la même vérification interne, appliquée à chaque permission de la liste :
<permission> ou group.<permission>.qbx_core — exports.qbx_core:HasPermission et GetPermission.qb-core — Framework.Functions.GetPermission.esx — xPlayer.getGroup() == permission.Remplace-les pour brancher un système de permissions personnalisé :
Custom.hasConfigFullAccess = function(source)
return exports['my_admin']:IsAdmin(source)
end
Custom.hasConfigBasicAccess = function(source)
return exports['my_admin']:IsModerator(source)
end| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du joueur |
Custom.getStaffLevel(source) → 'full' | 'basic' | falseDétermine le niveau d’accès d’un joueur à partir des deux fonctions précédentes. Si les deux correspondent, l’accès complet l’emporte. Renvoie false lorsque le joueur n’est pas staff par configuration (il peut tout de même être staff limité s’il a été ajouté avec un groupe depuis le panneau d’administration).
Custom.getStaffLevel = function(source)
local hasBasic = Custom.hasConfigBasicAccess(source)
local hasFull = Custom.hasConfigFullAccess(source)
if hasBasic and hasFull then
return 'full'
end
if hasBasic then
return 'basic'
end
if hasFull then
return 'full'
end
return false
endCustom.getItemList() → tableRenvoie tous les items enregistrés sous la forme { name, label }, triés par libellé. Utilisée pour remplir le sélecteur d’items de l’action rapide donner des items et la liste des items autorisés des groupes de staff.
| Inventaire | Source |
|---|---|
qb-inventory / ps-inventory |
Framework.Shared.Items |
codem-inventory |
exports['codem-inventory']:GetItemList() |
qs-inventory |
exports['qs-inventory']:GetItemList() |
origen_inventory |
exports.origen_inventory:Items() |
core_inventory |
Framework.Shared.Items, ou Framework.Items() sur ESX |
tgiann-inventory |
exports['tgiann-inventory']:GetItemList() |
| Tout autre | Framework.Shared.Items, ou Framework.Items() sur ESX |
Pour ajouter un inventaire, renvoie sa table d’items via la fonction utilitaire locale mapItemTable :
elseif Config.Inventory == 'my_inventory' then
return mapItemTable(exports['my_inventory']:GetItemList())Custom.giveItem(source, item, count) → booleanDonne un item au joueur signalé. Appelée par l’action rapide donner des items. Renvoie true en cas de succès par convention, bien que la ressource ne lise pas la valeur renvoyée.
| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du joueur qui reçoit l’item |
item |
string |
Nom de l’item |
count |
number |
Quantité à donner |
qs-inventory et tgiann-inventory vérifient d’abord CanCarryItem et renvoient false lorsque le joueur ne peut pas le porter. Les inventaires sans branche dédiée se rabattent sur le framework : Functions.AddItem sur QB/Qbox et addInventoryItem sur ESX.
elseif Config.Inventory == 'my_inventory' then
if not exports['my_inventory']:CanCarryItem(source, item, count) then return false end
return exports['my_inventory']:AddItem(source, item, count)Custom.openPlayerInventory(source, target) → booleanOuvre au membre du staff l’inventaire du joueur signalé. Appelée par l’action rapide inventaire. Renvoie false lorsque l’inventaire n’est pas pris en charge.
| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du membre du staff |
target |
number |
ID serveur du joueur dont l’inventaire est ouvert |
| Inventaire | Appel |
|---|---|
qb-inventory |
OpenInventory(source, target) |
ps-inventory |
OpenInventoryById(source, target) |
origen_inventory |
OpenInventory(source, 'otherplayer', target) |
core_inventory |
openInventory(source, 'stash-<identifier>', 'stash', ...) |
tgiann-inventory |
OpenInventoryById(source, target) |
jpr-inventory |
OpenInventory(source, identifier) |
qs-inventory et codem-inventory n’ont pas de branche ici, donc l’action rapide inventaire renvoie false avec eux. Ajoute leur appel d’ouverture si tu utilises l’un des deux.
Custom.openClothingMenu(source) → booleanOuvre le menu de vêtements au joueur signalé. Appelée par l’action rapide vêtements.
| Vêtements | Événement client |
|---|---|
illenium-appearance |
illenium-appearance:client:openClothingShopMenu |
esx_skin |
esx_skin:openMenu |
qb-clothing / fivem-appearance / rcore_clothing |
qb-clothing:client:openMenu |
origen_clothing |
origen_clothing:client:openOutfitMenu |
elseif Config.Clothing == 'my_clothing' then
TriggerClientEvent('my_clothing:client:openMenu', source)
return trueCustom.revivePlayer(source) → booleanRéanime le joueur signalé. Appelée par l’action rapide réanimer.
| Ambulance | Appel |
|---|---|
qb-ambulancejob / qbx_medical |
Événement client hospital:client:Revive |
esx_ambulancejob |
Événement serveur esx_ambulancejob:revive |
wasabi_ambulance |
Événement serveur wasabi_ambulance:revivePlayer |
| Aucune sur ESX | Événement serveur esx_ambulancejob:revive |
| Aucune sur QB/Qbox | Événement client hospital:client:Revive |
elseif Config.Ambulance == 'my_ambulance' then
TriggerClientEvent('my_ambulance:client:revive', source)
return true| Paramètre | Type | Description |
|---|---|---|
source |
number |
ID serveur du joueur à réanimer |