Documentazione di ZeroDev Sound
ZeroDev Sound: guida all'installazione
Questa risorsa non contiene né fornisce alcuna integrazione audio o musicale di terze parti. La musica viene riprodotta solo da file audio che il proprietario del server aggiunge alla risorsa e dalla radio integrata di GTA. I giocatori non possono inserire link. Aggiungi solo audio che possiedi o di cui hai i diritti di utilizzo e distribuzione; trasmettere contenuti in streaming senza autorizzazione può violare il Cfx.re Creator Platform License Agreement e la legge.
Casse che i giocatori comprano, portano in giro, appoggiano e collegano, e audio per auto che montano sulle loro auto. Questo è il riferimento completo. Per la versione breve leggi docs/SETUP.md (5 passaggi); per i problemi, docs/TROUBLESHOOTING.md; se arrivi dalla 1.x, UPGRADING.md.
Indice 1. Requisiti 2. Installazione 3. Item per il tuo inventario 4. Primo avvio: cosa dovresti vedere 5. Le impostazioni più modificate 6. Comandi 7. Audio per auto 8. Sorgenti musicali 9. Pulse Phone 10. Polizia, vicini e admin 11. Lingue 12. Risoluzione dei problemi 13. Aggiornamenti
1. Requisiti
| Obbligatorio | oxmysql. ZeroDev Sound crea le sue tabelle al primo avvio; non c'è nessun file SQL da importare. |
| Framework | ESX Legacy, QBCore, Qbox, o nessuno (standalone). Rilevato da solo. |
| Inventario | ox_inventory, qb-inventory (anche ps- e lj-inventory), qs-inventory, codem-inventory, core_inventory, origen_inventory, tgiann-inventory, l'inventario ESX, o nessuno. Rilevato da solo. |
| Facoltativo | ox_target o qb-target (senza, i giocatori ricevono invece un prompt con tasto a schermo). Pulse Phone 1.2.9 o successivo (aggiunge l'app Sound e l'autoradio su Pulse Drive). pma-voice per il microfono: senza, il microfono si può impugnare e ci si può cantare, ma nessuno lo sente dalle casse. |
Nient'altro: niente ox_lib, nessuna API key, nessun account Google.
Server Linux
Server Linux: usa l'artifact del server Recommended, non Latest. Nella pagina di download del server FiveM (docs.fivem.net/docs/server-download/) scegli Linux e il ramo di aggiornamento Recommended. Un server sull'ultimo artifact Linux è andato in crash durante il caricamento (FXServer ha stampato un dump /proc/self/maps), e passare all'artifact consigliato ha risolto. È l'unica segnalazione Linux che abbiamo; non abbiamo ancora provato noi stessi ZeroDev Sound su un server Linux.
Server Linux: usa l'artifact del server Recommended, non Latest. Nella pagina di download del server FiveM (docs.fivem.net/docs/server-download/) scegli Linux e il ramo di aggiornamento Recommended. Un server sull'ultimo artifact Linux è andato in crash durante il caricamento (FXServer ha stampato un dump /proc/self/maps), e passare all'artifact consigliato ha risolto. È l'unica segnalazione Linux che abbiamo; non abbiamo ancora provato noi stessi ZeroDev Sound su un server Linux.
Su un server standalone (senza framework) è tutto gratis: il negozio e i componenti per auto non costano nulla.
2. Installazione
Passaggio 1. Inserisci la cartella. Metti la cartella zerodev-sound nella tua cartella resources (va bene qualsiasi sottocartella, per esempio resources/[zerodev]/zerodev-sound). Mantieni il nome della cartella zerodev-sound: le voci item di ox_inventory la richiamano con quel nome.
Passaggio 2. Aggiungila a server.cfg, dopo database, framework e inventario:
ensure oxmysql
ensure es_extended # or qb-core / qbx_core, or nothing on a standalone server
ensure ox_inventory # or your inventory
ensure ox_target # optional, or qb-target
ensure phone # optional: Pulse Phone
ensure zerodev-soundPassaggio 3. Dai ai tuoi admin il permesso admin (nessun limite di casse, l'elenco /soundadmin, stop e rimozione a distanza):
add_ace group.admin zerodev.sound.admin allowPassaggio 4. Configura gli item per il tuo inventario: sezione 3. Sull'inventario ESX e su QBCore lo fa lo script per te.
Passaggio 5. Riavvia il server (un riavvio completo, non solo la risorsa, così ogni giocatore carica i modelli) e controlla la console: sezione 4.
3. Item per il tuo inventario
Ci sono 12 item: dieci casse, l'asta microfono e il kit di riparazione.
| Nome dell'item | Etichetta | Peso |
|---|---|---|
zds_roam |
Cassa portatile Roam | 2 kg |
zds_room_shelf |
Cassa da mensola | 4 kg |
zds_room_tower |
Cassa a torre | 10 kg |
zds_room_ceiling |
Cassa da soffitto | 2 kg |
zds_room_sub |
Subwoofer da casa | 8 kg |
zds_stage_pa |
PA Speaker | 10 kg |
zds_stage_sub |
Subwoofer da concerto | 15 kg |
zds_stage_array |
Line Array Speaker | 12 kg |
zds_stage_monitor |
Monitor da palco | 6 kg |
zds_stage_mixer |
Mixer da DJ | 5 kg |
zds_stage_mic |
Asta microfono | 3 kg |
zds_repair_kit |
Speaker Repair Kit | 0.6 kg |
Le immagini sono in zerodev-sound/web/img/items/. Non devi mai tirare a indovinare: ogni volta che manca qualcosa, la console del server stampa le voci esatte per il tuo inventario e indica ogni immagine non ancora al suo posto.
Quale inventario hai?
| Inventario | Cosa fai | Le immagini vanno in |
|---|---|---|
| Inventario ESX (ESX Legacy senza ox) | Niente. Gli item vengono aggiunti alla tabella items all'avvio. |
Niente da copiare |
| ox_inventory (ESX, Qbox o standalone) | Incolla il blocco ox_inventory in ox_inventory/data/items.lua, dentro la tabella. Riavvia ox_inventory, poi zerodev-sound. |
Niente da copiare: le voci caricano le immagini da zerodev-sound |
| qb-inventory, ps-inventory, lj-inventory (QBCore) | Niente. Gli item vengono aggiunti agli shared items di QBCore all'avvio. | Copia web/img/items/*.png in <your inventory>/html/images/ |
| qs-inventory | Su QBCore incolla il blocco QBCore in qb-core/shared/items.lua. Su ESX incolla le stesse voci in qs-inventory/shared/items.lua. |
qs-inventory/html/images/ |
| codem-inventory | Aggiungi i 12 item a codem-inventory/config/itemlist.lua con nomi, etichette e pesi del blocco QBCore. Su QBCore, completa anche il passaggio di installazione di codem-inventory che fa puntare QBCore.Functions.UseItem a codem-inventory, altrimenti gli item non si possono usare. |
La cartella immagini degli item di codem-inventory |
| core_inventory | Niente. Gli item vengono aggiunti per te agli shared items di QBCore o alla tabella items di ESX. |
La cartella immagini degli item di core_inventory |
| origen_inventory | Aggiungi i 12 item a origen_inventory/config/items.lua con nomi, etichette e pesi del blocco QBCore. |
La cartella immagini degli item di origen_inventory |
| tgiann-inventory | Aggiungi i 12 item a tgiann-inventory/items/items.lua con nomi, etichette e pesi del blocco QBCore. |
inventory_images/images/ |
| Nessun inventario | Niente. Le casse acquistate e quelle rimesse via aspettano in /sound sotto Your speakers, con un pulsante Set up. |
Niente da copiare |
Per aggiungere gli item a qb-core a mano invece di lasciarlo fare allo script, incolla il blocco QBCore in qb-core/shared/items.lua.
Un altro inventario che copia una di queste API: imposta Config.Inventory su quello (vedi la sezione 5). Un inventario fatto in casa si può collegare in server/bridge.lua, che è leggibile: ogni inventario lì è composto da tre piccole funzioni (conta, aggiungi, rimuovi).
Blocco ox_inventory
Incolla dentro la tabella return { ... } di ox_inventory/data/items.lua:
['zds_repair_kit'] = { label = 'Speaker Repair Kit', weight = 600, stack = false, close = true, description = 'Fixes a broken speaker. Use it next to one.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_repair_kit.png' } },
['zds_roam'] = { label = 'Roam Portable Speaker', weight = 2000, stack = false, close = true, description = 'Portable speaker with twin bass radiators. Carry it or set it down.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_roam.png' } },
['zds_room_ceiling'] = { label = 'Ceiling Speaker', weight = 2000, stack = false, close = true, description = 'Indoor. Round ceiling or wall speaker for background music in a business.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_ceiling.png' } },
['zds_room_shelf'] = { label = 'Shelf Speaker', weight = 4000, stack = false, close = true, description = 'Indoor. Bookshelf speaker: link several around a home or shop.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_shelf.png' } },
['zds_room_sub'] = { label = 'Home Subwoofer', weight = 8000, stack = false, close = true, description = 'Indoor. Cube subwoofer: link it to your indoor speakers for deep bass.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_sub.png' } },
['zds_room_tower'] = { label = 'Tower Speaker', weight = 10000, stack = false, close = true, description = 'Indoor. Floor-standing tower with two woofers: deep, clean sound for a whole room.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_tower.png' } },
['zds_stage_array'] = { label = 'Line Array Speaker', weight = 12000, stack = false, close = true, description = 'Concert. Line-array speaker for long throw over a big crowd. Stack them.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_array.png' } },
['zds_stage_mic'] = { label = 'Mic Stand', weight = 3000, stack = false, close = true, description = 'Concert. A mic on a boom stand: link it to your concert speakers, stand at it and sing through them (/soundmic).',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_mic.png' } },
['zds_stage_mixer'] = { label = 'DJ Mixer', weight = 5000, stack = false, close = true, description = 'Concert. Not a speaker: whoever stands at it runs every linked concert speaker (volume, bass, sound, timing).',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_mixer.png' } },
['zds_stage_monitor'] = { label = 'Stage Monitor', weight = 6000, stack = false, close = true, description = 'Concert. Wedge monitor so the DJ or band hears the mix on stage.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_monitor.png' } },
['zds_stage_pa'] = { label = 'PA Speaker', weight = 10000, stack = false, close = true, description = 'Concert. Powered 15" PA top on a tripod: link many for an event.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_pa.png' } },
['zds_stage_sub'] = { label = 'Concert Subwoofer', weight = 15000, stack = false, close = true, description = 'Concert. Double 18" sub cabinet: the bass you feel at a show.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_sub.png' } },Blocco QBCore
Il formato item di QBCore, che leggono qb-, ps-, lj- e qs-inventory:
['zds_repair_kit'] = { name = 'zds_repair_kit', label = 'Speaker Repair Kit', weight = 600, type = 'item', image = 'zds_repair_kit.png', unique = true, useable = true, shouldClose = true, description = 'Fixes a broken speaker. Use it next to one.' },
['zds_roam'] = { name = 'zds_roam', label = 'Roam Portable Speaker', weight = 2000, type = 'item', image = 'zds_roam.png', unique = true, useable = true, shouldClose = true, description = 'Portable speaker with twin bass radiators. Carry it or set it down.' },
['zds_room_ceiling'] = { name = 'zds_room_ceiling', label = 'Ceiling Speaker', weight = 2000, type = 'item', image = 'zds_room_ceiling.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Round ceiling or wall speaker for background music in a business.' },
['zds_room_shelf'] = { name = 'zds_room_shelf', label = 'Shelf Speaker', weight = 4000, type = 'item', image = 'zds_room_shelf.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Bookshelf speaker: link several around a home or shop.' },
['zds_room_sub'] = { name = 'zds_room_sub', label = 'Home Subwoofer', weight = 8000, type = 'item', image = 'zds_room_sub.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Cube subwoofer: link it to your indoor speakers for deep bass.' },
['zds_room_tower'] = { name = 'zds_room_tower', label = 'Tower Speaker', weight = 10000, type = 'item', image = 'zds_room_tower.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Floor-standing tower with two woofers: deep, clean sound for a whole room.' },
['zds_stage_array'] = { name = 'zds_stage_array', label = 'Line Array Speaker', weight = 12000, type = 'item', image = 'zds_stage_array.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Line-array speaker for long throw over a big crowd. Stack them.' },
['zds_stage_mic'] = { name = 'zds_stage_mic', label = 'Mic Stand', weight = 3000, type = 'item', image = 'zds_stage_mic.png', unique = true, useable = true, shouldClose = true, description = 'Concert. A mic on a boom stand: link it to your concert speakers, stand at it and sing through them (/soundmic).' },
['zds_stage_mixer'] = { name = 'zds_stage_mixer', label = 'DJ Mixer', weight = 5000, type = 'item', image = 'zds_stage_mixer.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Not a speaker: whoever stands at it runs every linked concert speaker (volume, bass, sound, timing).' },
['zds_stage_monitor'] = { name = 'zds_stage_monitor', label = 'Stage Monitor', weight = 6000, type = 'item', image = 'zds_stage_monitor.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Wedge monitor so the DJ or band hears the mix on stage.' },
['zds_stage_pa'] = { name = 'zds_stage_pa', label = 'PA Speaker', weight = 10000, type = 'item', image = 'zds_stage_pa.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Powered 15" PA top on a tripod: link many for an event.' },
['zds_stage_sub'] = { name = 'zds_stage_sub', label = 'Concert Subwoofer', weight = 15000, type = 'item', image = 'zds_stage_sub.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Double 18" sub cabinet: the bass you feel at a show.' },Se hai cambiato un'etichetta, un prezzo o un peso in config/catalogue.lua, copia invece le voci dalla tua console: le stampa a partire dalle tue impostazioni.
4. Primo avvio: cosa dovresti vedere
Nella console del server
ZeroDev Sound stampa un riquadro di controllo (scrivi soundcheck nella console del server per ristamparlo): database e schema, framework, soldi, inventario e item, tabella dei garage, target, Pulse Phone, modelli, officine di installazione e impostazioni cambiate in gioco. Ogni riga che non è OK dice cosa fare; docs/SETUP.md mostra un esempio e docs/TROUBLESHOOTING.md spiega ogni riga.
- La riga del framework indica cosa è stato trovato. Se è sbagliata, imposta
Config.FrameworkoConfig.Inventoryinconfig/config.lua. - Una riga gialla
Add these to ox_inventory/data/items.lua ...(oppure... if these items are not in ... yet, add them) seguita dalle voci degli item: segui la sezione 3 per il tuo inventario, poi riavvia. Il messaggio di ox_inventory sparisce quando gli item ci sono. Su qs-, codem-, origen- e tgiann-inventory le voci vengono stampate a ogni avvio come promemoria, che tu le abbia aggiunte o no. - Una riga gialla
Copy zds_....png from zerodev-sound/web/img/items into ...: quelle immagini non sono ancora nella cartella immagini del tuo inventario. Indica la cartella. Pulse Phone app not registered: ...: Pulse Phone è attivo ma ha rifiutato l'app. Vedi la sezione 9.
In gioco (cinque controlli)
- La mappa mostra un blip ZeroDev Sound a Legion Square e un blip Car audio bay da Benny's.
- Al negozio, un commesso sta a un espositore con le casse in mostra. Usa il target sul commesso (o premi E se non c'è una risorsa target) e compra una Roam Portable Speaker.
- Usala dall'inventario. Ti compare in mano. Premi E, apri Library e riproduci Night Drive (una traccia demo inclusa nello script). Chi ti sta intorno la sente.
- Sali in un'auto. Le prime volte, l'angolo dello schermo indica quale tasto apre l'autoradio (K di default).
- Entra nell'officina audio da guidatore e premi E. L'installer si apre sulla tua auto.
5. Le impostazioni più modificate
In gioco: /soundadmin > Settings cambia quelle più comuni dal vivo per tutti (officine di installazione, chi può installare, quali auto, prezzi, volume massimo, ore di silenzio, limiti, negozio, polizia e danni). Vengono salvate nel database e hanno la precedenza su config.lua finché non premi Reset to config nel pannello.
Tutto è in config/config.lua salvo diversa indicazione. Prodotti, prezzi e componenti per auto sono in config/catalogue.lua; l'audio di serie di ogni auto è in config/vehicles.lua.
| Cosa vuoi | Impostazione |
|---|---|
| Forzare il framework o l'inventario | Config.Framework (auto, esx, qb, qbox, standalone), Config.Inventory (auto, ox, qb, qs, codem, core, origen, tgiann, esx, none) |
| Cambiare il comando del telecomando | Config.Command (default sound, quindi /sound) |
| Cambiare il tasto dell'autoradio | Config.HeadUnitKey (default K). I giocatori possono riassegnarlo da soli nelle impostazioni di GTA > Key Bindings > FiveM. |
| Casse per giocatore | Config.MaxPlacedPerPlayer (default 8). Gli admin non hanno limiti. |
| Casse in un gruppo collegato | Config.MaxLinkedPerGroup (default 16) |
| Quanto vicino per collegarsi, quanto lontano per controllare | Config.PairRange (15 m), Config.ControlRange (80 m) |
| Spostare il negozio o aggiungere altri negozi | Config.Shop.locations. Ognuno accetta label, coords, blip e, facoltativamente, heading (verso dove è rivolto l'espositore) e clerk (un modello di ped). Config.Shop.account è bank o cash. Config.Shop.enabled = false rimuove il negozio. |
| Prezzi delle casse | price su ogni prodotto in config/catalogue.lua > Catalogue.Speakers. Il prezzo del kit di riparazione è Config.Damage.repairPrice. |
| Dove si monta l'audio per auto | Config.Install.bays (ognuna con label, coords, radius, blip). Default: un'officina da Benny's. |
| Permettere ai proprietari di montare sulla propria auto ovunque | Config.Install.anywhere = true. Aggiunge un pulsante Install sull'autoradio e il comando /caraudio (Config.Install.command). |
| Su quali auto si può montare | Config.Install.vehicles: 'owned' (default) o 'any'. Vedi la sezione 7. |
| Solo i meccanici possono installare | Config.Install.anyone = false ed elenca i lavori in Config.Install.jobs (devono essere in servizio). |
| Componenti per auto gratis | Config.Install.chargeParts = false. Config.Install.account è bank o cash. |
| Prezzi dei componenti per auto e kit pronti | Catalogue.CarParts e Catalogue.CarKits in config/catalogue.lua |
| L'audio di serie di un'auto | Vehicles.ByClass e Vehicles.ByModel in config/vehicles.lua (basic, premium, reference, bike, none) |
| Libreria attiva o disattivata | Config.Sources.library. Vedi la sezione 8. |
| Le tue canzoni | Config.Library (file in web/library/) |
| Ore di silenzio | Config.QuietHours = { enabled = true, from = 23, to = 7, maxVolume = 0.35 } (ora locale del server) |
| Lavori e poteri della polizia | Config.Police (vedi la sezione 10) |
| Casse che si rompono se colpite da proiettili | Config.Damage.enabled |
| Limiti di prestazioni | Config.Streaming.propRange (modelli disegnati entro 90 m), maxAudibleSessions (6 canzoni diverse udibili contemporaneamente), maxMovingParts (24 coni animati per frame) |
| Righe di console aggiuntive per il supporto | Config.Debug (impostalo su true mentre cerchi la causa di un problema) |
Nomi degli item. Se un altro script usa già uno dei nomi item zds_, rinomina la chiave di quel prodotto in Catalogue.Speakers (per esempio zds_roam = { ... }), poi usa il nuovo nome nel tuo inventario e rinomina la sua immagine allo stesso modo.
6. Comandi
| Cosa | Come |
|---|---|
| Aprire il telecomando | /sound, oppure E vicino a una cassa, oppure l'app Sound in Pulse Phone |
| Autoradio | K mentre sei seduto in un'auto (riassegnabile nelle impostazioni di GTA) |
| Appoggiare una cassa | Usa il suo item. Mira dove deve andare: diventa verde dove ci sta. La rotella del mouse o Q / E la ruotano. Enter o clic sinistro la appoggia; Backspace o clic destro annulla. |
| Impilare un line array | Mentre lo appoggi, Freccia su / Freccia giù lo alzano o lo abbassano |
| Portare una Roam | Ti compare in mano e continua a suonare mentre cammini. E musica, G appoggia, H rimetti via. Salire in un'auto o entrare in acqua la rimette via. |
| Spostare o rimettere via una tua cassa | Usa il target e scegli Move o Pack up, oppure, senza una risorsa target, mettiti accanto: G sposta (su una Roam: riprendila in mano), H rimetti via. Anche la scheda Speakers del telecomando permette di rimetterla via. |
| Collegare le casse | Collegati a una delle tue, apri la scheda Speakers del telecomando e premi Link accanto alle tue altre casse vicine. Le portatili si collegano con le portatili, quelle per interni con quelle per interni, quelle da concerto con quelle da concerto (rispettivamente entro 40 m, 60 m e 250 m). |
| Installer dell'audio per auto | Entra nell'officina da guidatore e premi E (oppure il pulsante Install sull'autoradio / /caraudio quando il montaggio ovunque è attivo). Trascina un componente per farlo scorrere sulle superfici dell'auto, Alt + trascina lo fa scorrere in piano alla sua altezza (senza aggancio), Shift + trascina lo solleva, Q / E o Shift + rotella lo ruotano. |
| Canta attraverso le casse | Al mixer da DJ o a un'asta microfono (in vendita nel negozio, da collegare come una cassa) delle casse a cui sei collegato, oppure all'asta microfono di un'auto modificata: /soundmic prende il microfono, /soundmic di nuovo lo rimette a posto |
| Segnalare musica alta | /noise |
| Elenco admin | /soundadmin |
| Dare un item (console del server) | givespeaker <player id> <item name> |
| Bruciare un sub per mostrare l'effetto (staff) | /soundblow in auto, oppure soundblow <plate> in console |
Nel telecomando: Music (la libreria del tuo server), Queue (le prossime, playlist salvate), Speakers (accensione e volume di ogni speaker, collegamento, smontaggio) e Tune (sei modalità audio, un equalizzatore a tre bande, chi sceglie la musica, orari di apertura e "Real distance" per i set da concerto). Chi sceglie la musica: Only me; Party, dove chiunque sia vicino può richiedere canzoni che il proprietario approva; oppure Anyone, dove le persone vicine possono riprodurre, mettere in pausa, saltare, mettere in coda e spostarsi nel brano. Opening hours riproduce da sola una delle playlist del proprietario tra due orari, per un negozio o un club.
Il microfono (richiede pma-voice). Finché lo tieni, chiunque sia vicino a una qualsiasi cassa di quel sistema sente la tua voce attraverso di essa, con un suono da impianto PA, forte quanto quella cassa suona la musica e fin dove arriva; allontanati di 4 m dal mixer o dall'asta, scollegati o rimetti a posto il microfono, e la tua voce torna normale. Solo il proprietario del sistema (e gli admin, per un'auto) può cantarci attraverso; dai agli altri giocatori l'ace zds.mic per permettergli di usare qualsiasi sistema. La tua voce non parte dal punto di ogni cassa: la chat vocale non può posizionare una voce lì, quindi chi è vicino a una cassa ti sente al volume di quella cassa. Impostazioni: Config.Mic.
7. Audio per auto
Come montano l'impianto i giocatori
- Entra nell'officina audio (di default da Benny's) e premi E da guidatore.
- Parti da un kit pronto (Daily thump, Competition, Trunk wall, Sound quality, Clean and hidden) oppure scegli i componenti: subwoofer (da 8" a 18"), box, amplificatori, casse per portiere, tweeter, pod, doppi fondi, pannelli, plexi, condensatore, seconda batteria, striscia LED e autoradio.
- Trascina ogni componente al suo posto sull'auto. I sub si inseriscono nei fori del loro box. Ogni componente ha una finitura (otto colori), e sub e casse hanno una griglia e un anello luminoso. Mirror copia un componente sul lato opposto; Fine position lo sposta a piccoli passi. Cinque viste della telecamera: Boot, Cabin, Side, Front, Top. Size: i sub sono disponibili da 8", 10", 12", 15" e 18" (tutti i sub in un box hanno la stessa misura e il box viene costruito intorno a loro, fino al 30% più grande o più piccolo di quello per cui era stato fatto); le casse per portiere da 5.25", 6.5" e 6x9"; tutti gli altri componenti dall'80% al 130% a passi del 5% (l'autoradio ha una misura standard). Box e pannelli più grandi costano di più; un componente rimpicciolito non costa nulla. I coni hanno più escursione sui driver più grandi, e una cassa per portiera più grande scende più in basso.
- Premi Test system per sentire l'impianto suonare nell'auto prima di pagare. Riproduce la prima canzone in
Config.Library(la traccia demo inclusa, a meno che tu non l'abbia cambiata). - Premi Install. Si pagano solo i componenti nuovi per l'auto; quelli mantenuti dall'ultima installazione non vengono addebitati di nuovo.
L'installazione viene salvata legata alla targa e ritorna ogni volta che torna l'auto: da qualsiasi garage, deposito o respawn. Niente da modificare nel tuo script garage.
Cosa sentono i giocatori
- Ogni auto ha già un audio di serie in base a classe e modello: un sistema a 4 casse, un premium a 10 casse o un reference a 13 casse, casse nella carenatura sulle moto; biciclette, aerei e treni non ne hanno. Le casse montate sostituiscono le casse di serie più vicine; i sub si aggiungono.
- Fuori dall'auto, passano soprattutto i bassi attraverso la carrozzeria. Porte aperte, finestrini aperti e bagagliaio aperto lasciano uscire ciascuno più suono, verso il lato a cui sono rivolti.
- Un'auto con i sub rimbalza leggermente sulle sospensioni a tempo con i bassi mentre è parcheggiata o va a passo d'uomo (mai durante la guida), e tutti a bordo sentono il colpo.
- L'autoradio (K) ha volume, livello del sub, fader e bilanciamento.
- I sub spinti molto oltre quanto permettono il loro amplificatore e le loro specifiche, vicino al volume massimo, per un po' di tempo possono bruciarsi. Chiunque vicino all'auto vede un sottile filo di fumo da quel sub e sente un colpo sordo. Un sub bruciato smette di muoversi, i bassi calano e il suo cono resta bruciato finché non viene sostituito in officina (un sub nuovo si paga; togliere il segno non è una riparazione gratuita). Lo staff può mostrarlo:
/soundblowin auto, oppuresoundblow <plate>nella console del server.
Su quali auto si può montare (Config.Install.vehicles)
'owned'(default): solo le auto nella tabella dei veicoli posseduti del tuo framework (owned_vehiclessu ESX,player_vehiclessu QBCore e Qbox).'any': anche le auto che non appartengono a nessuno (auto NPC, auto spawnate, noleggi).- In entrambi i casi, un'auto che appartiene a un altro giocatore resta sua: solo il proprietario, un meccanico in servizio di
Config.Install.jobso un admin possono modificarla. Su un server standalone ogni auto conta come posseduta.
Garage, targhe e depositi
- Le targhe vengono confrontate senza spazi ai lati e in maiuscolo, quindi corrispondono anche con i garage che aggiungono spazi o cambiano le maiuscole.
- Un'auto con una targa falsa o cambiata non ritrova la sua installazione finché non ha di nuovo la sua targa salvata.
- Le auto che esistono solo sullo schermo di un giocatore (anteprime dei garage, alcune auto da showroom) non ricevono mai un'installazione: per gli altri non sono auto vere.
Altri script audio o stereo
ZeroDev Sound è una risorsa a sé con i suoi comandi (/sound, /caraudio, ...), eventi e state bag dei veicoli, quindi non sostituisce né modifica altri script (mentre suona in un'auto spegne solo la radio di GTA). Due script di audio per auto sulla stessa auto contemporaneamente non sono stati testati insieme: usa un solo stereo per auto.
8. Sorgenti musicali
La musica viene riprodotta solo da file audio che aggiungi alla risorsa. I giocatori scelgono dalla tua lista; non possono inserire link e nessun indirizzo web viene mai riprodotto. Aggiungi solo audio che possiedi o di cui hai i diritti di utilizzo e distribuzione.
- Metti i file mp3 o ogg in
zerodev-sound/web/library/ed elenca ciascuno inConfig.Librarycome{ title = '...', artist = '...', file = 'name.mp3' }. Ottengono l'esperienza completa: suono 3D, stanze e pareti, abitacoli delle auto, modalità audio, EQ e coni che si muovono con i bassi reali. Config.Sources.library = falsedisattiva la libreria.- L'autoradio di GTA continua a funzionare in qualsiasi auto finché non vi è in riproduzione nessuna canzone di questa risorsa.
- La finestra di avvio mostra quante canzoni possono scegliere i giocatori e avvisa di ogni voce saltata (un nome
di file che non è un mp3 o ogg dentro
web/library/). - Aggiornamento dalla 3.0.0: le canzoni salvate, quelle recenti e le voci delle playlist che erano link non vengono più mostrate né riprodotte. Le canzoni della libreria continuano a funzionare.
9. Pulse Phone
Niente da configurare. Quando Pulse Phone gira sul server (nome risorsa phone, in entrambe le edizioni):
- Ogni telefono riceve un'app Sound nella schermata Home. È lo stesso telecomando di
/sound: collegati a una cassa o all'auto, scegli la musica, gestisci l'intero gruppo. I giocatori possono rimuoverla e riaverla dall'App Hub. - Cosa sta suonando sulla cassa o sull'auto collegata, con il tempo rimanente, compare sull'Island e sulla schermata di blocco. Un tocco apre l'app Sound.
- Pulse Drive (lo schermo auto di Pulse, F10 di default) mostra lo stereo dell'auto in cui sei seduto: canzone, artista e copertina, con play, pausa, precedente, successivo e volume, e un pulsante Open per l'app Sound. Richiede Pulse Phone 1.2.9 o successivo; le versioni più vecchie semplicemente non lo mostrano.
I giocatori senza telefono usano /sound e K, che fanno tutto quello che fa l'app.
Se hai rinominato la cartella del telefono, aggiungi questa riga a config/config.lua con il suo nome:
Config.PulseResource = 'phone'10. Polizia, vicini e admin
| Cosa | Come | Impostazione |
|---|---|---|
| Segnalare musica alta | /noise invia la cassa in riproduzione più vicina (entro 60 m) alla polizia in servizio come blip lampeggiante per 3 minuti. Una segnalazione per giocatore ogni 2 minuti. |
Config.Police.complaints, complaintRange |
| Spegnere una cassa | Polizia in servizio: target sulla cassa > Turn off (police), oppure la scheda Tune del telecomando > Police. Entro 12 m. | Config.Police.canSilence, silenceMinutes (15) |
| Sequestrare una cassa | Polizia in servizio, entro 4 m: target > Seize (police), oppure Tune > Police > Seize. La cassa va all'agente. | Config.Police.canSeize |
| Lavori della polizia | I giocatori con questi lavori, in servizio | Config.Police.jobs |
| Casse rotte | Sparare a una cassa posizionata la rompe: gracchia e si ferma. Uno Speaker Repair Kit (venduto al negozio sotto Accessories) la ripara: usa il kit accanto alla cassa. | Config.Damage |
| Elenco admin | /soundadmin: ogni cassa sul server, cosa riproduce e chi ne è il proprietario, con pulsanti per impostare un waypoint, fermare la musica o rimuovere la cassa. |
Config.AdminAce (zerodev.sound.admin) |
| Dare un item | Console del server: givespeaker <player id> <item name> |
11. Lingue
Lo script è disponibile nelle stesse 25 lingue di Pulse Phone. Impostane una in config/config.lua:
| Codice | Lingua | Codice | Lingua | Codice | Lingua |
|---|---|---|---|---|---|
en |
Inglese | hu |
Magyar | pt-PT |
Português (Portugal) |
ar |
العربية | it |
Italiano | ro |
Română |
bs |
Bosanski | ja |
日本語 | ru |
Русский |
cs |
Čeština | ko |
한국어 | sl |
Slovenščina |
da |
Dansk | nb |
Norsk bokmål | sv |
Svenska |
de |
Deutsch | nl |
Nederlands | th |
ไทย |
es |
Español | pl |
Polski | tr |
Türkçe |
fr |
Français | pt-BR |
Português (Brasil) | uk |
Українська |
zh-CN |
简体中文 |
Config.Locale = 'de', per esempio. Il valore predefinito, 'auto', segue Pulse Phone: il server prende il Config.Locale di Pulse, e ogni giocatore riceve Sound nella lingua scelta sul suo telefono. Senza Pulse è in inglese. I messaggi di gioco, i prompt dei tasti, i nomi degli oggetti e il nome del tasto dell'autoradio sono in locales/<code>.lua; l'interfaccia (telecomando, autoradio, negozio, installatore, app di Pulse) è in locales/<code>_ui.lua. Tutto ciò che manca viene mostrato in inglese.
Per cambiare una riga, modificala nel file di quella lingua. Lascia ogni %s, %d, %.1f, %% e ~a~ così come sono. Per aggiungere una lingua tua, copia locales/en.lua in locales/xx.lua, cambia Locales['en'] in Locales['xx'] (in entrambi i punti), traduci il testo tra virgolette e imposta Config.Locale = 'xx'. locales/ui_strings.txt elenca tutte le chiavi dell'interfaccia per un xx_ui.lua.
12. Risoluzione dei problemi
I giocatori non riescono a usare gli item delle casse
- ox_inventory: le voci devono essere dentro
ox_inventory/data/items.luacon la loro rigaclient, e ox_inventory va riavviato dopo averle incollate. La cartella deve chiamarsi ancorazerodev-sound(le voci chiamanozerodev-sound.useItem). - QBCore / ESX:
zerodev-sounddeve avviarsi dopo il tuo framework inserver.cfg. - codem-inventory su QBCore: completa il passaggio di codem-inventory che fa puntare
QBCore.Functions.UseItemsu di esso. - Nessun inventario: le casse non sono item. I giocatori aprono
/sounde premono Set up sotto Your speakers.
Mancano le immagini degli item
- ox_inventory: niente da copiare; il percorso delle immagini punta a zerodev-sound. Se sono vuote, controlla la riga
image = 'nui://zerodev-sound/...'della voce e il nome della cartella. - Altri inventari: leggi la riga di console
Copy ... into ...: elenca le immagini mancanti e la cartella in cui vanno. Copiale dazerodev-sound/web/img/items/e riavvia l'inventario.
Un giocatore non può riprodurre un link
È voluto: i giocatori scelgono solo dalla tua libreria. Aggiungi la canzone a
Config.Library (sezione 8).
Nessun suono
- Il browser integrato di FiveM avvia l'audio senza bisogno di un clic, quindi i giocatori non devono mai premere nulla per "consentire" l'audio. Se un giocatore non sente niente mentre gli altri sì, controlla FiveM nel suo mixer volume di Windows.
- Controlla la cassa nella scheda Speakers del telecomando: potrebbe essere spenta, o Broken.
- La polizia potrebbe averla spenta (per
Config.Police.silenceMinutes), oppure le ore di silenzio potrebbero limitare il volume (Config.QuietHours). - Un giocatore sente al massimo
Config.Streaming.maxAudibleSessionscanzoni diverse contemporaneamente (6), partendo dalle più vicine. - Test system nell'installer resta muto quando
Config.Libraryè vuoto oConfig.Sources.library = false: riproduce la prima canzone della libreria.
Il negozio non c'è
Config.Shop.enableddeve esseretrue.- Il commesso e l'espositore compaiono solo quando un giocatore è entro circa 70 m da
Config.Shop.locations, e solo sullo schermo di quel giocatore. Controlla le coordinate che hai impostato. - Con ox_target o qb-target, usa il target sul commesso. Senza, mettiti davanti al commesso: E Browse speakers.
Una cassa appare come una semplice cassa di GTA, o non appare affatto
La cartella stream/ manca o è stata rinominata, oppure il giocatore è entrato prima che la risorsa si avviasse. Riavvia il server e riconnettiti.
Messaggi dell'audio per auto e cosa significano
| Messaggio | Perché | Soluzione |
|---|---|---|
| Drive into a car audio bay to build. | Il montaggio ovunque è disattivato e l'auto non è in un'officina. | Entra nell'officina (Config.Install.bays), oppure imposta Config.Install.anywhere = true. |
| Stand next to your car to build its sound system. | Il montaggio ovunque è attivo e sei a più di 8 m dall'auto, oppure /caraudio non ha trovato nessuna auto entro 4 m. |
Mettiti accanto all'auto o siediti dentro. |
| Stop the car first. | L'auto è in movimento. | Fermati. |
| Car audio can only be fitted to a car you own. | Config.Install.vehicles = 'owned' e questa targa non è nella tua tabella dei veicoli posseduti. Compare anche a tutti tranne gli admin quando quella tabella non può essere letta: in quel caso la console mostra una riga rossa could not read the owned-vehicles table. |
Usa un'auto posseduta, imposta 'any', oppure correggi l'errore del database indicato dalla console. |
| Only the owner can change this car's audio. | L'auto appartiene a un altro giocatore. Compare anche quando Config.Install.anyone = false e il giocatore non ha un lavoro in servizio tra quelli di Config.Install.jobs. |
Lo monta il proprietario, oppure un meccanico in servizio, oppure un admin. |
| Not enough money. | I nuovi componenti costano più di quanto il giocatore ha in Config.Install.account. |
Rimuovi dei componenti, oppure imposta Config.Install.chargeParts = false. |
| A subwoofer blew. It needs replacing. | I sub sono stati spinti troppo e troppo a lungo vicino al volume massimo. | Sostituisci il sub in officina; un amplificatore più grande aiuta. |
La polizia non vede le sue opzioni
Aggiungi i nomi dei tuoi lavori di polizia a Config.Police.jobs. I giocatori devono essere in servizio.
13. Aggiornamenti
Dalla 1.x alla 2.0: leggi UPGRADING.md. Tra versioni 2.x:
- Fai un backup della cartella
config/, dilocales/se l'hai tradotta e delle canzoni che hai aggiunto inweb/library/. - Ferma il server. Sostituisci la cartella
zerodev-soundcon quella nuova (mantieni il nome). - Rimetti i tuoi file
config/. Se le note di aggiornamento citano nuove impostazioni, copia quelle righe dai nuovi file nei tuoi. - Avvia il server e leggi la console. Gli eventuali nuovi item vengono stampati per il tuo inventario.
Casse posizionate, installazioni sulle auto e playlist sono salvate nel database (zds_speakers, zds_car_builds, zds_playlists, zds_stash) e un aggiornamento non le tocca.
Tornare indietro: tieni la cartella zerodev-sound precedente fuori da resources finché la nuova versione non funziona bene, e fai un backup del database prima di aggiornare. Per tornare indietro, ferma il server, rimetti la cartella precedente e la tua config/, poi avvialo. Il ritorno dalla 3.0 alla 2.x sullo stesso database non è stato testato, quindi ripristina il backup del database se qualcosa non va.