Aide pour la creation de commande.

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

GmodHistory

Geek
Messages
36
Score réaction
5
Points
65
Bonjour,

J'aimerais créer une commande qui fasse que quand un joueur appuis sur F6 sa envoie une commande utile de base pour ouvrir un pannel (La Commande en question /gov) Et si possible que seul un métier puisse utiliser la commande.

Merci d'avance !
 
Hosgor

Hosgor

Geek suprême
Messages
209
Score réaction
60
Points
130
Bonjour,

J'ai clairement pas tout compris dans ton poste mais je vais te passer un bout de script pour que lorsqu'un joueur appuie sur une touche alors dans mon cas ça print un message :) :

Coté client :
C#:
hook.Add( "PlayerButtonDown", "echap_touch", function() local ply = LocalPlayer() if not IsValid(ply) then return end if input.IsButtonDown(KEY_L) then print("bien joué tu as ap") end
end)
Je sais pas si c'est la meilleur technique mais elle fonctionne normalement !
 
Luciano Leggio

Luciano Leggio

Geek suprême
Messages
702
Score réaction
141
Points
120
Hosgor à dit:
Bonjour,

J'ai clairement pas tout compris dans ton poste mais je vais te passer un bout de script pour que lorsqu'un joueur appuie sur une touche alors dans mon cas ça print un message :) :

Coté client :
C#:
hook.Add( "PlayerButtonDown", "echap_touch", function() local ply = LocalPlayer() if not IsValid(ply) then return end if input.IsButtonDown(KEY_L) then print("bien joué tu as ap") end
end)
Je sais pas si c'est la meilleur technique mais elle fonctionne normalement !
Il veux afficher une dframe lorsque une touche est pressée.

Tu dois donc utiliser un input et ouvrir une dframe
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Luciano Leggio à dit:
Il veux afficher une dframe lorsque une touche est pressée.

Tu dois donc utiliser un input et ouvrir une dframe
Il veut executer le /gov, j'ai pas le temps de le faire là mais ce soir c'est pas fait je le ferais.
 
Luciano Leggio

Luciano Leggio

Geek suprême
Messages
702
Score réaction
141
Points
120
NoaGamingFR à dit:
Il veut executer le /gov, j'ai pas le temps de le faire là mais ce soir c'est pas fait je le ferais.
Sa demande n’est pas très logique autant créer une bind pour la touche et exécuter la frame (à part si son /gov exécute déjà une commande qui ouvre un panel mais de ce que j’ai compris il veux créer)
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Luciano Leggio à dit:
Sa demande n’est pas très logique autant créer une bind pour la touche et exécuter la frame (à part si son /gov exécute déjà une commande qui ouvre un panel mais de ce que j’ai compris il veux créer)
J'aimerais créer une commande qui fasse que quand un joueur appuis sur F6 sa envoie une commande utile de base pour ouvrir un pannel (La Commande en question /gov)

Traduction : Je voudrais que quand ont appuie sur F6, sa execute une commande (dans la console/chat) et la commande en question est /gov.
PS: Ceci devrait être bon.

lua/autorun/client/nomdefichier.lua:
hook.Add("Think","CommandeF6", function() local ply = LocalPlayer() if input.WasKeyPressed( KEY_F6 ) then ply:Say( "/gov" ) end
end )
-- Je ne sait pas si c'est le plus opti au vu du "Think" mais j'avais pas beaucoup de temps xD
 
  • J'aime
Réactions: GmodHistory
  • Initiateur de la discussion
GmodHistory

GmodHistory

Geek
Messages
36
Score réaction
5
Points
65
Je vous remercie de votre aide ! je vais voir si sa fonctionne ;-)
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
GmodHistory à dit:
Je vous remercie de votre aide ! je vais voir si sa fonctionne ;-)
Pas de soucis, j'attend (votre)/(ta) réponse.
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
C#:
hook.Add("PlayerButtonDown", "OnF6Press", function(ply , btn) if not ( IsFirstTimePredicted() ) then return end if ( btn == KEY_F6 ) then ply:Say("/gov"); end
end )
Code à mettre côté serveur.
 
Hosgor

Hosgor

Geek suprême
Messages
209
Score réaction
60
Points
130
thepsyca à dit:
C#:
hook.Add("PlayerButtonDown", "OnF6Press", function(ply , btn) if not ( IsFirstTimePredicted() ) then return end if ( btn == KEY_F6 ) then ply:Say("/gov"); end
end )
Code à mettre côté serveur.
On peut aussi le mettre coté serveur non ? :D
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Hosgor

Hosgor

Geek suprême
Messages
209
Score réaction
60
Points
130
Je voulais écrire "coté client" o_O
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Hosgor à dit:
Je voulais écrire "coté client" o_O
Oui c'est possible.
Code:
hook.Add("PlayerButtonDown", "OnF6Press", function(ply , btn) if not ( IsFirstTimePredicted() || ply != LocalPlayer() ) then return end if ( btn == KEY_F6 ) then ply:ConCommand("say", "/gov"); end
end )
On vérifie juste en supplément que le joueur qui appuie sur la touche soit bel et bien notre joueur local et on passe par la méthode ConCommand au lieu de la fonction 'Say' qui est exclusivement côté serveur.
On pourrait appeler directement la méthode de l'addon exécutant le vgui évitant ainsi de faire un appel de hook superflu mais je ne la connais pas :(
 
Hosgor

Hosgor

Geek suprême
Messages
209
Score réaction
60
Points
130
thepsyca à dit:
Oui c'est possible.
Code:
hook.Add("PlayerButtonDown", "OnF6Press", function(ply , btn) if not ( IsFirstTimePredicted() || ply != LocalPlayer() ) then return end if ( btn == KEY_F6 ) then ply:ConCommand("say", "/gov"); end
end )
On vérifie juste en supplément que le joueur qui appuie sur la touche soit bel et bien notre joueur local et on passe par la méthode ConCommand au lieu de la fonction 'Say' qui est exclusivement côté serveur.
On pourrait appeler directement la méthode de l'addon exécutant le vgui évitant ainsi de faire un appel de hook superflu mais je ne la connais pas :(
Ah ok, effectivement je n'avais pas fait attention sur l'utilisation du Concommand ;)

Merci de la petite explication !
 
Discord d'entraide
Rejoignz-nous sur Discord