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

Не отправляются команды в меню

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

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

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

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

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

Не отправляются команды в меню

Сообщение bristol » 11 фев 2017, 17:45

Здравствуйте, подскажите что может быть не так в коде, последние 3 команды не работают, при нажатии на них меню просто закрывается, проверял протектором и принтил нажатие в чат, команды просто не отправляются клиенту почему то.

Код: Выделить всё
Show_ManageSoundMenu(id)
{
    jbe_informer_offset_up(id);
    new szMenu[512], iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<8|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\y%L^n^n", id, "JBE_MENU_MANAGE_SOUND_TITLE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[1] \w%L^n", id, "JBE_MENU_MANAGE_SOUND_STOP_MP3");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[2] \w%L^n", id, "JBE_MENU_MANAGE_SOUND_STOP_ALL");
    if(g_iRoundSoundSize)
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[3] \w%L \r[%L]^n", id, "JBE_MENU_MANAGE_SOUND_ROUND_SOUND", id, IsSetBit(g_iBitUserRoundSound, id) ? "JBE_MENU_ENABLE" : "JBE_MENU_DISABLE");
    }
    else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[3] \d%L \r[%L]^n", id, "JBE_MENU_MANAGE_SOUND_ROUND_SOUND");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[4] \w%L^n", id, "JBE_MENU_MANAGE_SOUND_CAM");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[5] \w%L^n", id, "JBE_MENU_MANAGE_SOUND_EMOTION");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[6] \w%L^n^n^n^n^n^n", id, "JBE_MENU_MANAGE_SOUND_DANCE");
    
    iLen 
+= formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[9] \w%L", id, "JBE_MENU_BACK");
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[0] \w%L", id, "JBE_MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_ManageSoundMenu");
}

public Handle_ManageSoundMenu(id, iKey)
{
    switch(iKey)
    {
        case 0: client_cmd(id, "mp3 stop");
        case 1: client_cmd(id, "stopsound");
        case 2: InvertBit(g_iBitUserRoundSound, id);
        case 3: client_cmd(id, "say /cam");
        case 4: client_cmd(id, "impulse 100");
        case 5: client_cmd(id, "say /dance");
        case 8:
        {
            switch(g_iUserTeam[id])
            {
                case 1: return Show_MainPnMenu(id);
                case 2: return Show_MainGrMenu(id);
            }
        }
        case 9: return PLUGIN_HANDLED;
    }
    return Show_ManageSoundMenu(id);
}
Аватара пользователя
bristol
 
Сообщения: 144
Зарегистрирован: 19 мар 2013, 22:44
Откуда: Донецк
Благодарил (а): 86 раз.
Поблагодарили: 19 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Не отправляются команды в меню

Сообщение flymic24 » 11 фев 2017, 21:27

bristol, скорее всего у вас свежий build сервера. Там вроде как после обновления Valve запрещена отправка некоторых команд клиенту.
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Не отправляются команды в меню

Сообщение NEoMASTERR » 11 фев 2017, 21:30

Лучше в сторонних плагинах сделать нативы и вызывать их из этого
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Не отправляются команды в меню

Сообщение Subb98 » 11 фев 2017, 21:34

Или callfunc:

Код: Выделить всё
CallSpectateFunction(id)
{
    static 
plugin = -1func = -1pluginType 0;
    if( 
plugin == -)
    {
        
plugin is_plugin_loaded("Invisible Spectator");
        if( 
plugin )
        {
            
func get_func_id("make_invis"plugin); // old version
            
if( func == -)
            {
                
func get_func_id("ClCmd_Spectate"plugin); // orpheu version
                
if( func != -)
                {
                    
// ops, something went wrong !!
                    
pluginType 2// orpheu
                
}
            }
            else
            {
                
pluginType 1;
            }
        }
    }

    if( 
func != -)
    {
        if( 
callfunc_begin_i(funcplugin) )
        {
            
callfunc_push_int(id);
            if( 
pluginType == )
            {
                
callfunc_push_int(ADMIN_BAN);
            }
            
callfunc_end();
        }
    }

Вы должны зарегистрироваться, чтобы видеть ссылки.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Не отправляются команды в меню

Сообщение Vaas » 14 фев 2017, 18:25

Проверь,

menu_init()
{
register_menucmd(register_menuid("Show_ManageSoundMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<8|1<<9), "Handle_ManageSoundMenu");
}
Аватара пользователя
Vaas
 
Сообщения: 47
Зарегистрирован: 25 май 2016, 16:02
Благодарил (а): 12 раз.
Поблагодарили: 8 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pascal
Pawn
Pawno
c++
php
js

Re: Не отправляются команды в меню

Сообщение NEoMASTERR » 14 фев 2017, 18:28

bristol писал(а):iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<8|1<<9)

На этапе регистрации меню можно 1023
Код: Выделить всё
register_menu("title"1023"function"
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


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

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

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