Início › Documentação › Personalização · origen_banking
custom/
├── client/
│ ├── framework.lua
│ └── notify.lua
├── server/
│ ├── framework.lua
│ └── inventory.lua
└── shared/
└── notify.luaTodos os ficheiros de custom/ constam do escrow_ignore, pelo que são totalmente editáveis. Nunca chames diretamente exports da framework a partir destes ficheiros quando já existir um método no bridge: em vez disso, alarga bridge/framework/<name>/server.lua.
Invólucros finos sobre o bridge da framework ativa. Raramente precisam de alterações.
Internal.GetPlayerData(source) -- Framework player object
Internal.GetPlayerIdentifier(source) -- citizenid / identifier
Internal.GetPlayername(source) -- character display nameInternal.GetMoney(source, account) → numberDevolve o saldo do jogador para o tipo de conta indicado. Quando account é 'cash' e o dinheiro vivo é um item do inventário, lê a quantidade do item em vez da conta da 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| Parâmetro | Tipo | Descrição |
|---|---|---|
source |
number |
ID de servidor do jogador |
account |
string |
Tipo de conta. Aqui só se personaliza 'cash'; qualquer outro passa para a framework |
Internal.AddMoney(source, account, amount, reason) → booleanDá dinheiro ao jogador. Devolve false se o montante for inválido ou não positivo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
source |
number |
ID de servidor do jogador |
account |
string |
Tipo de conta |
amount |
number |
Montante positivo a adicionar |
reason |
string |
Etiqueta opcional para os registos e as frameworks estendidas |
Internal.RemoveMoney(source, account, amount, reason) → booleanRetira dinheiro ao jogador. Devolve false quando o jogador não tem o suficiente.
Custom.IsJobBoss(source, jobName) → booleanDevolve true quando o jogador é o chefe do trabalho indicado. É chamada sempre que se avalia o acesso à conta do trabalho.
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
endPara restringir o acesso por nível de grau em vez de pela marca 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) → booleanDevolve true quando o jogador deve ver e operar a conta do trabalho. Por omissão, apenas o chefe. Os utilizadores com acesso concedido manualmente são geridos à parte através de usersAccess.
Para o alargar a todos os empregados:
Custom.HasJobBankAccess = function(source, jobName)
local job = Framework.GetPlayerJobData(tonumber(source))
return job ~= nil and job.jobName == jobName
endCustom.GetPlayerGangName(source) → string | nilDevolve a gangue a que o jogador pertence, ou nil. Lê PlayerData.gang em QB/QBX. O ESX não tem suporte nativo de gangues e devolve nil.
Custom.GetPlayerGangName = function(source)
return exports['my_gangs']:GetPlayerGang(source)
endCustom.IsGangBoss(source, gangName) → booleanDevolve true quando o jogador é o chefe da gangue indicada.
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) → booleanDevolve true quando o jogador deve ver e operar a conta da gangue. Por omissão, apenas o chefe.
Gere o dinheiro vivo como item do inventário. Custom.CashItem resolve-se como 'cash' no origen_inventory fora do ESX, e como 'money' em todos os outros casos.
Custom.CashIsInventoryItem() → booleanDevolve true quando o bridge de inventário ativo gere o dinheiro vivo. Se for false, todas as operações de dinheiro vivo recorrem à conta da framework.
Custom.GetCashItem(source) → numberDevolve a quantidade do item de dinheiro que o jogador transporta. Recorre ao saldo da framework quando o bridge não tem GetItemCount.
Custom.AddCashItem(source, amount) → booleanDá dinheiro vivo ao jogador como item do inventário.
Custom.RemoveCashItem(source, amount) → booleanRetira dinheiro vivo ao jogador. Devolve false quando o jogador não transporta o suficiente.
Custom.Notify(data)Ponto de entrada único para todas as notificações. Corre em ambos os lados: no servidor reencaminha-a para o cliente, e no cliente delega no bridge de notificações.
| Campo | Tipo | Descrição |
|---|---|---|
title |
string |
Título da notificação |
description |
string |
Texto do corpo |
type |
string |
Tipo de notificação |
duration |
number |
Duração em milissegundos |
source |
number |
Jogador destinatário, apenas no servidor. Por omissão -1 |
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)Mostra a dica de interação junto de bancos e multibancos, no formato [key] - text.
Custom.HideText()Oculta a dica que estiver a ser mostrada.
Internal.isPlayerLoaded() → booleanDevolve true quando a personagem do jogador está totalmente carregada. Verifica citizenid em QB/QBX e identifier em ESX.
Internal.GetPlayerIdentifier() → string | nilDevolve o identificador do jogador local.