Difference between revisions of "Overriding Command Access (SourceMod)/ru"

From AlliedModders Wiki
Jump to: navigation, search
(Created page with "Эта статья объясняет, как без изменений исходных кодов плагина, вы можете изменить флаги доступ...")
 
m (Yurizhou moved page Ru:Overriding Command Access (SourceMod) to Overriding Command Access (SourceMod)/ru: change to new template to help developers jump from the english version)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Эта статья объясняет, как без изменений исходных кодов плагина, вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.
+
{{Languages|Overriding Command Access (SourceMod)}}
 +
Эта статья объясняет, как без изменений исходных кодов плагина вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.
  
 
=Вступление=
 
=Вступление=
Переопределение доступа к коменде - один из самых мощных аспектов SourceMod администрирования. Оно позволяет вам:
+
Переопределение доступа к команде - один из самых мощных аспектов системы администрирования SourceMod. Оно позволяет вам:
 
*Настроить доступ к любой команде администратора без изменения исходного кода плагина;
 
*Настроить доступ к любой команде администратора без изменения исходного кода плагина;
 
*Изменить доступ к целой группе команд без изменений исходного кода;
 
*Изменить доступ к целой группе команд без изменений исходного кода;
*Создать настраивыемые уровни доступа;
+
*Создать настраиваемые уровни доступа;
 
*Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.
 
*Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.
  
Line 16: Line 17:
 
Например, плагин требует доступ к флагу "g", чтобы использовать команду <tt>sm_map</tt>. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для <tt>sm_map</tt> на "k" (или любой другой).
 
Например, плагин требует доступ к флагу "g", чтобы использовать команду <tt>sm_map</tt>. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для <tt>sm_map</tt> на "k" (или любой другой).
  
Другой случай: плагин может требовать доступ к <tt>sm_map</tt>, чтобы использовать особый пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к <tt>sm_map</tt>, а не иметь флаг целиком.
+
Другой случай: плагин может требовать доступ к <tt>sm_map</tt>, чтобы использовать пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к <tt>sm_map</tt>, а не иметь флаг целиком.
  
 
Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к <tt>plugin_crab_usage</tt>, а это не является командой. Вместо этого плагин подразумевает "значение по умолчание" как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.
 
Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к <tt>plugin_crab_usage</tt>, а это не является командой. Вместо этого плагин подразумевает "значение по умолчание" как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.
Line 35: Line 36:
 
Overrides
 
Overrides
 
{
 
{
"[имя1]" "[флаги]"
+
"[имя1]" "[флаги]"
 
"@[группа1]" "[флаги]"
 
"@[группа1]" "[флаги]"
 
/* ... */
 
/* ... */
Line 52: Line 53:
 
Стоит заметить, что клиент должен будет обладать '''всеми''' флагами доступа, указанными в переопределении.
 
Стоит заметить, что клиент должен будет обладать '''всеми''' флагами доступа, указанными в переопределении.
  
=Настройка групп=
+
=Настройка Групп=
 
Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.
 
Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.
  

Latest revision as of 10:52, 10 September 2019

Language: English  • русский • 中文

Эта статья объясняет, как без изменений исходных кодов плагина вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.

Вступление

Переопределение доступа к команде - один из самых мощных аспектов системы администрирования SourceMod. Оно позволяет вам:

  • Настроить доступ к любой команде администратора без изменения исходного кода плагина;
  • Изменить доступ к целой группе команд без изменений исходного кода;
  • Создать настраиваемые уровни доступа;
  • Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.

Изменение прав доступа к SourceMod объекту называется переопределением (оверрайд, override). Переопределение - это произвольная строка. Если переопределенная строка совпадает с именем команды, то тогда доступ к команде будет унаследован от переопределения.

Это очень важно по двум причинам:

  • Переопределение может изменить доступ к команде.
  • Переопределение может использоваться как настраиваемый флаг доступа.

Например, плагин требует доступ к флагу "g", чтобы использовать команду sm_map. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для sm_map на "k" (или любой другой).

Другой случай: плагин может требовать доступ к sm_map, чтобы использовать пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к sm_map, а не иметь флаг целиком.

Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к plugin_crab_usage, а это не является командой. Вместо этого плагин подразумевает "значение по умолчание" как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.

Типы Переопределений

Переопределения бывают двух видов: переопределение команды и переопределение групп команд.

Переопределение команды переопределяет уровень доступа, если у переопределения и у команды одинаковые названия. В этом случае команда автоматически наследует уровень доступа у переопределения. Пример: если существует переопределение для sm_map, то тогда любая команда администратора, имеющая название sm_map будет наследовать эти разрешения.

По аналогии с этим, переопределение групп команд переопределяет уровни доступа для всех команд, которые относятся к этой группе. Пример: Если существует переопределение групп команд для CSDM, то все команды администратора, отмеченные как "CSDM" унаследуют такие же права доступа.

Глобальная конфигурация

Уровни доступа для переопределений могут быть глобально переопределены через configs/admin_overrides.cfg. Формат файла очень прост:

Overrides
{
	"[имя1]"	"[флаги]"
	"@[группа1]"	"[флаги]"
	/* ... */
}

Группы команд отмечаются установкой символа ('@') перед названием. Пример:

Overrides
{
	"sm_map"	"k"	//Изменить доступ к команде "sm_map" на "k" флаг.
	"@CSDM"		"m"	//Изменяет доступ ко всем CSDM командам на "m" флаг.
	"sm_chat"	""	//Позволяет всем использовать "sm_chat"
}

Стоит заметить, что клиент должен будет обладать всеми флагами доступа, указанными в переопределении.

Настройка Групп

Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.

Для более подробной информации посетите Adding Groups.