barbierp Posté(e) le 13 février 2015 Share Posté(e) le 13 février 2015 Bonjour, Je fais mon premier code sourcepawn et je bloque à un endroit. Je veux créer un menu permettant d'accéder à d'autres menus. Pour mieux me faire comprendre : Et j'aimerai que si on appuie sur 1, ça écrive sm_rpg dans la console pour ouvrir le menu rpg Si j'appuie sur 2 ça écrive sm_test pour ouvrir le menu test ... J'ai déjà le menu, mais quand j'appui sur 1, ça écrit une phrase et non une commande dans la console du joueur. Donc pouvez-vous m'aider svp ? PS : J'ai prit le code menu de kriax pour les règles Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mishou Posté(e) le 13 février 2015 Share Posté(e) le 13 février 2015 salut, Tu codes en 1.6 ou 1.7 (version de sourcemod) ? Tiens je t'ai fais un exemple facile à comprendre : #include <sourcemod> public OnPluginStart() { RegConsoleCmd("sm_test", Command_Test); } public Action:Command_Test(client, args) { if(client < 1 || !IsClientInGame(client)) return Plugin_Handled; new Handle:menu = CreateMenu(MenuHandler); SetMenuTitle(menu, "### TEST ###"); AddMenuItem(menu, "option1", "test"); //AddMenuItem(menu, "option2", "test2"); SetMenuExitButton(menu, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); return Plugin_Handled; } public MenuHandler(Handle:menu, MenuAction:action, client, param1) { if(action == MenuAction_End) CloseHandle(menu); else if(action == MenuAction_Select) { decl String:sInfo[64]; GetMenuItem(menu, param1, sInfo, sizeof(sInfo)); if(StrEqual(sInfo, "option1")) FakeClientCommand(client, "sm_test"); /*else if(StrEqual(sInfo, "option2") FakeClientCommand(client, "sm_test2")*/ } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 14 février 2015 Share Posté(e) le 14 février 2015 Met toi direct dans la poo Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
barbierp Posté(e) le 15 février 2015 Auteur Share Posté(e) le 15 février 2015 Ah voilà FakeClientCommand ! C'est ça qu'il me manquait ! Mais merci beaucoup mishou parce que j'avais d'autres bugs autre part :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 15 février 2015 Share Posté(e) le 15 février 2015 À la place de passer par des vérifications fais comme ceci :) #include <sourcemod> public OnPluginStart() { RegConsoleCmd("sm_test", Command_Test); } public Action:Command_Test(client, args) { if(client < 1 || !IsClientInGame(client)) return Plugin_Handled; new Handle:menu = CreateMenu(MenuHandler); SetMenuTitle(menu, "### TEST ###"); AddMenuItem(menu, "sm_test", "test"); AddMenuItem(menu, "sm_test2", "test2"); SetMenuExitButton(menu, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); return Plugin_Handled; } public MenuHandler(Handle:menu, MenuAction:action, client, param1) { if(action == MenuAction_End) CloseHandle(menu); else if(action == MenuAction_Select) { decl String:sInfo[64]; GetMenuItem(menu, param1, sInfo, sizeof(sInfo)); FakeClientCommand(client, sInfo); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
barbierp Posté(e) le 15 février 2015 Auteur Share Posté(e) le 15 février 2015 Ah ba j'avais pas fais de vérifications dans mon autre menu, pour ça que je me demandais ce que ça faisait là. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 16 février 2015 Share Posté(e) le 16 février 2015 C'est au choix, maintenant si c'est rien que pour des commandes au-temps opti le code et le rendre propre ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.