Проверка является ли игрок администратором.

8Ahnenerbe8

Участник
Сообщения
113
Реакции
30
В общем,решил написать простенький плагин,но мои знания в этом деле очень скудны.
Суть плагина:
Когда игрок подключается к серверу,то в чат будет вместо стандартного сообщения должно выводит другое.Если подключается обычный игрок,то будет писать "Player name connected",а если администратор,то "Admin name connected".
Вот,что получилось у меня:
PHP:
#include <sourcemod>
#include <csgo_colors>

public OnClientPostAdminCheck(client)
{
    new String:name[99]
    GetClientName(client, name, sizeof(name));
    if(OnClientPostAdminCheck == 1)
    {
      PrintToChatAll("{GREEN}[ADMIN] {DEFAULT}%s  {GREEN}connected", name);
    }
    else
    {
       PrintToChatAll("{GREEN}[PLAYER] {DEFAULT}%s {GREEN}connected", name);
    }
}
Но при компиляции выдает ошибку,значит я неправильно использую команду для проверки на то,является ли игрок админом.
Может вы подскажете,что изменить?
 

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
PHP:
#include <sourcemod>
#include <csgo_colors>

public OnClientPostAdminCheck(client)
{
new String:name[128]
GetClientName(client, name, sizeof(name));
if(GetUserFlagBits(client))
{
CGOPrintToChatAll("{GREEN}[ADMIN] {DEFAULT}%s {GREEN}connected", name);
}
else
{
CGOPrintToChatAll("{GREEN}[PLAYER] {DEFAULT}%s {GREEN}connected", name);
}
}

Пробуй.
 

8Ahnenerbe8

Участник
Сообщения
113
Реакции
30
@pracc, спасибо,но пока что времени нет,часа через два-три отпишу,получилось или нет!
 

KapaT

Эгоист
Сообщения
1,988
Реакции
535
@8Ahnenerbe8, зачем изобритать велосипед, когда уже давно все реализовано.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Если подключается обычный игрок,то будет писать "Player name connected",а если администратор,то "Admin name connected".
PHP:
#include <sourcemod>
#include <csgo_colors>

public OnClientPostAdminCheck(client)
	CGOPrintToChatAll("{GREEN}[%s] {DEFAULT}%N  {GREEN}connected", GetUserAdmin(client) != INVALID_ADMIN_ID ? "ADMIN" : "PLAYER", client);
 

alexfyodrv

Участник
Сообщения
24
Реакции
0
Здравствуйте.

Мне нужно реализовать несколько групп вип и каждой выделить отдельный флаг. Далее проверять при нанесении урона флаг админа и начислять ему дополнительный опыт, но нужно это сделать через elseif так как множители у каждой группы разные.

Несколько вопросов:
1. Как проверять является ли пользователь админом? (для общего понимания)
2. Как проверять есть ли у пользователя нужный мне флаг доступа?

Ps Напишите пожалуйста простой пример, чтобы понять как использовать данные функции.

Спасибо.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
является ли пользователь админом?
PHP:
if (GetUserAdmin(client) != INVALID_ADMIN_ID) //Игрок является админом.
есть ли у пользователя нужный мне флаг доступа?
PHP:
if (GetAdminFlag(GetUserAdmin(client), Admin_Kick)) //У игрока есть указанный флаг.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #10
@AlmazON, разве GetAdminFlag не выдаст ошибку если GetUserAdmin вернет INVALID_ADMIN_ID ?
Мне кажется лучше проверять CheckCommandAccess т.к. это дает возможность переназначить флаги для команды
 

SlipknotRU

Участник
Сообщения
35
Реакции
14
C-подобный:
stock bool CheckAdminFlag(int client) {
    AdminId admin = GetUserAdmin(client);
    AdminFlag flag;
    char vadminsflag[] = "z";

    return admin == INVALID_ADMIN_ID ? false : vadminsflag[0] && FindFlagByChar(vadminsflag[0], flag) && GetAdminFlag(admin, flag) ? true : false;
}
 
Сверху Снизу