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

Получить флаги игрока в 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
Модератор
 
Сообщения: 2175
Зарегистрирован: 24 ноя 2011, 08:03
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 542 раз.
Опыт программирования: Больше трех лет
Языки программирования: С/C++
Pawn
Прочее...

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
Модератор
 
Сообщения: 2175
Зарегистрирован: 24 ноя 2011, 08:03
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 542 раз.
Опыт программирования: Больше трех лет
Языки программирования: С/C++
Pawn
Прочее...

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

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

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

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

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

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

sa1me, упс. Я что-то как-то пропустил эту функцию в AmxModX-e.
Тогда её, вроде, вполне реально и из метабода дёрнуть. Но это я потом проверю.)

"Незнание английского языка, это ваша проблема."

Плагинами на заказ не занимаюсь. Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2175
Зарегистрирован: 24 ноя 2011, 08:03
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 542 раз.
Опыт программирования: Больше трех лет
Языки программирования: С/C++
Pawn
Прочее...

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

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

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

Nosce animum tuum.
Аватара пользователя
Bos93
 
Сообщения: 1423
Зарегистрирован: 03 апр 2010, 13:44
Предупреждения: 1
Благодарил (а): 149 раз.
Поблагодарили: 503 раз.

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

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

Bos93, эээээ?!

"Незнание английского языка, это ваша проблема."

Плагинами на заказ не занимаюсь. Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2175
Зарегистрирован: 24 ноя 2011, 08:03
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 542 раз.
Опыт программирования: Больше трех лет
Языки программирования: С/C++
Pawn
Прочее...

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

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

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


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

Nosce animum tuum.
Аватара пользователя
Bos93
 
Сообщения: 1423
Зарегистрирован: 03 апр 2010, 13:44
Предупреждения: 1
Благодарил (а): 149 раз.
Поблагодарили: 503 раз.

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

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

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

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

След.

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

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

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