Добро пожаловать

Для полноценного пользования форумом и общения с его участниками, пройдите регистрацию ниже
Регистрация

Menu servera открытие через say /menu

Тема в разделе "Свалка", создана пользователем UNREAL, 7 янв 2015.

Статус темы:
Закрыта.
  1. UNREAL

    UNREAL Пользователь

    2
    0
    25
    Добрый день!

    Прошу подсказать как можно переделать меню сервера что-бы оно открывалось не через консольную команду "menu" а через чат say /menu :huh:
    Код:
    #include 
    #include 
    
    #define PLUGIN  "Menu Servera"
    #define VERSION "1.0"
    #define AUTHOR  "Ghost"
    #define MAXMAPS 500
    
    new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
    new keys2 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
    new const s_Maps_Array[MAXMAPS][101]
    
    public plugin_init()
    {
         register_plugin(PLUGIN, VERSION, AUTHOR)
         register_menu("Menu 1", keys, "func_menu")
         register_concmd("menu", "Server_Menu")
         register_menu("Menu 2", keys2, "func_menu2")
         register_concmd("", "Server_Menu2")
         new s_Map_Name[101]
         new i_Directory=open_dir("maps",s_Map_Name,100)
         if(i_Directory)
         {
              new d_Line
              new d_Len
              while(next_file(i_Directory,s_Map_Name,100))
              {
                   if((containi(s_Map_Name,".bsp")!=-1)&&(containi(s_Map_Name,".ztmp")==-1))
                   {
                        d_Len=strlen(s_Map_Name)
                        format(s_Map_Name,d_Len-4,"%s",s_Map_Name)
                        s_Maps_Array[d_Line]=s_Map_Name
                        d_Line++
                   }
              }
         }
    }
    
    public client_authorized(id)
    {
         client_cmd(id, "bind ^"F5^" ^"menu^"")
    }
    
    public Server_Menu(id)
    {
         static menu[650], iLen
         iLen = 0
         iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r*** \yИгровое меню \r***^n^n")
         
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \yПравила \wСервера^n")
         keys |= MENU_KEY_1
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \yПравила \wАдминистратора^n")
         keys |= MENU_KEY_2
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \yУзнать IP \wсервера^n")
         keys |= MENU_KEY_3
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКупить \rАдминку^n")
         keys |= MENU_KEY_4
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wКупить \rVIP^n")
         keys |= MENU_KEY_5
        
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wСистема \yдостижений^n")
         keys |= MENU_KEY_6
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \yНоминировать \wкарту^n")
         keys |= MENU_KEY_7
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \yГолосование за смену \wкарты^n")
         keys |= MENU_KEY_8
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n^n\r9. \wДалее^n")
         keys |= MENU_KEY_9
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход")
         keys |= MENU_KEY_0
         
         show_menu(id, keys, menu, -1, "Menu 1")
         return PLUGIN_HANDLED
    }
    
    public func_menu(id, key)
    {
         switch(key)
         {
              case 0:
              {
                   show_motd(id, "pravila.txt", "Pravila")
              }
    
              case 1:
              {
                   show_motd(id, "adminpravila.txt", "Admin_pravila")
              }
    
              case 2:
              {
                   Color_Print(id, "!yIP адрес сервера !g77.777.777.777:27015")
              }
    
              case 3:
              {
                   client_cmd(id, "say /adminka")
              }
    
              case 4:
              {
                   client_cmd(id, "say /vip")
              }
              
              case 5:
              {
                   client_cmd(id, "say /ach")
              }
    
              case 6:
              {
                   nominated_maps(id)
              }
    
              case 7:
              {
                   client_cmd(id, "say /rtv")
              }
    
              case 8:
              {
                   Server_Menu2(id)
              }
         }
         return PLUGIN_HANDLED
    }
    
    public Server_Menu2(id)
    {
         static menu[650], iLen
         iLen = 0
         iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r*** \yИгровое меню \r***^n^n")
         
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \yЗаткнуть \wигрока^n")
         keys2 |= MENU_KEY_1
        
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \yЗабанить \wигрока^n")
         keys2 |= MENU_KEY_2
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \yОбнулить \wсчет и деньги^n")
         keys2 |= MENU_KEY_3
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wУзнать свой \yранк^n")
         keys2 |= MENU_KEY_4
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \yСайт \wпроекта^n")
         keys2 |= MENU_KEY_5
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГруппа \y[В]Контакте^n")
         keys2 |= MENU_KEY_6
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wГруппа в \ySteam^n")
         keys2 |= MENU_KEY_7
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \yКарты \wсервера")
         keys2 |= MENU_KEY_8
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n^n\r9. \wНазад^n")
         keys2 |= MENU_KEY_9
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход")
         keys2 |= MENU_KEY_0
         
         show_menu(id, keys2, menu, -1, "Menu 2")
         return PLUGIN_HANDLED
    }
    
    public func_menu2(id, key)
    {
         switch(key)
         {
              case 0:
              {
                   client_cmd(id, "say /mute")
              }
              
              case 1:
              {
                   client_cmd(id, "say /voteban")
              }
    
              case 2:
              {
                   client_cmd(id, "say /rs")
              }
    
              case 3:
              {
                   client_cmd(id, "say /rank")
              }
    
              case 4:
              {
                   Color_Print(id, "!yС Удовольствием ждем Вас на нашем сайте !gwww.site.Ru")
              }
    
              case 5:
              {
                   Color_Print(id, "!gПосетите группу [В]Контакте !twww.vk.com/")
              }
    
              case 6:
              {
                   Color_Print(id, "!tНаша группа в steam !ghttp://steamcommunity.com/")
              }
    
              case 7:
              {
                   show_motd(id, "maplist.txt", "Maplist")
              }
    
              case 8:
              {
                   Server_Menu(id)
              }
         }
         return PLUGIN_HANDLED
    }
    
    public nominated_maps(id)
    {
         new Nominated_Maps = menu_create("\r*** \yНоминация карт \r***","Nominated_Maps_Func")
         new s_Line[6]
         for(new i=0;i
     
  2. Olejan4ik

    Olejan4ik 1 Забанен

    123
    25
    70
    Здравствуй.
    register_menu("Menu 1", keys, "func_menu")
    register_concmd("menu", "Server_Menu")
    register_menu("Menu 2", keys2, "func_menu2")
    register_concmd("", "Server_Menu2")
    Тут регистрация набора для открытия меню.
     
  3. lddnsk

    lddnsk Администратор

    679
    282
    300
    Ответ
    думаешь он допетрит, что надо с этим делать? Да и register_concmd - не совсем то, что надо для команды say

    Автор, добавь строчку ниже того, что написал Olejan4ik:
    Код:
    register_clcmd("say /menu", "Server_Menu");
     
    1 человеку нравится это.
  4. Olejan4ik

    Olejan4ik 1 Забанен

    123
    25
    70
    Откудо мне знать? Может и допетрит))
    Если нет, тогда можно самому сделать для него, какие проблемы )
     
  5. Ismagilov

    Ismagilov Забанен

    287
    53
    110
    Хороший код
    можешь menu2 добавить, второе меню будет работать
    register_concmd("say /menu2", "Server_Menu2")

    Код:
    #include 
    #include 
    
    #define PLUGIN  "Menu Servera"
    #define VERSION "1.0"
    #define AUTHOR  "Ghost"
    #define MAXMAPS 500
    
    new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
    new keys2 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
    new const s_Maps_Array[MAXMAPS][101]
    
    public plugin_init()
    {
         register_plugin(PLUGIN, VERSION, AUTHOR)
         register_menu("Menu 1", keys, "func_menu")
         register_concmd("say /menu", "Server_Menu")
         register_menu("Menu 2", keys2, "func_menu2")
         register_concmd("", "Server_Menu2")
         new s_Map_Name[101]
         new i_Directory=open_dir("maps",s_Map_Name,100)
         if(i_Directory)
         {
              new d_Line
              new d_Len
              while(next_file(i_Directory,s_Map_Name,100))
              {
                   if((containi(s_Map_Name,".bsp")!=-1)&&(containi(s_Map_Name,".ztmp")==-1))
                   {
                        d_Len=strlen(s_Map_Name)
                        format(s_Map_Name,d_Len-4,"%s",s_Map_Name)
                        s_Maps_Array[d_Line]=s_Map_Name
                        d_Line++
                   }
              }
         }
    }
    
    public client_authorized(id)
    {
         client_cmd(id, "bind ^"F5^" ^"say /menu^"")
    }
    
    public Server_Menu(id)
    {
         static menu[650], iLen
         iLen = 0
         iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r*** \yИгровое меню \r***^n^n")
         
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \yПравила \wСервера^n")
         keys |= MENU_KEY_1
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \yПравила \wАдминистратора^n")
         keys |= MENU_KEY_2
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \yУзнать IP \wсервера^n")
         keys |= MENU_KEY_3
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКупить \rАдминку^n")
         keys |= MENU_KEY_4
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wКупить \rVIP^n")
         keys |= MENU_KEY_5
        
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wСистема \yдостижений^n")
         keys |= MENU_KEY_6
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \yНоминировать \wкарту^n")
         keys |= MENU_KEY_7
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \yГолосование за смену \wкарты^n")
         keys |= MENU_KEY_8
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n^n\r9. \wДалее^n")
         keys |= MENU_KEY_9
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход")
         keys |= MENU_KEY_0
         
         show_menu(id, keys, menu, -1, "Menu 1")
         return PLUGIN_HANDLED
    }
    
    public func_menu(id, key)
    {
         switch(key)
         {
              case 0:
              {
                   show_motd(id, "pravila.txt", "Pravila")
              }
    
              case 1:
              {
                   show_motd(id, "adminpravila.txt", "Admin_pravila")
              }
    
              case 2:
              {
                   Color_Print(id, "!yIP адрес сервера !g77.777.777.777:27015")
              }
    
              case 3:
              {
                   client_cmd(id, "say /adminka")
              }
    
              case 4:
              {
                   client_cmd(id, "say /vip")
              }
              
              case 5:
              {
                   client_cmd(id, "say /ach")
              }
    
              case 6:
              {
                   nominated_maps(id)
              }
    
              case 7:
              {
                   client_cmd(id, "say /rtv")
              }
    
              case 8:
              {
                   Server_Menu2(id)
              }
         }
         return PLUGIN_HANDLED
    }
    
    public Server_Menu2(id)
    {
         static menu[650], iLen
         iLen = 0
         iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r*** \yИгровое меню \r***^n^n")
         
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \yЗаткнуть \wигрока^n")
         keys2 |= MENU_KEY_1
        
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \yЗабанить \wигрока^n")
         keys2 |= MENU_KEY_2
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \yОбнулить \wсчет и деньги^n")
         keys2 |= MENU_KEY_3
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wУзнать свой \yранк^n")
         keys2 |= MENU_KEY_4
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \yСайт \wпроекта^n")
         keys2 |= MENU_KEY_5
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wГруппа \y[В]Контакте^n")
         keys2 |= MENU_KEY_6
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wГруппа в \ySteam^n")
         keys2 |= MENU_KEY_7
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \yКарты \wсервера")
         keys2 |= MENU_KEY_8
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n^n\r9. \wНазад^n")
         keys2 |= MENU_KEY_9
    
         iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход")
         keys2 |= MENU_KEY_0
         
         show_menu(id, keys2, menu, -1, "Menu 2")
         return PLUGIN_HANDLED
    }
    
    public func_menu2(id, key)
    {
         switch(key)
         {
              case 0:
              {
                   client_cmd(id, "say /mute")
              }
              
              case 1:
              {
                   client_cmd(id, "say /voteban")
              }
    
              case 2:
              {
                   client_cmd(id, "say /rs")
              }
    
              case 3:
              {
                   client_cmd(id, "say /rank")
              }
    
              case 4:
              {
                   Color_Print(id, "!yС Удовольствием ждем Вас на нашем сайте !gwww.site.Ru")
              }
    
              case 5:
              {
                   Color_Print(id, "!gПосетите группу [В]Контакте !twww.vk.com/")
              }
    
              case 6:
              {
                   Color_Print(id, "!tНаша группа в steam !ghttp://steamcommunity.com/")
              }
    
              case 7:
              {
                   show_motd(id, "maplist.txt", "Maplist")
              }
    
              case 8:
              {
                   Server_Menu(id)
              }
         }
         return PLUGIN_HANDLED
    }
    
    public nominated_maps(id)
    {
         new Nominated_Maps = menu_create("\r*** \yНоминация карт \r***","Nominated_Maps_Func")
         new s_Line[6]
         for(new i=0;i
     
    1 человеку нравится это.
  6. lddnsk

    lddnsk Администратор

    679
    282
    300
    Ответ
    А почему concmd? Ты думаешь, сервер тоже станет меню вызывать?)
    И зачем второе меню, если оно не является вторым, а только прододжает первое?
     
    1 человеку нравится это.
  7. UNREAL

    UNREAL Пользователь

    2
    0
    25
    Всем спасибо за ответы...
     
Статус темы:
Закрыта.