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

Получить флаги игрока в Metamod плагине

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

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


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

Получить флаги игрока в Metamod плагине

Сообщение Hamster » 05 янв 2017, 13:30

Здравствуйте!
Можно ли как то получить флаги доступа игрока, которые присваиваются ему AMXX функцией set_user_flags в метамод плагине?
Аватара пользователя
Hamster
 
Сообщения: 3
Зарегистрирован: 05 янв 2017, 13:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
C++
C#

Re: Получить флаги игрока в Metamod плагине

Сообщение Chuvi » 06 янв 2017, 09:17

Можно, но только с помощью костыля.
Делаешь AMXX плагин, например такой

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

#define PLUGIN "GetFlags"
#define VERSION "1.0"
#define AUTHOR "Somebody"
new c_flags

public plugin_init
() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_srvcmd("GetFlags","fnGetFlags");
    c_flags=register_cvar("cv_user_flags");
    // Add your code here...
}

public fnGetFlags(id)
{
    /*
    //Вроде не нужно в серверной команде. Не помню уже.
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
    */
    new szUserId[5];
    new UserID;
    if(read_argc()!=2)
    {
        //Я вот не помню, если у нас команда вызвана с одним параметром тут будет 2, или 1?
        //Например: GetFlags 20
        set_pcvar_num(c_flags,0);
        return PLUGIN_HANDLED;
    }
    read_argv(1,szUserId,charsmax(szUserId));
    UserID=str_to_num(szUserId);
    if(!UserID||!is_user_connected(UserID))
    {
        set_pcvar_num(c_flags,0);
        return PLUGIN_HANDLED;    
    
}
    
    set_pcvar_num
(c_flags,get_user_flags(UserID));
    return PLUGIN_HANDLED;



И делаешь функцию, дёргающую эту команду и читающую значение из квара.

Код: Выделить всё
int GetUserFlags(int id)
{
    char szCmd[50];
    auto cv_flags = g_engfuncs.pfnCVarGetPointer("cv_user_flags");
    
    snprintf
(szCmd, sizeof(szCmd) - 1, "GetFlags %i", id);
    
    g_engfuncs
.pfnServerCommand(szCmd);
    g_engfuncs.pfnServerExecute();

    return cv_flags ? static_cast<int>(cv_flags->value) : 0;
}



Дикий костыль, но другого простого способа, вроде как, нет.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение Hamster » 06 янв 2017, 14:11

Тогда, наверно, придется делать не метамод плагин, а амкс модуль.
Спасибо!
Аватара пользователя
Hamster
 
Сообщения: 3
Зарегистрирован: 05 янв 2017, 13:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
C++
C#

Re: Получить флаги игрока в Metamod плагине

Сообщение Chuvi » 06 янв 2017, 20:31

Hamster, а там такой же костыль придётся использовать. xD)
Да и с модулем тоже фигня. Его нужно либо в modules.ini запихивать, либо делать плагин, которому этот модуль будет нужен, чтобы он прогрузился.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение sa1me » 06 янв 2017, 21:16

а там такой же костыль придётся использовать. xD)

Код: Выделить всё
#define MF_GetPlayerFlags g_fn_GetPlayerFlags 
Аватара пользователя
sa1me
 
Сообщения: 361
Зарегистрирован: 07 апр 2014, 20:51
Откуда: pfnAddToFullPack
Благодарил (а): 174 раз.
Поблагодарили: 177 раз.
Опыт программирования: Меньше недели

Re: Получить флаги игрока в Metamod плагине

Сообщение Chuvi » 06 янв 2017, 21:32

sa1me, упс. Я что-то как-то пропустил эту функцию в AmxModX-e.
Тогда её, вроде, вполне реально и из метабода дёрнуть. Но это я потом проверю.)
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение Bos93 » 06 янв 2017, 22:17

Орфей может перехватить натив. ОкиАпи или как там его.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение Chuvi » 06 янв 2017, 22:46

Bos93, эээээ?!
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение Bos93 » 07 янв 2017, 07:03

Chuvi писал(а):Bos93, эээээ?!


Что? Орфей может хукать amxmodx. Натив перехватил и получил пре\пост хук set_user_flags и бери его значения. Ну если я верно понял, что нужно ТСу.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получить флаги игрока в Metamod плагине

Сообщение Hamster » 07 янв 2017, 13:35

Chuvi писал(а):Тогда её, вроде, вполне реально и из метабода дёрнуть. Но это я потом проверю.)

Буду очень признателен, если покажете как :-)
Аватара пользователя
Hamster
 
Сообщения: 3
Зарегистрирован: 05 янв 2017, 13:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
C++
C#

След.

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

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

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