Добавить вызов команды в PUG

Сообщения
162
Реакции
4
Помог
3 раз(а)
Всем привет. Подскажите , как добавить в PUG вывод команды не только через . , а через /? Пробовал вот так:

Код:
public SayHandle(id)
{
    new Args[192];
    read_args(Args,charsmax(Args));
    remove_quotes(Args);

-    if((Args[0] == '.') || (Args[0] == '!'))
+    if((Args[0] == '.') || (Args[0] == '!') || (Args[0] == '/'))
    {
    
        client_cmd(id,Args);
        return PLUGIN_HANDLED;
    }

    return PLUGIN_CONTINUE;
}
Не помогло. Вывод через / по прежнему не работает. В чем может быть причина?
 
Последнее редактирование модератором:
Сообщения
3,364
Реакции
1,476
Помог
124 раз(а)
Dmitriy Korolev, чат-менеджер установлен? Если да, то там скорее всего блокируются сообщения со слешем.
 
Сообщения
62
Реакции
129
Помог
4 раз(а)
Замени еще функцию тут
https://github.com/SmileYzn/CS_PugM...xmodx/scripting/include/PugStocks.inc#L64-L80

на эту
Код:
stock PugRegCommand(const Command[],const Function[],Flags = 0,const Info[] = "",bool:Translate = true)
{
    static Buffer[16];
    formatex(Buffer,charsmax(Buffer),(Flags == ADMIN_ALL) ? ".%s" : "!%s",Command);

    new Key[64];
    copy(Key, charsmax(Key), Info);
    if(Key[0] && Translate)
    {
        format(Key,charsmax(Key),"%L",LANG_SERVER,Key);
    }
    
    register_clcmd(Buffer,Function,Flags,Key);
    if(Flags == ADMIN_ALL)
    {
        formatex(Buffer,charsmax(Buffer),"/%s",Command);
        register_clcmd(Buffer,Function,Flags,Key);
    }
}
 
Сообщения
62
Реакции
129
Помог
4 раз(а)
UPD
А вообще по-хорошему надо избавиться от костылей client_cmd и сделать так
Код:
stock PugRegCommand(const Command[],const Function[],Flags = 0,const Info[] = "",bool:Translate = true)
{
    static Buffer[16];

    new Key[64];
    copy(Key, charsmax(Key), Info);
    if(Key[0] && Translate)
    {
        format(Key,charsmax(Key),"%L",LANG_SERVER,Key);
    }
    
    new prefixes[3] = {"", "say ", "say_team "};
    new size = sizeof(prefixes);
    if(Flags == ADMIN_ALL) {
        for(new i = 0; i < size; i++) {
            formatex(Buffer,charsmax(Buffer),"%s.%s",prefixes[i],Command);
            register_clcmd(Buffer,Function,Flags,Key);
            formatex(Buffer,charsmax(Buffer),"%s/%s",prefixes[i],Command);
            register_clcmd(Buffer,Function,Flags,Key);
        }
    } else {
        for(new i = 0; i < size; i++) {
            formatex(Buffer,charsmax(Buffer),"%s!%s",prefixes[i],Command);
            register_clcmd(Buffer,Function,Flags,Key);
        }
    }
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу