Ajouter et configurer un job pour un groupe d'utilisateur spécifique.
Créer le groupe d'utilisateur (VIP)
Pour utiliser cela, vous devez tout d'abord avoir quelques joueurs connectés sur le serveur pour pouvoir tester les commandes et créer par la suite le groupe d'utilisateur (donateur, vip ou ce que vous voulez). Pour créer un groupe d'utilisateur sur ulx, la commande est "ulx adduser nom donateur" (avec le nom de la personne et votre groupe d'utilisateur au lieu de donateur). Vous pouvez aussi écrire "ulx adduserid steamid donateur".
Assurez vous que vous êtes utilisateur (FAdmin setroot votrenom dans la console rcon/serveur)
Avoir le donateur sur le serveur
Après avoir appuyé sur TAB, cliquer sur le nom du joueur et sur "Set access" (premier bouton)
Cliquer de nouveau
Suivre les instructions à l'écran et appelez votre groupe d'utilisateur "donateur" ou "vip" ou ce que vous voulez. Assurez vous cependant de retenir le nom du groupe.
Quand vous créez votre job, utilisez ceci:
TEAM_DONATORJOB = DarkRP.createJob("Cuisinier", { -- Nom color =Color(238, 99, 99, 255), -- Couleur de la team model ="models/player/mossman.mdl", -- Modèle du joueur description =[[En cuisinier, c'est votre responsabilite de nourrir les personnes de la ville. Vous pouvez acheter un micro onde et vendre votre nourriture: /Buymicrowave]], -- Description du job
weapons = {}, -- Armes additionnelles command = "Cuisinier", -- Commande pour devenir ce job max = 2, -- Nombre de joueurs pouvant avoir le job au maximum salary = 45, -- Salaire admin = 0, -- Faut-il être admin? 2 pour super-admin uniquement, 1 pour admin (et super-admin), 0 pour joueur standard.
vote = false, -- Faut-il un vote? true pour oui, false pour non. hasLicense = false, -- A une licence customCheck = function(ply) return ply:GetNWString("usergroup") == "donateur" end -- La fonction customCheck. Mettez nil ou ne rien mettre pour ne pas en avoir.
})
à la dernière partie (customCheck), changez "donateur" en "vip", en "special" ou votre groupe. Si c'est "donateur", vous pouvez laisser comme cela. Vérifiez qu'il y'a bien les guillemets (" ").
Redémarrer le serveur
Demandez au donateur de se mettre dans le job correspondant pour vérifier s'il peut y accéder.
Notes
Si le customCheck dit "Only donators can get the job", alors les administrateurs et super-administrateurs ne pourront pas obtenir le métier car ils ne sont pas "donateur", il faut dans ce cas utiliser ce code pour qu'ils puissent obtenir le métier:
TEAM_DONATORJOB = DarkRP.createJob("Cuisinier", { -- Nom color =Color(238, 99, 99, 255), -- Couleur de la team model ="models/player/mossman.mdl", -- Modèle du joueur description =[[En cuisinier, c'est votre responsabilite de nourrir les personnes de la ville. Vous pouvez acheter un micro onde et vendre votre nourriture: /Buymicrowave]], -- Description du job
weapons = {}, -- Armes additionnelles command = "Cuisinier", -- Commande pour devenir ce job max = 2, -- Nombre de joueurs pouvant avoir le job au maximum salary = 45, -- Salaire admin = 0, -- Faut-il être admin? 2 pour super-admin uniquement, 1 pour admin (et super-admin), 0 pour joueur standard.
vote = false, -- Faut-il un vote? true pour oui, false pour non. hasLicense = false, -- A une licence customCheck = function(ply) return ply:GetNWString("usergroup") == "donateur" or ply:IsAdmin() end, -- La fonction customCheck. Mettez nil ou ne rien mettre pour ne pas en avoir.
CustomCheckFailMsg = "Ce métier est VIP uniquement!" -- Message qui s'affiche lorsque l'utilisateur essaie d'obtenir le job sans avoir le groupe d'utilisateur requis.
})
ULX
Si vous souhaitez utiliser ULX au lieu de FAdmin, remplacez:
ply:GetNWString("usergroup") =="donateur"
Par:
ply:GetUserGroup() =="donateur"
Ou si vous souhaitez autoriser les groupes inhérités, (ex: admin/superadmin), remplacer par:
ply:CheckGroup("donateur")
Si vous utilisez ces fonctions, cela ne marchera pas si ULX n'est pas installé.
customCheck sur plusieurs groupes
Voici un exemple de fonction customCheck. Cela fonctionne pour les shipments et les jobs et tout ce qui peut utiliser des fonctions customCheck.
Donateurs et admins peuvent avoir le job
function(ply) return ply:GetNWString("usergroup") =="donateur" or ply:IsAdmin() end
Superadmin uniquement
function(ply) return ply:IsSuperAdmin() end
Plusieurs groupes
Exemple 1:
function(ply) return ply:GetNWString("usergroup") =="donateur" or ply:GetNWString("usergroup") =="vip" end
On peut ensuite rajouter d'autres groupes.
Exemple 2:
function(ply) return table.HasValue({"donateur", "vip", "admin", "superadmin", "mingebag"}, ply:GetNWString("usergroup")) end
Exemple 3:
customCheck=function(ply) return ply:IsUserGroup("donateur") or ply:IsAdmin() end
--C'est pour les donateurs FAdmin uniquement, et autorise un admin également.--
Faire en sorte que les clients voient les entités même si ils ne peuvent pas l'acheter
C'est un paramètre par défaut depuis DarkRP 2.5.0. Pour désactiver ceci, mettez GM.Config.hideNonBuyable à true dans settings.lua.
Messages si on ne passe pas le customCheck
Quand le customCheck dit à un joueur qu'il ne peut pas acheter / avoir quelque chose, Vous pouvez changer le message envoyé au joueur lors de l'échec. Voici comment faire:
customCheck=function(ply) return ply:IsUserGroup("donateur") end, -- Fonction customCheckCustomCheckFailMsg ="Vous devez etre un donateur pour devenir un clochard." -- Le message envoyé au client
Ceci marche avec les shipments, jobs, munitions, vehicules et jobs personnalisés.
Exemple entier:
TEAM_HOBO = DarkRP.createJob("Clochard", { color =Color(80, 45, 0, 255), model ="models/player/corpse1.mdl", description =[[Le membre le plus faible de la societe. Tous les joueurs vous voient mal. Vous n'avez pas de maison. Mendiez pour la nourriture et l'argent. Chantez pour avoir de l'argent. Faites votre maison dans les bois.]], weapons = {"weapon_bugbait"}, command ="clochard", max =5, salary =0, admin =0, vote =false, hasLicense =false,customCheck=function(ply) return ply:IsUserGroup("donateur") end, CustomCheckFailMsg ="Vous devez etre un donateur pour devenir un clochard."})
Vous voulez peut être faire en sorte que le message d'échec soit dynamique (afficher un message lorsque le joueur n'est pas donateur ou un autre lorsque le joueur a trop d'argent).
customCheck = function(ply) return ply:IsUserGroup("donateur") and ply:getDarkRPVar("money") < 1000 end, -- La fonction customCheck
CustomCheckFailMsg = function(ply) return ply:getDarkRPVar("money") >= 1000 and "Vous etes trop riche!" or not ply:IsUserGroup("donateur") and "Vous devez etre un donateur pour devenir clochard." end, -- The message it sends to the client
Ne pas utiliser d'accents (é,è,ê) dans la ligne de la commande (cmd) afin de ne pas faire planter votre métier. Vous devez également ne pas rajouter d'accents que ce soit dans le nom du job ou dans la description sauf si votre fichier est encodé en UTF8.