Jobs VIP

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 customCheck
CustomCheckFailMsg = "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.

Dernière mise à jour