Aller au contenu
News ticker
  • Bienvenue sur le nouveau forum VeryGames
  • Welcome to the new VeryGames forum
  • VeryNews

    Menu sourcepawn


    barbierp

    Messages recommandés

    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

    Lien vers le commentaire
    Partager sur d’autres sites

    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")*/
       }
    }
    

    Lien vers le commentaire
    Partager sur d’autres sites

    À 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);
       }
    

    Lien vers le commentaire
    Partager sur d’autres sites

    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.

    Invité
    Répondre à ce sujet…

    ×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

      Seulement 75 émoticônes maximum sont autorisées.

    ×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

    ×   Votre contenu précédent a été rétabli.   Vider l’éditeur

    ×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

    ×
    ×
    • Créer...