ZeroDev Sound Doku

ZeroDev Sound: Installationsanleitung

Für ZeroDev Sound 3.0.127 Min. LesezeitAktualisiert am

Diese Resource enthält keine Audio- oder Musikintegrationen von Drittanbietern und stellt auch keine bereit. Musik wird nur aus Audiodateien abgespielt, die der Serverbetreiber der Resource hinzufügt, und über das integrierte GTA-Radio. Spieler können keine Links eingeben. Füge nur Audio hinzu, das dir gehört oder zu dessen Nutzung und Verbreitung du berechtigt bist; das Streamen von Inhalten ohne Erlaubnis kann gegen das Cfx.re Creator Platform License Agreement und gegen das Gesetz verstoßen.

Lautsprecher, die Spieler kaufen, tragen, abstellen und verbinden, und Car-Audio, das sie in ihre eigenen Autos einbauen. Das ist die komplette Referenz. Für die Kurzfassung lies docs/SETUP.md (5 Schritte); bei Problemen docs/TROUBLESHOOTING.md; wenn du von 1.x kommst, UPGRADING.md.

Inhalt 1. Voraussetzungen 2. Installation 3. Items für dein Inventar 4. Erster Start: was du sehen solltest 5. Die am häufigsten geänderten Einstellungen 6. Steuerung 7. Car-Audio 8. Musikquellen 9. Pulse Phone 10. Polizei, Nachbarn und Admins 11. Sprachen 12. Fehlerbehebung 13. Updaten

1. Voraussetzungen

Erforderlich oxmysql. ZeroDev Sound legt beim ersten Start seine eigenen Tabellen an; es gibt keine SQL-Datei zu importieren.
Framework ESX Legacy, QBCore, Qbox oder keins (standalone). Wird von selbst erkannt.
Inventar ox_inventory, qb-inventory (auch ps- und lj-inventory), qs-inventory, codem-inventory, core_inventory, origen_inventory, tgiann-inventory, das ESX-Inventar oder keins. Wird von selbst erkannt.
Optional ox_target oder qb-target (ohne eins bekommen Spieler stattdessen eine Tastenabfrage auf dem Bildschirm). Pulse Phone 1.2.9 oder neuer (fügt die Sound-App und das Autoradio auf Pulse Drive hinzu). pma-voice für das Mikro: Ohne pma-voice kann man das Mikro halten und hineinsingen, aber niemand hört es über die Lautsprecher.

Sonst nichts: kein ox_lib, kein API-Key, kein Google-Account.

Linux-Server

Linux-Server: Nutze das Recommended-Server-Artifact, nicht Latest. Wähl auf der FiveM-Server-Downloadseite (docs.fivem.net/docs/server-download/) Linux und den Update-Branch Recommended. Ein Server mit dem neuesten Linux-Artifact ist beim Laden abgestürzt (FXServer hat einen /proc/self/maps-Dump ausgegeben), und der Wechsel auf das empfohlene Artifact hat es behoben. Das ist die einzige Linux-Meldung, die wir haben; wir haben ZeroDev Sound selbst noch nicht auf einem Linux-Server laufen lassen.

Linux-Server: Nutze das Recommended-Server-Artifact, nicht Latest. Wähl auf der FiveM-Server-Downloadseite (docs.fivem.net/docs/server-download/) Linux und den Update-Branch Recommended. Ein Server mit dem neuesten Linux-Artifact ist beim Laden abgestürzt (FXServer hat einen /proc/self/maps-Dump ausgegeben), und der Wechsel auf das empfohlene Artifact hat es behoben. Das ist die einzige Linux-Meldung, die wir haben; wir haben ZeroDev Sound selbst noch nicht auf einem Linux-Server laufen lassen.

Auf einem Standalone-Server (ohne Framework) ist alles kostenlos: Der Laden und die Autoteile kosten nichts.

2. Installation

Schritt 1. Leg den Ordner ab. Leg den Ordner zerodev-sound in deinen Ordner resources (jeder Unterordner ist in Ordnung, zum Beispiel resources/[zerodev]/zerodev-sound). Behalte den Ordnernamen zerodev-sound: Die Item-Einträge von ox_inventory rufen ihn unter diesem Namen auf.

Schritt 2. Füg ihn zur server.cfg hinzu, nach deiner Datenbank, deinem Framework und 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

Schritt 3. Gib deinen Admins die Admin-Berechtigung (kein Lautsprecher-Limit, die Liste /soundadmin, Stoppen und Entfernen aus der Ferne):

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

Schritt 4. Richte die Items für dein Inventar ein: Abschnitt 3. Beim ESX-Inventar und bei QBCore wird das für dich erledigt.

Schritt 5. Starte den Server neu (ein vollständiger Neustart, nicht nur die Resource, damit jeder Spieler die Modelle lädt) und prüf die Konsole: Abschnitt 4.

3. Items für dein Inventar

Es gibt 12 Items: zehn Lautsprecher, den Mikroständer und das Reparatur-Kit.

Item-Name Label Gewicht
zds_roam Roam Portable Speaker 2 kg
zds_room_shelf Shelf Speaker 4 kg
zds_room_tower Tower Speaker 10 kg
zds_room_ceiling Ceiling Speaker 2 kg
zds_room_sub Home Subwoofer 8 kg
zds_stage_pa PA Speaker 10 kg
zds_stage_sub Concert Subwoofer 15 kg
zds_stage_array Line Array Speaker 12 kg
zds_stage_monitor Stage Monitor 6 kg
zds_stage_mixer DJ Mixer 5 kg
zds_stage_mic Mikroständer 3 kg
zds_repair_kit Speaker Repair Kit 0.6 kg

Die Bilder liegen in zerodev-sound/web/img/items/. Du musst nie raten: Wann immer etwas fehlt, gibt die Serverkonsole genau die Einträge für dein Inventar aus und nennt jedes Bild, das noch nicht an seinem Platz ist.

Welches Inventar hast du?

Inventar Was du tust Bilder kommen nach
ESX-Inventar (ESX Legacy ohne ox) Nichts. Die Items werden beim Start in die Tabelle items eingefügt. Nichts zu kopieren
ox_inventory (ESX, Qbox oder standalone) Füg den ox_inventory-Block in ox_inventory/data/items.lua ein, innerhalb der Tabelle. Starte ox_inventory neu, dann zerodev-sound. Nichts zu kopieren: Die Einträge laden die Bilder aus zerodev-sound
qb-inventory, ps-inventory, lj-inventory (QBCore) Nichts. Die Items werden beim Start in die Shared Items von QBCore eingefügt. Kopier web/img/items/*.png nach <your inventory>/html/images/
qs-inventory Auf QBCore füg den QBCore-Block in qb-core/shared/items.lua ein. Auf ESX füg dieselben Einträge in qs-inventory/shared/items.lua ein. qs-inventory/html/images/
codem-inventory Füg die 12 Items zu codem-inventory/config/itemlist.lua hinzu, mit den Namen, Labels und Gewichten aus dem QBCore-Block. Auf QBCore schließ außerdem den eigenen Installationsschritt von codem-inventory ab, der QBCore.Functions.UseItem auf codem-inventory umleitet, sonst lassen sich Items nicht benutzen. Der Item-Bilderordner von codem-inventory
core_inventory Nichts. Die Items werden für dich in die Shared Items von QBCore oder die ESX-Tabelle items eingefügt. Der Item-Bilderordner von core_inventory
origen_inventory Füg die 12 Items zu origen_inventory/config/items.lua hinzu, mit den Namen, Labels und Gewichten aus dem QBCore-Block. Der Item-Bilderordner von origen_inventory
tgiann-inventory Füg die 12 Items zu tgiann-inventory/items/items.lua hinzu, mit den Namen, Labels und Gewichten aus dem QBCore-Block. inventory_images/images/
Kein Inventar Nichts. Gekaufte und eingepackte Lautsprecher warten in /sound unter Your speakers, mit einem Button Set up. Nichts zu kopieren

Um die Items von Hand zu qb-core hinzuzufügen, statt es dem Script zu überlassen, füg den QBCore-Block in qb-core/shared/items.lua ein.

Ein anderes Inventar, das eine dieser APIs nachbildet: Setz Config.Inventory auf dieses (siehe Abschnitt 5). Ein selbst entwickeltes Inventar kann in server/bridge.lua angebunden werden, die lesbar ist: Jedes Inventar dort besteht aus drei kleinen Funktionen (zählen, hinzufügen, entfernen).

ox_inventory-Block

Füg ihn innerhalb der Tabelle return { ... } von ox_inventory/data/items.lua ein:

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' } },

QBCore-Block

Das QBCore-Item-Format, das qb-, ps-, lj- und qs-inventory lesen:

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.' },

Wenn du ein Label, einen Preis oder ein Gewicht in config/catalogue.lua geändert hast, kopier die Einträge stattdessen aus deiner eigenen Konsole: Sie gibt sie aus deinen Einstellungen aus.

4. Erster Start: was du sehen solltest

In der Serverkonsole

ZeroDev Sound gibt einen Check-Kasten aus (gib soundcheck in der Serverkonsole ein, um ihn erneut auszugeben): Datenbank und Schema, Framework, Geld, Inventar und Items, die Garagentabelle, Targeting, Pulse Phone, Modelle, Einbauhallen und im Spiel geänderte Einstellungen. Jede Zeile, die nicht OK ist, sagt, was zu tun ist; docs/SETUP.md zeigt ein Beispiel, und docs/TROUBLESHOOTING.md erklärt jede Zeile.

  • Die Framework-Zeile nennt, was gefunden wurde. Wenn das falsch ist, setz Config.Framework oder Config.Inventory in config/config.lua.
  • Eine gelbe Zeile Add these to ox_inventory/data/items.lua ... (oder ... if these items are not in ... yet, add them), gefolgt von Item-Einträgen: Erledige Abschnitt 3 für dein Inventar und starte dann neu. Die ox_inventory-Meldung hört auf, sobald die Items drin sind. Bei qs-, codem-, origen- und tgiann-inventory werden die Einträge bei jedem Start als Erinnerung ausgegeben, egal ob du sie hinzugefügt hast oder nicht.
  • Eine gelbe Zeile Copy zds_....png from zerodev-sound/web/img/items into ...: Diese Bilder sind noch nicht im Bilderordner deines Inventars. Sie nennt den Ordner.
  • Pulse Phone app not registered: ...: Pulse Phone läuft, hat die App aber abgelehnt. Siehe Abschnitt 9.

Im Spiel (fünf Checks)

  1. Die Karte zeigt einen Blip ZeroDev Sound am Legion Square und einen Blip Car audio bay bei Benny's.
  2. Im Laden steht ein Verkäufer an einem Stand mit den ausgestellten Lautsprechern. Ziel auf den Verkäufer (oder drück E, wenn es keine Target-Resource gibt) und kauf einen Roam Portable Speaker.
  3. Benutz ihn aus deinem Inventar. Er kommt in deine Hände. Drück E, öffne Library und spiel Night Drive ab (ein Demo-Track, der mit dem Script kommt). Die Leute um dich herum hören ihn.
  4. Steig in ein Auto. Die ersten paar Male zeigt die Bildschirmecke, welche Taste das Autoradio öffnet (standardmäßig K).
  5. Fahr als Fahrer in die Car-Audio-Einbauhalle und drück E. Der Installer öffnet sich an deinem Auto.

5. Die am häufigsten geänderten Einstellungen

Im Spiel: /soundadmin > Settings ändert die gängigen live für alle (Einbauhallen, wer einbauen darf, welche Autos, Preise, maximale Lautstärke, Ruhezeiten, Limits, Laden, Polizei und Schäden). Sie werden in der Datenbank gespeichert und haben Vorrang vor der config.lua, bis du im Panel Reset to config drückst.

Alles steht in config/config.lua, sofern nicht anders angegeben. Produkte, Preise und Autoteile stehen in config/catalogue.lua; der Werks-Sound jedes Autos steht in config/vehicles.lua.

Was du willst Einstellung
Framework oder Inventar erzwingen Config.Framework (auto, esx, qb, qbox, standalone), Config.Inventory (auto, ox, qb, qs, codem, core, origen, tgiann, esx, none)
Den Befehl für die Fernbedienung ändern Config.Command (Standard sound, also /sound)
Die Taste fürs Autoradio ändern Config.HeadUnitKey (Standard K). Spieler können sie selbst in den GTA-Einstellungen > Key Bindings > FiveM neu belegen.
Lautsprecher pro Spieler Config.MaxPlacedPerPlayer (Standard 8). Admins haben kein Limit.
Lautsprecher in einer verbundenen Gruppe Config.MaxLinkedPerGroup (Standard 16)
Wie nah zum Verbinden, wie weit zum Steuern Config.PairRange (15 m), Config.ControlRange (80 m)
Den Laden verschieben oder weitere Läden hinzufügen Config.Shop.locations. Jeder Eintrag nimmt label, coords, blip und optional heading (in welche Richtung der Stand zeigt) und clerk (ein Ped-Modell). Config.Shop.account ist bank oder cash. Config.Shop.enabled = false entfernt den Laden.
Preise der Lautsprecher price bei jedem Produkt in config/catalogue.lua > Catalogue.Speakers. Der Preis des Reparatur-Kits ist Config.Damage.repairPrice.
Wo Car-Audio eingebaut wird Config.Install.bays (jeweils mit label, coords, radius, blip). Standard: eine Halle bei Benny's.
Besitzer überall an ihrem Auto bauen lassen Config.Install.anywhere = true. Fügt einen Button Install am Autoradio und den Befehl /caraudio hinzu (Config.Install.command).
Welche Autos ausgebaut werden können Config.Install.vehicles: 'owned' (Standard) oder 'any'. Siehe Abschnitt 7.
Nur Mechaniker dürfen einbauen Config.Install.anyone = false und die Jobs in Config.Install.jobs auflisten (sie müssen im Dienst sein).
Kostenlose Autoteile Config.Install.chargeParts = false. Config.Install.account ist bank oder cash.
Preise der Autoteile und die fertigen Kits Catalogue.CarParts und Catalogue.CarKits in config/catalogue.lua
Der Werks-Sound eines Autos Vehicles.ByClass und Vehicles.ByModel in config/vehicles.lua (basic, premium, reference, bike, none)
Bibliothek an oder aus Config.Sources.library. Siehe Abschnitt 8.
Deine eigenen Songs Config.Library (Dateien in web/library/)
Ruhezeiten Config.QuietHours = { enabled = true, from = 23, to = 7, maxVolume = 0.35 } (lokale Serverzeit)
Polizei-Jobs und -Befugnisse Config.Police (siehe Abschnitt 10)
Lautsprecher gehen kaputt, wenn auf sie geschossen wird Config.Damage.enabled
Performance-Limits Config.Streaming.propRange (Modelle werden im Umkreis von 90 m dargestellt), maxAudibleSessions (6 verschiedene Songs gleichzeitig hörbar), maxMovingParts (24 animierte Membranen pro Frame)
Zusätzliche Konsolenzeilen für den Support Config.Debug (setz es auf true, während du einem Problem nachgehst)

Item-Namen. Wenn ein anderes Script schon einen der zds_-Item-Namen nutzt, benenne den Schlüssel dieses Produkts in Catalogue.Speakers um (zum Beispiel zds_roam = { ... }), nutze dann den neuen Namen in deinem Inventar und benenne sein Bild passend um.

6. Steuerung

Was Wie
Die Fernbedienung öffnen /sound oder E an einem Lautsprecher oder die Sound-App in Pulse Phone
Autoradio K, während du in einem Auto sitzt (in den GTA-Einstellungen neu belegbar)
Einen Lautsprecher abstellen Benutz sein Item. Ziel dorthin, wo er hin soll: Er wird grün, wo er passt. Mausrad oder Q / E dreht ihn. Enter oder Linksklick stellt ihn ab; Backspace oder Rechtsklick bricht ab.
Ein Line-Array stapeln Beim Abstellen hebt oder senkt Pfeil hoch / Pfeil runter es
Einen Roam tragen Er kommt in deine Hände und spielt weiter, während du läufst. E Musik, G abstellen, H einpacken. Beim Einsteigen in ein Auto oder ins Wasser wird er eingepackt.
Einen eigenen Lautsprecher bewegen oder einpacken Ziel auf ihn und wähl Move oder Pack up, oder stell dich ohne Target-Resource daneben: G bewegen (bei einem Roam: wieder tragen), H einpacken. Der Tab Speakers der Fernbedienung kann auch einpacken.
Lautsprecher verbinden Verbinde dich mit einem deiner Lautsprecher, öffne den Tab Speakers der Fernbedienung und drück Link neben deinen anderen Lautsprechern in der Nähe. Tragbare verbinden sich mit tragbaren, Indoor mit Indoor, Konzert mit Konzert (im Umkreis von 40 m, 60 m bzw. 250 m).
Car-Audio-Installer Fahr als Fahrer in die Halle und drück E (oder den Button Install am Radio / /caraudio, wenn Bauen überall an ist). Zieh ein Teil, um es über die Flächen des Autos zu schieben, Alt + Ziehen schiebt es flach auf seiner Höhe (ohne Einrasten), Shift + Ziehen hebt es an, Q / E oder Shift + Scrollen dreht es.
Über die Lautsprecher singen Am DJ Mixer oder an einem Mikroständer (gibt es im Store, verbinde ihn wie einen Lautsprecher) der Lautsprecher, mit denen du verbunden bist, oder am Mikroständer eines Car-Builds: /soundmic nimmt das Mikro, /soundmic noch einmal legt es zurück
Laute Musik melden /noise
Admin-Liste /soundadmin
Ein Item geben (Serverkonsole) givespeaker <player id> <item name>
Einen Sub durchbrennen lassen, um den Effekt zu zeigen (Team) /soundblow im Auto oder soundblow <plate> in der Konsole

In der Fernbedienung: Music (die Bibliothek deines Servers), Queue (als Nächstes, gespeicherte Playlists), Speakers (Strom und Lautstärke jedes Lautsprechers, Koppeln, Einpacken) und Tune (sechs Soundmodi, ein Dreiband-Equalizer, wer die Musik auswählt, Öffnungszeiten und „Real distance“ für Konzert-Setups). Wer die Musik auswählt: Only me; Party, wo jeder in der Nähe Songs vorschlagen kann, die der Besitzer freigibt; oder Anyone, wo Leute in der Nähe abspielen, pausieren, überspringen, in die Warteschlange legen und spulen können. Opening hours spielt zwischen zwei Uhrzeiten von selbst eine der Playlists des Besitzers ab, für einen Laden oder Club.

Das Mikro (braucht pma-voice). Solange du es hältst, hört jeder in der Nähe eines Lautsprechers dieses Systems deine Stimme darüber, mit PA-Klang, so laut, wie dieser Lautsprecher Musik spielt, und so weit, wie er trägt; geh 4 m vom Mixer oder Mikroständer weg, trenn die Verbindung oder leg das Mikro zurück, und deine Stimme ist wieder normal. Nur der Besitzer des Systems (und bei einem Auto die Admins) kann darüber singen; gib anderen Spielern das Ace zds.mic, damit sie jedes System nutzen können. Deine Stimme ist nicht vom Platz jedes Lautsprechers aus zu hören: Der Voice-Chat kann eine Stimme dort nicht platzieren, deshalb hören Leute in der Nähe eines Lautsprechers dich stattdessen in der Lautstärke dieses Lautsprechers. Einstellungen: Config.Mic.

7. Car-Audio

Wie Spieler ausbauen

  1. Fahr in die Car-Audio-Einbauhalle (standardmäßig Benny's) und drück als Fahrer E.
  2. Starte mit einem fertigen Kit (Daily thump, Competition, Trunk wall, Sound quality, Clean and hidden) oder wähl Teile: Subwoofer (8" bis 18"), Boxen, Verstärker, Türlautsprecher, Hochtöner, Pods, Zwischenböden, Verkleidungen, Plexi, Kondensator, Zweitbatterie, LED-Streifen und Headunit.
  3. Zieh jedes Teil an seinen Platz im Auto. Subs fallen in die Ausschnitte ihrer Box. Jedes Teil bekommt ein Finish (acht Farben), Subs und Lautsprecher dazu ein Gitter und einen Leuchtring. Mirror kopiert ein Teil auf die andere Seite; Fine position bewegt es in kleinen Schritten. Fünf Kameraansichten: Boot, Cabin, Side, Front, Top. Größe: Subs gibt es in 8", 10", 12", 15" und 18" (jeder Sub in einer Box hat dieselbe Größe, und die Box wird um sie herum gebaut, bis zu 30% größer oder kleiner als ursprünglich vorgesehen); Türlautsprecher in 5.25", 6.5" und 6x9"; jedes andere Teil von 80% bis 130% in 5%-Schritten (die Headunit hat eine Standardgröße). Größere Boxen und Verkleidungen kosten mehr; ein verkleinertes Teil kostet nichts. Membranen bewegen sich bei größeren Treibern weiter, und ein größerer Türlautsprecher geht tiefer.
  4. Drück Test system, um den Ausbau vor dem Bezahlen im Auto zu hören. Er spielt den ersten Song in Config.Library (den mitgelieferten Demo-Track, sofern du ihn nicht geändert hast).
  5. Drück Install. Nur Teile, die neu im Auto sind, werden berechnet; Teile, die vom letzten Einbau bleiben, werden nicht erneut berechnet.

Der Einbau wird am Kennzeichen gespeichert und kommt zurück, wann immer das Auto zurückkommt: aus jeder Garage, jedem Abschlepphof oder Respawn. In deinem Garagen-Script ist nichts zu ändern.

Was Spieler hören

  • Jedes Auto hat schon einen Werks-Sound nach Klasse und Modell: ein 4-Lautsprecher-System, ein Premium-System mit 10 Lautsprechern oder ein Referenz-System mit 13 Lautsprechern, Verkleidungslautsprecher bei Motorrädern; Fahrräder, Flugzeuge und Züge haben keinen. Eingebaute Lautsprecher ersetzen die nächstgelegenen Werkslautsprecher; Subs kommen dazu.
  • Außerhalb des Autos dringt vor allem der Bass durch die Karosserie. Offene Türen, offene Fenster und ein offener Kofferraum lassen jeweils mehr nach außen, in die Richtung, in die sie zeigen.
  • Ein Auto mit Subs wippt im Stand oder im Schritttempo sanft mit dem Bass auf seinen Federn (nie während der Fahrt), und alle im Auto spüren die Kick.
  • Das Radio (K) hat Lautstärke, Sub-Pegel, Fader und Balance.
  • Subs, die eine Weile nahe voller Lautstärke weit über das betrieben werden, was ihr Verstärker und ihre Belastbarkeit erlauben, können durchbrennen. Jeder in der Nähe des Autos sieht ein dünnes Rauchwölkchen aus diesem Sub und hört einen dumpfen Knall. Ein durchgebrannter Sub bewegt sich nicht mehr, der Bass fällt ab, und seine Membran bleibt verkohlt, bis sie in der Halle ersetzt wird (ein neuer Sub wird bezahlt; das Entfernen der Spuren ist keine kostenlose Reparatur). Das Team kann es zeigen: /soundblow im Auto oder soundblow <plate> in der Serverkonsole.

Welche Autos ausgebaut werden können (Config.Install.vehicles)

  • 'owned' (Standard): nur Autos aus der Owned-Vehicles-Tabelle deines Frameworks (owned_vehicles bei ESX, player_vehicles bei QBCore und Qbox).
  • 'any': auch Autos, die niemandem gehören (NPC-Autos, gespawnte Autos, Mietwagen).
  • So oder so bleibt ein Auto, das einem anderen Spieler gehört, seins: Nur sein Besitzer, ein Mechaniker im Dienst aus Config.Install.jobs oder ein Admin kann es ändern. Auf einem Standalone-Server gilt jedes Auto als Eigentum.

Garagen, Kennzeichen und Abschlepphöfe

  • Kennzeichen werden ohne Leerzeichen am Rand und in Großbuchstaben abgeglichen, sodass auch Garagen passen, die Kennzeichen auffüllen oder die Schreibweise ändern.
  • Ein Auto mit falschem oder geändertem Kennzeichen findet seinen Einbau erst wieder, wenn es sein gespeichertes Kennzeichen wieder hat.
  • Autos, die nur auf dem Bildschirm eines einzelnen Spielers existieren (Garagen-Vorschauen, manche Showroom-Autos), bekommen nie einen Einbau: Für alle anderen sind sie keine echten Autos.

Andere Sound- oder Stereo-Scripts

ZeroDev Sound ist eine eigene Resource mit eigenen Befehlen (/sound, /caraudio, ...), Events und Fahrzeug-State-Bags, ersetzt oder verändert also keine anderen Scripts (während es in einem Auto spielt, schaltet es nur das eigene Autoradio von GTA ab). Zwei Car-Audio-Scripts gleichzeitig am selben Auto wurden nicht zusammen getestet: Nutze eine Anlage pro Auto.

8. Musikquellen

Musik wird nur aus Audiodateien abgespielt, die du der Resource hinzufügst. Spieler wählen aus deiner Liste; sie können keine Links eingeben, und es wird nie eine Webadresse abgespielt. Füge nur Audio hinzu, das dir gehört oder zu dessen Nutzung und Verbreitung du berechtigt bist.

  • Lege mp3- oder ogg-Dateien in zerodev-sound/web/library/ und trage jede in Config.Library ein als { title = '...', artist = '...', file = 'name.mp3' }. Sie bekommen das volle Erlebnis: 3D-Sound, Räume und Wände, Fahrzeugkabinen, Soundmodi, EQ und Kegel, die sich mit dem echten Bass bewegen.
  • Config.Sources.library = false schaltet die Bibliothek aus.
  • Das GTA-eigene Autoradio funktioniert in jedem Fahrzeug weiter, solange darin kein Song aus dieser Resource läuft.
  • Das Startfenster zeigt, wie viele Songs Spieler auswählen können, und warnt vor jedem übersprungenen Eintrag (ein Dateiname, der keine mp3 oder ogg ist, in web/library/).
  • Update von 3.0.0: gespeicherte Songs, zuletzt gespielte Songs und Playlist-Einträge, die Links waren, werden nicht mehr angezeigt oder abgespielt. Songs aus der Bibliothek funktionieren weiter.

9. Pulse Phone

Nichts einzurichten. Wenn Pulse Phone auf dem Server läuft (Resource-Name phone, beide Editionen):

  • Jedes Handy bekommt eine Sound-App auf seinem Home Screen. Sie ist dieselbe Fernbedienung wie /sound: mit einem Lautsprecher oder dem Auto verbinden, Musik auswählen, die ganze Gruppe steuern. Spieler können sie entfernen und aus dem App Hub zurückholen.
  • Was auf dem verbundenen Lautsprecher oder im Auto läuft, mit der verbleibenden Zeit, erscheint auf der Island und dem Sperrbildschirm. Ein Tippen öffnet die Sound-App.
  • Pulse Drive (der Autobildschirm von Pulse, standardmäßig F10) zeigt das Radio des Autos, in dem du sitzt: Song, Künstler und Cover, mit Abspielen, Pause, Zurück, Weiter und Lautstärke sowie einem Button zum Öffnen der Sound-App. Das braucht Pulse Phone 1.2.9 oder neuer; ältere Versionen zeigen es einfach nicht.

Spieler ohne Handy nutzen /sound und K, die alles können, was die App kann.

Wenn du den Ordner des Handys umbenannt hast, füg diese Zeile mit seinem Namen in config/config.lua ein:

Lua
Config.PulseResource = 'phone'

10. Polizei, Nachbarn und Admins

Was Wie Einstellung
Laute Musik melden /noise schickt den nächsten spielenden Lautsprecher (im Umkreis von 60 m) als blinkenden Blip für 3 Minuten an die Polizei im Dienst. Eine Meldung pro Spieler alle 2 Minuten. Config.Police.complaints, complaintRange
Einen Lautsprecher ausschalten Polizei im Dienst: Ziel auf den Lautsprecher > Turn off (police) oder im Tab Tune der Fernbedienung > Police. Im Umkreis von 12 m. Config.Police.canSilence, silenceMinutes (15)
Einen Lautsprecher beschlagnahmen Polizei im Dienst, im Umkreis von 4 m: Ziel > Seize (police) oder Tune > Police > Seize. Der Lautsprecher geht an den Beamten. Config.Police.canSeize
Polizei-Jobs Spieler mit diesen Jobs, im Dienst Config.Police.jobs
Kaputte Lautsprecher Schießt man auf einen platzierten Lautsprecher, geht er kaputt: Er knistert und verstummt. Ein Speaker Repair Kit (im Laden unter Zubehör erhältlich) repariert ihn: Benutz das Kit daneben. Config.Damage
Admin-Liste /soundadmin: jeder Lautsprecher auf dem Server, was er spielt und wem er gehört, mit Buttons, um einen Wegpunkt zu setzen, die Musik zu stoppen oder den Lautsprecher zu entfernen. Config.AdminAce (zerodev.sound.admin)
Ein Item geben Serverkonsole: givespeaker <player id> <item name>

11. Sprachen

Das Script gibt es in denselben 25 Sprachen wie Pulse Phone. Leg eine in config/config.lua fest:

Code Sprache Code Sprache Code Sprache
en Englisch 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' zum Beispiel. Der Standard, 'auto', folgt Pulse Phone: Der Server übernimmt Pulses Config.Locale, und jeder Spieler bekommt Sound in der Sprache, die er auf seinem Handy gewählt hat. Ohne Pulse ist es Englisch. Spielmeldungen, Tastenabfragen, Item-Namen und der Name der Stereo-Taste stehen in locales/<code>.lua; die Oberfläche (Fernbedienung, Autoradio, Laden, Installer, Pulse-App) steht in locales/<code>_ui.lua. Was fehlt, fällt auf Englisch zurück.

Um eine Zeile zu ändern, bearbeite sie in der Datei dieser Sprache. Lass jedes %s, %d, %.1f, %% und ~a~ so, wie es ist. Um eine eigene Sprache hinzuzufügen, kopier locales/en.lua nach locales/xx.lua, ändere Locales['en'] in Locales['xx'] (an beiden Stellen), übersetz den Text zwischen den Anführungszeichen und setz Config.Locale = 'xx'. locales/ui_strings.txt listet jeden Oberflächen-Schlüssel für eine xx_ui.lua.

12. Fehlerbehebung

Spieler können die Lautsprecher-Items nicht benutzen

  • ox_inventory: Die Einträge müssen in ox_inventory/data/items.lua stehen, mit ihrer client-Zeile, und ox_inventory muss nach dem Einfügen neu gestartet werden. Der Ordner muss weiterhin zerodev-sound heißen (die Einträge rufen zerodev-sound.useItem auf).
  • QBCore / ESX: zerodev-sound muss in der server.cfg nach deinem Framework starten.
  • codem-inventory auf QBCore: Schließ den eigenen Schritt von codem-inventory ab, der QBCore.Functions.UseItem darauf umleitet.
  • Kein Inventar: Lautsprecher sind keine Items. Spieler öffnen /sound und drücken Set up unter Your speakers.

Item-Bilder fehlen

  • ox_inventory: nichts zu kopieren; der Bildpfad zeigt auf zerodev-sound. Wenn sie leer sind, prüf die Zeile image = 'nui://zerodev-sound/...' des Eintrags und den Ordnernamen.
  • Andere Inventare: Lies die Konsolenzeile Copy ... into ...: Sie listet die fehlenden Bilder und den Ordner, in den sie gehören. Kopier sie aus zerodev-sound/web/img/items/ und starte das Inventar neu.

Das ist Absicht: Spieler wählen nur aus deiner Bibliothek. Füge den Song zu Config.Library hinzu (Abschnitt 8).

Überhaupt kein Ton

  • Der eingebaute Browser von FiveM startet Ton ohne Klick, Spieler müssen also nie etwas drücken, um Audio zu "erlauben". Wenn ein Spieler nichts hört, während andere etwas hören, prüf FiveM in seinem Windows-Lautstärkemixer.
  • Prüf den Lautsprecher im Tab Speakers der Fernbedienung: Er ist vielleicht ausgeschaltet oder Broken.
  • Die Polizei hat ihn vielleicht ausgeschaltet (für Config.Police.silenceMinutes), oder Ruhezeiten begrenzen die Lautstärke (Config.QuietHours).
  • Ein Spieler hört höchstens Config.Streaming.maxAudibleSessions verschiedene Songs gleichzeitig (6), die nächsten zuerst.
  • Test system im Installer bleibt stumm, wenn Config.Library leer ist oder Config.Sources.library = false: Es spielt den ersten Song der Bibliothek.

Der Laden ist nicht da

  • Config.Shop.enabled muss true sein.
  • Der Verkäufer und der Stand erscheinen nur, wenn ein Spieler im Umkreis von etwa 70 m um Config.Shop.locations ist, und nur auf dem Bildschirm dieses Spielers. Prüf die Koordinaten, die du gesetzt hast.
  • Mit ox_target oder qb-target ziel auf den Verkäufer. Ohne eins stell dich zum Verkäufer: E Lautsprecher ansehen.

Ein Lautsprecher erscheint als einfacher GTA-Lautsprecher oder gar nicht

Der Ordner stream/ fehlt oder wurde umbenannt, oder der Spieler ist beigetreten, bevor die Resource gestartet war. Starte den Server neu und verbinde dich erneut.

Car-Audio-Meldungen und was sie bedeuten

Meldung Warum Lösung
Drive into a car audio bay to build. Bauen überall ist aus, und das Auto steht nicht in einer Halle. Fahr in die Halle (Config.Install.bays) oder setz Config.Install.anywhere = true.
Stand next to your car to build its sound system. Bauen überall ist an, und du bist mehr als 8 m vom Auto entfernt, oder /caraudio hat im Umkreis von 4 m kein Auto gefunden. Stell dich ans Auto oder setz dich hinein.
Stop the car first. Das Auto fährt. Anhalten.
Car audio can only be fitted to a car you own. Config.Install.vehicles = 'owned', und dieses Kennzeichen steht nicht in deiner Owned-Vehicles-Tabelle. Wird auch allen außer Admins angezeigt, wenn diese Tabelle nicht gelesen werden kann: Die Konsole zeigt dann eine rote Zeile could not read the owned-vehicles table. Nutze ein eigenes Auto, setz 'any' oder behebe den Datenbankfehler, den die Konsole nennt.
Only the owner can change this car's audio. Das Auto gehört einem anderen Spieler. Wird auch angezeigt, wenn Config.Install.anyone = false ist und der Spieler keinen Job im Dienst aus Config.Install.jobs hat. Der Besitzer baut es aus, oder ein Mechaniker im Dienst, oder ein Admin.
Not enough money. Die neuen Teile kosten mehr, als der Spieler auf Config.Install.account hat. Entferne Teile oder setz Config.Install.chargeParts = false.
A subwoofer blew. It needs replacing. Subs wurden zu lange zu hart bei fast voller Lautstärke betrieben. Ersetz den Sub in der Halle; ein größerer Verstärker hilft.

Die Polizei sieht ihre Optionen nicht

Füg deine Polizei-Job-Namen zu Config.Police.jobs hinzu. Spieler müssen im Dienst sein.

13. Updaten

Von 1.x auf 2.0: Lies UPGRADING.md. Zwischen 2.x-Versionen:

  1. Sichere deinen Ordner config/, locales/, falls du ihn übersetzt hast, und alle Songs, die du zu web/library/ hinzugefügt hast.
  2. Stopp den Server. Ersetz den Ordner zerodev-sound durch den neuen (behalte den Namen).
  3. Leg deine config/-Dateien zurück. Wenn die Update-Hinweise neue Einstellungen nennen, kopier diese Zeilen aus den neuen Dateien in deine.
  4. Starte den Server und lies die Konsole. Neue Items, falls es welche gibt, werden für dein Inventar ausgegeben.

Platzierte Lautsprecher, Auto-Einbauten und Playlists liegen in der Datenbank (zds_speakers, zds_car_builds, zds_playlists, zds_stash) und werden von einem Update nicht angefasst.

Zurück zur alten Version: Behalte den vorherigen zerodev-sound-Ordner außerhalb von resources, bis die neue Version gut läuft, und mach vor dem Update ein Backup der Datenbank. Um zurückzugehen, stopp den Server, leg den vorherigen Ordner und dein config/ zurück und starte ihn. Der Wechsel von 3.0 zurück auf 2.x mit derselben Datenbank wurde nicht getestet, spiel also das Datenbank-Backup ein, falls etwas nicht stimmt.

Aus dem Englischen übersetzt. Wenn etwas hier von der englischen Seite abweicht, gilt die englische Seite. English