May 17, 201214 yr comment_100036 Bonjour, Je vous présente mon tuto pour crée un menu en Sourcepawn.Ce n'est pas biens compliqué ^^Ce menu vous permettra d'afficher des règles. Tout d'abord il faut définir la commande qui permettras d'ouvrir le menu et le nom du menu qui permettras plusieurs choses dans l'avenir du plugin.En rouge, la commande du pluginEn bleu, le nom du pluginEn vert, un information sur le menu, aussi appeler un arguments public OnPluginStart() { { RegConsoleCmd("[color="#ff0000"]tuto[/color]", [color="#0000ff"]Afficher_Menu_Tuto[/color], "[color="#008000"]Affiche le menu[/color]"); } } L'argument en vert, ne fais que vous informer sur la commande.Il faut savoir que la commande en rouge "tuto" seras le !tuto sur le serveur. Il faut maintenant crée le menu public Action:[color="#0000ff"]Afficher_Menu_Tuto[/color](client, args) { new Handle:menu = CreateMenu([color="#0000ff"]Afficher_Menu_Tuto[/color]); } Le nom du menu "Afficher_Menu_Tuto" permet de crée le menu. Nous allons maintenant donner un titre au menu. public Action:[color="#0000ff"]Afficher_Menu_Tuto[/color](client, args) { new Handle:menu = CreateMenu([color="#0000ff"]Afficher_Menu_Tuto[/color]); SetMenuTitle(menu, "[color="#ff8c00"]TutoMenu[/color]"); } En orange, le titre du menu l'or de l'ouverture. Nous allons crée les boutons du menu. public Action:[color="#0000ff"]Afficher_Menu_Tuto[/color](client, args) { new Handle:menu = CreateMenu([color="#0000ff"]Afficher_Menu_Tuto[/color]); SetMenuTitle(menu, "[color="#ff8c00"]TutoMenu[/color]"); AddMenuItem(menu, "option1", "[color="#ffa07a"]Règle 1[/color]"); AddMenuItem(menu, "option2", "[color="#ffa07a"]Règles 2[/color]"); } En rose, les boutons pour le menu, les boutons auras un nom : Bouton 1 "Règle1" - Boutons 2 "Règle2" Ce bous de code permet de donner un bouton CLOSE au menu SetMenuExitButton(menu, true); Et ce bous de code permet de laisser le menu ouvert indéfiniment sauf si on appuie sur une des options proposer DisplayMenu(menu, client, MENU_TIME_FOREVER); Voyons voir les options du menu que nous avons créés : public Action:[color="#0000cd"]Afficher_Menu_Tuto[/color](client, args) { new Handle:menu = CreateMenu([color="#0000cd"]Afficher_Menu_Tuto[/color]); SetMenuTitle(menu, "[color="#ff8c00"]TutoMenu[/color]"); AddMenuItem(menu, "option1", "[color="#ffa07a"]Règle 1[/color]"); AddMenuItem(menu, "option2", "[color="#ffa07a"]Règles 2[/color]"); SetMenuExitButton(menu, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } Il suffis maintenant de dire ce que chaque bouton doit faire.Pour ce faire on défini l'actions de chaque bouton. public [color="#0000ff"]Afficher_Menu_Tuto[/color](Handle:menu, MenuAction:action, client, itemNum) { if ( action == [color="#800000"]MenuAction_Select[/color] ) { En brun, l'action que feras le menu quand on appuieras sur un des boutons.Dans ce cas si il séléctionneras. Maintenant il suffis de dire ce que chaque bouton feras.Pour ce faire on crée des cases.ATTENTION : LE BOUTON 1 SERAS LA CASE 0 - BOUTON 2 SERAS LA CASE 1.ATTENTION : LES CASES SERONT DECALER DE 1 PAR APPORT AU BOUTON. public [color="#0000ff"]Afficher_Menu_Tuto[/color](Handle:menu, MenuAction:action, client, itemNum) { [color="#800000"] if ( action == MenuAction_Select ) [/color] { switch (itemNum) { [color="#800080"]case 0: { PrintToChat(client, "Ne pas insulter"), }[/color] } {En violet, ce que feras la case 0 (Bouton 1) quand on la séléctionneras.Dans notre cas, elle afficheras dans le chat la phrase : Ne pas insulter Pour ajouté une case, il suffit de faire pareil mais en avencans le chiffre de la case par 1. [b]public [color="#0000cd"]Afficher_Menu_Tuto[/color](Handle:menu, MenuAction:action, client, itemNum) { [color="#800000"] if ( action == MenuAction_Select ) [/color] { switch (itemNum) { [color="#800080"]case 0: { PrintToChat(client, "Ne pas insulter"), } case 1: { PrintToChat(client, "Ne pas flooder"), }[/color] } } }[/b] Et si tout va biens, vous optiendré tout cela : #include <sourcemod> public OnPluginStart() { { RegConsoleCmd("[color="#ff0000"]tuto[/color]", [color="#0000cd"]Afficher_Menu_Tuto[/color], "[color="#008000"]Affiche le menu[/color]"); } } public Action:[color="#0000cd"]Afficher_Menu_Tuto[/color](client, args) { new Handle:menu = CreateMenu([color="#0000cd"]Afficher_Menu_Tuto[/color]); SetMenuTitle(menu, "[color="#ff8c00"]TutoMenu[/color]"); AddMenuItem(menu, "option1", "[color="#ffa07a"]Règle 1[/color]"); AddMenuItem(menu, "option2", "[color="#ffa07a"]Règles 2[/color]"); SetMenuExitButton(menu, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } public [color="#0000cd"]Afficher_Menu_Tuto[/color](Handle:menu, MenuAction:action, client, itemNum) { if ( action == MenuAction_Select ) { switch (itemNum) { c[color="#800080"]ase 0: { PrintToChat(client, "Ne pas insulter"), } case 1: { PrintToChat(client, "Ne pas flooder"), }[/color] } } }Il ne faut surtout pas oublier l'include principale pour le plugin.À mettre tout au dessus du plugin !! #include <sourcemod> Kriax. Edited May 17, 201214 yr by kriax Report
May 17, 201214 yr Author comment_100052 Merci. Je suis certaint que oui ^^Moi j'ai fais mes débus comme ça, donc pourquoi pas les autres Kriax. Report
May 17, 201214 yr comment_100061 il y a un problème dans le formatage du code, tu ne devrait pas coloriser le code à la main, la base "code" le fait tout seul (même si c'est pas vraiment adapté pour le pawn...). Sinon, bonne initiative Report
May 29, 201214 yr comment_101807 J'ai essayé de faire un menu comme cela :#include <sourcemod> public OnPluginStart() { { RegConsoleCmd("!event", Afficher_Menu_event, "Affiche le menu"); } } public Action: Afficher_Menu_event(client, args) { new Handle:menu = CreateMenu(Afficher_Menu_event); SetMenuTitle(menu, "Event"); AddMenuItem(menu, "option1", "Version Francaise"); AddMenuItem(menu, "option2", "Version English"); SetMenuExitButton(menu, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } public Afficher_Menu_event(Handle:menu, MenuAction:action, client, itemNum) { if ( action == MenuAction_Select ) { switch (itemNum) { case 0 : PrintToChat(client, "Ne pas insulter") ; case 1: PrintToChat(client, "Ne pas flooder") ; } } } Est-ce que mon code est bon ?Et à la place des deux règles, je voudrais ouvrir une image (comme le !motd d'un serveur quand tu te connectes dessus) mais je ne sais pas quoi utilisé comme fonction. PS : j'avais 7 errors mais j'ai réussi à en corriger 4 et la voici mes erreurs pour ceux qui voudrait bien me dire à quoi cela signifie :/home/groups/sourcemod/upload_tmp/phpSVDCn4.sp(12) : error 100: function prototypes do not match/home/groups/sourcemod/upload_tmp/phpSVDCn4.sp(20) : error 025: function heading differs from prototype/home/groups/sourcemod/upload_tmp/phpSVDCn4.sp(21) : error 021: symbol already defined: "Afficher_Menu_event" Merci d'avance pour les personnes qui voudront bien m'aider ^^ ! PS : grand merci kriax ^^ ! Report
May 31, 201214 yr comment_102060 Tu crées 2 fois la fonction Afficher_menu_event .. c'est un peu une erreur grossière de programmation ^^Met simplement un autre nom ... et oublie pas de le changer aussi quand tu initialise le menu (CreateMenu) Cela corrigera tes 3 erreurs. Report
May 31, 201214 yr comment_102074 Je te remerçie Raijojp ^^, en faite j'avais pris le code de kriax comme modèle et je crois que lui aussi a fait ça ^^ ! Report
August 12, 201411 yr comment_179891 Je remonte le sujet, mais pour tout les visiteurs qui regarde ce sujet, le code que "Kriax" présente est erroné. Il y a des erreurs et le code fonctionnera pas. Je vais faire un tutoriel complet pour faire un menu :-) Report
August 21, 201411 yr comment_180129 J'ai lu ton tuto sur ce forum perso après j'ai pu le voir sur beaucoup d'autre forum et j'ai fais une correction global de ton code dans un tuto du forum. Edited August 22, 201411 yr by K4nsuke Report
August 22, 201411 yr Author comment_180199 M'en fiche un peu c'est qu'un tuto et puis faire un menu avec un switch c'est pas opti du tout x) Report
August 22, 201411 yr comment_180204 Oui peut-être mais ça met les personnes qui s'y connaissent pas en erreur. Report
August 22, 201411 yr Author comment_180217 Bah j'ai jamais dit le contraire, sauf que j'ai pas pris le temps de corriger un post qui à plus de deux ans maintenant et que j'men contre temponne la nouille avec un marteau :3 Report
August 22, 201411 yr comment_180218 D'accord aucun soucis, mais pour le plaisir des nouveaux j'ai refais ce tuto' Report
August 23, 201411 yr Author comment_180246 Bah fait un menu opti utilisant GetMenuItem et pas un switch Report
August 23, 201411 yr comment_180247 Yep, c'étais juste une correction mec, pas besoin de t'emballer pour du code, on est là pour aider la communauté, pas pour se faire de la concurrence Report
August 24, 201411 yr Author comment_180267 Bah je m'emballe pas Je te dit juste demande juste de faire un tutos d'un menu qui utilise pas de switch x) Report
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.