Если нет админ-прав вывести меню

Broudy Rose

Участник
Сообщения
157
Реакции
22
Сразу сори за тему, ибо есть чудный плагин MF Admin Info, но который только на SM17, по идее работает и на SM163(которая у меня), но крашит сервер + нет исходников, сам бы удалил неработающую и не нужную часть кода.
Можно, пожалуйста, сделать так, что бы: если игрок не имеет права - выводилось меню с одной кнопкой выйти и текстом.
Пожалуйста:oops:
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
  • Команда форума
  • #2
@giSh5297, исходный код старый, тему вообще обещали удалить, если автор не обновит исходник там.
Оффтоп
 

Broudy Rose

Участник
Сообщения
157
Реакции
22
ОффтопДа, тему всю прочитал, знаю.
Обновиться бы до 173, но я привык к стабильности 163, с ней проблем никаких.
Надеюсь, кто-нибудь сделает за меня плагин:biggrin:
sp только на уровне удалить/заменить понимаю:ab:
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
  • Команда форума
  • #4
@giSh5297, насколько известно мне 1.7.3 ни чуть не хуже по стабильности.
 

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
  • Команда форума
  • #6
@giSh5297, ну все что тебе смогут сделать, это либо с версии 1.1.0, либо с декомпиля 1.2.1, что несомненно лучше первый вариант.
Либо чистить от мусора декомпиль.
 

Allen

love society
Сообщения
352
Реакции
274
  • Команда форума
  • #9
@Rabb1t, уже искал sp 1.1.0 версии, не нашёл, поделишься?
Попробуй.
PHP:
#include <sourcemod>

new bool:IsClientAdmin[MAXPLAYERS + 1] = {false, ...};

public OnPluginStart()
{
AddCommandListener(Admin, "sm_admin");
OnRebuildAdminCache(AdminCache_Overrides);
}

public OnRebuildAdminCache(AdminCachePart:part)
{
for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i))
{
OnClientPostAdminCheck(i);
}
}
}

public OnClientPostAdminCheck(client)
{
if (!IsFakeClient(client))
{
IsClientAdmin[client] = GetUserAdmin(client) != INVALID_ADMIN_ID ? true : false;
}
}

public Action:Admin(client, const String:command[], args)
{
if (client > 0)
{
if (!IsClientAdmin[client])
{
ShowMyPanel(client);
}
}
}

ShowMyPanel(client)
{
new Handle:panel = CreatePanel();
SetPanelTitle(panel, "У вас нету доступа к админке:\n \n");
DrawPanelItem(panel, "Текст");
 

Allen

love society
Сообщения
352
Реакции
274
  • Команда форума
  • #11
Где остальная "буханка"? Оффтоп
Сьел.

PHP:
#include <sourcemod>

#define CONTACTS "Текст"
#define CASH "Текст"

new Handle:hPanel = INVALID_HANDLE;

new bool:IsClientAdmin[MAXPLAYERS + 1] = {false, ...};

public OnPluginStart()
{
      AddCommandListener(ACL_Admin, "sm_admin");

      hPanel = CreatePanel();
      SetPanelTitle(hPanel, "У вас нет доступа к правам администратора");

      decl String:buffer[256];
      Format(buffer, sizeof(buffer), "Контакты: %s\nСтоимость: %s", CONTACTS, CASH);
      DrawPanelText(hPanel, buffer);

      OnRebuildAdminCache(AdminCache_Overrides);
}

public OnRebuildAdminCache(AdminCachePart:part)
{
      for (new i = 1; i <= MaxClients; i++)
      {
          if (IsClientInGame(i))
          {
              OnClientPostAdminCheck(i);
          }
      }
}
     
public OnClientPostAdminCheck(client)
{
      if (!IsFakeClient(client))
      {
          IsClientAdmin[client] = GetUserAdmin(client) != INVALID_ADMIN_ID ? true : false;
      }
}

public Action:ACL_Admin(client, const String:command[], args)
{
      if (client > 0)
      {
          if (!IsClientAdmin[client])
          {
              SendPanelToClient(hPanel, client, PanelHandler, 30);
          }
      }
}

public PanelHandler(Handle:panel, MenuAction:action, param1, param2)
{
  //Panel Handler...
}
 
Последнее редактирование:
Сверху Снизу