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

Отлов бай меню

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

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

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

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

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

Отлов бай меню

Сообщение tempo » 18 фев 2018, 11:57

Есть такой вариант отлова бай меню , но хотел еще варианты? более правильный вариант
Код: Выделить всё
#include <amxmodx>

new const g_szBuyCommands[][] =
{
    
"usp""glock""deagle""p228""elites",
    
"fn57""m3""xm1014""mp5""tmp""p90",
    
"mac10""ump45""ak47""galil""famas",
    
"sg552""m4a1""aug""scout""awp""g3sg1",
    
"sg550""m249""vest""vesthelm""flash",
    
"hegren""sgren""defuser""nvgs""shield",
    
"primammo""secammo""km45""9x19mm""nighthawk",
    
"228compact""fiveseven""12gauge""autoshotgun",
    
"mp""c90""cv47""defender""clarion""krieg552",
    
"bullpup""magnum""d3au1""krieg550",
    
"buy""buyequip""cl_autobuy",
    
"cl_rebuy""cl_setautobuy""cl_setrebuy""client_buy_open"
};

enum _:MESSAGES
{
    
BuyClose 0
};

new 
g_MsgID[MESSAGES];

public 
plugin_init()
{
    
g_MsgID[BuyClose] = get_user_msgid("BuyClose");
    
    new 
iBuyCommands;
    
    for (
iBuyCommands 0iBuyCommands sizeof g_szBuyCommandsiBuyCommands++)
    {
        
register_clcmd(g_szBuyCommands[iBuyCommands], "Command_BuyMenu");
    }
}

public 
Command_BuyMenu(id)
{
    if (!
is_user_alive(id))
    {
        return 
PLUGIN_CONTINUE;
    }
    
    
Show_Menu(id);
    
    return 
PLUGIN_HANDLED;
}

public 
Show_Menu(id)
{
    if (!
is_user_alive(id))
    {
        return 
PLUGIN_HANDLED;
    }
    
    
// Закрываем вгю меню
    
message_begin(MSG_ONEg_MsgID[BuyClose], _id);
    
message_end();
    
    
// здесь мой меню
    
    
return PLUGIN_HANDLED;
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Отлов бай меню

Сообщение tempo » 18 фев 2018, 19:26

не забанят ли мониторингах за отключения vgui?
Код: Выделить всё
#pragma semicolon 1

#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    
register_message(MSG_STATUSICON"StatusIcon_Hook");

    
register_clcmd("cl_setrebuy",  "Command_BlockAutoReBuy");
    
register_clcmd("cl_setautobuy""Command_BlockAutoReBuy");
    
    
register_clcmd("buy""Command_BuyMenu");
    
register_clcmd("buyequip""Command_BuyEquip");
}

public 
client_infochanged(id)
{
    new 
szInfo[32];
    
    
get_user_info(id"_vgui_menus"szInfocharsmax(szInfo));
    
    if (
equal(szInfo"1"1))
    {
        
client_cmd(id"setinfo _vgui_menus 0");
    }
}

public 
Command_BuyMenu(id)
{
    
// Здесь код
    
    
    
return PLUGIN_HANDLED;
}

public 
Command_BuyEquip(id)
{
    if (!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
    
    
// Здесь код
    
    
return PLUGIN_HANDLED;
}

public 
Command_BlockAutoReBuy(id) return PLUGIN_HANDLED
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Отлов бай меню

Сообщение Subb98 » 18 фев 2018, 21:01

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

Re: Отлов бай меню

Сообщение Hilarious » 19 фев 2018, 02:22

Код: Выделить всё
client_cmd(id, "setinfo _vgui_menus 0"); 

Не сработает на Steam клиенте.
Проще при открытии меню игры подсунуть своё меню, но не таким способом, который у тебя. В контре насколько я помню 2 вида: графическое и текстовое, подменять нужно будет оба. Потому что ты же не знаешь какой квар меню у клиентов.

Код: Выделить всё
//Графическое меню
register_message(get_user_msgid("VGUIMenu"), "vgui_menu");

//Текстовое
register_message(get_user_msgid("ShowMenu"), "old_style_menu");

public old_style_menu(msgid, dest, id)
{
    new old_menu[6]

    get_msg_arg_string(4, old_menu, charsmax(old_menu))

    switch (old_menu[4])
    {

        //Меню покупки, выяснить что блокировать поможет client_print, либо вывод в консоль
                    покажет какую букву нужно поймать
        case 
????:
        {
                        //выполняется твой код, точнее открываешь своё меню покупки
            return PLUGIN_HANDLED;

        }
    }

    return PLUGIN_CONTINUE;


С графическим также
В матрице :-[
Аватара пользователя
Hilarious
 
Сообщения: 69
Зарегистрирован: 07 фев 2018, 08:46
Благодарил (а): 6 раз.
Поблагодарили: 29 раз.

Re: Отлов бай меню

Сообщение tempo » 19 фев 2018, 11:35

Hilarious, я не совсем понял ваш пример для чего массив , можно по подробнее ?
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Отлов бай меню

Сообщение Hilarious » 19 фев 2018, 11:52

Количество символов в слове, ну там можно и больше или вообще неопределенно запросить, просто больше 2-6 не требуется, достаточно первую букву меню получить. А 6, ну поставь 4, 6 же красиво)
case V:
case A:
В матрице :-[
Аватара пользователя
Hilarious
 
Сообщения: 69
Зарегистрирован: 07 фев 2018, 08:46
Благодарил (а): 6 раз.
Поблагодарили: 29 раз.

Re: Отлов бай меню

Сообщение DeMNiX » 19 фев 2018, 13:24

байменю vgui так не заблокировать
уже на двух ресурсах вам ответили
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
Аватара пользователя
DeMNiX
 
Сообщения: 177
Зарегистрирован: 24 сен 2011, 17:48
Благодарил (а): 25 раз.
Поблагодарили: 37 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7