ZeroDev Sound Doku
ZeroDev Sound: Installationsanleitung
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:
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-soundSchritt 3. Gib deinen Admins die Admin-Berechtigung (kein Lautsprecher-Limit, die Liste /soundadmin, Stoppen und Entfernen aus der Ferne):
add_ace group.admin zerodev.sound.admin allowSchritt 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:
['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:
['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.FrameworkoderConfig.Inventoryinconfig/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)
- Die Karte zeigt einen Blip ZeroDev Sound am Legion Square und einen Blip Car audio bay bei Benny's.
- 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.
- 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.
- Steig in ein Auto. Die ersten paar Male zeigt die Bildschirmecke, welche Taste das Autoradio öffnet (standardmäßig K).
- 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
- Fahr in die Car-Audio-Einbauhalle (standardmäßig Benny's) und drück als Fahrer E.
- 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.
- 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.
- 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). - 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:
/soundblowim Auto odersoundblow <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_vehiclesbei ESX,player_vehiclesbei 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.jobsoder 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 inConfig.Libraryein 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 = falseschaltet 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:
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.luastehen, mit ihrerclient-Zeile, und ox_inventory muss nach dem Einfügen neu gestartet werden. Der Ordner muss weiterhinzerodev-soundheißen (die Einträge rufenzerodev-sound.useItemauf). - QBCore / ESX:
zerodev-soundmuss in derserver.cfgnach deinem Framework starten. - codem-inventory auf QBCore: Schließ den eigenen Schritt von codem-inventory ab, der
QBCore.Functions.UseItemdarauf umleitet. - Kein Inventar: Lautsprecher sind keine Items. Spieler öffnen
/soundund 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 auszerodev-sound/web/img/items/und starte das Inventar neu.
Ein Spieler kann keinen Link abspielen
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.maxAudibleSessionsverschiedene Songs gleichzeitig (6), die nächsten zuerst. - Test system im Installer bleibt stumm, wenn
Config.Libraryleer ist oderConfig.Sources.library = false: Es spielt den ersten Song der Bibliothek.
Der Laden ist nicht da
Config.Shop.enabledmusstruesein.- Der Verkäufer und der Stand erscheinen nur, wenn ein Spieler im Umkreis von etwa 70 m um
Config.Shop.locationsist, 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:
- Sichere deinen Ordner
config/,locales/, falls du ihn übersetzt hast, und alle Songs, die du zuweb/library/hinzugefügt hast. - Stopp den Server. Ersetz den Ordner
zerodev-sounddurch den neuen (behalte den Namen). - Leg deine
config/-Dateien zurück. Wenn die Update-Hinweise neue Einstellungen nennen, kopier diese Zeilen aus den neuen Dateien in deine. - 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.