Salta ai contenuti

Personalizzazione

Le impostazioni si trovano in config.lua. I due file bridge sono aperti così puoi adattare il lato framework. Il tablet stesso è semplice HTML in html/.


FileCosa decideAperto?
config.luaLingua, framework, foto, il comando del creatore, la griglia live, chi può usare il tablet e i prop telecameraSì
bridge/client_bridge.luaRilevamento del framework, lavoro del giocatore, notifiche e testo di aiuto a schermoSì
bridge/server_bridge.luaRilevamento del framework, identificatori, lavori, oggetti utilizzabili, aggiunta/rimozione oggetti, notificheSì
items/Definizioni degli oggetti per ox, qb ed ESX, e le icone in items/images/Sì
html/Il tablet: index.html, app.js, app.css, la mappa (map.js, map.css) e i suoi tasselli in html/tiles/Non protetto da escrow
locales/*.luaOgni stringa di testo, in gioco e sul tabletProtetto in questa versione
client/, server/Lo scriptProtetto da escrow

OpzioneCosa faPredefinito
Config.LocaleQuale lingua viene utilizzata'en'
Config.Frameworkesx, qbcore, o auto per rilevarlo. Su QBox, auto lo trova come qbcore tramite la compatibilità QBCore; per fissarlo, usa qbcore'auto'
Config.EvidenceEnabledFoto attive o disattivate. Se disattivato, Spazio in una telecamera e lo snapshot della griglia non fanno nullatrue
Config.CreatorCommandIl comando che apre il creatore admin'camcreator'
Config.CreatorAceIl permesso ACE richiesto dal creatore'mic_cctvcreator.open'
Config.LiveGridFPSQuante volte al secondo si aggiorna la griglia. Da 1 a 15; più alto è più fluido ma più pesante5
Config.BlackScreenBehindUIDisegna uno sfondo nero dietro il tablet per nascondere i salti tra le telecamere durante l’aggiornamento della grigliatrue
Config.AllowedJobsLavori autorizzati ad aprire il tablet. Vuoto significa tutti. Vedi sotto{}
Config.SpawnDistanceQuanto vicino devi essere perché il prop di una telecamera venga generato60.0
Config.BreakableCameraSe le telecamere possono essere rotte o menotrue
Config.RepairDistanceFin dove arriva il laser di riparazione20.0
Config.RepairTimeQuanto tempo richiede una riparazione, in millisecondi5000

Questa è la parte che vale la pena decidere prima che chiunque piazzi una telecamera.

  • Chiunque abbia un cctv_tablet può aprirlo.
  • Una telecamera piazzata da un giocatore è privata: solo lui la vede.
  • Il proprietario può poi condividerla con il suo lavoro — diventando una telecamera di lavoro per tutti gli appartenenti a quel lavoro — oppure assegnarle un nome di accesso e una password. Chiunque li inserisca nel proprio tablet aggiunge la telecamera.

Config.AllowedJobs impostato, ad esempio polizia e sceriffo

Sezione intitolata “Config.AllowedJobs impostato, ad esempio polizia e sceriffo”
  • Solo quei lavori possono aprire il tablet; a chiunque altro viene detto che non è autorizzato.
  • Una telecamera piazzata da un giocatore diventa una telecamera di lavoro per il lavoro che ricopre in quel momento.

Sono sempre telecamere di lavoro, visibili a ogni lavoro selezionato nel creatore. Una telecamera del creatore senza alcun lavoro selezionato non è visibile a nessuno.

  • Una foto scattata da una telecamera privata è privata per chi l’ha scattata. Una foto da una telecamera di lavoro appartiene al lavoro. Entrambe possono essere condivise con il proprio lavoro dalla galleria.
  • I log di violazione vengono mostrati per ogni telecamera a cui hai accesso — i 30 più recenti. Riparare una telecamera cancella il suo log.

Il proprietario può rimuovere la propria telecamera dal tablet e riavere indietro l’oggetto.


Con Config.BreakableCamera attivo, una telecamera va offline quando un proiettile colpisce entro circa un metro da essa, o quando viene colpita in corpo a corpo, da un’esplosione o da un veicolo. Il creatore può contrassegnare singole telecamere come indistruttibili.

Il kit di riparazione, cctv_repair, accende un laser. Puntalo su una telecamera rotta entro Config.RepairDistance, premi E e attendi Config.RepairTime. Il kit non si consuma. Backspace o ESC lo ripone.


Piazzare una telecamera (da un oggetto)

TastoCosa fa
Guardarsi intornoSposta l’anteprima sulla superficie che stai guardando
Rotellina del mouseLa ruota
ELa piazza; ti viene chiesto un nome
Clic destro / ESCAnnulla

Guardare attraverso una telecamera

TastoCosa fa
W / SInclina in alto e in basso
A / DRuota. Le telecamere da parete e da palo si fermano a 45° per lato; i modelli 360° girano del tutto
Rotellina del mouseZoom
InvioAlterna visione normale, notturna e termica
SpazioScatta una foto per la galleria delle prove
Backspace / ESCTorna al tablet

Il creatore admin (/camcreator)

Scegli un modello (parete, parete 360, palo, palo 360), un nome base, i lavori che possono vederla e se può essere rotta, poi entra in modalità piazzamento:

TastoCosa fa
← / →Cambia modello
Rotellina del mouseRuota
EPiazza; ti viene chiesto un nome
Clic destro / ESCTorna al menu del creatore

ComandoChiCosa fa
/camcreatorGiocatori con il permesso Config.CreatorAceApre il creatore admin. Cambia il nome con Config.CreatorCommand

Concedi il permesso in server.cfg con una riga add_ace per il gruppo desiderato, ad esempio assegnando mic_cctvcreator.open a group.admin. Se cambi Config.CreatorAce, assegna il nuovo nome.


Lato client, per altre risorse che devono interagire con le telecamere:

ExportArgomentiRestituisce
GetCameraStatusid telecamera'online', 'broken', oppure 'offline' se l’id è sconosciuto
GetCameraIdFromEntityentity handleL’id della telecamera di un prop telecamera generato, o niente
IsPlacing—true mentre il giocatore sta piazzando una telecamera
HideNearbyCameracoordsNasconde il prop telecamera più vicino entro 2 m e lo restituisce
UnhideCamerapropMostra di nuovo un prop nascosto con HideNearbyCamera

Ne sono incluse undici: en, es, fr, de, it, pt, ar, ja, pl, ru, tr. Imposta Config.Locale sul codice desiderato. Il tablet e il testo in gioco usano lo stesso file.

In questa versione i file in locales/ fanno parte del codice protetto, quindi non possono essere modificati. Se hai bisogno di una lingua non presente, o di una formulazione diversa, chiedi pure sul Discord.


FileCosa gestisce
bridge/client_bridge.luaRilevamento del framework, Bridge.GetPlayerJob, Bridge.Notify e Bridge.ShowTextUI / Bridge.HideTextUI per il prompt di riparazione
bridge/server_bridge.luaRilevamento del framework, Bridge.GetPlayerIdentifier, Bridge.GetPlayerJob, Bridge.RegisterUsableItem, Bridge.AddItem, Bridge.AddItemWithMetadata, Bridge.RemoveItem, Bridge.Notify

Una risorsa di notifiche diversa: modifica Bridge.Notify in entrambi i file.

Una text UI diversa (ox_lib, okok…): Bridge.ShowTextUI e Bridge.HideTextUI nel file client. Su QBCore usano il DrawText nativo di QBCore; altrimenti il testo di aiuto del gioco.

Inventario: quando ox_inventory è attivo, gli oggetti vengono aggiunti e rimossi tramite esso su entrambi i framework. Altrimenti vengono usate le funzioni proprie del framework.

Un framework diverso: imposta Config.Framework e compila il blocco di rilevamento e le funzioni per identificatore, lavoro e oggetti in entrambi i file. Senza un framework lo script ripiega sull’identificatore license: e considera tutti unemployed, ma gli oggetti — incluso il tablet — vengono registrati solo su ESX e QBCore (QBox incluso, tramite la sua compatibilità QBCore).