Documentazione di ZeroDev Sound

ZeroDev Sound: guida all'installazione

Per ZeroDev Sound 3.0.127 min di letturaAggiornato il

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:

server.cfg
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-sound

Passaggio 3. Dai ai tuoi admin il permesso admin (nessun limite di casse, l'elenco /soundadmin, stop e rimozione a distanza):

server.cfg
add_ace group.admin zerodev.sound.admin allow

Passaggio 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:

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:

Lua
    ['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.Framework o Config.Inventory in config/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)

  1. La mappa mostra un blip ZeroDev Sound a Legion Square e un blip Car audio bay da Benny's.
  2. 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.
  3. 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.
  4. Sali in un'auto. Le prime volte, l'angolo dello schermo indica quale tasto apre l'autoradio (K di default).
  5. 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

  1. Entra nell'officina audio (di default da Benny's) e premi E da guidatore.
  2. 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.
  3. 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.
  4. 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).
  5. 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: /soundblow in auto, oppure soundblow <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_vehicles su ESX, player_vehicles su 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.jobs o 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 in Config.Library come { 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 = false disattiva 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:

Lua
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.lua con la loro riga client, e ox_inventory va riavviato dopo averle incollate. La cartella deve chiamarsi ancora zerodev-sound (le voci chiamano zerodev-sound.useItem).
  • QBCore / ESX: zerodev-sound deve avviarsi dopo il tuo framework in server.cfg.
  • codem-inventory su QBCore: completa il passaggio di codem-inventory che fa puntare QBCore.Functions.UseItem su di esso.
  • Nessun inventario: le casse non sono item. I giocatori aprono /sound e 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 da zerodev-sound/web/img/items/ e riavvia l'inventario.

È 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.maxAudibleSessions canzoni diverse contemporaneamente (6), partendo dalle più vicine.
  • Test system nell'installer resta muto quando Config.Library è vuoto o Config.Sources.library = false: riproduce la prima canzone della libreria.

Il negozio non c'è

  • Config.Shop.enabled deve essere true.
  • 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:

  1. Fai un backup della cartella config/, di locales/ se l'hai tradotta e delle canzoni che hai aggiunto in web/library/.
  2. Ferma il server. Sostituisci la cartella zerodev-sound con quella nuova (mantieni il nome).
  3. Rimetti i tuoi file config/. Se le note di aggiornamento citano nuove impostazioni, copia quelle righe dai nuovi file nei tuoi.
  4. 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.

Tradotto dall'inglese. Se qualcosa qui non corrisponde alla pagina in inglese, vale la pagina in inglese. English