Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Админ на сервере
Админ на сервере
Scarface6748 Дата: Вторник, 06.03.2012, 21:16:12 | Сообщение # 1
Сообщений: 738
Репутация: 61 [ +/- ]
Хочу сделать что бы при написание определенной команды, проверялась есть ли админ на сервере или нет и потом запускалась меню, но не получается...
При написание админом команды, пишет [SM] На сервере есть админ
а если напишет простой игрок команду, то открываеться меню даже если админ на сервере(
Code
public Action:Command_scar(client, target)
{
new flags = GetUserFlagBits(client);  
if (flags & ADMFLAG_ROOT || flags & ADMFLAG_KICK)  
   {
    PrintToChat(client, "[SM] На сервере есть админ");          
   }
   else
   {
    DisplayMenu(client, target)
   }
}


Итак пробывал:
Code

public Action:Command_scar(client, target)
{
   new AdminId:AdminID = GetUserAdmin(client);
   if(AdminID != INVALID_ADMIN_ID)
   {
     PrintToChat(client, "[SM] На сервере есть админ");    
         }
   else  
   {
     DisplayMenu(client, target)
   }
}

Что не так? grust
 
_wS_ Дата: Вторник, 06.03.2012, 22:11:28 | Сообщение # 2
Чтобы проверить, есть ли админ на сервере, нужно запустить цикл по всем игрокам и проверить их флаги, а ты проверяешь только того, кто ввел команду. Попробуй так:

Code
public Action:Command_scar(client, target)
{
     decl flags;
     for (new i = 1; i <= MaxClients; i++)
     {
         if (IsClientInGame(i) && (flags = GetUserFlagBits(i)) & ADMFLAG_ROOT || flags & ADMFLAG_KICK)
         {
             ReplyToCommand(client, "[SM] На сервере есть админ");
             return Plugin_Handled;
         }
     }
     // На сервере нет админа, показываем игроку меню
     DisplayMenu(...

     return Plugin_Handled;
}


Только я не пойму, что у тебя за параметр target. Если это зарегистрированная команда, то это args обычно (количество аргументов после команды).
 
Scarface6748 Дата: Среда, 07.03.2012, 10:55:04 | Сообщение # 3
Сообщений: 738
Репутация: 61 [ +/- ]
Неа так же grust
 
_wS_ Дата: Среда, 07.03.2012, 17:21:57 | Сообщение # 4
Ой, я там ошибся, не GetUserFlagBits(client), а GetUserFlagBits(i), пробуй теперь.
 
Scarface6748 Дата: Четверг, 08.03.2012, 14:26:17 | Сообщение # 5
Сообщений: 738
Репутация: 61 [ +/- ]
Спасибо большое klas
а можешь объяснить все return?
Code

return Plugin_Handled;
return Plugin_Continue;
return true;
return false;
return;

и т.д. я понимаю что она куда то возращает ) но не совсем все понятно
еще раз спасибо=)

Добавлено (08.03.2012, 14:26:17)
---------------------------------------------
а понял нашел тут немного о них)

 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Админ на сервере
  • Страница 1 из 1
  • 1
Поиск: