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/.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File | Cosa decide | Aperto? |
|---|---|---|
config.lua | Lingua, framework, foto, il comando del creatore, la griglia live, chi può usare il tablet e i prop telecamera | Sì |
bridge/client_bridge.lua | Rilevamento del framework, lavoro del giocatore, notifiche e testo di aiuto a schermo | Sì |
bridge/server_bridge.lua | Rilevamento del framework, identificatori, lavori, oggetti utilizzabili, aggiunta/rimozione oggetti, notifiche | Sì |
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/*.lua | Ogni stringa di testo, in gioco e sul tablet | Protetto in questa versione |
client/, server/ | Lo script | Protetto da escrow |
Generale — config.lua
Sezione intitolata “Generale — config.lua”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Locale | Quale lingua viene utilizzata | 'en' |
Config.Framework | esx, qbcore, o auto per rilevarlo. Su QBox, auto lo trova come qbcore tramite la compatibilità QBCore; per fissarlo, usa qbcore | 'auto' |
Config.EvidenceEnabled | Foto attive o disattivate. Se disattivato, Spazio in una telecamera e lo snapshot della griglia non fanno nulla | true |
Config.CreatorCommand | Il comando che apre il creatore admin | 'camcreator' |
Config.CreatorAce | Il permesso ACE richiesto dal creatore | 'mic_cctvcreator.open' |
Config.LiveGridFPS | Quante volte al secondo si aggiorna la griglia. Da 1 a 15; più alto è più fluido ma più pesante | 5 |
Config.BlackScreenBehindUI | Disegna uno sfondo nero dietro il tablet per nascondere i salti tra le telecamere durante l’aggiornamento della griglia | true |
Config.AllowedJobs | Lavori autorizzati ad aprire il tablet. Vuoto significa tutti. Vedi sotto | {} |
Config.SpawnDistance | Quanto vicino devi essere perché il prop di una telecamera venga generato | 60.0 |
Config.BreakableCamera | Se le telecamere possono essere rotte o meno | true |
Config.RepairDistance | Fin dove arriva il laser di riparazione | 20.0 |
Config.RepairTime | Quanto tempo richiede una riparazione, in millisecondi | 5000 |
Chi vede quale telecamera
Sezione intitolata “Chi vede quale telecamera”Questa è la parte che vale la pena decidere prima che chiunque piazzi una telecamera.
Config.AllowedJobs vuoto (il predefinito)
Sezione intitolata “Config.AllowedJobs vuoto (il predefinito)”- Chiunque abbia un
cctv_tabletpuò 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.
Telecamere dal creatore admin
Sezione intitolata “Telecamere dal creatore admin”Sono sempre telecamere di lavoro, visibili a ogni lavoro selezionato nel creatore. Una telecamera del creatore senza alcun lavoro selezionato non è visibile a nessuno.
Prove e log
Sezione intitolata “Prove e log”- 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.
Rimuovere una telecamera
Sezione intitolata “Rimuovere una telecamera”Il proprietario può rimuovere la propria telecamera dal tablet e riavere indietro l’oggetto.
Rottura e riparazione
Sezione intitolata “Rottura e riparazione”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.
Comandi di gioco
Sezione intitolata “Comandi di gioco”Piazzare una telecamera (da un oggetto)
| Tasto | Cosa fa |
|---|---|
| Guardarsi intorno | Sposta l’anteprima sulla superficie che stai guardando |
| Rotellina del mouse | La ruota |
| E | La piazza; ti viene chiesto un nome |
| Clic destro / ESC | Annulla |
Guardare attraverso una telecamera
| Tasto | Cosa fa |
|---|---|
| W / S | Inclina in alto e in basso |
| A / D | Ruota. Le telecamere da parete e da palo si fermano a 45° per lato; i modelli 360° girano del tutto |
| Rotellina del mouse | Zoom |
| Invio | Alterna visione normale, notturna e termica |
| Spazio | Scatta una foto per la galleria delle prove |
| Backspace / ESC | Torna 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:
| Tasto | Cosa fa |
|---|---|
| ← / → | Cambia modello |
| Rotellina del mouse | Ruota |
| E | Piazza; ti viene chiesto un nome |
| Clic destro / ESC | Torna al menu del creatore |
Comandi e permessi
Sezione intitolata “Comandi e permessi”| Comando | Chi | Cosa fa |
|---|---|---|
/camcreator | Giocatori con il permesso Config.CreatorAce | Apre 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:
| Export | Argomenti | Restituisce |
|---|---|---|
GetCameraStatus | id telecamera | 'online', 'broken', oppure 'offline' se l’id è sconosciuto |
GetCameraIdFromEntity | entity handle | L’id della telecamera di un prop telecamera generato, o niente |
IsPlacing | — | true mentre il giocatore sta piazzando una telecamera |
HideNearbyCamera | coords | Nasconde il prop telecamera più vicino entro 2 m e lo restituisce |
UnhideCamera | prop | Mostra 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.
Il bridge
Sezione intitolata “Il bridge”| File | Cosa gestisce |
|---|---|
bridge/client_bridge.lua | Rilevamento del framework, Bridge.GetPlayerJob, Bridge.Notify e Bridge.ShowTextUI / Bridge.HideTextUI per il prompt di riparazione |
bridge/server_bridge.lua | Rilevamento 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).