Documentația ZeroDev Sound

ZeroDev Sound: ghid de instalare

Pentru ZeroDev Sound 3.0.127 min de cititActualizat

Această resursă nu conține și nu oferă nicio integrare audio sau muzicală de la terți. Muzica se redă doar din fișierele audio pe care proprietarul serverului le adaugă în resursă și din radioul integrat din GTA. Jucătorii nu pot introduce linkuri. Adaugă doar audio pe care îl deții sau pentru care ai drepturile de utilizare și distribuire; transmiterea de conținut în streaming fără permisiune poate încălca Cfx.re Creator Platform License Agreement și legea.

Boxe pe care jucătorii le cumpără, le cară, le pun jos și le leagă între ele și audio auto pe care și-l montează în propriile mașini. Aceasta este referința completă. Pentru varianta scurtă citește docs/SETUP.md (5 pași); pentru probleme, docs/TROUBLESHOOTING.md; dacă vii de pe 1.x, UPGRADING.md.

Cuprins 1. Cerințe 2. Instalare 3. Iteme pentru inventarul tău 4. Prima pornire: ce ar trebui să vezi 5. Setările schimbate cel mai des 6. Controale 7. Audio auto 8. Surse de muzică 9. Pulse Phone 10. Poliția, vecinii și adminii 11. Limbi 12. Depanare 13. Actualizare

1. Cerințe

Obligatoriu oxmysql. ZeroDev Sound își creează propriile tabele la prima pornire; nu există niciun fișier SQL de importat.
Framework ESX Legacy, QBCore, Qbox sau niciunul (standalone). Detectat automat.
Inventar ox_inventory, qb-inventory (și ps-, lj-inventory), qs-inventory, codem-inventory, core_inventory, origen_inventory, tgiann-inventory, inventarul ESX sau niciunul. Detectat automat.
Opțional ox_target sau qb-target (fără unul, jucătorii primesc în schimb o indicație de tastă pe ecran). Pulse Phone 1.2.9 sau mai nou (adaugă aplicația Sound și sistemul audio al mașinii în Pulse Drive). pma-voice pentru microfon: fără el, microfonul poate fi ținut în mână și poți cânta în el, dar nimeni nu te aude prin boxe.

Nimic altceva: fără ox_lib, fără cheie API, fără cont Google.

Servere Linux

Servere Linux: folosește artifact-ul de server Recommended, nu Latest. Pe pagina de descărcare a serverului FiveM (docs.fivem.net/docs/server-download/) alege Linux și ramura de actualizare Recommended. Un server cu cel mai recent artifact Linux a crăpat la încărcare (FXServer a afișat un dump /proc/self/maps), iar trecerea la artifact-ul recomandat a rezolvat problema. Acesta este singurul raport Linux pe care îl avem; încă nu am rulat noi înșine ZeroDev Sound pe un server Linux.

Servere Linux: folosește artifact-ul de server Recommended, nu Latest. Pe pagina de descărcare a serverului FiveM (docs.fivem.net/docs/server-download/) alege Linux și ramura de actualizare Recommended. Un server cu cel mai recent artifact Linux a crăpat la încărcare (FXServer a afișat un dump /proc/self/maps), iar trecerea la artifact-ul recomandat a rezolvat problema. Acesta este singurul raport Linux pe care îl avem; încă nu am rulat noi înșine ZeroDev Sound pe un server Linux.

Pe un server standalone (fără framework) totul este gratuit: magazinul și piesele auto nu costă nimic.

2. Instalare

Pasul 1. Pune folderul. Pune folderul zerodev-sound în folderul resources (orice subfolder e în regulă, de exemplu resources/[zerodev]/zerodev-sound). Păstrează numele folderului zerodev-sound: intrările de iteme din ox_inventory îl apelează după acest nume.

Pasul 2. Adaugă-l în server.cfg, după baza de date, framework și inventar:

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

Pasul 3. Dă-le adminilor permisiunea de admin (fără limită de boxe, lista /soundadmin, oprire și ștergere de la distanță):

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

Pasul 4. Configurează itemele pentru inventarul tău: secțiunea 3. Pe inventarul ESX și pe QBCore, asta se face automat.

Pasul 5. Repornește serverul (un restart complet, nu doar al resursei, ca fiecare jucător să încarce modelele) și verifică consola: secțiunea 4.

3. Iteme pentru inventarul tău

Sunt 12 iteme: zece boxe, stativul de microfon și kitul de reparație.

Numele itemului Etichetă Greutate
zds_roam Boxa portabilă Roam 2 kg
zds_room_shelf Boxă de raft 4 kg
zds_room_tower Boxă turn 10 kg
zds_room_ceiling Boxă de tavan 2 kg
zds_room_sub Subwoofer de casă 8 kg
zds_stage_pa PA Speaker 10 kg
zds_stage_sub Subwoofer de concert 15 kg
zds_stage_array Line Array Speaker 12 kg
zds_stage_monitor Monitor de scenă 6 kg
zds_stage_mixer Mixer DJ 5 kg
zds_stage_mic Stativ de microfon 3 kg
zds_repair_kit Speaker Repair Kit 0.6 kg

Imaginile sunt în zerodev-sound/web/img/items/. Nu trebuie să ghicești niciodată: de fiecare dată când lipsește ceva, consola serverului afișează exact intrările pentru inventarul tău și numește orice imagine care nu este încă la locul ei.

Ce inventar ai?

Inventar Ce faci Imaginile merg în
Inventarul ESX (ESX Legacy fără ox) Nimic. Itemele sunt adăugate în tabelul items la pornire. Nimic de copiat
ox_inventory (ESX, Qbox sau standalone) Lipește blocul ox_inventory în ox_inventory/data/items.lua, în interiorul tabelului. Repornește ox_inventory, apoi zerodev-sound. Nimic de copiat: intrările încarcă imaginile din zerodev-sound
qb-inventory, ps-inventory, lj-inventory (QBCore) Nimic. Itemele sunt adăugate în shared items-ul QBCore la pornire. Copiază web/img/items/*.png în <your inventory>/html/images/
qs-inventory Pe QBCore, lipește blocul QBCore în qb-core/shared/items.lua. Pe ESX, lipește aceleași intrări în qs-inventory/shared/items.lua. qs-inventory/html/images/
codem-inventory Adaugă cele 12 iteme în codem-inventory/config/itemlist.lua cu numele, etichetele și greutățile din blocul QBCore. Pe QBCore, finalizează și pasul de instalare propriu al codem-inventory care direcționează QBCore.Functions.UseItem către codem-inventory, altfel itemele nu pot fi folosite. Folderul de imagini pentru iteme al codem-inventory
core_inventory Nimic. Itemele sunt adăugate automat în shared items-ul QBCore sau în tabelul items al ESX. Folderul de imagini pentru iteme al core_inventory
origen_inventory Adaugă cele 12 iteme în origen_inventory/config/items.lua cu numele, etichetele și greutățile din blocul QBCore. Folderul de imagini pentru iteme al origen_inventory
tgiann-inventory Adaugă cele 12 iteme în tgiann-inventory/items/items.lua cu numele, etichetele și greutățile din blocul QBCore. inventory_images/images/
Fără inventar Nimic. Boxele cumpărate și cele strânse așteaptă în /sound, la Your speakers, cu un buton Set up. Nimic de copiat

Ca să adaugi manual itemele în qb-core, în loc să lași scriptul s-o facă, lipește blocul QBCore în qb-core/shared/items.lua.

Un alt inventar care copiază unul dintre aceste API-uri: setează Config.Inventory la acela (vezi secțiunea 5). Un inventar făcut intern poate fi conectat în server/bridge.lua, care este lizibil: fiecare inventar de acolo înseamnă trei funcții mici (count, add, remove).

Blocul ox_inventory

Lipește în interiorul tabelului return { ... } din 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' } },

Blocul QBCore

Formatul de item QBCore, pe care îl citesc qb-, ps-, lj- și 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.' },

Dacă ai schimbat o etichetă, un preț sau o greutate în config/catalogue.lua, copiază în schimb intrările din propria consolă: le afișează pe baza setărilor tale.

4. Prima pornire: ce ar trebui să vezi

În consola serverului

ZeroDev Sound afișează o singură casetă de verificare (scrie soundcheck în consola serverului ca s-o afișezi din nou): baza de date și schema, framework-ul, banii, inventarul și itemele, tabelul de garaj, targeting-ul, Pulse Phone, modelele, atelierele de instalare și setările schimbate în joc. Fiecare linie care nu este OK spune ce trebuie făcut; docs/SETUP.md arată un exemplu, iar docs/TROUBLESHOOTING.md explică fiecare linie.

  • Linia de framework numește ce a fost găsit. Dacă este greșit, setează Config.Framework sau Config.Inventory în config/config.lua.
  • O linie galbenă Add these to ox_inventory/data/items.lua ... (sau ... if these items are not in ... yet, add them) urmată de intrări de iteme: fă secțiunea 3 pentru inventarul tău, apoi repornește. Mesajul ox_inventory dispare după ce itemele sunt adăugate. Pe qs-, codem-, origen- și tgiann-inventory, intrările sunt afișate la fiecare pornire ca reamintire, indiferent dacă le-ai adăugat sau nu.
  • O linie galbenă Copy zds_....png from zerodev-sound/web/img/items into ...: acele imagini nu sunt încă în folderul de imagini al inventarului tău. Linia numește folderul.
  • Pulse Phone app not registered: ...: Pulse Phone rulează, dar a refuzat aplicația. Vezi secțiunea 9.

În joc (cinci verificări)

  1. Harta afișează un blip ZeroDev Sound în Legion Square și un blip Car audio bay la Benny's.
  2. La magazin, un vânzător stă la un stand cu boxele expuse. Țintește vânzătorul (sau apasă E când nu există resursă de target) și cumpără un Roam Portable Speaker.
  3. Folosește-l din inventar. Îți apare în mâini. Apasă E, deschide Library și redă Night Drive (o piesă demo livrată cu scriptul). Cei din jurul tău o aud.
  4. Urcă într-o mașină. Primele câteva dăți, în colțul ecranului apare ce tastă deschide sistemul audio al mașinii (K implicit).
  5. Intră cu mașina în atelierul audio auto, ca șofer, și apasă E. Installer-ul se deschide pe mașina ta.

5. Setările schimbate cel mai des

În joc: /soundadmin > Settings schimbă live, pentru toată lumea, setările uzuale (atelierele de instalare, cine poate instala, ce mașini, prețuri, volumul maxim, orele de liniște, limitele, magazinul, poliția și daunele). Sunt salvate în baza de date și au prioritate față de config.lua până apeși Reset to config în panou.

Totul este în config/config.lua, dacă nu se precizează altfel. Produsele, prețurile și piesele auto sunt în config/catalogue.lua; sunetul de fabrică al fiecărei mașini este în config/vehicles.lua.

Ce vrei Setare
Forțezi framework-ul sau inventarul Config.Framework (auto, esx, qb, qbox, standalone), Config.Inventory (auto, ox, qb, qs, codem, core, origen, tgiann, esx, none)
Schimbi comanda telecomenzii Config.Command (implicit sound, deci /sound)
Schimbi tasta sistemului audio al mașinii Config.HeadUnitKey (implicit K). Jucătorii o pot schimba singuri în setările GTA > Key Bindings > FiveM.
Boxe per jucător Config.MaxPlacedPerPlayer (implicit 8). Adminii nu au limită.
Boxe într-un grup legat Config.MaxLinkedPerGroup (implicit 16)
Cât de aproape te conectezi, de cât de departe controlezi Config.PairRange (15 m), Config.ControlRange (80 m)
Muți magazinul sau adaugi mai multe magazine Config.Shop.locations. Fiecare primește label, coords, blip și, opțional, heading (încotro e orientat standul) și clerk (un model de ped). Config.Shop.account este bank sau cash. Config.Shop.enabled = false elimină magazinul.
Prețurile boxelor price la fiecare produs din config/catalogue.lua > Catalogue.Speakers. Prețul kitului de reparație este Config.Damage.repairPrice.
Unde se montează audio auto Config.Install.bays (fiecare cu label, coords, radius, blip). Implicit: un atelier la Benny's.
Permiți proprietarilor să echipeze mașina oriunde Config.Install.anywhere = true. Adaugă un buton Install pe sistemul audio al mașinii și comanda /caraudio (Config.Install.command).
Ce mașini pot fi echipate Config.Install.vehicles: 'owned' (implicit) sau 'any'. Vezi secțiunea 7.
Doar mecanicii pot instala Config.Install.anyone = false și listează joburile în Config.Install.jobs (trebuie să fie în serviciu).
Piese auto gratuite Config.Install.chargeParts = false. Config.Install.account este bank sau cash.
Prețurile pieselor auto și kiturile gata făcute Catalogue.CarParts și Catalogue.CarKits în config/catalogue.lua
Sunetul de fabrică al unei mașini Vehicles.ByClass și Vehicles.ByModel în config/vehicles.lua (basic, premium, reference, bike, none)
Biblioteca pornită sau oprită Config.Sources.library. Vezi secțiunea 8.
Melodiile tale Config.Library (fișiere în web/library/)
Ore de liniște Config.QuietHours = { enabled = true, from = 23, to = 7, maxVolume = 0.35 } (ora locală a serverului)
Joburile și puterile poliției Config.Police (vezi secțiunea 10)
Boxe care se strică atunci când sunt împușcate Config.Damage.enabled
Limite de performanță Config.Streaming.propRange (modelele sunt desenate în raza de 90 m), maxAudibleSessions (6 melodii diferite auzite simultan), maxMovingParts (24 de conuri animate pe cadru)
Linii suplimentare în consolă pentru suport Config.Debug (setează-l la true cât timp cauți o problemă)

Numele itemelor. Dacă alt script folosește deja unul dintre numele de iteme zds_, redenumește cheia acelui produs în Catalogue.Speakers (de exemplu zds_roam = { ... }), apoi folosește noul nume în inventar și redenumește imaginea corespunzător.

6. Controale

Ce Cum
Deschizi telecomanda /sound, E la o boxă sau aplicația Sound din Pulse Phone
Sistemul audio al mașinii K când stai într-o mașină (se poate schimba din setările GTA)
Pui jos o boxă Folosește itemul ei. Țintește unde trebuie pusă: devine verde acolo unde încape. Rotița mouse-ului sau Q / E o rotește. Enter sau clic stânga o pune jos; Backspace sau clic dreapta anulează.
Stivuiești un line array În timp ce îl pui jos, Arrow Up / Arrow Down îl ridică sau îl coboară
Cari un Roam Îți apare în mâini și continuă să cânte cât timp mergi. E muzică, G pune jos, H strânge. Când urci într-o mașină sau intri în apă, se strânge singur.
Muți sau strângi o boxă pe care o deții Țintește-o și alege Move sau Pack up ori, fără resursă de target, stai lângă ea: G mută (la un Roam: o cari din nou), H strânge. Tabul Speakers din telecomandă poate și el s-o strângă.
Legi boxe între ele Conectează-te la una dintre boxele tale, deschide tabul Speakers din telecomandă și apasă Link lângă celelalte boxe ale tale din apropiere. Cele portabile se leagă cu cele portabile, cele de interior cu cele de interior, cele de concert cu cele de concert (în raza de 40 m, 60 m și, respectiv, 250 m).
Installer-ul audio auto Intră cu mașina în atelier ca șofer și apasă E (sau butonul Install de pe sistemul audio al mașinii / /caraudio, când construitul oriunde este activ). Trage o piesă ca să o glisezi peste suprafețele mașinii, Alt + tragere o glisează plat, la înălțimea ei (fără magnetizare), Shift + tragere o ridică, Q / E sau Shift + rotița mouse-ului o rotește.
Cântă prin boxe La Mixer DJ sau la un stativ de microfon (se vinde în magazin, leagă-l ca pe o boxă) al boxelor la care ești conectat, sau la stativul de microfon al unui montaj auto: /soundmic ia microfonul, încă o dată /soundmic îl pune la loc
Raportezi muzica prea tare /noise
Lista de admin /soundadmin
Dai un item (consola serverului) givespeaker <player id> <item name>
Arzi un subwoofer ca să arăți efectul (staff) /soundblow în mașină sau soundblow <plate> în consolă

În telecomandă: Music (biblioteca serverului tău), Queue (următoarele, playlisturi salvate), Speakers (alimentarea și volumul fiecărui difuzor, legarea, strângerea) și Tune (șase moduri de sunet, un egalizator cu trei benzi, cine alege muzica, program de funcționare și "Real distance" pentru instalații de concert). Cine alege muzica: Only me; Party, unde oricine din apropiere poate cere melodii pe care proprietarul le aprobă; sau Anyone, unde cei din apropiere pot reda, pune pe pauză, sări, adăuga în coadă și derula. Opening hours redă singur unul dintre playlisturile proprietarului între două ore, pentru un magazin sau un club.

Microfonul (are nevoie de pma-voice). Cât timp îl ții, toți cei aflați lângă oricare boxă a acelui sistem îți aud vocea prin ea, cu sunet de sistem PA, la fel de tare cum cântă boxa muzica și până unde se aude; îndepărtează-te 4 m de mixer sau de stativ, deconectează-te sau pune microfonul la loc, și vocea ta revine la normal. Doar proprietarul sistemului (și adminii, în cazul unei mașini) poate cânta prin el; dă-le altor jucători ace-ul zds.mic ca să poată folosi orice sistem. Vocea ta nu se aude din locul fiecărei boxe: chatul vocal nu poate plasa o voce acolo, așa că cei de lângă o boxă te aud la volumul acelei boxe. Setări: Config.Mic.

7. Audio auto

Cum construiesc jucătorii

  1. Intră cu mașina în atelierul audio auto (implicit la Benny's) și apasă E, ca șofer.
  2. Pornește de la un kit gata făcut (Daily thump, Competition, Trunk wall, Sound quality, Clean and hidden) sau alege piese: subwoofere (de la 8" la 18"), boxe pentru subwoofere, amplificatoare, difuzoare de ușă, tweetere, pod-uri, podele false, panouri, plexiglas, condensator, a doua baterie, bandă LED și head unit.
  3. Trage fiecare piesă la locul ei pe mașină. Subwooferele intră în decupajele boxei lor. Fiecare piesă primește un finisaj (opt culori), iar subwooferele și difuzoarele, o grilă și un inel luminos. Mirror copiază o piesă pe partea cealaltă; Fine position o mută în pași mici. Cinci vederi ale camerei: Boot, Cabin, Side, Front, Top. Size: subwooferele vin în 8", 10", 12", 15" și 18" (toate subwooferele dintr-o boxă au aceeași dimensiune, iar boxa este construită în jurul lor, cu până la 30% mai mare sau mai mică decât cea pentru care a fost făcută); difuzoarele de ușă în 5.25", 6.5" și 6x9"; orice altă piesă între 80% și 130%, în pași de 5% (head unit-ul are dimensiune standard). Boxele și panourile mai mari costă mai mult; o piesă micșorată nu costă nimic în plus. Conurile se mișcă mai mult la difuzoarele mai mari, iar un difuzor de ușă mai mare coboară mai jos.
  4. Apasă Test system ca să auzi configurația cântând în mașină înainte să plătești. Redă prima melodie din Config.Library (piesa demo livrată, dacă nu ai schimbat-o).
  5. Apasă Install. Se plătesc doar piesele noi pentru mașină; piesele păstrate de la ultima instalare nu se plătesc din nou.

Instalarea este salvată pe numărul de înmatriculare și revine de fiecare dată când revine mașina: din orice garaj, sechestru sau respawn. Nimic de editat în scriptul tău de garaj.

Ce aud jucătorii

  • Fiecare mașină are deja un sunet de fabrică în funcție de clasă și model: un sistem cu 4 difuzoare, unul premium cu 10 difuzoare sau unul de referință cu 13 difuzoare, difuzoare în carenaj la motociclete; bicicletele, aeronavele și trenurile nu au. Difuzoarele montate le înlocuiesc pe cele de fabrică aflate cel mai aproape de ele; subwooferele se adaugă.
  • În afara mașinii, prin caroserie trece mai ales basul. Ușile deschise, geamurile deschise și portbagajul deschis lasă fiecare să iasă mai mult sunet, spre partea către care sunt orientate.
  • O mașină cu subwoofere sare ușor pe arcuri odată cu basul cât timp e parcată sau merge foarte încet (niciodată în timpul condusului), iar toți cei din interior simt kick-ul.
  • Sistemul audio (K) are volum, nivel de subwoofer, fader și balans.
  • Subwooferele forțate mult peste ce permit amplificatorul și puterea lor nominală, aproape de volum maxim, o perioadă, se pot arde. Toți cei de lângă mașină văd un fir subțire de fum din acel subwoofer și aud o pocnitură surdă. Un subwoofer ars nu se mai mișcă, basul scade, iar conul lui rămâne ars până este înlocuit în atelier (un subwoofer nou se plătește; ștergerea urmei nu este o reparație gratuită). Staff-ul poate arăta efectul: /soundblow în mașină sau soundblow <plate> în consola serverului.

Ce mașini pot fi echipate (Config.Install.vehicles)

  • 'owned' (implicit): doar mașinile din tabelul de vehicule deținute al framework-ului tău (owned_vehicles pe ESX, player_vehicles pe QBCore și Qbox).
  • 'any': și mașinile pe care nu le deține nimeni (mașini NPC, mașini spawnate, închirieri).
  • Oricum ar fi, o mașină deținută de alt jucător rămâne a lui: doar proprietarul ei, un mecanic în serviciu din Config.Install.jobs sau un admin o pot modifica. Pe un server standalone, fiecare mașină contează ca deținută.

Garaje, numere de înmatriculare și sechestre

  • Numerele de înmatriculare sunt comparate fără spații la capete și cu majuscule, așa că și garajele care completează sau schimbă majusculele numerelor se potrivesc.
  • O mașină cu număr fals sau schimbat nu își găsește instalarea până nu are din nou numărul salvat.
  • Mașinile care există doar pe ecranul unui singur jucător (previzualizările din garaj, unele mașini din showroom) nu primesc niciodată o instalare: pentru ceilalți nu sunt mașini reale.

Alte scripturi de sunet sau de sistem audio

ZeroDev Sound este o resursă separată, cu propriile comenzi (/sound, /caraudio, ...), evenimente și state bags pe vehicule, așa că nu înlocuiește și nu modifică alte scripturi (cât timp cântă într-o mașină, doar oprește radioul propriu al mașinii din GTA). Rularea simultană a două scripturi audio auto pe aceeași mașină nu a fost testată: folosește un singur sistem audio per mașină.

8. Surse de muzică

Muzica se redă doar din fișierele audio pe care le adaugi în resursă. Jucătorii aleg din lista ta; nu pot introduce linkuri și nicio adresă web nu este redată vreodată. Adaugă doar audio pe care îl deții sau pentru care ai drepturile de utilizare și distribuire.

  • Pune fișiere mp3 sau ogg în zerodev-sound/web/library/ și trece fiecare fișier în Config.Library sub forma { title = '...', artist = '...', file = 'name.mp3' }. Primesc experiența completă: sunet 3D, camere și pereți, habitacluri de mașini, moduri de sunet, EQ și conuri care se mișcă odată cu basul real.
  • Config.Sources.library = false oprește biblioteca.
  • Radioul propriu al mașinilor din GTA funcționează în continuare în orice mașină cât timp nu se redă în ea nicio melodie din această resursă.
  • Caseta de pornire arată câte melodii pot alege jucătorii și avertizează despre orice intrare sărită (un nume de fișier care nu este mp3 sau ogg în web/library/).
  • Actualizare de la 3.0.0: melodiile salvate, melodiile recente și intrările din playlisturi care erau linkuri nu mai sunt afișate și nici redate. Melodiile din bibliotecă continuă să funcționeze.

9. Pulse Phone

Nimic de configurat. Când Pulse Phone rulează pe server (numele resursei phone, oricare ediție):

  • Fiecare telefon primește o aplicație Sound pe Home Screen. Este aceeași telecomandă ca /sound: te conectezi la o boxă sau la mașină, alegi muzica, controlezi tot grupul. Jucătorii o pot șterge și o pot reinstala din App Hub.
  • Ce se redă pe boxa sau mașina conectată, cu timpul rămas, apare în Island și pe Lock Screen. O atingere deschide aplicația Sound.
  • Pulse Drive (ecranul de mașină al Pulse, F10 implicit) afișează sistemul audio al mașinii în care stai: melodia, artistul și coperta, cu play, pauză, anterior, următor și volum, plus un buton Open pentru aplicația Sound. Necesită Pulse Phone 1.2.9 sau mai nou; versiunile mai vechi pur și simplu nu îl afișează.

Jucătorii fără telefon folosesc /sound și K, care fac tot ce face aplicația.

Dacă ai redenumit folderul telefonului, adaugă această linie în config/config.lua, cu numele lui:

Lua
Config.PulseResource = 'phone'

10. Poliția, vecinii și adminii

Ce Cum Setare
Raportezi muzica prea tare /noise trimite cea mai apropiată boxă care cântă (în raza de 60 m) către poliția aflată în serviciu, ca blip intermitent, timp de 3 minute. Un raport per jucător la fiecare 2 minute. Config.Police.complaints, complaintRange
Oprești o boxă Poliția în serviciu: țintește boxa > Turn off (police) sau tabul Tune din telecomandă > Police. În raza de 12 m. Config.Police.canSilence, silenceMinutes (15)
Confiști o boxă Poliția în serviciu, în raza de 4 m: target > Seize (police) sau Tune > Police > Seize. Boxa ajunge la polițist. Config.Police.canSeize
Joburile poliției Jucătorii cu aceste joburi, în serviciu Config.Police.jobs
Boxe stricate Dacă tragi într-o boxă plasată, se strică: pârâie și se oprește. Un Speaker Repair Kit (vândut în magazin, la Accessories) o repară: folosește kitul lângă ea. Config.Damage
Lista de admin /soundadmin: fiecare boxă de pe server, ce redă și cine o deține, cu butoane pentru a seta un waypoint, a opri muzica sau a șterge boxa. Config.AdminAce (zerodev.sound.admin)
Dai un item Consola serverului: givespeaker <player id> <item name>

11. Limbi

Scriptul vine în aceleași 25 de limbi ca Pulse Phone. Setează una în config/config.lua:

Cod Limbă Cod Limbă Cod Limbă
en Engleză 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', de exemplu. Valoarea implicită, 'auto', urmează Pulse Phone: serverul preia Config.Locale din Pulse, iar fiecare jucător primește Sound în limba aleasă pe telefon. Fără Pulse, este în engleză. Mesajele din joc, indicațiile de taste, numele obiectelor și numele tastei pentru sistemul audio sunt în locales/<code>.lua; interfața (telecomanda, sistemul audio al mașinii, magazinul, instalatorul, aplicația Pulse) este în locales/<code>_ui.lua. Tot ce lipsește apare în engleză.

Ca să schimbi un rând, editează-l în fișierul limbii respective. Păstrează fiecare %s, %d, %.1f, %% și ~a~ exact cum sunt. Ca să adaugi o limbă proprie, copiază locales/en.lua în locales/xx.lua, schimbă Locales['en'] în Locales['xx'] (în ambele locuri), tradu textul dintre ghilimele și setează Config.Locale = 'xx'. locales/ui_strings.txt listează toate cheile de interfață pentru un xx_ui.lua.

12. Depanare

Jucătorii nu pot folosi itemele de boxe

  • ox_inventory: intrările trebuie să fie în ox_inventory/data/items.lua cu linia lor client, iar ox_inventory trebuie repornit după ce le lipești. Folderul trebuie să se numească în continuare zerodev-sound (intrările apelează zerodev-sound.useItem).
  • QBCore / ESX: zerodev-sound trebuie să pornească după framework în server.cfg.
  • codem-inventory pe QBCore: finalizează pasul propriu al codem-inventory care direcționează QBCore.Functions.UseItem către el.
  • Fără inventar: boxele nu sunt iteme. Jucătorii deschid /sound și apasă Set up la Your speakers.

Lipsesc imaginile itemelor

  • ox_inventory: nimic de copiat; calea imaginii indică spre zerodev-sound. Dacă sunt goale, verifică linia image = 'nui://zerodev-sound/...' a intrării și numele folderului.
  • Alte inventare: citește linia din consolă Copy ... into ...: listează imaginile lipsă și folderul în care trebuie puse. Copiază-le din zerodev-sound/web/img/items/ și repornește inventarul.

Este intenționat: jucătorii aleg doar din biblioteca ta. Adaugă melodia în Config.Library (secțiunea 8).

Niciun sunet

  • Browserul integrat al FiveM pornește sunetul fără clic, așa că jucătorii nu trebuie să apese niciodată nimic ca să „permită” sunetul. Dacă un jucător nu aude nimic în timp ce alții aud, verifică FiveM în mixerul de volum Windows al acelui jucător.
  • Verifică boxa în tabul Speakers din telecomandă: poate fi oprită sau Broken.
  • Poliția poate să o fi oprit (pentru Config.Police.silenceMinutes) sau orele de liniște pot limita volumul (Config.QuietHours).
  • Un jucător aude cel mult Config.Streaming.maxAudibleSessions melodii diferite simultan (6), cele mai apropiate primele.
  • Test system din installer nu are sunet când Config.Library este gol sau Config.Sources.library = false: redă prima melodie din bibliotecă.

Magazinul nu apare

  • Config.Shop.enabled trebuie să fie true.
  • Vânzătorul și standul apar doar când un jucător se află în raza de aproximativ 70 m de Config.Shop.locations și doar pe ecranul acelui jucător. Verifică coordonatele pe care le-ai setat.
  • Cu ox_target sau qb-target, țintește vânzătorul. Fără unul, stai lângă vânzător: E Browse speakers.

O boxă apare ca o boxă GTA simplă sau nu apare deloc

Folderul stream/ lipsește sau a fost redenumit ori jucătorul a intrat înainte să pornească resursa. Repornește serverul și reconectează-te.

Mesajele audio auto și ce înseamnă

Mesaj De ce Soluție
Drive into a car audio bay to build. Echiparea oriunde este dezactivată, iar mașina nu este într-un atelier. Intră cu mașina în atelier (Config.Install.bays) sau setează Config.Install.anywhere = true.
Stand next to your car to build its sound system. Echiparea oriunde este activată, iar tu ești la mai mult de 8 m de mașină sau /caraudio nu a găsit nicio mașină în raza de 4 m. Stai lângă mașină sau urcă în ea.
Stop the car first. Mașina se mișcă. Oprește.
Car audio can only be fitted to a car you own. Config.Install.vehicles = 'owned', iar acest număr de înmatriculare nu este în tabelul tău de vehicule deținute. Apare tuturor, cu excepția adminilor, și când acel tabel nu poate fi citit: consola afișează atunci o linie roșie could not read the owned-vehicles table. Folosește o mașină deținută, setează 'any' sau repară eroarea de bază de date numită în consolă.
Only the owner can change this car's audio. Mașina aparține altui jucător. Apare și când Config.Install.anyone = false, iar jucătorul nu are un job în serviciu din Config.Install.jobs. O echipează proprietarul, un mecanic în serviciu sau un admin.
Not enough money. Piesele noi costă mai mult decât are jucătorul în Config.Install.account. Scoate piese sau setează Config.Install.chargeParts = false.
A subwoofer blew. It needs replacing. Subwooferele au fost forțate prea tare, prea mult timp, aproape de volum maxim. Înlocuiește subwooferul în atelier; un amplificator mai mare ajută.

Poliția nu își vede opțiunile

Adaugă numele joburilor de poliție în Config.Police.jobs. Jucătorii trebuie să fie în serviciu.

13. Actualizare

Dacă treci de la 1.x la 2.0: citește UPGRADING.md. Între versiunile 2.x:

  1. Fă backup la folderul config/, la locales/ dacă l-ai tradus și la orice melodii ai adăugat în web/library/.
  2. Oprește serverul. Înlocuiește folderul zerodev-sound cu cel nou (păstrează numele).
  3. Pune înapoi fișierele din config/. Dacă notele de actualizare menționează setări noi, copiază acele linii din fișierele noi în ale tale.
  4. Pornește serverul și citește consola. Itemele noi, dacă există, sunt afișate pentru inventarul tău.

Boxele plasate, instalările auto și playlisturile sunt păstrate în baza de date (zds_speakers, zds_car_builds, zds_playlists, zds_stash) și nu sunt atinse de o actualizare.

Revenirea la versiunea anterioară: păstrează folderul zerodev-sound anterior în afara resources până când noua versiune merge bine și fă un backup al bazei de date înainte de actualizare. Ca să revii, oprește serverul, pune la loc folderul anterior și config/-ul tău, apoi pornește-l. Revenirea de la 3.0 la 2.x pe aceeași bază de date nu a fost testată, așa că restaurează backupul bazei de date dacă ceva nu arată bine.

Tradus din engleză. Dacă ceva de aici nu se potrivește cu pagina în engleză, pagina în engleză are dreptate. English