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

Проверка на админа

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

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

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

Проверка на админа

Сообщение Sylvester » 09 июл 2012, 17:16

Привет всем, я бы хотел поинтересоваться, как сделать проверку на админа? Если можно с примером.
Аватара пользователя
Sylvester
 
Сообщения: 87
Зарегистрирован: 12 фев 2012, 18:51
Благодарил (а): 13 раз.
Поблагодарили: 0 раз.
Языки программирования: Нет, учусь

Re: Проверка на админа

Сообщение Chuvi » 09 июл 2012, 17:22

is_user_admin(id)
или
get_user_flags(id)&нужный флаг

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

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

Re: Проверка на админа

Сообщение Stimul » 09 июл 2012, 17:45

[pawn]
  1. #include <amxmodx>

  2. #include <amxmisc>

  3.  

  4. public plugin_init()

  5. {

  6.         register_clcmd("say /test", "ClCmdTest");

  7.         register_clcmd("say /test2", "ClCmdTest2");

  8. }              

  9.  

  10. public ClCmdTest(id)

  11. {

  12.         if(get_user_flags(id) & ADMIN_IMMUNITY)

  13.         {

  14.                 client_print(id, print_chat, "Поздравляю, у тебя есть флаг A");

  15.         }

  16.         else

  17.         {

  18.                 client_print(id, print_chat, "Тебя не с чем поздравить, у тебя нету флагов :(");

  19.         }

  20. }

  21.  

  22. public ClCmdTest2(id)

  23. {

  24.         if(is_user_admin(id))

  25.         {

  26.                 client_print(id, print_chat, "Поздравляю, ты админ!");

  27.         }

  28.         else

  29.         {

  30.                 client_print(id, print_chat, "Тебя не с чем поздравить, ты не админ :(");    

  31.         }

  32. }
[/pawn]
Аватара пользователя
Stimul
 
Сообщения: 3573
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1151 раз.
Опыт программирования: Больше трех лет

Re: Проверка на админа

Сообщение Stimul » 09 июл 2012, 18:18

Sylvester писал(а):Ну так мне нужно на sourcemod, раздел же sourcemod!

Я думал ты разделом ошибся.
Аватара пользователя
Stimul
 
Сообщения: 3573
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1151 раз.
Опыт программирования: Больше трех лет

Re: Проверка на админа

Сообщение DJ_WEST » 10 июл 2012, 09:17

Ты можешь воспользоваться функцией GetUserAdmin, которая вернут ID админа или INVALID_ADMIN_ID, если такого админа нет.

Либо можешь воспользоваться GetUserFlagBits, если нужна проверка по флагам, к примеру:
[pawn]
  1. if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
[/pawn]

Список флагов из admin_levels.cfg:
Код: Выделить всё
"reservation"   "a"         //Reserved slots
"generic"      "b"         //Generic admin, required for admins
"kick"         "c"         //Kick other players
"ban"         "d"         //Banning other players
"unban"         "e"         //Removing bans
"slay"         "f"         //Slaying other players
"changemap"      "g"         //Changing the map
"cvars"         "h"         //Changing cvars
"config"      "i"         //Changing configs
"chat"         "j"         //Special chat privileges
"vote"         "k"         //Voting
"password"      "l"         //Password the server
"rcon"         "m"         //Remote console
"cheats"      "n"         //Change sv_cheats and related commands
"custom1"      "o"
"custom2"      "p"
"custom3"      "q"
"custom4"      "r"
"custom5"      "s"
"custom6"      "t"
"root"         "z"


Список флагов для проверки по битам:
Код: Выделить всё

#define ADMFLAG_RESERVATION         (1<<0)      /**< Convenience macro for Admin_Reservation as a FlagBit */
#define ADMFLAG_GENERIC            (1<<1)      /**< Convenience macro for Admin_Generic as a FlagBit */
#define ADMFLAG_KICK            (1<<2)      /**< Convenience macro for Admin_Kick as a FlagBit */
#define ADMFLAG_BAN               (1<<3)      /**< Convenience macro for Admin_Ban as a FlagBit */
#define ADMFLAG_UNBAN            (1<<4)      /**< Convenience macro for Admin_Unban as a FlagBit */
#define ADMFLAG_SLAY            (1<<5)      /**< Convenience macro for Admin_Slay as a FlagBit */
#define ADMFLAG_CHANGEMAP         (1<<6)      /**< Convenience macro for Admin_Changemap as a FlagBit */
#define ADMFLAG_CONVARS            (1<<7)      /**< Convenience macro for Admin_Convars as a FlagBit */
#define ADMFLAG_CONFIG            (1<<8)      /**< Convenience macro for Admin_Config as a FlagBit */
#define ADMFLAG_CHAT            (1<<9)      /**< Convenience macro for Admin_Chat as a FlagBit */
#define ADMFLAG_VOTE            (1<<10)      /**< Convenience macro for Admin_Vote as a FlagBit */
#define ADMFLAG_PASSWORD         (1<<11)      /**< Convenience macro for Admin_Password as a FlagBit */
#define ADMFLAG_RCON            (1<<12)      /**< Convenience macro for Admin_RCON as a FlagBit */
#define ADMFLAG_CHEATS            (1<<13)      /**< Convenience macro for Admin_Cheats as a FlagBit */
#define ADMFLAG_ROOT            (1<<14)      /**< Convenience macro for Admin_Root as a FlagBit */
#define ADMFLAG_CUSTOM1            (1<<15)      /**< Convenience macro for Admin_Custom1 as a FlagBit */
#define ADMFLAG_CUSTOM2            (1<<16)      /**< Convenience macro for Admin_Custom2 as a FlagBit */
#define ADMFLAG_CUSTOM3            (1<<17)      /**< Convenience macro for Admin_Custom3 as a FlagBit */
#define ADMFLAG_CUSTOM4            (1<<18)      /**< Convenience macro for Admin_Custom4 as a FlagBit */
#define ADMFLAG_CUSTOM5            (1<<19)      /**< Convenience macro for Admin_Custom5 as a FlagBit */
#define ADMFLAG_CUSTOM6            (1<<20)      /**< Convenience macro for Admin_Custom6 as a FlagBit */
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3649
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2190 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Проверка на админа

Сообщение Sylvester » 11 июл 2012, 17:35

А пример можно?
Аватара пользователя
Sylvester
 
Сообщения: 87
Зарегистрирован: 12 фев 2012, 18:51
Благодарил (а): 13 раз.
Поблагодарили: 0 раз.
Языки программирования: Нет, учусь

Re: Проверка на админа

Сообщение StRiKeR.csF » 13 авг 2012, 00:40

Sylvester писал(а):А пример можно?

???
[pawn]
  1. if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
[/pawn]
Чего добился ты и бла, бла, бла
Тут, типа, посыл был, но админ его потёр :(

Skype: nestle.csf
-В чём сила, брат?
-Сила в Debug.log xD
Аватара пользователя
StRiKeR.csF
Скриптер
 
Сообщения: 771
Зарегистрирован: 03 июн 2011, 06:26
Откуда: Кубань
Благодарил (а): 125 раз.
Поблагодарили: 181 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++
C#
JavaScript
PHP(+MySQL)
Assembler

Re: Проверка на админа

Сообщение voin_iz_tmy » 21 янв 2013, 20:33

Народ а вот так можно?
[pawn]
  1.  

  2. get_user_flags(id) & ADMIN_LEVEL_D

  3.  
[/pawn]

Если помог-жми спасибо!
Аватара пользователя
voin_iz_tmy
 
Сообщения: 37
Зарегистрирован: 17 янв 2013, 21:48
Благодарил (а): 3 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6
PHP+HTML+CSS


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

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

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