Willkommen bei dieser ausführlichen Anleitung zur Erstellung eines benutzerdefinierten Auftrags in QBCore, dem für FiveM-Rollenspielserver weit verbreiteten Framework. Diese Anleitung führt dich durch den Prozess des Hinzufügens eines neuen Jobs über shared.lua
, die Festlegung von Löhnen und die Konfiguration von arbeitsplatzspezifischen Berechtigungen und Aufgaben.
Einführung
Das Erstellen von benutzerdefinierten Jobs verbessert das Rollenspielerlebnis, indem es den Spielern einzigartige Rollen und Verantwortlichkeiten gibt. Egal, ob Sie einen neuen Dienst, eine Strafverfolgungsabteilung oder einen anderen Beruf einführen, dieser Leitfaden wird Ihnen helfen, ihn nahtlos in Ihren QBCore-Server zu integrieren.
Verstehen von Jobs in QBCore
In QBCore werden Aufträge in einer gemeinsamen Konfigurationsdatei definiert, auf die sowohl der Server als auch der Client Zugriff haben. Jeder Auftrag hat Attribute wie Name, Bezeichnung, Standarddienststatus, Dienstgrade und mehr. Das Verständnis dieser Attribute ist für die Erstellung funktionaler und ausgewogener Aufträge unerlässlich.
Erstellen eines neuen Jobs in shared.lua
Auffinden der shared.lua
Datei
Die shared.lua
Datei enthält die Definitionen für alle Aufträge. Sie finden sie im folgenden Verzeichnis:
[qb] > qb-core > shared > jobs.lua
Anmerkung: In einigen Konfigurationen kann die Datei den Namen
shared.lua
innerhalb derqb-core
Ordner.
Struktur der Arbeitsplatzdefinition
Ein Job in QBCore wird über eine Lua-Tabelle mit bestimmten Schlüsseln definiert. Hier ist die allgemeine Struktur:
["jobname"] = {
label = "Auftragsbezeichnung",
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = {
name = "Auszubildender",
Zahlung = 50
},
[1] = {
name = "Mitarbeiter",
Zahlung = 100
},
-- Zusätzliche Noten...
}
},
- Jobname: In Skripten verwendeter Identifikator (Kleinbuchstaben ohne Leerzeichen verwenden).
- Etikett: Anzeigename des Auftrags.
- defaultDuty:
wahr
wenn der Spieler standardmäßig im Dienst ist. - außerdienstliche Vergütung:
wahr
wenn der Spieler eine Vergütung erhält, wenn er nicht im Dienst ist. - Noten: Tabelle mit den verschiedenen Dienstgraden innerhalb der Stelle.
Hinzufügen Ihres benutzerdefinierten Auftrags
1. Öffnen Sie jobs.lua
oder shared.lua
Verwenden Sie einen Texteditor wie Visual Studio Code oder Notepad++, um die Datei zu öffnen.
2. Fügen Sie Ihre Jobdefinition hinzu
Fügen Sie Ihre Auftragsdefinition innerhalb der vorhandenen Aufträge ein. Beispiel: Sie möchten einen Auftrag "Auslieferungsfahrer" erstellen:
["Lieferung"] = {
label = "Lieferfahrer",
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = {
name = "Auszubildender",
Zahlung = 50
},
[1] = {
name = "Fahrer",
Zahlung = 100
},
[2] = {
name = "Senior Driver",
Zahlung = 150
},
[3] = {
name = "Manager",
Zahlung = 200,
isBoss = true
}
}
},
- Jobname:
"Lieferung"
(wird in Skripten und in der Datenbank verwendet). - Etikett:
"Auslieferungsfahrer"
(wird den Spielern angezeigt). - defaultDuty: Einstellen auf
falsch
also müssen die Spieler die Zeit einhalten. - außerdienstliche Vergütung: Einstellen auf
falsch
Inaktivierung des Gehalts in der Freizeit. - Noten: Definieren Sie Ränge von 0 aufwärts.
3. Speichern Sie die Datei
Nachdem Sie Ihren Auftrag hinzugefügt haben, speichern Sie die jobs.lua
oder shared.lua
Datei.
Festsetzung des Lohns
Die Löhne werden im Rahmen der Noten
Tabelle für jeden Rang. Die Zahlung
Wert bestimmt, wie viel ein Spieler pro Gehaltszyklus verdient, wenn er im Dienst ist.
Beispiel
grades = {
[0] = {
name = "Auszubildender",
Zahlung = 50
},
[1] = {
name = "Fahrer",
Zahlung = 100
},
-- Zusätzliche Noten...
}
- Zahlung: Der Betrag, der an Spieler dieser Klasse gezahlt wird.
Anpassung der Gehaltszyklen
Die Lohnzyklen werden in der Regel von der qb-paycheck
oder eine ähnliche Ressource. Stellen Sie sicher, dass die Ressource korrekt konfiguriert ist, um Zahlungsintervalle zu verarbeiten.
Konfigurieren von Auftragsberechtigungen und Aufgaben
Ränge und Berechtigungen
Jede Jobstufe kann mit bestimmten Berechtigungen versehen werden. Die isBoss
Parameter für die Verwaltung von Zuschüssen wie Einstellung und Beförderung.
Beispiel
[3] = {
name = "Manager",
Zahlung = 200,
isBoss = true
}
- isBoss: Einstellen auf
wahr
für den höchsten Rang, um die unteren Ränge zu verwalten.
Hinzufügen berufsspezifischer Funktionen
Um spezifische Funktionen für Ihren neuen Job hinzuzufügen (z. B. Zugang zu Fahrzeugen, Uniformen oder Werkzeugen), müssen Sie zusätzliche Skripte konfigurieren.
1. Erstellen Sie ein Job-Skript
Erstellen Sie in Ihrem Ressourcenordner ein neues Skript für Ihren Auftrag:
[Jobs] > qb-delivery
2. Definieren Sie Job-Aktionen
In Ihrem Auftragsskript können Sie Aktionen wie das Starten eines Lieferauftrags, den Zugriff auf ein Fahrzeug usw. definieren.
-- Beispiel: delivery_job.lua
RegisterNetEvent('qb-delivery:startJob')
AddEventHandler('qb-delivery:startJob', function()
local src = Quelle
local Player = QBCore.Functions.GetPlayer(src)
if Player.PlayerData.job.name == 'Lieferung' und Player.PlayerData.job.onduty then
-- Beginn des Zustellungsauftrags
sonst
TriggerClientEvent('QBCore:Notify', src, 'Sie sind kein Lieferfahrer oder nicht im Dienst', 'Fehler')
Ende
Ende)
3. Interaktionspunkte hinzufügen
Nutzen Sie Ressourcen wie qb-ziel
um Interaktionspunkte für Ihren Arbeitsplatz zu schaffen, wie z. B. eine Stempeluhr-Station oder eine Fahrzeuggarage.
4. Zuweisung von Uniformen und Fahrzeugen
Konfigurieren Sie Arbeitsuniformen und Fahrzeuge in qb-kleidung
und qb-garagen
.
Ihren neuen Job testen
1. Starten Sie den Server
Stellen Sie sicher, dass Ihr Server fehlerfrei läuft.
2. Fügen Sie den Auftrag zur Datenbank hinzu
Sie müssen die Aufgabe einem Spieler zuweisen, um sie zu testen.
- Verwenden von In-Game-Befehlen:bashCode kopieren
/setjob [playerID] Lieferung 0
- Direkte Datenbankeingabe:Aktualisieren Sie gegebenenfalls den Job des Spielers in der Datenbank.
3. Prüfen der Auftragsfunktionalität
- Auftragszuweisung prüfen:
- Öffnen Sie Ihr Player-Menü, um sicherzustellen, dass der Auftrag korrekt zugewiesen ist.
- Prüfung des Status "Dienstbereit:
- Uhr einschalten, wenn
defaultDuty
istfalsch
.
- Uhr einschalten, wenn
- Lohnzahlungen prüfen:
- Warten Sie einen Lohnzyklus ab, um die Lohnzahlungen zu bestätigen.
- Job-spezifische Aktionen testen:
- Versuchen Sie, auf Jobfahrzeuge zuzugreifen oder Missionen zu starten.
Allgemeine Probleme und Fehlerbehebung
Nicht erscheinender oder zuweisbarer Job
- Job Name prüfenStellen Sie sicher, dass der Jobname in
jobs.lua
bei der Zuweisung genau übereinstimmt. - Datenbank-SynchronisationWenn Sie die Datenbank manuell bearbeiten, stellen Sie sicher, dass Sie den Server oder die Ressource neu starten.
Nicht gezahlte Löhne
- Status des DiensthabendenBestätigen Sie, dass der Spieler im Dienst ist, wenn
außerdienstliche Vergütung
istfalsch
. - Gehaltsscheck Ressource:Vergewissern Sie sich, dass das Paycheck-Skript läuft und korrekt konfiguriert ist.
Berechtigungen funktionieren nicht
- isBoss ParameterÜberprüfen Sie, dass
isBoss
für die richtige Klasse eingestellt ist. - Ressourcenkonflikte:Prüfen Sie auf Konflikte mit anderen Skripten, die Berechtigungen verwalten.
Fehler beim Serverstart
- Syntax-FehlerÜberprüfen Sie auf fehlende Kommas, Klammern oder falsche Syntax in
jobs.lua
. - Abhängigkeiten von Ressourcen:Stellen Sie sicher, dass alle erforderlichen Ressourcen in der richtigen Reihenfolge gestartet werden.
Schlussfolgerung
Das Erstellen von benutzerdefinierten Jobs in QBCore ermöglicht es Ihnen, die Rollenspielmöglichkeiten Ihres Servers erheblich zu erweitern. Wenn Sie diese Anleitung befolgen, sollten Sie nun in der Lage sein, neue Jobs hinzuzufügen, Löhne festzulegen, Berechtigungen zu konfigurieren und allgemeine Probleme zu beheben. Ihre Spieler werden die neuen Rollen und die Tiefe, die sie dem Spielerlebnis verleihen, zu schätzen wissen.