Comandos#
Job Management registra sus comandos y teclas desde Config.Interactions en config/config.lua. Cambia el nombre de cualquiera de ellos ahí, o establécelo en nil para desactivarlo.
Comando / tecla | Quién | Descripción |
|---|---|---|
| Todos los jugadores | Abre el menú de trabajos. Con |
| Administradores | Abre el panel de administración. Cualquier otra persona ve No permission. |
| El jefe, los rangos con Open Menu, los administradores | Abre el menú de jefe del trabajo activo. |
| Administradores | Abre el panel de administración con una tecla — 167 para F6. |
| El jefe del trabajo | Abre el menú de jefe del trabajo activo desde cualquier lugar, sin ir a la zona. |
Las teclas son ids de control de GTA, leídos directamente — no aparecen en los ajustes de asignación de teclas del juego, así que los jugadores no pueden reasignarlas.
Config.Interactions = {
jobCommand = "jobs", -- /jobs instead of /job
jobKey = nil, -- no key for the job menu
adminCommand = "jobadmin",
adminKey = nil,
bossCommand = "bossmenu",
bossKey = 167, -- F6
}Exports de cliente#
Para abrir el menú de trabajos desde tus propios scripts — un menú radial, una app del teléfono, un prop de tablet, un botón del HUD.
requestJobs — abrir el menú de trabajos
exports['qs-job-management']:requestJobs()Abre el menú de trabajos exactamente como lo hace /job, con los trabajos, niveles y porcentajes de tesorería del jugador. Omite la comprobación de Config.UseByLicense, así que restríngelo tú mismo si limitas el multijob por licencia.
-- An ox_lib radial menu entry
lib.addRadialItem({
id = 'jobs',
icon = 'briefcase',
label = 'My jobs',
onSelect = function()
exports['qs-job-management']:requestJobs()
end,
})Exports de servidor#
Cómo otro recurso controla Job Management — un script de trabajo que paga a sus trabajadores a través de la tesorería, un script de juzgado o de baneos que quita un trabajo.
AddJobMoney — pagar a un trabajador a través de la tesorería del trabajo
exports['qs-job-management']:AddJobMoney(source, amount, jobName)Parámetro | Tipo | Descripción |
|---|---|---|
| number | El id de servidor del trabajador. |
| number | El pago completo, antes del porcentaje. Se redondea hacia abajo a dólares enteros; 0 o menos se ignora. |
| string | El trabajo al que pertenece el dinero — el mismo nombre que en |
El trabajador recibe el pago menos el porcentaje del trabajo, en efectivo. El porcentaje, menos el impuesto del gobierno, va a la tesorería del trabajo, y se actualizan las estadísticas del trabajo y las ganancias del trabajador. No devuelve nada.
Protege la llamada para que tu recurso siga pagando cuando Job Management no esté en ejecución:
local payout = 450
if GetResourceState('qs-job-management') == 'started' then
exports['qs-job-management']:AddJobMoney(source, payout, 'miner')
else
-- your usual payout
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.addMoney(payout)
endNo pagues también tú al trabajador —
AddJobMoneyya le entrega su parte.
FirePlayerFromJob — quitar un trabajo a un jugador conectado
local ok = exports['qs-job-management']:FirePlayerFromJob(source, jobName)Parámetro | Tipo | Descripción |
|---|---|---|
| number | El id de servidor del jugador. |
| string | El trabajo que se quita. |
Quita el trabajo de la lista del jugador y, si era su trabajo activo, lo pone como desempleado. Devuelve true, o false cuando el jugador no está cargado. Es silencioso: sin aviso al jugador ni entrada en el registro de RR. HH.
-- A court script stripping a convicted officer of their badge
exports['qs-job-management']:FirePlayerFromJob(targetSrc, 'police')FirePlayerFromJobOffline — quitar un trabajo por identificador
exports['qs-job-management']:FirePlayerFromJobOffline(identifier, jobName)Parámetro | Tipo | Descripción |
|---|---|---|
| string | El |
| string | El trabajo que se quita. |
Quita el trabajo de la lista y restablece a desempleado el trabajo de framework guardado del personaje — en users en ESX, en players en QBCore y Qbox — sea cual sea el trabajo. Siempre devuelve true.
-- A ban routine clearing a character's police job
exports['qs-job-management']:FirePlayerFromJobOffline(citizenid, 'police')Leer los trabajos de un jugador#
La lista de trabajos está en la tabla qs_job_management, así que cualquier script de servidor puede leerla — para mostrar los trabajos de un personaje en un MDT, o para comprobar si alguien trabaja para una empresa antes de dejarle entrar:
local rows = MySQL.query.await(
'SELECT job, grade, badges FROM qs_job_management WHERE identifier = ?',
{ identifier } -- ESX identifier, or QBCore/Qbox citizenid
)
for _, row in ipairs(rows) do
local badges = json.decode(row.badges or '[]') -- a list of badge names
print(row.job, row.grade, #badges)
endLéela en lugar de escribir en ella: el recurso mantiene por sí solo la lista sincronizada con el framework, los límites y los registros.



