Exports
DS-ServerCreator espone export lato server che permettono alle tue resource di riutilizzare i sistemi di permessi, doorlock, multijob e rapine configurati dal pannello in-game.
Permessi
HasPermission
serverControlla se un player può usare una delle azioni configurate in Server Creator. Considera sia le azioni globali sia i permessi assegnati al job attuale.
Firma
exports['DS-ServerCreator']:HasPermission(playerId, permission)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| playerId | number | Il server ID del player. |
| permission | string | La chiave del permesso, ad esempio handcuff, drag, billing, revive oppure check_identity. |
Restituisce
true se l’azione è consentita, altrimenti false.
Esempio
if exports['DS-ServerCreator']:HasPermission(source, 'handcuff') then
-- The player can use the handcuff action
endGetPlayerPermissions
serverRestituisce la mappa dei permessi effettivi del player, unendo i permessi del job alle azioni globali abilitate.
Firma
exports['DS-ServerCreator']:GetPlayerPermissions(playerId)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| playerId | number | Il server ID del player. |
Restituisce
Una tabella indicizzata per nome del permesso. Restituisce una tabella vuota se non ci sono permessi applicabili o il player ID non è valido.
Esempio
local permissions = exports['DS-ServerCreator']:GetPlayerPermissions(source)
if permissions.billing then
-- Show the billing option
endIsPlayerHandcuffed
clientLegge lo stato locale e controlla se il player client è attualmente ammanettato da Server Creator.
Firma
exports['DS-ServerCreator']:IsPlayerHandcuffed()Restituisce
true mentre il player locale è ammanettato, altrimenti false.
Esempio
if exports['DS-ServerCreator']:IsPlayerHandcuffed() then
-- Block an action for the local cuffed player
endIsPlayerHandcuffed
serverControlla se uno specifico player è attualmente ammanettato dalle azioni integrate di Server Creator.
Firma
exports['DS-ServerCreator']:IsPlayerHandcuffed(playerId)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| playerId | number | Il server ID del player. |
Restituisce
true mentre il player è ammanettato, altrimenti false.
Esempio
if exports['DS-ServerCreator']:IsPlayerHandcuffed(targetId) then
print('The player is handcuffed')
endDoorlock
GetDoorState
serverLegge lo stato live autorevole di una porta integrata in Server Creator.
Firma
exports['DS-ServerCreator']:GetDoorState(reference)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| reference | number | string | L’ID numerico del database oppure il nome stabile della porta configurato nel pannello. |
Restituisce
locked oppure unlocked. Se la porta non esiste, restituisce nil seguito da door_not_found.
Esempio
local state, errorCode = exports['DS-ServerCreator']:GetDoorState('bank_vault')
if state == 'locked' then
print('The vault is locked')
endSetDoorState
serverImposta lo stato live della porta, sincronizza tutti i client, esegue l’hook configurato e attiva l’autolock quando previsto.
Firma
exports['DS-ServerCreator']:SetDoorState(reference, newState)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| reference | number | string | L’ID numerico del database oppure il nome stabile della porta configurato nel pannello. |
| newState | string | Il nuovo stato: locked oppure unlocked. |
Restituisce
Un booleano di successo seguito dallo stato risultante, oppure da un codice errore.
Esempio
local success, stateOrError = exports['DS-ServerCreator']:SetDoorState('bank_vault', 'unlocked')ToggleDoor
serverAlterna la porta tra locked e unlocked usando la stessa sincronizzazione autorevole delle interazioni normali.
Firma
exports['DS-ServerCreator']:ToggleDoor(reference)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| reference | number | string | L’ID numerico del database oppure il nome stabile della porta configurato nel pannello. |
Restituisce
Un booleano di successo seguito dallo stato risultante, oppure da un codice errore.
Esempio
local success, stateOrError = exports['DS-ServerCreator']:ToggleDoor('bank_vault')Multijob
GetPlayerJobs
serverRestituisce tutti i job posseduti dal player, completi delle label di job e grado. Passando un identifier supporta anche le ricerche offline.
Firma
exports['DS-ServerCreator']:GetPlayerJobs(player)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| player | number | string | Il server ID di un player online oppure un identifier del framework per una ricerca offline. |
Restituisce
Un array contenente job_name, job_grade, is_active, job_label e grade_label.
Esempio
local jobs = exports['DS-ServerCreator']:GetPlayerJobs(source)
for _, job in ipairs(jobs) do
print(job.job_name, job.job_grade, job.is_active)
endHasPlayerJob
serverControlla se un player possiede un job, con la possibilità di richiedere un grado minimo.
Firma
exports['DS-ServerCreator']:HasPlayerJob(player, jobName, minimumGrade)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| player | number | string | Il server ID di un player online oppure un identifier del framework per una ricerca offline. |
| jobName | string | Il nome interno del job, ad esempio police. |
| minimumGrade? | number | Grado minimo facoltativo. Omettilo per accettare qualsiasi grado del job. |
Restituisce
true se il player possiede il job richiesto e soddisfa il requisito di grado.
Esempio
if exports['DS-ServerCreator']:HasPlayerJob(source, 'police', 2) then
-- The player holds police grade 2 or higher
endRapine
GetRobberies
serverRestituisce tutte le definizioni delle rapine usando lo stesso formato sicuro inviato ai player normali.
Firma
exports['DS-ServerCreator']:GetRobberies()Restituisce
Un array di rapine sanitizzate, comprensivo di step pubblici, marker, blip e suoni.
Esempio
local robberies = exports['DS-ServerCreator']:GetRobberies()
for _, robbery in ipairs(robberies) do
print(robbery.id, robbery.name, robbery.enabled)
endIsRobberyActive
serverControlla se una rapina possiede attualmente una sessione runtime attiva.
Firma
exports['DS-ServerCreator']:IsRobberyActive(robberyId)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| robberyId | number | L’ID numerico della rapina mostrato nel pannello Server Creator. |
Restituisce
true mentre la rapina è riservata o in corso, altrimenti false.
Esempio
if exports['DS-ServerCreator']:IsRobberyActive(1) then
print('Robbery #1 is in progress')
endGetRobberyState
serverRestituisce lo stato live pubblico di una rapina, inclusi stato, step attuale, numero di partecipanti, prop raccolti e cooldown residuo.
Firma
exports['DS-ServerCreator']:GetRobberyState(robberyId)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
| robberyId | number | L’ID numerico della rapina mostrato nel pannello Server Creator. |
Restituisce
La tabella dello stato live oppure nil se l’ID della rapina non esiste.
Esempio
local state = exports['DS-ServerCreator']:GetRobberyState(1)
if state then
print(state.state, state.currentStep, state.cooldownRemaining)
endGetRobberies non espone mai codici keypad, ricompense, probabilità di allerta o altri valori riservati al server. Le tabelle restituite sono copie: modificarle non cambia lo stato interno di Server Creator.