Résolu Fonction pour récupérer si un job est vip ou non

  • Initiateur de la discussion SkyWarZzeur
  • Date de début
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Bonjour! alors voilà, je voudrais faire en sorte que dans mon menu f4, les métiers vip et ceux whitelist apparaissent d'une autre couleur Screenshot_3.png, mais je ne connais pas la fonction qui permet de récupérer si un job est vip ou non et si un job est whitelist ou non.
Si quelqu'un ici a la possibilité de me venir en aide je lui serai reconnaissant, merci :)
 
A

AFC - Nox

Nouveau né
Messages
20
Score réaction
3
Points
25
Bonjour, fais la vérification avec un customCheck
 
  • J'aime
Réactions: SkyWarZzeur
FueroxTV59

FueroxTV59

Geek suprême
Messages
213
Score réaction
38
Points
150
customCheck = function(ply) return ply:IsUserGroup("VIP") or ply:IsUserGroup("superadmin") end,
CustomCheckFailMsg = "You need to be a donator to become a SWAT."

Avant de poster une demande d'aide, il faut vérifier qu'il n'y ai pas déjà une même demande déjà résolue.

-> Job vip - Garry's Mod - mTxServ
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
FueroxTV59 à dit:
customCheck = function(ply) return ply:IsUserGroup("VIP") or ply:IsUserGroup("superadmin") end,
CustomCheckFailMsg = "You need to be a donator to become a SWAT."

Avant de poster une demande d'aide, il faut vérifier qu'il n'y ai pas déjà une même demande déjà résolue.

-> Job vip - Garry's Mod - mTxServ
Salut, oui sauf que c'est pas ça que je demandais, je sais déjà mettre un job en vip ou non ^^
merci quand même!
 
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
envois le code de ton bouton fait du f4, pis envois le nom du système de whitelist que tu utilise et pour check s'il est vip sous ulx c'est simple [ ply:IsUserGroup("grade") ]
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
edouard292 à dit:
envois le code de ton bouton fait du f4, pis envois le nom du système de whitelist que tu utilise et pour check s'il est vip sous ulx c'est simple [ ply:IsUserGroup("grade") ]
Coucou, merci de ta réponse,
alors pour ce que tu m'as demandé:
le code du bouton f4:
code bouton f4:
function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 255,255,255 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) end end
Pour le système de whitelist, on l'a pas encore mis sur notre serveur, mais ça sera Billy's Job Whitelist, puis merci pour la fonction je la connais déjà ^^
je cherche par contre une fonction pour savoir si un job est uniquement à partir d'un certain grade et non un joueur ^^
 
Dernière édition:
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Bahh tu vérifie si le nom est x alors tu change la couleur, psq ya pas de fonction ou autre pour.
 
  • J'aime
Réactions: SkyWarZzeur
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
NoaGamingFR à dit:
Bahh tu vérifie si le nom est x alors tu change la couleur, psq ya pas de fonction ou autre pour.
ça marche c'est ça que je voulais savoir ^^
mais ducoup je sais pas trop comment m'y prendre (je débute dans le domaine) par rapport au code du dessus, ça marche si je fais un truc dans ce style:
code job couleur:
-- pour les jobs vip
if v.name = {je mets le nom des jobs ou le nom de la team ? (ex: [vip] Lieutenant de police ou TEAM_LTNDEPOLICE ?} then
ClassList:SetTextColor( Color( ma couleur ) )
end
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
SkyWarZzeur à dit:
ça marche c'est ça que je voulais savoir ^^
mais ducoup je sais pas trop comment m'y prendre (je débute dans le domaine) par rapport au code du dessus, ça marche si je fais un truc dans ce style:
code job couleur:
-- pour les jobs vip
if v.name = {je mets le nom des jobs ou le nom de la team ? (ex: [vip] Lieutenant de police ou TEAM_LTNDEPOLICE ?} then
ClassList:SetTextColor( Color( ma couleur ) )
end
Oui voilà c'est un truc comme ça, pour savoir ce que tu dois mettre si ta la flemme de lire, tu test avec un print(v.name) pour voir si ça correspond à NOMJOB ou TEAM_JOB ^^'

PS: C'est quoi ton menu f4 ? Je peut regarder si tu veut.
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
NoaGamingFR à dit:
Oui voilà c'est un truc comme ça, pour savoir ce que tu dois mettre si ta la flemme de lire, tu test avec un print(v.name) pour voir si ça correspond à NOMJOB ou TEAM_JOB ^^'

PS: C'est quoi ton menu f4 ? Je peut regarder si tu veut.
d'accord merci beaucoup ^^
voilà le script du menu f4: Victorious Menu
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
re, j'apporte quelques nouvelles sur le sujet, bon pour commencer, j'ai trouvé le bon code qui s'occupe de l'affichage des métiers:
code jobs:
 function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 214, 170, 74 ) ) -- couleur quand on passe son curseur sur le métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) -- couleur à l'affichage du métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) end
(je l'ai update dans mon ancien message aussi)
bref, j'ai essayé tant bien que mal de rajouter ce que je souhaite mais j'y arrive pas malheureusement et c'est sur ça que je vais avoir besoin d'aide ^^
voilà ce que j'ai rajouté:
mon code:
if selectedJob = {TEAM_GUN, TEAM_POLICE} then
self:SetTextColor( Color( 0,200,200 ) )
end
Mais cela ne marche pas (erreur lua, en même temps je m'y attendais vu que je suis une quiche en dev), ducoup si une personne qui s'y connait peut me filer un coup de main, merci ;)
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
SkyWarZzeur à dit:
re, j'apporte quelques nouvelles sur le sujet, bon pour commencer, j'ai trouvé le bon code qui s'occupe de l'affichage des métiers:
code jobs:
 function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 214, 170, 74 ) ) -- couleur quand on passe son curseur sur le métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) -- couleur à l'affichage du métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) end
(je l'ai update dans mon ancien message aussi)
bref, j'ai essayé tant bien que mal de rajouter ce que je souhaite mais j'y arrive pas malheureusement et c'est sur ça que je vais avoir besoin d'aide ^^
voilà ce que j'ai rajouté:
mon code:
if selectedJob = {TEAM_GUN, TEAM_POLICE} then
self:SetTextColor( Color( 0,200,200 ) )
end
Mais cela ne marche pas (erreur lua, en même temps je m'y attendais vu que je suis une quiche en dev), ducoup si une personne qui s'y connait peut me filer un coup de main, merci ;)
Je vais aller voir
 
Deadman69330

Deadman69330

Psychopathe
Messages
2 289
Score réaction
309
Points
290
SkyWarZzeur à dit:
re, j'apporte quelques nouvelles sur le sujet, bon pour commencer, j'ai trouvé le bon code qui s'occupe de l'affichage des métiers:
code jobs:
 function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 214, 170, 74 ) ) -- couleur quand on passe son curseur sur le métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) -- couleur à l'affichage du métier self:SetSize( catList:GetWide() / 2 - 5, 60 ) end
(je l'ai update dans mon ancien message aussi)
bref, j'ai essayé tant bien que mal de rajouter ce que je souhaite mais j'y arrive pas malheureusement et c'est sur ça que je vais avoir besoin d'aide ^^
voilà ce que j'ai rajouté:
mon code:
if selectedJob = {TEAM_GUN, TEAM_POLICE} then
self:SetTextColor( Color( 0,200,200 ) )
end
Mais cela ne marche pas (erreur lua, en même temps je m'y attendais vu que je suis une quiche en dev), ducoup si une personne qui s'y connait peut me filer un coup de main, merci ;)
Déjà quand tu fait une fonction il ne faut jamais mettre un seul opérateur, c’est soit:
== soit >= soit <= soit != soit...

De plus, t’est sur que ta variable selectedJob marche ? (Si c’est une variable qui est déjà dans l’addon de base elle devrait marcher mais bon)
Dans le doute, ajoute un

Print(selectedJob)
 
  • J'aime
Réactions: SkyWarZzeur
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Deadman69330 à dit:
Déjà quand tu fait une fonction il ne faut jamais mettre un seul opérateur, c’est soit:
== soit >= soit <= soit != soit...

De plus, t’est sur que ta variable selectedJob marche ? (Si c’est une variable qui est déjà dans l’addon de base elle devrait marcher mais bon)
Dans le doute, ajoute un

Print(selectedJob)
Salut, bon j'ai pu avancer un peu avec ce que tu m'as dit, pour commencer, j'ai trouvé la variable qui affiche le nom du job: v:name (quand je passais mon curseur sur le job, le nom du métier s'affichait dans la console)
ducoup je suis parti sur quelque chose comme ça:
mon code:
 function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 214, 170, 74 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) elseif v.name == {"[VIP] F.B.I"} then self:SetTextColor( Color( 0,200,200 ) ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) end end
mais mon métier s'affiche toujours en blanc, j'ai essayé d'autres combines mais rien à faire :c
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
C'est bon j'ai trouvé la fin par moi même!!
voici le code:
mon code:
 elseif (v.name == "[VIP] F.B.I") then Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 0,200,200 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) end
et le résultat: Screenshot
merci à tous, bonne journée! :)
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
re, j'ai un dernier problème par rapport à ce sujet,
je voudrais savoir si il y a un moyen de mettre tous les métiers d'une même couleur sur la même ligne car je ne trouve aucun moyen:
voilà mon code;
mon code:
 function ClassList:Paint( w, h ) if self.hover or selectedJob == self then if LoadLerp then LoadLerp = 50 * math.sin(CurTime() * 2.5) else LoadLerp = math.Clamp(0 - 240, 20, 20) end Victorious.VictoriousColor( 0, 0, 0, 20 ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0, 0, 0, LoadLerp ) Victorious.VictoriousDraw( 4, 0, w - 2, h ) Victorious.VictoriousColor( 0,0,0,60 ) Victorious.VictoriousIcon( ButtonIcon, w - 140, 0, 140, h ) self:SetTextColor( Color( 214, 170, 74 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) Victorious.VictoriousText( Victorious.Configuration.DarkRPMoney .. " " .. v.salary, "Victorious.18", w - 32, 10, Color( 255,255,255,225), Right ) Victorious.VictoriousText( #team.GetPlayers(v.team) .. " / " .. JobMax, "Victorious.18", w - 32, 30, Color( 255,255,255,225), Right ) elseif (v.name == "[VIP] F.B.I") then Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 216, 206, 19 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) elseif (v.name == "MODÉRATION") then Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 216, 47, 21 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) else Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 200,200,200 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) end end
résultat: Screenshot
et donc à la ligne 23 je voulais savoir si il y a un moyen de mettre d'autre métier comme "[VIP] LIEUTENANT DE POLICE" directement ou je dois faire une nouvelle condition pour chaque métier?
édit: j'ai essayé avec elseif (v.name == "[VIP] F.B.I", v.name == "[VIP] LIEUTENANT DE POLICE") then et elseif (v.name == "[VIP] F.B.I", "[VIP] LIEUTENANT DE POLICE") then mais j'ai un script error
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Désolé, j'ai pas ce menu sinon je t'aurais aidé ahah bien joué !
 
  • J'aime
Réactions: SkyWarZzeur
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Re, bon ducoup problème définitivement réglé, il fallait utiliser l’opérateur "or" ^^
pour les intéressés dans le futur, voici un exemple:

mon code:
 elseif (v.name == "[VIP] Parrain" or v.name == "[VIP] F.B.I" or v.name == "[VIP] Hitman" or v.name == "[VIP] Lieutenant Police") then Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 216, 206, 19 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 ) elseif (v.name == "MODÉRATION") then Victorious.VictoriousColor( 0,0,0,50 ) Victorious.VictoriousDraw( 4, 0, w, h ) self:SetTextColor( Color( 216, 47, 21 ) ) self:SetSize( catList:GetWide() / 2 - 5, 60 )
résultat: Screenshot
 
Discord d'entraide
Rejoignz-nous sur Discord