Problème de fermeture du menu contextuel

  • Initiateur de la discussion
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Hello,

J'ai développé un menu contextuel pour les modérateurs de mon serveur..
Seulement, une fois sur deux quand je ferme le menu contextuel il ne se ferme pas et le menu reste bloqué.

Mis à part mettre une croix, je ne sais pas comment résoudre ce problème.
Quelqu'un connait la solution ?

Mon code de fermeture
Code:
hook.Add("OnContextMenuClose", "AdminMenuCloseOnContext", function() gui.EnableScreenClicker(false) nambasicframe:Close()
end
end)
Merci, Wasied.
 
Dernière édition:
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

Geek suprême
Messages
166
Score réaction
47
Points
110
Peut-on avoir la globalité du code ? Du moins l'ouverture :)
 
  • Initiateur de la discussion
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Voici le code.
L'addon est encore en développement, s'il y a des erreurs don't worry
Code:
local scrw, scrh = ScrW(), ScrH()
hook.Add("OnContextMenuOpen", "AdminMenuOpenOnContext", function()
if WasiedNamConfig.UserGroup[LocalPlayer():GetUserGroup()] then for k,v in pairs(player.GetAll()) do nambasicframe = vgui.Create("DFrame") nambasicframe:SetPos( scrw-510, scrh/27 ) nambasicframe:SetSize( 500, 465 ) nambasicframe:SetTitle( "" ) nambasicframe:SetDraggable(true) nambasicframe:MakePopup() nambasicframe:ShowCloseButton(false) function nambasicframe:Paint(w,h) draw.RoundedBox( 5, 0, 0, w, h, Color(200, 200, 200)) -- Background draw.RoundedBox( 0, 0, 0, w, 25, Color(150, 150, 150)) -- Scrollbar draw.SimpleText("Panneau de modération de "..WasiedNamConfig.ServerName,"WasiedMenuTitle",w/2,30,Color(255,50,50), TEXT_ALIGN_CENTER) draw.SimpleText("by Wasied","WasiedSubTitle",w/2,50,Color(0,0,0), TEXT_ALIGN_CENTER) draw.SimpleText("Ce menu est en beta, proposez vos idées.","WasiedSubTitle",w/2,75,Color(0,0,0), TEXT_ALIGN_CENTER) end local buttonstopsound = vgui.Create( "DButton", nambasicframe ) buttonstopsound:SetText("") buttonstopsound:SetPos( 20, 100 ) buttonstopsound:SetSize( 460, 30 ) function buttonstopsound:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.stopsoundtext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonstopsound.DoClick = function() v:ConCommand( "stopsound" ) end local buttonstaffmod = vgui.Create( "DButton", nambasicframe ) buttonstaffmod:SetText("") buttonstaffmod:SetPos( 20, 140 ) buttonstaffmod:SetSize( 460, 30 ) function buttonstaffmod:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.staffmodtext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonstaffmod.DoClick = function() v:ConCommand( "say !staff" ) end local buttonseelogs = vgui.Create( "DButton", nambasicframe ) buttonseelogs:SetText("") buttonseelogs:SetPos( 20, 180 ) buttonseelogs:SetSize( 460, 30 ) function buttonseelogs:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.seelogstext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonseelogs.DoClick = function() v:ConCommand( "say !blogs" ) end local buttonseewarn = vgui.Create( "DButton", nambasicframe ) buttonseewarn:SetText("") buttonseewarn:SetPos( 20, 220 ) buttonseewarn:SetSize( 460, 30 ) function buttonseewarn:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.seewarntext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonseewarn.DoClick = function() v:ConCommand( "say !warn" ) end local buttonbanmenu = vgui.Create( "DButton", nambasicframe ) buttonbanmenu:SetText("") buttonbanmenu:SetPos( 20, 260 ) buttonbanmenu:SetSize( 460, 30 ) function buttonbanmenu:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.buttonbanmenutext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonbanmenu.DoClick = function() v:ConCommand( "say !menu" ) end local buttonkickmenu = vgui.Create( "DButton", nambasicframe ) buttonkickmenu:SetText("") buttonkickmenu:SetPos( 20, 300 ) buttonkickmenu:SetSize( 460, 30 ) function buttonkickmenu:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.buttonkickmenutext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonkickmenu.DoClick = function() v:ConCommand( "say !menu" ) end local buttonspawnbubble = vgui.Create( "DButton", nambasicframe ) buttonspawnbubble:SetText("") buttonspawnbubble:SetPos( 20, 340 ) buttonspawnbubble:SetSize( 460, 30 ) function buttonspawnbubble:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.buttonbubbletext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttonspawnbubble.DoClick = function() v:ConCommand( "say !bb" ) end local buttontpsomeone = vgui.Create( "DButton", nambasicframe ) buttontpsomeone:SetText("") buttontpsomeone:SetPos( 20, 380 ) buttontpsomeone:SetSize( 460, 30 ) function buttontpsomeone:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.buttontpsomeonetext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttontpsomeone.DoClick = function() net.Start("WasiedNAMErrorClient") net.WriteEntity(v) net.SendToServer() end local buttongotosomeone = vgui.Create( "DButton", nambasicframe ) buttongotosomeone:SetText("") buttongotosomeone:SetPos( 20, 420 ) buttongotosomeone:SetSize( 460, 30 ) function buttongotosomeone:Paint(w,h) draw.RoundedBox(10, 0, 0, w, h, Color(230,50,50)) -- Button color draw.DrawText( WasiedNamConfig.buttongotosomeonetext, "WasiedButtons", w/2, 7, Color(255,255,255), TEXT_ALIGN_CENTER) end buttongotosomeone.DoClick = function() net.Start("WasiedNAMErrorClient") net.WriteEntity(v) net.SendToServer() end end
end
end)
hook.Add("OnContextMenuClose", "AdminMenuCloseOnContext", function() gui.EnableScreenClicker(false) nambasicframe:Close()
end)
 
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

Geek suprême
Messages
166
Score réaction
47
Points
110
Quelle est l'erreur ?
Dit moi, pourquoi faire un "for k, v in pairs (players.GetAll)" ? Ca veut dire que quand le joueur X ouvre le menu C, tout le serveur le voit...
 
  • Initiateur de la discussion
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ à dit:
Quelle est l'erreur ?
Dit moi, pourquoi faire un "for k, v in pairs (players.GetAll)" ? Ca veut dire que quand le joueur X ouvre le menu C, tout le serveur le voit...
Oui excuse-moi c'était une erreur quand j'ai partagé le code cela ne sera pas dans le code final.
L'erreur vient du fait que lorsqu'on ferme le menu contextuel, certaines fois il ne se ferme pas.. :/
 
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Essaie de rajouter avant le nambasicframe:Close() un
if WasiedNamConfig.UserGroup[LocalPlayer():GetUserGroup()] then
et tu met un end
 
  • Initiateur de la discussion
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Problème réglé, merci de votre aide !
 
  • J'aime
Réactions: NoaGamingFR
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

Geek suprême
Messages
166
Score réaction
47
Points
110
Wasied à dit:
Problème réglé, merci de votre aide !
Peux-tu partager comment tu as réglé le soucis, afin de potentiellement aider le prochain ayant ce soucis ?
 
  • Initiateur de la discussion
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ à dit:
Peux-tu partager comment tu as réglé le soucis, afin de potentiellement aider le prochain ayant ce soucis ?
J'ai simplement retiré un autre addon de menu contextuel, j'avais oublié que je l'avais et je pense que ça faisait des problèmes avec le menu étant donné qu'il n'était pas fini..
C'était une simple erreur de ma part, désolé.
 
᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌ ᠌

Geek suprême
Messages
166
Score réaction
47
Points
110
L'erreur est humaine ;)
Bonne continuation :D
 
Discord d'entraide
Rejoignz-nous sur Discord