Bienvenue dans ce tutoriel détaillé sur la création d'un travail personnalisé dans QBCorele cadre largement utilisé pour les serveurs FiveM roleplay. Ce guide vous guidera à travers le processus d'ajout d'un nouveau job via shared.lua
L'utilisateur doit être en mesure d'identifier et d'évaluer l'efficacité de son travail, de fixer les salaires et de configurer les permissions et les tâches spécifiques à son poste de travail.
Introduction
La création d'emplois personnalisés améliore l'expérience du jeu de rôle en offrant aux joueurs des rôles et des responsabilités uniques. Que vous introduisiez un nouveau service, une division d'application de la loi ou toute autre profession, ce guide vous aidera à l'intégrer de manière transparente dans votre serveur QBCore.
Comprendre les emplois dans QBCore
Dans QBCore, les tâches sont définies dans un fichier de configuration partagé, accessible à la fois par le serveur et le client. Chaque tâche possède des attributs tels que le nom, l'étiquette, l'état de service par défaut, les grades (rangs), etc. Il est essentiel de comprendre ces attributs pour créer des tâches fonctionnelles et équilibrées.
Création d'un nouvel emploi dans shared.lua
Localisation de la shared.lua
Fichier
Les shared.lua
contient les définitions de tous les travaux. Il se trouve dans le répertoire suivant :
[qb] > qb-core > shared > jobs.lua
Remarque : Dans certaines configurations, le fichier peut être nommé
shared.lua
au sein de laqb-core
dossier.
Structure de définition des emplois
Un travail dans QBCore est défini en utilisant une table Lua avec des clés spécifiques. Voici la structure générale :
["jobname"] = {
label = "Job Label",
defaultDuty = false,
rémunération en dehors des heures de travail = faux,
grades = {
[0] = {
nom = "stagiaire",
paiement = 50
},
[1] = {
nom = "Employé",
paiement = 100
},
-- Notes supplémentaires...
}
},
- nom du poste: Identifiant utilisé dans les scripts (utiliser des minuscules sans espaces).
- étiquette: Nom d'affichage du travail.
- service par défaut:
vrai
si le joueur est en service par défaut. - rémunération en dehors des heures de travail:
vrai
si le joueur reçoit un paiement lorsqu'il n'est pas en service. - grades: Tableau définissant les différents grades au sein de l'emploi.
Ajout d'un emploi personnalisé
1. Ouvrir jobs.lua
ou shared.lua
Utilisez un éditeur de texte comme Visual Studio Code ou Notepad++ pour ouvrir le fichier.
2. Ajoutez votre définition de poste
Insérez votre définition d'emploi dans les emplois existants. Par exemple, pour créer un emploi "Chauffeur-livreur" :
["livraison"] = {
label = "Chauffeur-livreur",
defaultDuty = false,
rémunération en dehors des heures de travail = faux,
grades = {
[0] = {
nom = "stagiaire",
paiement = 50
},
[1] = {
nom = "Chauffeur",
paiement = 100
},
[2] = {
nom = "Chauffeur principal",
paiement = 150
},
[3] = {
nom = "Gestionnaire",
paiement = 200,
isBoss = true
}
}
},
- nom du poste:
"livraison"
(utilisé dans les scripts et la base de données). - étiquette:
"Chauffeur-livreur"
(affiché aux joueurs). - service par défaut: Régler sur
faux
Les joueurs doivent donc pointer. - rémunération en dehors des heures de travail: Régler sur
faux
de désactiver la rémunération lorsqu'il n'est pas en service. - grades: Définir les rangs à partir de 0.
3. Enregistrer le fichier
Après avoir ajouté votre travail, enregistrez le fichier jobs.lua
ou shared.lua
fichier.
Fixation du salaire
Les salaires sont fixés dans le cadre de la grades
pour chaque rang. Le tableau paiement
détermine le montant qu'un joueur gagne par cycle de rémunération lorsqu'il est en service.
Exemple
grades = {
[0] = {
nom = "stagiaire",
paiement = 50
},
[1] = {
nom = "Chauffeur",
paiement = 100
},
-- Notes supplémentaires...
}
- paiement: Le montant payé aux joueurs de ce grade.
Adaptation des cycles de rémunération
Les cycles de rémunération sont généralement gérés par le qb-paycheck
ou une ressource similaire. Assurez-vous que la ressource est correctement configurée pour gérer les intervalles de paiement.
Configuration des autorisations et des tâches des emplois
Rangs et permissions
Chaque grade de travail peut avoir des permissions spécifiques. Les estBoss
les capacités de gestion des subventions des paramètres, telles que l'embauche et la promotion.
Exemple
[3] = {
nom = "Gestionnaire",
paiement = 200,
isBoss = true
}
- estBoss: Régler sur
vrai
pour le grade le plus élevé de gérer les grades inférieurs.
Ajout de fonctions spécifiques à l'emploi
Pour ajouter des fonctionnalités spécifiques à votre nouvel emploi (par exemple, l'accès aux véhicules, aux uniformes ou aux outils), vous devrez configurer des scripts supplémentaires.
1. Créer un script de travail
Dans votre dossier de ressources, créez un nouveau script pour votre travail :
[jobs] > qb-delivery
2. Définir les actions professionnelles
Dans votre script de travail, vous pouvez définir des actions telles que le lancement d'une mission de livraison, l'accès à un véhicule, etc.
-- Exemple : delivery_job.lua
RegisterNetEvent('qb-delivery:startJob')
AddEventHandler('qb-delivery:startJob', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.PlayerData.job.name == 'delivery' and Player.PlayerData.job.onduty then
-- Démarrer la mission de livraison
autre
TriggerClientEvent('QBCore:Notify', src, 'You are not a delivery driver or not on duty', 'error')
fin
fin)
3. Ajouter des points d'interaction
Utilisez des ressources telles que qb-target
pour créer des points d'interaction pour votre travail, tels qu'un poste d'enregistrement ou un garage de véhicules.
4. Attribution des uniformes et des véhicules
Configurer les uniformes et les véhicules de travail dans qb-vêtements
et qb-garages
respectivement.
Testez votre nouvel emploi
1. Démarrer le serveur
Assurez-vous que votre serveur fonctionne sans erreur.
2. Ajouter le travail à la base de données
Vous devrez assigner la tâche à un joueur pour la tester.
- Utilisation des commandes dans le jeu:bashCode kopieren
/setjob [playerID] livraison 0
- Entrée directe dans la base de données:Mettre à jour l'emploi du joueur dans la base de données si nécessaire.
3. Vérifier la fonctionnalité de l'emploi
- Vérifier l'affectation des tâches:
- Ouvrez le menu de votre lecteur pour vous assurer que la tâche est correctement attribuée.
- Test de l'état de service:
- Horloge si
service par défaut
estfaux
.
- Horloge si
- Vérifier les paiements de salaires:
- Attendre un cycle de paie pour confirmer le paiement des salaires.
- Tester les actions spécifiques à l'emploi:
- Tenter d'accéder aux véhicules de travail ou de commencer des missions.
Problèmes courants et dépannage
Emploi non apparaissant ou non assignable
- Vérifier le nom de l'emploi:Assurez-vous que le nom de l'emploi dans
jobs.lua
correspond exactement lors de l'attribution. - Synchronisation de la base de données:Si vous modifiez manuellement la base de données, veillez à redémarrer le serveur ou la ressource.
Salaires non payés
- Statut de serviceConfirmer que le joueur est en service si
rémunération en dehors des heures de travail
estfaux
. - Ressource sur les chèques de paie:Assurez-vous que le script de paiement est en cours d'exécution et qu'il est correctement configuré.
Les autorisations ne fonctionnent pas
- Paramètre isBoss:Vérifier que
estBoss
est réglé sur la bonne note. - Conflits de ressources:Vérifier s'il y a des conflits avec d'autres scripts qui gèrent les autorisations.
Erreurs au démarrage du serveur
- Erreurs de syntaxe:Vérifier s'il manque des virgules, des parenthèses ou si la syntaxe est incorrecte dans la rubrique
jobs.lua
. - Dépendances des ressourcesVeiller à ce que toutes les ressources nécessaires soient lancées dans le bon ordre.
Conclusion
La création de jobs personnalisés dans QBCore vous permet d'élargir considérablement les possibilités de roleplay de votre serveur. En suivant ce guide, vous devriez maintenant être en mesure d'ajouter de nouveaux emplois, de fixer des salaires, de configurer les permissions et de résoudre les problèmes courants. Vos joueurs apprécieront les nouveaux rôles et la profondeur qu'ils ajoutent à l'expérience de jeu.