Русское сообщество по скриптингу

Проблема с меню, помогите.

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Проблема с меню, помогите.

Сообщение Message » 21 авг 2019, 12:51

Всем привет, тут такое дело, делаю я меню создателя, вроде бы всё правильно сделал, ошибок никаких при компиляции нету, но ничего не работает, говорят, что даже команда не пашет, меню не открывается, в чём прикол?

Код: Выделить всё
#include <amxmodx>
#include <fun>
#include <fakemeta>

#define PLUGIN "CreatorMenu"
#define VERSION "1.0"
#define AUTHOR "L1ke"

#pragma tabsize 0

new speed[33]
new block[33] 

//Объявляю переменные для переключения работы функции

new bool: i_GodMode[33]
new bool: i_Footsteps[33]
new bool: i_Noclip[33]
new bool: i_Invisible[33]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);

 register_event("CurWeapon", "CurWeapon", "be", "1=1")

//Ловлю начало раунда

register_event("HLTV","event_round_start", "a", "1=0", "2=0");

register_menucmd(register_menuid("Show_Menu"), 1023, "Handle_Menu");
    
    register_clcmd
("creator","Show_Menu", ADMIN_RCON);
}

public CurWeapon(id)
{
  if(speed[id])
  {
    set_pev(id, pev_maxspeed, 420.0)
  }
}

public event_round_start(id)
{
  block[id] = 2;
}

public Show_Menu(id)
{
    new szMenu[1024], iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<9), iLen;
    iLen = formatex(szMenu, charsmax(szMenu), "\wRussian \y$\r[\wPublic\r]\y$^n\dМеню Создателя^n^n");

          iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[1] \wБессмертие %s^n", i_GodMode[id] ? "\w[\rВкл\w]" : "\w[\rВыкл\w]");
          iKeys |= (1<<0);
    
      if
(block[id] > 0)
      {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[2] \wВозродиться [\r%d\w]^n");
    iKeys |= (1<<1);
      }
      else
      
{
       iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[#] \wВозродиться [\r%d\w]^n");
    iKeys |= (1<<1);
      }
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[3] \wБесшумные шаги %s^n", i_Footsteps[id] ? "\w[\rВкл\w]" : "\w[\rВыкл\w]");
    iKeys |= (1<<2);
    
          iLen 
+= formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[4] \wНоуклип %s^n", i_Noclip[id] ? "\w[\rВкл\w]" : "\w[\rВыкл\w]");
          iKeys |= (1<<3);

       iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[5] \wВзять скорость^n");
       iKeys |= (1<<4);
       
       iLen 
+= formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[6] \wНевидимость %s^n", i_Invisible[id] ? "\w[\rВкл\w]" : "\w[\rВыкл\w]");
       iKeys |= (1<<5);

       iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[9] \wВыход^n");
       iKeys |= (1<<9);
  
    return show_menu
(id, iKeys, szMenu, -1, "Show_Menu");
}

public Handle_Menu(id, iCase)
{
    switch(iCase)
    {
        case 0:
        {
        
        
//Делаю проверку на бессмертие
        
                  if
(i_GodMode[id])
                  {
                    set_user_godmode(id, 1)
                    i_GodMode[id] = true
                  
}
                  else
                  
{
                    set_user_godmode(id, 0)
                    i_GodMode[id] = false
                  
}
        }
        case 1:
     {
     
        
//Проверка на кол-во использовавшихся возрождений
        
                if
(block[id] > 0)
               {
                    spawn(id)
                     block[id] -= 1;
               }
               else
               
{
                 client_print(id, print_chat, "Жди следующего раунда,киця <3")
               }
     }
        case 2:
        {
        
        
//Проверка на бессшумные шаги
        
               if
(i_Footsteps[id])
               {
                    i_Footsteps[id] = true
                    set_user_footsteps
(id, 1)
               }
               else
               
{
                 i_Footsteps[id] = false
                 set_user_footsteps
(id, 0)
               }
     }
     case 3:
     {
     
     
//Проверка на ноуклип
     
        if
(i_Noclip[id])
        {
          i_Noclip[id] = true
          set_user_noclip
(id, 1)
        }
        else
        
{
          i_Noclip[id] = false
          set_user_noclip
(id, 0)
        }
     }
     case 4:
     {
        set_pev(id, pev_maxspeed, 420.0)
        speed[id] = true
     
}
     case 5:
     {
    if(i_Invisible[id])
    {
      i_Invisible[id] = true
 set_user_rendering
(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,10)
       }
       else
       
{
         i_Invisible[id] = false
       
}
     }
        case 9: return PLUGIN_HANDLED;
    }
    return Show_Menu(id);
}
 


В чём проблема, хелпуйте, первый раз с таким сталкиваюсь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Message
 
Сообщения: 1
Зарегистрирован: 02 окт 2018, 21:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn CS 1.6

Re: Проблема с меню, помогите.

Сообщение hren_morjovui » 25 авг 2019, 11:46

Я вот так делал, вроде удобно и понятно :-)

Код: Выделить всё

const KEYSMENU 
= 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;
    
public plugin_init
()
{
    //Регистрация плагина в системе
    register_plugin(PLUGIN, VERSION, AUTHOR);

    register_clcmd("arcana","arc_menu");
    register_clcmd("say /arcana","arc_menu");
    
    register_menu
("ARCANA MENU", KEYSMENU, "arc_menu_action");
}

//Вызов меню при помощи команд
public arc_menu(player_id)
{
    show_arc_menu(player_id);
}

//Показ меню
show_arc_menu(player_id)
{
    static menu[300], len;
    len = 0;
    
    
//Заголовок меню
    len += formatex(menu[len], charsmax(menu) - len, "\yЛетние возможности^n^n");
    
    
// 1.
    len += formatex(menu[len], charsmax(menu) - len, "\r1.\w Первый пункт");

    // 0. Выход
    len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w Выход");
    
    show_menu
(player_id, KEYSMENU, menu, -1, "ARCANA MENU");
}
//Взаимодействие с меню
public arc_menu_action(player_id, key)
{
    switch (key)
    {
        case 0: // Первый пункт
        {
            client_print(0,print_chat,"Первый пункт выбран");
        }
    }
    
    return PLUGIN_HANDLED
;
}
 


Добавлено спустя 5 минут 38 секунд:
А если нужно только для админов меню или какие-то пункты выбрать то я так делаю

Код: Выделить всё
#define ACCESS_FLAGS        "k" //флаг(и) доступа
public client_putinserver(player_id)
{
    player_access[player_id] = ((get_user_flags(player_id) & read_flags(ACCESS_FLAGS)) ? true : false);
}


ну и дальше в меню или где либо просто проверяешь

Код: Выделить всё
if(player_access[player_id])
   client_print(0,print_chat,"Ура! У Вас есть нужные флаги!");
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Проблема с меню, помогите.

Сообщение артист666 » 26 сен 2019, 17:21

Меню создателя. :ROFL:
Ох и любят школьники строить из себя Бога...
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], xhewal и гости: 4

cron