Accueil › Documentation › Personnalisation · origen_reports

Personnalisation · origen_reports

text
custom/
└── server.lua

custom/** 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/server.lua

Custom.getIdentifier(source) → string | nil

Renvoie 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
lua
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')
end

Changer 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) → boolean

Renvoie true lorsque le joueur correspond à une permission de Config.StaffFullAccess.

Custom.hasConfigBasicAccess(source) → boolean

Renvoie 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 :

  1. ACE <permission> ou group.<permission>.
  2. qbx_core — exports.qbx_core:HasPermission et GetPermission.
  3. qb-core — Framework.Functions.GetPermission.
  4. esx — xPlayer.getGroup() == permission.

Remplace-les pour brancher un système de permissions personnalisé :

lua
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' | false

Dé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).

lua
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
end

Custom.getItemList() → table

Renvoie 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 :

lua
elseif Config.Inventory == 'my_inventory' then
    return mapItemTable(exports['my_inventory']:GetItemList())

Custom.giveItem(source, item, count) → boolean

Donne 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.

lua
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) → boolean

Ouvre 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) → boolean

Ouvre 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
lua
elseif Config.Clothing == 'my_clothing' then
    TriggerClientEvent('my_clothing:client:openMenu', source)
    return true

Custom.revivePlayer(source) → boolean

Ré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
lua
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