<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reiko1231</id>
	<title>AlliedModders Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reiko1231"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/Reiko1231"/>
	<updated>2026-05-28T08:30:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Menu_API_(SourceMod)%3Dru&amp;diff=9304</id>
		<title>Menu API (SourceMod)=ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Menu_API_(SourceMod)%3Dru&amp;diff=9304"/>
		<updated>2013-11-20T15:15:22Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: added ru translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SourceMod обладает большим API для создания и отображений меню для клиентов. В отличии от AMX Mod X, API SourceMod'a обладает широким функционалом. Меню базируются на обратных вызовах (callbacks), которые гарантированно будут вызваны.&lt;br /&gt;
&lt;br /&gt;
Для C++, API меню может быть найдено в &amp;lt;tt&amp;gt;public/IMenuManager.h&amp;lt;/tt&amp;gt;. Для SourcePawn - &amp;lt;tt&amp;gt;scripting/include/menus.inc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Объекты=&lt;br /&gt;
Система меню SourceMod основана на объектно ориентированной иерархии. Понимание этой иерархии, даже для скриптинга, является ключевым моментом для эффективного использования меню.&lt;br /&gt;
&lt;br /&gt;
==Стили==&lt;br /&gt;
Высший уровень объектов называется ''MenuStyle'' (&amp;lt;tt&amp;gt;IMenuStyle&amp;lt;/tt&amp;gt; в C++). Стили описывают уникальную систему меню. Всего есть два стиля, встроенных в SourceMod:&lt;br /&gt;
*Valve Styly, так же называемым &amp;quot;ESC&amp;quot; меню; 8 пунктов на странице, нельзя добавить текст без занятия слота или спрятать (отключить) текст.&lt;br /&gt;
*Radio Style, так же называемый &amp;quot;AMX&amp;quot; меню; 10 пунктов на странице, можно добавить любой текст.&lt;br /&gt;
&lt;br /&gt;
Каждый MenuStyle обладает своими правилами и свойствами. Вы можете считать, что каждый из них существует на раздельных &amp;quot;каналах&amp;quot;. Например, два разных меню могут быть на экране игрока, будучи Valve и Radio меню одновременно, и SourceMod сможет обработать их обоих без всяких проблем. Это всё возможно благодаря тому, что каждый стиль отслеживает свои меню отдельно.&lt;br /&gt;
&lt;br /&gt;
==Панели==&lt;br /&gt;
Меню низшего уровня называется ''Панелью'' (&amp;lt;tt&amp;gt;IMenuPanel&amp;lt;/tt&amp;gt; в C++). Панель - один ''''кусок'''' текста. Пункты и текст могут добавляться к панели столько раз, сколько поддерживает родительский стиль. Например, Valve стиль не поддерживает отображение текста без занятия слота или отключенных пунктов. Однако с Radio стилем панели это становится возможным, и вы можете отобразить большое количество текста так, как вам это захочется. &lt;br /&gt;
&lt;br /&gt;
Панель считается временным объектом. Она создается, рендерится, отображается, и затем удаляется. Хотя она может быть сохранена на неопределенное время, если в этом есть необходимость.&lt;br /&gt;
&lt;br /&gt;
Правила и ограничения Vavle стиля:&lt;br /&gt;
*Максимум пунктов на странице: 8&lt;br /&gt;
*Отключенный текст не отображается.&lt;br /&gt;
*Нельзя написать текст, не заняв слота.&lt;br /&gt;
*Пробелы не добавляются к пробелам\новым линиям, добавляя чувство &amp;quot;ограниченности&amp;quot;. &lt;br /&gt;
*Пользователь должен нажать &amp;quot;ESC&amp;quot; или быть в своей консоли, чтобы увидеть меню.&lt;br /&gt;
&lt;br /&gt;
Правила и ограничения Radio стиля:&lt;br /&gt;
*10 пунктов на странице&lt;br /&gt;
*Заглавия белые; пункты желтые, если не отключены. Если отключены, то белого цвета.&lt;br /&gt;
*Нулевой элемент всегда белый. Для согласованности это значит, что навигационное управление всегда белое и находится в следующей секции, и просто не отрисовывается, если отсутствует.&lt;br /&gt;
&lt;br /&gt;
==Меню==&lt;br /&gt;
Наконец, есть просто ''Меню'' (&amp;lt;tt&amp;gt;IBaseMenu&amp;lt;/tt&amp;gt; in C++). Это вспомогательный объект, созданный для хранения базированных на меню выбираемых пунктов. В отличии от низкоуровневых панелей, меню содержит '''пункты''', и может содержать только те пункты, которые можно выбрать (т.е. занимающие слоты). Они делятся на две категории:&lt;br /&gt;
*Не нумерованные: эти меню могут иметь определенное число пунктов, и не имеют навигационных опций, кроме кнопки &amp;quot;Выход&amp;quot;, которая всегда добавляется на последнюю позицию, поддерживаемую стилем.&lt;br /&gt;
**Valve Стиль: максимум пунктов: 8&lt;br /&gt;
**Radio Стиль: максимум пунктов: 10&lt;br /&gt;
*Нумерованные: такие меню могут содержать сколь угодно пунктов. Во время отображения будет показано только определенное число пунктов. Автоматически будут добавлены навигационные пункты, таким образом, игроки легко могут возвращаться назад и вперед к определенным &amp;quot;страницам&amp;quot; пунктов меню.&lt;br /&gt;
**&amp;quot;Назад&amp;quot; всегда отображается как первый навигационный пункт, третий с конца поддерживаемых позиций. Не будет добавлен, если меню содержит только одну страницу. Если нет никаких предыдущих страниц, текст никогда не будет отображен, ни в каком стиле. Если возможно, то меню будет дополнено необходимыми пробелами.&lt;br /&gt;
***Valve Стиль, позиция: 6&lt;br /&gt;
***Radio Стиль, позиция: 8&lt;br /&gt;
**&amp;quot;Вперед&amp;quot; всегда отображается как второй навигационный пункт, второй с конца из доступных позиций. Не отображается, если меню состоит из одной страницы. Если нет следующих страниц, то текс не будет отображен при любом стиле. Если возможно, то меню будет дополнено необходимыми пробелами.&lt;br /&gt;
***Valve Стиль, позиция: 7&lt;br /&gt;
***Radio Стиль, позиция: 9&lt;br /&gt;
**&amp;quot;Выход&amp;quot; отображается, если у меню включена кнопка &amp;quot;выход&amp;quot;. Всегда занимает последнюю из возможных позиций&lt;br /&gt;
***Valve Стиль, позиция: 8&lt;br /&gt;
***Radio Стиль, позиция: 10&lt;br /&gt;
&lt;br /&gt;
Цель меню - упростить процедуру хранения, отображения, и вычисления выбранного пункта. Таким образом, меню не позволяет добавлять пустой текст, так как это значительно усложняет алгоритм отображения.  &lt;br /&gt;
&lt;br /&gt;
Внутренне, меню отображается через ''RenderMenu'' алогритм. Этот алгоритм создает временную панель и заполняет её пунктами из меню. Эта панель отображается клиенту. Алгоритм пытается создать свободное перемещение по всем меню, и по всем стилям. Таким образом, все меню отображаются через &amp;lt;tt&amp;gt;IBaseMenu&amp;lt;/tt&amp;gt; класс, или &amp;lt;tt&amp;gt;Menu&amp;lt;/tt&amp;gt; дескрипторы (Handles), и будет выглядеть и действовать так же, как и меню API, основанное на панельном API.&lt;br /&gt;
&lt;br /&gt;
=Обратные вызовы (callbacks)=&lt;br /&gt;
==Краткий обзор==&lt;br /&gt;
Меню базируются на системе обратных вызовов. Каждый обратный вызов предоставляет собой действие, которые происходят во время ''цикла отображения меню''. Цикл состоит из множества уведомлений:&lt;br /&gt;
*Начало уведомления.&lt;br /&gt;
**Уведомление об отображении, если меню может быть отображено клиенту.&lt;br /&gt;
**Уведомление о выборе пункта или кнопки отмены.&lt;br /&gt;
*Конец уведомления.&lt;br /&gt;
&lt;br /&gt;
Так как ''End'' обозначает конец полного цикла отображения, то обычно его используют для уничтожения временных меню.&lt;br /&gt;
&lt;br /&gt;
==Спецификация==&lt;br /&gt;
Детальное объяснение этих событий ниже. Для C++, &amp;lt;tt&amp;gt;IBaseMenu&amp;lt;/tt&amp;gt; указатель всегда доступен. Для SourcePawn, &amp;lt;tt&amp;gt;Menu&amp;lt;/tt&amp;gt; хандл и &amp;lt;tt&amp;gt;MenuAction&amp;lt;/tt&amp;gt; всегда установлены в &amp;lt;tt&amp;gt;MenuHandler&amp;lt;/tt&amp;gt; callback. В отличии от C++, SourcePawn API позволяет вызвать лишь некоторые действия, если они были запрошены во время создания меню. Это сделано в целях оптимизации. Однако, эти действия не могут быть не вызваны.&lt;br /&gt;
&lt;br /&gt;
*'''Start'''. Меню было признано. Это не означает, что меню будет отображено; однако, это гарантирует, что событие &amp;quot;OnMenuEnd&amp;quot; будет вызвано.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuStart()&amp;lt;/tt&amp;gt; в C++.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Start&amp;lt;/tt&amp;gt; в SourcePawn. Не будет вызвано, если не было запрошено.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Игнорируется (всегда 0).&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Игнорируется (всегда 0).&lt;br /&gt;
*'''Display'''.  Меню отобразилось клиенту.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuDisplay()&amp;lt;/tt&amp;gt; в C++. &amp;lt;tt&amp;gt;IMenuPanel&amp;lt;/tt&amp;gt; доступны указатель и индекс клиента.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Display&amp;lt;/tt&amp;gt; в SourcePawn. Не будет вызвано, если не было запрошено.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Индекс клиента.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Хандл меню.&lt;br /&gt;
*'''Select'''. Пункт был выбран. Будет дана позиция пункта в меню, а не нажатая кнопка (если меню не является панелью) &lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuSelect()&amp;lt;/tt&amp;gt; в C++. Передаются индекс клиента и позиция пункта.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Select&amp;lt;/tt&amp;gt; в SourcePawn. Это действие всегда вызывается, вне зависимости от запроса.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Индекс клиента.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Позиция пункта.&lt;br /&gt;
*'''Cancel'''.  Отображение меню у одного из клиентов было закрыто.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuCancel()&amp;lt;/tt&amp;gt; в C++. Доступна причина закрытия.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Cancel&amp;lt;/tt&amp;gt; в SourcePawn. Это действие всегда вызывается, вне зависимости от запроса.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Индекс клиента.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Код причины закрытия меню.&lt;br /&gt;
*'''End'''. Цикл отображения меню закончился; это означает, что &amp;quot;Start&amp;quot; действие было, и одно из действий &amp;quot;Select&amp;quot; или &amp;quot;Cancel&amp;quot; так же произошло. Обычно в этом месте отчищаются ресурсы меню или само меню удаляется.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuEnd()&amp;lt;/tt&amp;gt; в C++.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt; в SourcePawn. Это действие всегда вызывается, вне зависимости от запроса.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Причина завершения меню.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: если param1 == MenuEnd_Cancelled, то здесь содержится код причины закрытия меню.&lt;br /&gt;
&lt;br /&gt;
==Панели==&lt;br /&gt;
Для панелей цикл жизни другой. Панели могут вызывать лишь два callback'а из написанных выше, и гарантируется, что один из них точно будет вызван для данного цикла отображения. Для C++, &amp;lt;tt&amp;gt;IBaseMenu&amp;lt;/tt&amp;gt; указатель будет всегда &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Для SourcePawn, меню Handle будет всегда &amp;lt;tt&amp;gt;INVALID_HANDLE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*'''Select'''.  Кнопка была нажата. Этой кнопкой может быть любое число. Например, если в панели у вас 2 пункта, то клиент может вызвать это событие, нажав &amp;quot;43&amp;quot;.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuSelect()&amp;lt;/tt&amp;gt; в C++. Передаются индекс клиента и нажатая кнопка.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Select&amp;lt;/tt&amp;gt; в SourcePawn.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Индекс клиента.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Номер нажатой клавиши.&lt;br /&gt;
*'''Cancel'''. Отображение меню у одного из клиентов было закрыто.&lt;br /&gt;
**&amp;lt;tt&amp;gt;OnMenuCancel()&amp;lt;/tt&amp;gt; в C++. Доступна причина закрытия.&lt;br /&gt;
**&amp;lt;tt&amp;gt;MenuAction_Cancel&amp;lt;/tt&amp;gt; в SourcePawn.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;: Индекс клиента.&lt;br /&gt;
***&amp;lt;tt&amp;gt;param2&amp;lt;/tt&amp;gt;: Код причины закрытия меню.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Примеры=&lt;br /&gt;
Для начала попробуем сделать очень простое меню:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Вы любите яблоки?&lt;br /&gt;
1. Да&lt;br /&gt;
2. Нет&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделаем это как меню и как панель, чтобы увидеть различия в их API.&lt;br /&gt;
&lt;br /&gt;
==Простое меню==&lt;br /&gt;
Сперва напишем наш пример через API Меню. Для пошагового руководства смотрите [[Menus Step By Step (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;public OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
	// зарегистрировали консольную команду menu_test1 для открытия меню.&lt;br /&gt;
	RegConsoleCmd(&amp;quot;menu_test1&amp;quot;, Menu_Test1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// хандл меню&lt;br /&gt;
public MenuHandler1(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	/* Если был выбран какой-либо пункт, то сообщим клиенту о его выборе. */&lt;br /&gt;
	if (action == MenuAction_Select)&lt;br /&gt;
	{&lt;br /&gt;
		new String:info[32]; // переменная для хранения выбора&lt;br /&gt;
		new bool:found = GetMenuItem(menu, param2, info, sizeof(info)); // получаем информацию о выбранном в меню пункте&lt;br /&gt;
		PrintToConsole(param1, &amp;quot;Вы нажали: %d (найдено? %d информация: %s)&amp;quot;, param2, found, info); // пишем клиенту в консоль&lt;br /&gt;
	}&lt;br /&gt;
	/* Если меню было отменено, то сообщим об этом серверу. */&lt;br /&gt;
	else if (action == MenuAction_Cancel)&lt;br /&gt;
	{&lt;br /&gt;
		PrintToServer(&amp;quot;Клиент %d' закрыл меню.  Причина: %d&amp;quot;, param1, param2);&lt;br /&gt;
	}&lt;br /&gt;
	/* Если меню &amp;quot;закончилось&amp;quot;, то удалим его из памяти */&lt;br /&gt;
	else if (action == MenuAction_End)&lt;br /&gt;
	{&lt;br /&gt;
		CloseHandle(menu);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Action:Menu_Test1(client, args)&lt;br /&gt;
{&lt;br /&gt;
	new Handle:menu = CreateMenu(MenuHandler1);&lt;br /&gt;
	SetMenuTitle(menu, &amp;quot;Вы любите яблоки?&amp;quot;);&lt;br /&gt;
	AddMenuItem(menu, &amp;quot;да&amp;quot;, &amp;quot;да&amp;quot;);&lt;br /&gt;
	AddMenuItem(menu, &amp;quot;нет&amp;quot;, &amp;quot;нет&amp;quot;);&lt;br /&gt;
	SetMenuExitButton(menu, false);&lt;br /&gt;
	DisplayMenu(menu, client, 20);&lt;br /&gt;
	&lt;br /&gt;
	return Plugin_Handled;&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несколько очень важных замечаний о этом примере:&lt;br /&gt;
*Одно из &amp;lt;tt&amp;gt;Select&amp;lt;/tt&amp;gt; или &amp;lt;tt&amp;gt;Cancel&amp;lt;/tt&amp;gt; событий всегда будет отослано обработчику действий (action handler).&lt;br /&gt;
*&amp;lt;tt&amp;gt;End&amp;lt;/tt&amp;gt; всегда будет отослано обработчику действий (action handler).&lt;br /&gt;
*Мы удаляем наше меню в &amp;lt;tt&amp;gt;End&amp;lt;/tt&amp;gt; действии, потому что наш дескриптор (Handle) нам больше не нужен. Если бы мы удалили его после &amp;lt;tt&amp;gt;DisplayMenu&amp;lt;/tt&amp;gt;, это бы отменило отображение меню клиенту.&lt;br /&gt;
*Меню по умолчанию имеет кнопку выхода. В нашем примере мы его отключили.&lt;br /&gt;
*Наше меню будет отображаться 20 секунд. Это означает, что если клиент ничего не выбрал в течении 20 секунд, то меню будет закрыто. Это обычно необходимо для меню с голосованиями. В отличии от AMX Mod X, вам не нужно создавать таймер, чтобы быть увереным, что меню &amp;quot;закончилось&amp;quot;.&lt;br /&gt;
*Мы создали и уничтожили новый дескриптор меню (Menu Handle), однако мы можем этого и не делать. Вполне допустимо создать дескриптор (Handle) один раз для всего времени жизни плагина.&lt;br /&gt;
*Чтобы нормально отображались русские буквы, кодировка файла должна быть UTF-8 (без BOOM), иначе будут квадратики вместо русских букв.&lt;br /&gt;
&lt;br /&gt;
Наше законченное меню и приложеный вывод в консоли выглядит как на картинке ниже (был выбран ответ &amp;quot;Да&amp;quot;, и картинка взята с англ вики, прим. переводчика).&lt;br /&gt;
&lt;br /&gt;
[[Image:Basic_menu_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
==Базовая панель==&lt;br /&gt;
Теперь давайте перепишем наш пример с использованием Панели вместо Меню.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;public OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
	// зарегистрировали консольную команду panel_test1 для открытия меню.&lt;br /&gt;
	RegConsoleCmd(&amp;quot;panel_test1&amp;quot;, Panel_Test1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public PanelHandler1(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	if (action == MenuAction_Select)&lt;br /&gt;
	{&lt;br /&gt;
		PrintToConsole(param1, &amp;quot;Вы выбрали: %d&amp;quot;, param2);&lt;br /&gt;
	} else if (action == MenuAction_Cancel) {&lt;br /&gt;
		PrintToServer(&amp;quot;Клиент %d' закрыл панель. Причина: %d&amp;quot;, param1, param2);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Action:Panel_Test1(client, args)&lt;br /&gt;
{&lt;br /&gt;
	new Handle:panel = CreatePanel();&lt;br /&gt;
	SetPanelTitle(panel, &amp;quot;Вы любите яблоки?&amp;quot;);&lt;br /&gt;
	DrawPanelItem(panel, &amp;quot;Да&amp;quot;);&lt;br /&gt;
	DrawPanelItem(panel, &amp;quot;Нет&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
	SendPanelToClient(panel, client, PanelHandler1, 20);&lt;br /&gt;
&lt;br /&gt;
	CloseHandle(panel);&lt;br /&gt;
	&lt;br /&gt;
	return Plugin_Handled;&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как вы можете заметить, Панели сильно отличаются от Меню:&lt;br /&gt;
*Мы можем удалить Панель как только закончим его отображать. Мы можем создать Панель один раз, и продолжать использовать его много раз, однако мы можем удалить его в любой момент, без нарушения цикла отображения клиентского меню.&lt;br /&gt;
*Обработчик Панели (Handler) получает гораздо меньше информации. Так как Панели разрабатывались как грубый вывод текста, была сохранена возможность добавления информации без занятия слота. Поэтому обработчик может знать лишь об отмене или о нажатии любой клавиши с номером.&lt;br /&gt;
*Отсутствует автоматизация. Вы не можете добавить больше определенного числа выбираемых пунктов и добавить нумерацию. Автоматический контроль требует использования тяжелого объектного API Меню.&lt;br /&gt;
&lt;br /&gt;
Наше законченная панель и приложеный вывод в консоли выглядит как на картинке ниже (был выбран ответ &amp;quot;Да&amp;quot;, и картинка взята с англ вики, прим. переводчика):&lt;br /&gt;
&lt;br /&gt;
[[Image:Basic_panel_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
==Базовое меню с нумерацией==&lt;br /&gt;
Теперь сделаем пример с большим функционалом -- нумерацией. Попробуем сделать меню для смены карты. Самый простой путь - прочесть &amp;lt;tt&amp;gt;maplist.txt&amp;lt;/tt&amp;gt; файл в начале плагина и создать меню по этому файла.&lt;br /&gt;
&lt;br /&gt;
Так как чтение и парсинг файла довольно долгая операция, мы будем делать это только раз за карту. Поэтому мы построим меню в &amp;lt;tt&amp;gt;OnMapStart&amp;lt;/tt&amp;gt;, и мы не будем вызывать &amp;lt;tt&amp;gt;CloseHandle&amp;lt;/tt&amp;gt; до события &amp;lt;tt&amp;gt;OnMapEnd&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исходный код:&lt;br /&gt;
&amp;lt;pawn&amp;gt;new Handle:g_MapMenu = INVALID_HANDLE&lt;br /&gt;
&lt;br /&gt;
public OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
	RegConsoleCmd(&amp;quot;menu_changemap&amp;quot;, Command_ChangeMap);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public OnMapStart()&lt;br /&gt;
{&lt;br /&gt;
	g_MapMenu = BuildMapMenu();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public OnMapEnd()&lt;br /&gt;
{&lt;br /&gt;
	if (g_MapMenu != INVALID_HANDLE)&lt;br /&gt;
	{&lt;br /&gt;
		CloseHandle(g_MapMenu);&lt;br /&gt;
		g_MapMenu = INVALID_HANDLE;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Handle:BuildMapMenu()&lt;br /&gt;
{&lt;br /&gt;
	/* открываем файл */&lt;br /&gt;
	new Handle:file = OpenFile(&amp;quot;maplist.txt&amp;quot;, &amp;quot;rt&amp;quot;);&lt;br /&gt;
	if (file == INVALID_HANDLE)&lt;br /&gt;
	{&lt;br /&gt;
		return INVALID_HANDLE;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/* создаем хандл меню */&lt;br /&gt;
	new Handle:menu = CreateMenu(Menu_ChangeMap);&lt;br /&gt;
	new String:mapname[255];&lt;br /&gt;
	while (!IsEndOfFile(file) &amp;amp;&amp;amp; ReadFileLine(file, mapname, sizeof(mapname)))&lt;br /&gt;
	{&lt;br /&gt;
		if (mapname[0] == ';' || !IsCharAlpha(mapname[0]))&lt;br /&gt;
		{&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		/* выбрасываем все пробелы из названия */&lt;br /&gt;
		new len = strlen(mapname);&lt;br /&gt;
		for (new i=0; i&amp;lt;len; i++)&lt;br /&gt;
		{&lt;br /&gt;
			if (IsCharSpace(mapname[i]))&lt;br /&gt;
			{&lt;br /&gt;
				mapname[i] = '\0';&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		/* проверяем карту на валидность */&lt;br /&gt;
		if (!IsMapValid(mapname))&lt;br /&gt;
		{&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		/* добавляем карту в меню */&lt;br /&gt;
		AddMenuItem(menu, mapname, mapname);&lt;br /&gt;
	}&lt;br /&gt;
	/* не забываем закрыть файл! */&lt;br /&gt;
	CloseHandle(file);&lt;br /&gt;
	&lt;br /&gt;
	/* наконец, устанавливаем заглавие меню */&lt;br /&gt;
	SetMenuTitle(menu, &amp;quot;Выберите карту:&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	return menu;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Menu_ChangeMap(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	if (action == MenuAction_Select)&lt;br /&gt;
	{&lt;br /&gt;
		new String:info[32];&lt;br /&gt;
&lt;br /&gt;
		/* получаем информацию о пункте */&lt;br /&gt;
		new bool:found = GetMenuItem(menu, param2, info, sizeof(info));&lt;br /&gt;
&lt;br /&gt;
		/* говорим об этом клиенту */&lt;br /&gt;
		PrintToConsole(param1, &amp;quot;Вы выбрали: %d (найдено? %d информация: %s)&amp;quot;, param2, found, info);&lt;br /&gt;
&lt;br /&gt;
		/* меняем карту */&lt;br /&gt;
		ServerCommand(&amp;quot;changelevel %s&amp;quot;, info);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Action:Command_ChangeMap(client, args)&lt;br /&gt;
{&lt;br /&gt;
	if (g_MapMenu == INVALID_HANDLE)&lt;br /&gt;
	{&lt;br /&gt;
		PrintToConsole(client, &amp;quot;Файл maplist.txt не был найден!&amp;quot;);&lt;br /&gt;
		return Plugin_Handled;&lt;br /&gt;
	}	&lt;br /&gt;
	&lt;br /&gt;
	DisplayMenu(g_MapMenu, client, MENU_TIME_FOREVER);&lt;br /&gt;
	&lt;br /&gt;
	return Plugin_Handled;&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результатом такого меню будет множество пунктов (&amp;lt;tt&amp;gt;maplist.txt&amp;lt;/tt&amp;gt; файл содержал примерно 18 карт). Таким образом, конечное меню содержит три страницы, которые идут друг за другом, и выглядят вот так:&lt;br /&gt;
&lt;br /&gt;
[[Image:Basic_menu_2_page1.PNG]]&lt;br /&gt;
[[Image:Basic_menu_2_page2.PNG]]&lt;br /&gt;
[[Image:Basic_menu_2_page3.PNG]]&lt;br /&gt;
&lt;br /&gt;
Сообщение в консоль будет выведено до смены карты, например, если выбрали &amp;lt;tt&amp;gt;cs_office&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;Вы выбрали: 8 (найдено? 1 информация: cs_office)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отображение и разработка этого меню через &amp;lt;tt&amp;gt;ShowMenu&amp;lt;/tt&amp;gt; сообщение или &amp;lt;tt&amp;gt;Панельный&amp;lt;/tt&amp;gt; API занимает много времени и является довольно сложной задачей. Придется отслеживать все пункты в массиве большого размера, страницы, которые пользователь просматривает, и написать функцию, которая будет вычислять, на основе текущей странице, пункт, который был выбран и какую кнопку нажали. Меню системы это всё делает за вас.&lt;br /&gt;
&lt;br /&gt;
'''Заметки:'''&lt;br /&gt;
*Пункты управления, которые не доступны, не рисуются. Например, на первой странице вы не можете нажать &amp;quot;назад&amp;quot;, а на последней странице вы не можете нажать &amp;quot;вперед&amp;quot;. Несмотря на это, меню пытается удерживать каждый интерфейс последовательно. Таким образом, визуально, каждая навигационная клавиша всегда на одной и той же позиции.&lt;br /&gt;
*Если указать таймаут меню, то переключение между страницами не воздействует на общее время открытия меню. Например, если мы установим таймаут на 20 секунд, то каждое листание страницы будет устанавливать таймайт равный (20 - время, уже затраченное на просмотр). Только переоткрытие меню позволит вернуть таймаут времени на 20 секунд.&lt;br /&gt;
*Если отключить кнопку выхода, то не смотря на это, пункты 8 и 9 будут всё так же &amp;quot;назад&amp;quot; и вперед, соответственно.&lt;br /&gt;
*Мы не освобождаем дескриптор (Handle) меню в &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt;, потому что наше меню глобальное/статическое, и нам не нужно пересоздавать его каждый раз.&lt;br /&gt;
*На изображении отображена кнопка &amp;quot;Назад&amp;quot;. В SourceMod версии 1011 и выше, кнопка &amp;quot;Назад&amp;quot; была переименована в &amp;quot;Предыдующая&amp;quot;, и &amp;quot;Назад&amp;quot; зарезервированно для &amp;quot;ExitBack&amp;quot; функциональности. (актуально для ENG версии, на ру вроде бы оба пункта &amp;quot;назад&amp;quot;. прим. переводчик)&lt;br /&gt;
&lt;br /&gt;
=Голосование=&lt;br /&gt;
SourceMod также имеет API для отображения меню как голосования для больше чем одного клиента. SourceMod автоматически обрабатываем выбранные пункты and randomly picking a tie-breaker (не знаю как перевести. прим. переводчика). Так же API голосования добавляет два новых значения для &amp;lt;tt&amp;gt;MenuAction&amp;lt;/tt&amp;gt;, которые во время отображения меню всегда вызываются.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;MenuAction_VoteStart&amp;lt;/tt&amp;gt;: Вызывается после &amp;lt;tt&amp;gt;MenuAction_Start&amp;lt;/tt&amp;gt;, когда голосование оффициально началось.&lt;br /&gt;
*&amp;lt;tt&amp;gt;MenuAction_VoteEnd&amp;lt;/tt&amp;gt;: Вызывается после того, как все клиенты проголосовали или отменили свои меню голосований. Выбранный предмет может быть получен через &amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;. Вызывается '''перед''' &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt;. Важно заметить, что это не замена &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt;, это разные вещи. Нельзя освобождать меню в &amp;lt;tt&amp;gt;MenuAction_VoteEnd&amp;lt;/tt&amp;gt;. '''Заметка:''' не вызывается, если используется &amp;lt;tt&amp;gt;SetVoteResultCallback&amp;lt;/tt&amp;gt;().&lt;br /&gt;
*&amp;lt;tt&amp;gt;MenuAction_VoteCancel&amp;lt;/tt&amp;gt;: Вызывается, если меню было отмеено в процессе голосования. Если вызвалось, то &amp;lt;tt&amp;gt;MenuAction_VoteEnd&amp;lt;/tt&amp;gt; или обратный вызов (callback) для результата голосований не будет вызваны, но &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt; будет после этого.  Причина отмены голосования находится в &amp;lt;tt&amp;gt;param1&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Система меню - это то же самое меню, только с двумя дополнительными свойствами:&lt;br /&gt;
*Только одно голосование может быть активно. Вы должны проверять, не запущено ли голосование (&amp;lt;tt&amp;gt;IsVoteInProgress&amp;lt;/tt&amp;gt;()), иначе &amp;lt;tt&amp;gt;VoteMenu&amp;lt;/tt&amp;gt;() не сработает.&lt;br /&gt;
*Если клиент во время голосования отключится, то его голос будет недействительным. &lt;br /&gt;
&lt;br /&gt;
Пример внизу показывает, как создать функцию &amp;lt;tt&amp;gt;DoVoteMenu()&amp;lt;/tt&amp;gt;, которая будет спрашивать, хотят ли они сменить карту на предложенную.&lt;br /&gt;
&lt;br /&gt;
==Простое Голосование==&lt;br /&gt;
&amp;lt;pawn&amp;gt;public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	if (action == MenuAction_End)&lt;br /&gt;
	{&lt;br /&gt;
		/* Вызывается после VoteEnd */&lt;br /&gt;
		CloseHandle(menu);&lt;br /&gt;
	} else if (action == MenuAction_VoteEnd) {&lt;br /&gt;
		/* 0=да, 1=нет */&lt;br /&gt;
		if (param1 == 0)&lt;br /&gt;
		{&lt;br /&gt;
			new String:map[64];&lt;br /&gt;
			GetMenuItem(menu, param1, map, sizeof(map));&lt;br /&gt;
			ServerCommand(&amp;quot;changelevel %s&amp;quot;, map);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
DoVoteMenu(const String:map[])&lt;br /&gt;
{&lt;br /&gt;
	if (IsVoteInProgress())&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	new Handle:menu = CreateMenu(Handle_VoteMenu);&lt;br /&gt;
	SetMenuTitle(menu, &amp;quot;Сменить карту на: %s?&amp;quot;, map);&lt;br /&gt;
	AddMenuItem(menu, map, &amp;quot;да&amp;quot;);&lt;br /&gt;
	AddMenuItem(menu, &amp;quot;no&amp;quot;, &amp;quot;нет&amp;quot;);&lt;br /&gt;
	SetMenuExitButton(menu, false);&lt;br /&gt;
	VoteMenuToAll(menu, 20);&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Продвинутое Голосование==&lt;br /&gt;
Если вам нужно больше информации о результатах голосовании, чем вам дает &amp;lt;tt&amp;gt;MenuAction_VoteEnd&amp;lt;/tt&amp;gt;, вы можете указать отдельный обратный вызов (callback). Новый обратный вызов будет давать больше информации, но за опреденную цену: &amp;lt;tt&amp;gt;MenuAction_VoteEnd&amp;lt;/tt&amp;gt; не будет вызвано, и вам придется самим решать, как обработать результат. Это делается с помощью &amp;lt;tt&amp;gt;SetVoteResultCallback&amp;lt;/tt&amp;gt;().&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;pawn&amp;gt;public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	if (action == MenuAction_End)&lt;br /&gt;
	{&lt;br /&gt;
		/* Вызывается после VoteEnd */&lt;br /&gt;
		CloseHandle(menu);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Handle_VoteResults(Handle:menu, &lt;br /&gt;
			num_votes, &lt;br /&gt;
			num_clients, &lt;br /&gt;
			const client_info[][2], &lt;br /&gt;
			num_items, &lt;br /&gt;
			const item_info[][2])&lt;br /&gt;
{&lt;br /&gt;
	/* Проверяем, нет ли сразу двух победителей */&lt;br /&gt;
	new winner = 0;&lt;br /&gt;
	if (num_items &amp;gt; 1&lt;br /&gt;
	    &amp;amp;&amp;amp; (item_info[0][VOTEINFO_ITEM_VOTES] == item_info[1][VOTEINFO_ITEM_VOTES]))&lt;br /&gt;
	{&lt;br /&gt;
		winner = GetRandomInt(0, 1);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	new String:map[64];&lt;br /&gt;
	GetMenuItem(menu, item_info[winner][VOTEINFO_ITEM_INDEX], map, sizeof(map));&lt;br /&gt;
	ServerCommand(&amp;quot;changelevel %s&amp;quot;, map);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
DoVoteMenu(const String:map[])&lt;br /&gt;
{&lt;br /&gt;
	if (IsVoteInProgress())&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	new Handle:menu = CreateMenu(Handle_VoteMenu);&lt;br /&gt;
	SetVoteResultCallback(menu, Handle_VoteResults);&lt;br /&gt;
	SetMenuTitle(menu, &amp;quot;Сменить карту на: %s?&amp;quot;, map);&lt;br /&gt;
	AddMenuItem(menu, map, &amp;quot;Yes&amp;quot;);&lt;br /&gt;
	AddMenuItem(menu, &amp;quot;no&amp;quot;, &amp;quot;No&amp;quot;);&lt;br /&gt;
	SetMenuExitButton(menu, false);&lt;br /&gt;
	VoteMenuToAll(menu, 20);&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=ExitBack=&lt;br /&gt;
ExitBack - специальный термин для обозначения &amp;quot;ExitBack Кнопки&amp;quot;. По умолчанию эта кнопка отключена.  Обычно нумерованные меню не имеют пункта &amp;quot;Назад&amp;quot; для первой страници. Если &amp;quot;ExitBack&amp;quot; кнопка включена, появится кнопка &amp;quot;Назад&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Выбор опции &amp;quot;ExitBack&amp;quot; для меню в обратном вызове будет в действии &amp;lt;tt&amp;gt;MenuCancel_ExitBack&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;MenuEnd_ExitBack&amp;lt;/tt&amp;gt;. Функциональность этого такая же, как и у простого выхода из меню; дополнительная функциональность должна быть определена через обратный вызов.&lt;br /&gt;
&lt;br /&gt;
=Освобождение Дескрипторов (Handle) меню=&lt;br /&gt;
Важно закрывать дескриптор меню в &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;MenuAction_End&amp;lt;/tt&amp;gt; вызывается когда меню закрылось и больше не нужно.&lt;br /&gt;
&lt;br /&gt;
=Переводы=&lt;br /&gt;
Есть возможность динамически переводить меню для каждого игрока через &amp;lt;tt&amp;gt;MenuAction_DisplayItem&amp;lt;/tt&amp;gt; callback. Специальный натив, &amp;lt;tt&amp;gt;RedrawMenuItem&amp;lt;/tt&amp;gt;, используется чтобы преобразовать текст внутри вызова. Давайте переделаем наш пример голосования с переводами.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)&lt;br /&gt;
{&lt;br /&gt;
	if (action == MenuAction_End)&lt;br /&gt;
	{&lt;br /&gt;
		/* Вызывается после VoteEnd */&lt;br /&gt;
		CloseHandle(menu);&lt;br /&gt;
	} else if (action == MenuAction_VoteEnd) {&lt;br /&gt;
		/* 0=да, 1=нет */&lt;br /&gt;
		if (param1 == 0)&lt;br /&gt;
		{&lt;br /&gt;
			new String:map[64];&lt;br /&gt;
			GetMenuItem(menu, param1, map, sizeof(map));&lt;br /&gt;
			ServerCommand(&amp;quot;changelevel %s&amp;quot;, map);&lt;br /&gt;
		}&lt;br /&gt;
	} else if (action == MenuAction_DisplayItem) {&lt;br /&gt;
		/* Получаем отображаемую строку, будем использовать как фразу перевода */&lt;br /&gt;
		decl String:display[64];&lt;br /&gt;
		GetMenuItem(menu, param2, &amp;quot;&amp;quot;, 0, _, display, sizeof(display));&lt;br /&gt;
&lt;br /&gt;
		/* Переводим строку на язык клиента */&lt;br /&gt;
		decl String:buffer[255];&lt;br /&gt;
		Format(buffer, sizeof(buffer), &amp;quot;%T&amp;quot;, display, param1);&lt;br /&gt;
&lt;br /&gt;
		/* Перерисовываем текст */&lt;br /&gt;
		return RedrawMenuItem(buffer);&lt;br /&gt;
	} else if (action == MenuAction_Display) {&lt;br /&gt;
		/* Дескриптор панели будет вторым параметром */&lt;br /&gt;
		new Handle:panel = Handle:param2;&lt;br /&gt;
		&lt;br /&gt;
		/* Get the map name we're changing to from the first item */&lt;br /&gt;
		/* Получаем название карты, на которую меняем, из первого пункта */&lt;br /&gt;
		decl String:map[64];&lt;br /&gt;
		GetMenuItem(menu, 0, map, sizeof(map));&lt;br /&gt;
		&lt;br /&gt;
		/* Переводим нашу фразу */&lt;br /&gt;
		decl String:buffer[255];&lt;br /&gt;
		Format(buffer, sizeof(buffer), &amp;quot;%T&amp;quot;, &amp;quot;Change map to?&amp;quot;, client, map);&lt;br /&gt;
&lt;br /&gt;
		SetPanelTitle(panel, buffer);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
DoVoteMenu(const String:map[])&lt;br /&gt;
{&lt;br /&gt;
	if (IsVoteInProgress())&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	new Handle:menu = CreateMenu(Handle_VoteMenu, MenuAction_DisplayItem|MenuAction_Display);&lt;br /&gt;
	SetMenuTitle(menu, &amp;quot;Сменить карту на: %s?&amp;quot;, map);&lt;br /&gt;
	AddMenuItem(menu, map, &amp;quot;Yes&amp;quot;);&lt;br /&gt;
	AddMenuItem(menu, &amp;quot;no&amp;quot;, &amp;quot;No&amp;quot;);&lt;br /&gt;
	SetMenuExitButton(menu, false);&lt;br /&gt;
	VoteMenuToAll(menu, 20);&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Development]]&lt;br /&gt;
[[Category:SourceMod Scripting]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)/ru&amp;diff=9054</id>
		<title>Admin Menu Configuration (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)/ru&amp;diff=9054"/>
		<updated>2013-09-02T11:07:14Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: little misprint&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В меню администратора SourceMod'а можно менять порядок пунктов. Пункты не могут быть перемещены из одной категории в другую, но они могут изменить свой порядок (расположение) внутри категории. Пункты, которые не были отсортированы, будут отображены ''после'' сортированных пунктов, и их сортировка будет определяться их трансляционной фразой.&lt;br /&gt;
&lt;br /&gt;
Сортировка контролируется файлом ''addons/sourcemod/configs/adminmenu_sorting.txt''. Каждая секция обозначает имя категории. Порядок секций определяет порядок категорий (категории тоже можно сортировать). Каждая секция содержит список уникальных имен пунктов, которые будут сортироваться.&lt;br /&gt;
&lt;br /&gt;
Помните, что пункты ''не'' команды. Они являются уникальными названиями, связанными с каждым пунктом меню. Сторонние плагины могут добавлять новые пукнты в меню администратора, и эти пункты будут иметь своё собственное уникальное имя, несмотря на то, есть ли такая команда или нет.&lt;br /&gt;
&lt;br /&gt;
=Пример=&lt;br /&gt;
Данный пример делает меню похожим на меню администратора Mani Admin Plugin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Menu&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;PlayerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_slay&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_kick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_gag&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_burn&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;ServerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_map&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_execcfg&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_reloadadmins&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;VotingCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_cancelvote&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votemap&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votekick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_voteban&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файла, приведенного выше, меню администратора будет выглядить следующим образом:&lt;br /&gt;
*Открыв его, будет три категории в следующем порядке: управление игроками, управление сервером, управление голосованиями&lt;br /&gt;
*Управление игроками будет содержать в следующем порядке: убить, кикнуть, забанить, отключить чат, поджечь. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
*Управление сервером будет содержать в следующем порядке: сменить карту, выполнить cfg, перезагрузить список администраторов. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
*Управление голосованием будет содержать в следующем порядке: отменить голосование, начать голосование за смену карты, начать голосование за кик, начать голосование за бан. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)/ru&amp;diff=9053</id>
		<title>Admin Menu Configuration (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)/ru&amp;diff=9053"/>
		<updated>2013-09-02T11:06:54Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: Created page with &amp;quot;В меню администратора SourceMod'а можно менять порядок пунктов. Пункты не могут быть перемещены из о...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В меню администратора SourceMod'а можно менять порядок пунктов. Пункты не могут быть перемещены из одной категории в другую, но они могут изменить свой порядок (расположение) внутри категории. Пункты, которые не были отсортированы, будут отображены ''после'' сортированных пунктов, и их сортировка будет определяться их трасляционной фразой.&lt;br /&gt;
&lt;br /&gt;
Сортировка контролируется файлом ''addons/sourcemod/configs/adminmenu_sorting.txt''. Каждая секция обозначает имя категории. Порядок секций определяет порядок категорий (категории тоже можно сортировать). Каждая секция содержит список уникальных имен пунктов, которые будут сортироваться.&lt;br /&gt;
&lt;br /&gt;
Помните, что пункты ''не'' команды. Они являются уникальными названиями, связанными с каждым пунктом меню. Сторонние плагины могут добавлять новые пукнты в меню администратора, и эти пункты будут иметь своё собственное уникальное имя, несмотря на то, есть ли такая команда или нет.&lt;br /&gt;
&lt;br /&gt;
=Пример=&lt;br /&gt;
Данный пример делает меню похожим на меню администратора Mani Admin Plugin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Menu&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;PlayerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_slay&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_kick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_gag&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_burn&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;ServerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_map&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_execcfg&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_reloadadmins&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;VotingCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_cancelvote&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votemap&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votekick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_voteban&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файла, приведенного выше, меню администратора будет выглядить следующим образом:&lt;br /&gt;
*Открыв его, будет три категории в следующем порядке: управление игроками, управление сервером, управление голосованиями&lt;br /&gt;
*Управление игроками будет содержать в следующем порядке: убить, кикнуть, забанить, отключить чат, поджечь. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
*Управление сервером будет содержать в следующем порядке: сменить карту, выполнить cfg, перезагрузить список администраторов. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
*Управление голосованием будет содержать в следующем порядке: отменить голосование, начать голосование за смену карты, начать голосование за кик, начать голосование за бан. Дальше будут идти все пункты, которые не перечислены, но относятся к этой категории.&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)&amp;diff=9052</id>
		<title>Admin Menu Configuration (SourceMod)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Admin_Menu_Configuration_(SourceMod)&amp;diff=9052"/>
		<updated>2013-09-02T11:06:21Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: added LanguageSwitch, added RU translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SourceMod's administration menu can be configured to change the ordering of items.  Items cannot be moved from one category to another, however, they can be re-ordered within categories.  Items that are not explicitly sorted are displayed ''after'' the sorted items, and they are sorted by their translated phrase in the client's language.&lt;br /&gt;
&lt;br /&gt;
Sorting is controlled via ''addons/sourcemod/configs/adminmenu_sorting.txt''.  Each section specifies the name of a category.  The order of the sections determines the order the categories are sorted.  Each section contains a list of unique item names that specify item sorting.&lt;br /&gt;
&lt;br /&gt;
Note that the items are ''not'' commands.  They are the unique names associated with each item on the menu.  Third party plugins may add new items to the admin menu, and those items will have their own unique names, whether there is an associated command or not.&lt;br /&gt;
&lt;br /&gt;
=Sample Layout=&lt;br /&gt;
This layout is designed to look similar to Mani Admin Plugin's admin menu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Menu&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;PlayerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_slay&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_kick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_gag&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_burn&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;ServerCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_map&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_execcfg&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_reloadadmins&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;VotingCommands&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_cancelvote&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votemap&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_votekick&amp;quot;&lt;br /&gt;
        &amp;quot;item&amp;quot;      &amp;quot;sm_voteban&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)/ru&amp;diff=9051</id>
		<title>Adding Admins (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)/ru&amp;diff=9051"/>
		<updated>2013-09-01T09:57:38Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
SourceMod обладает детальной и гибкой системой администрирования, и это может быть сложным для некоторых пользователей. Чтобы  упростить вещи, были введены &amp;quot;флаги&amp;quot;, которые определяют права администраторов.&lt;br /&gt;
&lt;br /&gt;
На данный момент есть два пути добавления администратора. Один из них через admin-flatfile.smx плагин, который по умолчанию включен. Этот файл обеспечивает два файла: упрощенный файл, и другой, более сложный древообразный файл. Другой путь добавления администратора - использование [[SQL Admins (SourceMod)|SQL]].&lt;br /&gt;
&lt;br /&gt;
SourceMod обладает тремя методами идентификации:&lt;br /&gt;
*''Steam ID'' (уникален для каждого Steam аккаунта)&lt;br /&gt;
*''IP Address'' (полу-уникален для данного компьютера, лучше для локальных сетей)&lt;br /&gt;
*''Name'' (требует пароля для идентификации)&lt;br /&gt;
&lt;br /&gt;
=Быстрый Старт=&lt;br /&gt;
Зайдите в корневую папку сервера. Откройте [папка мода (для CSS это cstrike, для tf2 это tf, и так далее)]/addons/sourcemod/configs/admins_simple.ini&lt;br /&gt;
&lt;br /&gt;
С новой строки добавьте следующий текст, заменив yoursteamid на ваш Steam ID (используйте клиентскую консольную команду '''status''', чтобы узнать ваш Steam ID - он выглядит как STEAM_n:o:p)&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;yoursteamid&amp;quot; &amp;quot;99:z&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, затем напишите в консоль сервера sm_reloadadmins. Подключитесь к серверу с помощью игрового клиента. Напишите sm_admin в консоль игры, а затем вернитесь к игре. Вы должны увидеть меню администратора.&lt;br /&gt;
&lt;br /&gt;
=Уровни Доступа=&lt;br /&gt;
Для начала давайте быстро пробежимся через предоставленные уровни доступа:&lt;br /&gt;
:{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- class=&amp;quot;t2th&amp;quot;&lt;br /&gt;
| Название Флага&lt;br /&gt;
| Флаг&lt;br /&gt;
| Для чего предназначен&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| reservation&lt;br /&gt;
| a&lt;br /&gt;
| Доступ к резервному слоту.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| generic&lt;br /&gt;
| b&lt;br /&gt;
| Обычная админка, требуется для администраторов.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| kick&lt;br /&gt;
| c&lt;br /&gt;
| Кикать других игроков.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| ban&lt;br /&gt;
| d&lt;br /&gt;
| Банить других игроков.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| unban&lt;br /&gt;
| e&lt;br /&gt;
| Удалять баны.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| slay&lt;br /&gt;
| f&lt;br /&gt;
| Убивать/вредить другим игрокам.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| changemap&lt;br /&gt;
| g&lt;br /&gt;
| Менять карту или другие воздействия на игровой процесс.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cvar&lt;br /&gt;
| h&lt;br /&gt;
| Изменять большинство консольных переменных (конваров, cvars, ConVars).&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| config&lt;br /&gt;
| i&lt;br /&gt;
| Выполнять конфиг файлы.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| chat&lt;br /&gt;
| j&lt;br /&gt;
| Специальные привилегии чата.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| vote&lt;br /&gt;
| k&lt;br /&gt;
| Запускать или создавать голосования.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| password&lt;br /&gt;
| l&lt;br /&gt;
| Устанавливать пароль на сервер.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| rcon&lt;br /&gt;
| m&lt;br /&gt;
| Использование RCON команд.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cheats&lt;br /&gt;
| n&lt;br /&gt;
| Изменять sv_cheats или использовать читерские команды.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| root&lt;br /&gt;
| z&lt;br /&gt;
| Волшебным образом включает все флаги.&lt;br /&gt;
&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom1&lt;br /&gt;
| o&lt;br /&gt;
| Настраиваемая Группа 1.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom2&lt;br /&gt;
| p&lt;br /&gt;
| Настраиваемая Группа 2.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom3&lt;br /&gt;
| q&lt;br /&gt;
| Настраиваемая Группа 3.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom4&lt;br /&gt;
| r&lt;br /&gt;
| Настраиваемая Группа 4.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom5&lt;br /&gt;
| s&lt;br /&gt;
| Настраиваемая Группа 5.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom6&lt;br /&gt;
| t&lt;br /&gt;
| Настраиваемая Группа 6.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Иммунитет=&lt;br /&gt;
В SourceMod'е иммунитет - гибкая система, построенная на ''уровнях иммунитета''. Каждый администратор может иметь произвольное значение уровня иммунитета. Таким образом, произвести действие над администратором может лишь тот администратор, чей уровень иммунитета больше.&lt;br /&gt;
&lt;br /&gt;
Например, Админстратор #1 обладает &amp;quot;3&amp;quot; уровнем иммунитета, а Админстратор #2 обладает уровнем иммунитета &amp;quot;10&amp;quot;. Админстратор #2 может производить действия над Админстратором #1, а Админстратор #1 не может произвести действия над Админстратором #2. Уровни иммунитета могут быть совершенно произвольными, могут быть равны любому числу, которое больше нуля. Помните, что &amp;quot;0&amp;quot; значит отсутствие иммунитета.&lt;br /&gt;
&lt;br /&gt;
По умолчанию администраторы с одинаковым уровнем иммунитета могут воздействовать друг на друга. Это может быть изменено через &amp;lt;tt&amp;gt;sm_immunity_mode&amp;lt;/tt&amp;gt; в файле &amp;lt;tt&amp;gt;cfg/sourcemod.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Пароли=&lt;br /&gt;
Чтобы пароли работали, серверный администратор должен изменить строку &amp;quot;PassInfoVar&amp;quot; в файле &amp;lt;tt&amp;gt;addons/sourcemod/configs/core.cfg&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;PassInfoVar&amp;quot;			&amp;quot;_sm1337&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальше, если администратор имеет пароль, он или она должен ввести пароль через команду ''setinfo'' в консоль клиента. Например, используя пример выше, &amp;lt;tt&amp;gt;BAILOPAN&amp;lt;/tt&amp;gt; должен прописать следующее:&lt;br /&gt;
&amp;lt;pre&amp;gt;setinfo &amp;quot;_sm1337&amp;quot; &amp;quot;Gab3n&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для автоматизации этого процесса (ввода пароля через setinfo), вы можете создать &amp;quot;autoexec.cfg&amp;quot; файл в вашей папке игрового клиента. Этот файл расположен по пути &amp;lt;tt&amp;gt;SteamApps\ACCOUNT\[игра]\[папка мода]\cfg&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
*&amp;lt;tt&amp;gt;C:\Program Files\Steam\steamapps\bailopan\Counter-Strike Source\cstrike\cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы так же можете ввести пароль перед соединением с сервером. Для Steam ID и IP идентификации, ваши привилегии администратора будут автоматически выданы вам, если пароль правильный. Для идентификации по имени, ваш пароль должен быть правильным при смене имени, иначе вы будете кикнуты с сервера.&lt;br /&gt;
&lt;br /&gt;
=Простое Добавление Администратора=&lt;br /&gt;
Самый простой путь добавить администратора - редактирование файла &amp;lt;tt&amp;gt;configs/admins_simple.ini&amp;lt;/tt&amp;gt;. Этот файл содержит два параметра на линии: идентификационная информация, и флаги. Строка флагов - нечто гибкое и может содержать следующую информацию:&lt;br /&gt;
*Опционально: уровень иммунитета, разделенный двоеточием (':');&lt;br /&gt;
*Строчно флаг, '''или''';&lt;br /&gt;
*Имя группы, начинающееся с символа '@'&lt;br /&gt;
&lt;br /&gt;
Три примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;STEAM_0:1:16&amp;quot;	&amp;quot;bce&amp;quot;			//админка, кик и разбан по данном SteamID. Без иммунитета.&lt;br /&gt;
&amp;quot;!127.0.0.1&amp;quot;	&amp;quot;5:z&amp;quot;			//все права для этого ip, уровень иммунитета = 5&lt;br /&gt;
&amp;quot;BAILOPAN&amp;quot;	&amp;quot;abc&amp;quot;	&amp;quot;Gab3n&amp;quot;		//имя BAILOPAN, пароль &amp;quot;Gab3n&amp;quot;: обладает резервным слотом, доступом к админке, кик&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Детальная Настройка Администратора=&lt;br /&gt;
Вы так же можете добавить администратора через &amp;lt;tt&amp;gt;configs/admins.cfg&amp;lt;/tt&amp;gt;, настраиваемый файл в формате KeyValues. Каждый администратор обладает своим собственным блоком внутри блока администратора. Вы можете создавать и / или модифицировать &amp;lt;tt&amp;gt;admins.cfg&amp;lt;/tt&amp;gt; файл с помощью [http://forums.alliedmods.net/showthread.php?t=81160 KVManager]. Формат файла следующий:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Имя администратора&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;[steam|name|ip]&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;[unique id]&amp;quot;&lt;br /&gt;
		&amp;quot;[option1]&amp;quot;	&amp;quot;[value1]&amp;quot;&lt;br /&gt;
		&amp;quot;[option2]&amp;quot;	&amp;quot;[value2]&amp;quot;&lt;br /&gt;
		/* .... */&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доступные опции:&lt;br /&gt;
*&amp;lt;tt&amp;gt;auth&amp;lt;/tt&amp;gt;: Требуется. Должен быть: &amp;lt;tt&amp;gt;steam&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;, или &amp;lt;tt&amp;gt;ip&amp;lt;/tt&amp;gt; (если нет специального метода идентификации), говорит SourceMod'у, чем является &amp;lt;tt&amp;gt;идентификационное&amp;lt;/tt&amp;gt; значение.&lt;br /&gt;
*&amp;lt;tt&amp;gt;identity&amp;lt;/tt&amp;gt;: Требуется. Уникальное значение, которое позволяет SourceMod'у найти этого администратора по аудентификационному методу и полученному значению.&lt;br /&gt;
*&amp;lt;tt&amp;gt;password&amp;lt;/tt&amp;gt;: Опционально. Пароль, который должен ввести администратор (смотрите раздел выше про пароли).&lt;br /&gt;
*&amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt;: Опционально.  Имя группы, к которой должен принадлежать администратор. Может быть объявлено больше чем одна &amp;quot;group&amp;quot; линия. Здесь не нужно ставить символ '@' перед именем группы.&lt;br /&gt;
*&amp;lt;tt&amp;gt;flags&amp;lt;/tt&amp;gt;: Опционально. Флаг доступа.&lt;br /&gt;
*&amp;lt;tt&amp;gt;immunity&amp;lt;/tt&amp;gt;: Опционально. Уровень иммунитета.&lt;br /&gt;
&lt;br /&gt;
Имя администратора опционально (оно может быть пустым). Оно не используется и присутствует только для удобства сторонним программам.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;BAILOPAN&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:2345&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;abcdef&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;5&amp;quot;&lt;br /&gt;
		&amp;quot;group&amp;quot;		&amp;quot;Awesome Admins&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;Blue Crab&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:666666&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;z&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;99&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Смотрите Также=&lt;br /&gt;
*[[Adding Groups (SourceMod)]]&lt;br /&gt;
*[[Ru:Overriding Command Access (SourceMod)|Переопределение Доступа к командам]]&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)/ru&amp;diff=9050</id>
		<title>Adding Admins (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)/ru&amp;diff=9050"/>
		<updated>2013-09-01T09:53:33Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: Created page with &amp;quot;__FORCETOC__ SourceMod обладает детальной и гибкой системой администрирования, и это может быть сложным д...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
SourceMod обладает детальной и гибкой системой администрирования, и это может быть сложным для некоторых пользователей. Чтобы  упростить вещи, были введены &amp;quot;флаги&amp;quot;, которые определяют права администраторов.&lt;br /&gt;
&lt;br /&gt;
На данный момент есть два пути добавления администратора. Один из них через admin-flatfile.smx плагин, который по умолчанию включен. Этот файл обеспечивает два файла: упрощенный файл, и другой, более сложный древообразный файл. Другой путь добавления администратора - использование [[SQL Admins (SourceMod)|SQL]].&lt;br /&gt;
&lt;br /&gt;
SourceMod обладает тремя методами идентификации:&lt;br /&gt;
*''Steam ID'' (уникален для каждого Steam аккаунта)&lt;br /&gt;
*''IP Address'' (полу-уникален для данного компьютера, лучше для локальных сетей)&lt;br /&gt;
*''Name'' (требует пароля для идентификации)&lt;br /&gt;
&lt;br /&gt;
=Быстрый Старт=&lt;br /&gt;
Зайдите в корневую папку сервера. Откройте [папка мода (для CSS это cstrike, для tf2 это tf, и так далее)]/addons/sourcemod/configs/admins_simple.ini&lt;br /&gt;
&lt;br /&gt;
С новой строки добавьте следующий текст, заменив yoursteamid на ваш Steam ID (используйте клиентскую консольную команду '''status''', чтобы узнать ваш Steam ID - он выглядит как STEAM_n:o:p)&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;yoursteamid&amp;quot; &amp;quot;99:z&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, затем напишите в консоль сервера sm_reloadadmins. Подключитесь к серверу с помощью игрового клиента. Напишите sm_admin в консоль игры, а затем вернитесь к игре. Вы должны увидеть меню администратора.&lt;br /&gt;
&lt;br /&gt;
=Уровни Доступа=&lt;br /&gt;
Для начала давайте быстро пробежимся через предоставленные уровни доступа:&lt;br /&gt;
:{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- class=&amp;quot;t2th&amp;quot;&lt;br /&gt;
| Название Флага&lt;br /&gt;
| Флаг&lt;br /&gt;
| Для чего предназначен&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| reservation&lt;br /&gt;
| a&lt;br /&gt;
| Доступ к резервному слоту.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| generic&lt;br /&gt;
| b&lt;br /&gt;
| Обычная админка, требуется для администраторов.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| kick&lt;br /&gt;
| c&lt;br /&gt;
| Кикать других игроков.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| ban&lt;br /&gt;
| d&lt;br /&gt;
| Банить других игроков.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| unban&lt;br /&gt;
| e&lt;br /&gt;
| Удалять баны.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| slay&lt;br /&gt;
| f&lt;br /&gt;
| Убивать/вредить другим игрокам.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| changemap&lt;br /&gt;
| g&lt;br /&gt;
| Менять карту или другие воздействия на игровой процесс.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cvar&lt;br /&gt;
| h&lt;br /&gt;
| Изменять большинство консольных переменных (конваров, cvars, ConVars).&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| config&lt;br /&gt;
| i&lt;br /&gt;
| Выполнять конфиг файлы.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| chat&lt;br /&gt;
| j&lt;br /&gt;
| Специальные привилегии чата.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| vote&lt;br /&gt;
| k&lt;br /&gt;
| Запускать или создавать голосования.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| password&lt;br /&gt;
| l&lt;br /&gt;
| Устанавливать пароль на сервер.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| rcon&lt;br /&gt;
| m&lt;br /&gt;
| Использование RCON команд.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cheats&lt;br /&gt;
| n&lt;br /&gt;
| Изменять sv_cheats или использовать читерские команды.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| root&lt;br /&gt;
| z&lt;br /&gt;
| Волшебным образом включает все флаги.&lt;br /&gt;
&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom1&lt;br /&gt;
| o&lt;br /&gt;
| Настраиваемая Группа 1.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom2&lt;br /&gt;
| p&lt;br /&gt;
| Настраиваемая Группа 2.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom3&lt;br /&gt;
| q&lt;br /&gt;
| Настраиваемая Группа 3.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom4&lt;br /&gt;
| r&lt;br /&gt;
| Настраиваемая Группа 4.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom5&lt;br /&gt;
| s&lt;br /&gt;
| Настраиваемая Группа 5.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom6&lt;br /&gt;
| t&lt;br /&gt;
| Настраиваемая Группа 6.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Иммунитет=&lt;br /&gt;
В SourceMod'е иммунитет - гибкая система, построенная на ''уровнях иммунитета''. Каждый администратор может иметь произвольное значение уровня иммунитета. Таким образом, произвести действие над администратором может лишь тот администратор, чей уровень иммунитета больше.&lt;br /&gt;
&lt;br /&gt;
Например, Админстратор #1 обладает &amp;quot;3&amp;quot; уровнем иммунитета, а Админстратор #2 обладает уровнем иммунитета &amp;quot;10&amp;quot;. Админстратор #2 может производить действия над Админстратором #1, а Админстратор #1 не может произвести действия над Админстратором #2. Уровни иммунитета могут быть совершенно произвольными, могут быть равны любому числу, которое больше нуля. Помните, что &amp;quot;0&amp;quot; значит отсутствие иммунитета.&lt;br /&gt;
&lt;br /&gt;
По умолчанию администраторы с одинаковым уровнем иммунитета могут воздействовать друг на друга. Это может быть изменено через &amp;lt;tt&amp;gt;sm_immunity_mode&amp;lt;/tt&amp;gt; в файле &amp;lt;tt&amp;gt;cfg/sourcemod.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Пароли=&lt;br /&gt;
Чтобы пароли работали, серверный администратор должен изменить строку &amp;quot;PassInfoVar&amp;quot; в файле &amp;lt;tt&amp;gt;addons/sourcemod/configs/core.cfg&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;PassInfoVar&amp;quot;			&amp;quot;_sm1337&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальше, если администратор имеет пароль, он или она должен ввести пароль через команду ''setinfo'' в консоль клиента. Например, используя пример выше, &amp;lt;tt&amp;gt;BAILOPAN&amp;lt;/tt&amp;gt; должен прописать следующее:&lt;br /&gt;
&amp;lt;pre&amp;gt;setinfo &amp;quot;_sm1337&amp;quot; &amp;quot;Gab3n&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для автоматизации этого процесса (ввода пароля через setinfo), вы можете создать &amp;quot;autoexec.cfg&amp;quot; файл в вашей папке игрового клиента. Этот файл расположен по пути &amp;lt;tt&amp;gt;SteamApps\ACCOUNT\[игра]\[папка мода]\cfg&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
*&amp;lt;tt&amp;gt;C:\Program Files\Steam\steamapps\bailopan\Counter-Strike Source\cstrike\cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы так же можете ввести пароль перед соединением с сервером. Для Steam ID и IP идентификации, ваши привилегии администратора будут автоматически выданы вам, если пароль правильный. Для идентификации по имени, ваш пароль должен быть правильным при смене имени, иначе вы будете кикнуты с сервера.&lt;br /&gt;
&lt;br /&gt;
=Простое Добавление Администратора=&lt;br /&gt;
Самый простой путь добавить администратора - редактирование файла &amp;lt;tt&amp;gt;configs/admins_simple.ini&amp;lt;/tt&amp;gt;. Этот файл содержит два параметра на линии: идентификационная информация, и флаги. Строка флагов - нечто гибкое и может содержать следующую информацию:&lt;br /&gt;
*Опционально: уровень иммунитета, разделенный двоеточием (':');&lt;br /&gt;
*Строчно флаг, '''или''';&lt;br /&gt;
*Имя группы, начинающееся с символа '@'&lt;br /&gt;
&lt;br /&gt;
Три примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;STEAM_0:1:16&amp;quot;	&amp;quot;bce&amp;quot;				//админка, кик и разбан по данном SteamID. Без иммунитета.&lt;br /&gt;
&amp;quot;!127.0.0.1&amp;quot;	&amp;quot;5:z&amp;quot;				//все права для этого ip, уровень иммунитета = 5&lt;br /&gt;
&amp;quot;BAILOPAN&amp;quot;		&amp;quot;abc&amp;quot;	&amp;quot;Gab3n&amp;quot;		//имя BAILOPAN, пароль &amp;quot;Gab3n&amp;quot;: обладает резервным слотом, доступом к админке, кик&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Детальная Настройка Администратора=&lt;br /&gt;
Вы так же можете добавить администратора через &amp;lt;tt&amp;gt;configs/admins.cfg&amp;lt;/tt&amp;gt;, настраиваемый файл в формате KeyValues. Каждый администратор обладает своим собственным блоком внутри блока администратора. Вы можете создавать и / или модифицировать &amp;lt;tt&amp;gt;admins.cfg&amp;lt;/tt&amp;gt; файл с помощью [http://forums.alliedmods.net/showthread.php?t=81160 KVManager]. Формат файла следующий:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Имя администратора&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;[steam|name|ip]&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;[unique id]&amp;quot;&lt;br /&gt;
		&amp;quot;[option1]&amp;quot;	&amp;quot;[value1]&amp;quot;&lt;br /&gt;
		&amp;quot;[option2]&amp;quot;	&amp;quot;[value2]&amp;quot;&lt;br /&gt;
		/* .... */&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доступные опции:&lt;br /&gt;
*&amp;lt;tt&amp;gt;auth&amp;lt;/tt&amp;gt;: Требуется. Должен быть: &amp;lt;tt&amp;gt;steam&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;, или &amp;lt;tt&amp;gt;ip&amp;lt;/tt&amp;gt; (если нет специального метода идентификации), говорит SourceMod'у, чем является &amp;lt;tt&amp;gt;идентификационное&amp;lt;/tt&amp;gt; значение.&lt;br /&gt;
*&amp;lt;tt&amp;gt;identity&amp;lt;/tt&amp;gt;: Требуется. Уникальное значение, которое позволяет SourceMod'у найти этого администратора по аудентификационному методу и полученному значению.&lt;br /&gt;
*&amp;lt;tt&amp;gt;password&amp;lt;/tt&amp;gt;: Опционально. Пароль, который должен ввести администратор (смотрите раздел выше про пароли).&lt;br /&gt;
*&amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt;: Опционально.  Имя группы, к которой должен принадлежать администратор. Может быть объявлено больше чем одна &amp;quot;group&amp;quot; линия. Здесь не нужно ставить символ '@' перед именем группы.&lt;br /&gt;
*&amp;lt;tt&amp;gt;flags&amp;lt;/tt&amp;gt;: Опционально. Флаг доступа.&lt;br /&gt;
*&amp;lt;tt&amp;gt;immunity&amp;lt;/tt&amp;gt;: Опционально. Уровень иммунитета.&lt;br /&gt;
&lt;br /&gt;
Имя администратора опционально (оно может быть пустым). Оно не используется и присутствует только для удобства сторонним программам.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;BAILOPAN&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:2345&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;abcdef&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;5&amp;quot;&lt;br /&gt;
		&amp;quot;group&amp;quot;		&amp;quot;Awesome Admins&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;Blue Crab&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:666666&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;z&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;99&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Смотрите Также=&lt;br /&gt;
*[[Adding Groups (SourceMod)]]&lt;br /&gt;
*[[Ru:Overriding Command Access (SourceMod)|Переопределение Доступа к командам]]&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)&amp;diff=9049</id>
		<title>Adding Admins (SourceMod)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Adding_Admins_(SourceMod)&amp;diff=9049"/>
		<updated>2013-09-01T09:53:23Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: added LanguageSwitch, added RU translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
SourceMod has as very detailed and flexible administration system, and it can be quite daunting to users.  To simplify things, there are a number of &amp;quot;flags&amp;quot; which specify generic permissions administrators can have.&lt;br /&gt;
&lt;br /&gt;
There are currently two provided ways of storing admins.  One is via the admin-flatfile.smx plugin that is enabled by default. This plugin provides two files: a simplified flat file, and another more complex tree-based file. The other way to store admins is using [[SQL Admins (SourceMod)|SQL]].&lt;br /&gt;
&lt;br /&gt;
SourceMod provides three methods of authentication:&lt;br /&gt;
*''Steam ID'' (unique to a Steam account)&lt;br /&gt;
*''IP Address'' (semi-unique to a given computer, better for LANs)&lt;br /&gt;
*''Name'' (requires a password)&lt;br /&gt;
&lt;br /&gt;
=Quick Start=&lt;br /&gt;
On the server, open [modfolder]/addons/sourcemod/configs/admins_simple.ini&lt;br /&gt;
&lt;br /&gt;
In a new line, add the following, replacing yoursteamid (use your client's console '''status''' command to retrieve your Steam ID - formatted as STEAM_n:o:p)&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;yoursteamid&amp;quot; &amp;quot;99:z&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Save the file, then type sm_reloadadmins in the server console. Connect to the server with the game client. Enter sm_admin in the client console, and then return to the game.  You should see the admin menu.&lt;br /&gt;
&lt;br /&gt;
=Levels=&lt;br /&gt;
First, let's quickly run down the provided levels:&lt;br /&gt;
:{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- class=&amp;quot;t2th&amp;quot;&lt;br /&gt;
| Name&lt;br /&gt;
| Flag&lt;br /&gt;
| Purpose&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| reservation&lt;br /&gt;
| a&lt;br /&gt;
| Reserved slot access.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| generic&lt;br /&gt;
| b&lt;br /&gt;
| Generic admin; required for admins.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| kick&lt;br /&gt;
| c&lt;br /&gt;
| Kick other players.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| ban&lt;br /&gt;
| d&lt;br /&gt;
| Ban other players.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| unban&lt;br /&gt;
| e&lt;br /&gt;
| Remove bans.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| slay&lt;br /&gt;
| f&lt;br /&gt;
| Slay/harm other players.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| changemap&lt;br /&gt;
| g&lt;br /&gt;
| Change the map or major gameplay features.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cvar&lt;br /&gt;
| h&lt;br /&gt;
| Change most cvars.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| config&lt;br /&gt;
| i&lt;br /&gt;
| Execute config files.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| chat&lt;br /&gt;
| j&lt;br /&gt;
| Special chat privileges.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| vote&lt;br /&gt;
| k&lt;br /&gt;
| Start or create votes.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| password&lt;br /&gt;
| l&lt;br /&gt;
| Set a password on the server.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| rcon&lt;br /&gt;
| m&lt;br /&gt;
| Use RCON commands.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| cheats&lt;br /&gt;
| n&lt;br /&gt;
| Change sv_cheats or use cheating commands.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| root&lt;br /&gt;
| z&lt;br /&gt;
| Magically enables all flags.&lt;br /&gt;
&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom1&lt;br /&gt;
| o&lt;br /&gt;
| Custom Group 1.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom2&lt;br /&gt;
| p&lt;br /&gt;
| Custom Group 2.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom3&lt;br /&gt;
| q&lt;br /&gt;
| Custom Group 3.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom4&lt;br /&gt;
| r&lt;br /&gt;
| Custom Group 4.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom5&lt;br /&gt;
| s&lt;br /&gt;
| Custom Group 5.&lt;br /&gt;
|- class=&amp;quot;t2td&amp;quot;&lt;br /&gt;
| custom6&lt;br /&gt;
| t&lt;br /&gt;
| Custom Group 6.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Immunity=&lt;br /&gt;
In SourceMod, immunity is a flexible system based on ''immunity levels''.  Every admin can have an arbitrary immunity value assigned to them.  Whether an admin can target another admin depends on who has a higher immunity value.&lt;br /&gt;
&lt;br /&gt;
For example, say Admin #1 has an immunity level of &amp;quot;3&amp;quot; and Admin #2 has an immunity level of &amp;quot;10.&amp;quot;  Admin #2 can target Admin #1, but Admin #1 cannot target Admin #2.  The numbers are completely arbitrary, and they can be any number equal to or higher than 0.  Note that 0 always implies no immunity.&lt;br /&gt;
&lt;br /&gt;
By default, admins with the same immunity value can target each other.  This can be changed via &amp;lt;tt&amp;gt;sm_immunity_mode&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;cfg/sourcemod.cfg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Passwords=&lt;br /&gt;
For passwords to work, the server administrator must change the &amp;quot;PassInfoVar&amp;quot; line in &amp;lt;tt&amp;gt;addons/sourcemod/configs/core.cfg&amp;lt;/tt&amp;gt;.  For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;PassInfoVar&amp;quot;			&amp;quot;_sm1337&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, if an admin has a password, he or she must set the password via the ''setinfo'' command in the client console.   For example, using the examples above, &amp;lt;tt&amp;gt;BAILOPAN&amp;lt;/tt&amp;gt; would need to type:&lt;br /&gt;
&amp;lt;pre&amp;gt;setinfo &amp;quot;_sm1337&amp;quot; &amp;quot;Gab3n&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To automate this upon connecting to a server, you can create an &amp;quot;autoexec.cfg&amp;quot; file in your client game folder.  This will be located under &amp;lt;tt&amp;gt;SteamApps\ACCOUNT\[game]\[gameabbr]\cfg&amp;lt;/tt&amp;gt;.  For example:&lt;br /&gt;
*&amp;lt;tt&amp;gt;C:\Program Files\Steam\steamapps\bailopan\Counter-Strike Source\cstrike\cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also set the password upon connecting.  For Steam and IP authentication, your admin privileges will be automatically assigned if the password is correct.  For name based authentication, your password must be correct before you change your name, or else you will be kicked from the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Simple Admins=&lt;br /&gt;
The easiest way to add administrators is through &amp;lt;tt&amp;gt;configs/admins_simple.ini&amp;lt;/tt&amp;gt;.  This is a flat file which requires two parameters per line: authentication info, and flags.  The flag string is somewhat flexible and can have the following information:&lt;br /&gt;
*An optional immunity level value, followed by a colon (':');&lt;br /&gt;
*A flag string, '''or''';&lt;br /&gt;
*A group name, preceded by an '@' symbol&lt;br /&gt;
&lt;br /&gt;
Three examples are provided:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;STEAM_0:1:16&amp;quot;		&amp;quot;bce&amp;quot;			//generic, kick, unban for this steam ID.  no immunity&lt;br /&gt;
&amp;quot;!127.0.0.1&amp;quot;		&amp;quot;5:z&amp;quot;			//all permissions for this ip, immunity level = 5&lt;br /&gt;
&amp;quot;BAILOPAN&amp;quot;		&amp;quot;abc&amp;quot;	&amp;quot;Gab3n&amp;quot;		//name BAILOPAN, password &amp;quot;Gab3n&amp;quot;: gets reservation, generic, kick&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Detailed Admins=&lt;br /&gt;
Alternatively, you can add admins via &amp;lt;tt&amp;gt;configs/admins.cfg&amp;lt;/tt&amp;gt;, a more advanced file stored in a KeyValues format.  Each admin is its own block inside a main &amp;quot;Admin&amp;quot; block. You can create and / or modify &amp;lt;tt&amp;gt;admins.cfg&amp;lt;/tt&amp;gt; files with [http://forums.alliedmods.net/showthread.php?t=81160 KVManager]. The format is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Admin Name&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;[steam|name|ip]&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;[unique id]&amp;quot;&lt;br /&gt;
		&amp;quot;[option1]&amp;quot;	&amp;quot;[value1]&amp;quot;&lt;br /&gt;
		&amp;quot;[option2]&amp;quot;	&amp;quot;[value2]&amp;quot;&lt;br /&gt;
		/* .... */&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Available options are:&lt;br /&gt;
*&amp;lt;tt&amp;gt;auth&amp;lt;/tt&amp;gt;: Required.  Must be one of &amp;lt;tt&amp;gt;steam&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;ip&amp;lt;/tt&amp;gt; (unless there is a custom auth method), and instructs SourceMod how to interpret the &amp;lt;tt&amp;gt;identity&amp;lt;/tt&amp;gt; value.&lt;br /&gt;
*&amp;lt;tt&amp;gt;identity&amp;lt;/tt&amp;gt;: Required.  Unique value that allows SourceMod to find this admin given an authentication method and the given value.&lt;br /&gt;
*&amp;lt;tt&amp;gt;password&amp;lt;/tt&amp;gt;: Optional.  Specifies the password the user must enter (see above section on passwords).&lt;br /&gt;
*&amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt;: Optional.  Specifies a group name the user should inherit if available.  More than one &amp;quot;group&amp;quot; line can be specified.  There should be no '@' symbol as there is no ambiguity.&lt;br /&gt;
*&amp;lt;tt&amp;gt;flags&amp;lt;/tt&amp;gt;: Optional.  Default access flags the user should receive.&lt;br /&gt;
*&amp;lt;tt&amp;gt;immunity&amp;lt;/tt&amp;gt;: Optional:  Default immunity level the user should receive.&lt;br /&gt;
&lt;br /&gt;
The admin name is optional (it can be blank).  It is not used internally and is intended for convenience usage by 3rd party tools.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;Admins&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;BAILOPAN&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:2345&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;abcdef&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;5&amp;quot;&lt;br /&gt;
		&amp;quot;group&amp;quot;		&amp;quot;Awesome Admins&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;Blue Crab&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;auth&amp;quot;		&amp;quot;steam&amp;quot;&lt;br /&gt;
		&amp;quot;identity&amp;quot;	&amp;quot;STEAM_0:1:666666&amp;quot;&lt;br /&gt;
		&amp;quot;flags&amp;quot;		&amp;quot;z&amp;quot;&lt;br /&gt;
		&amp;quot;immunity&amp;quot;	&amp;quot;99&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
*[[Adding Groups (SourceMod)]]&lt;br /&gt;
*[[Overriding Command Access (SourceMod)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9048</id>
		<title>Overriding Command Access (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9048"/>
		<updated>2013-09-01T08:30:46Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Эта статья объясняет, как без изменений исходных кодов плагина вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.&lt;br /&gt;
&lt;br /&gt;
=Вступление=&lt;br /&gt;
Переопределение доступа к команде - один из самых мощных аспектов системы администрирования SourceMod. Оно позволяет вам:&lt;br /&gt;
*Настроить доступ к любой команде администратора без изменения исходного кода плагина;&lt;br /&gt;
*Изменить доступ к целой группе команд без изменений исходного кода;&lt;br /&gt;
*Создать настраиваемые уровни доступа;&lt;br /&gt;
*Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.&lt;br /&gt;
&lt;br /&gt;
Изменение прав доступа к SourceMod объекту называется ''переопределением'' (оверрайд, override). Переопределение - это произвольная строка. Если переопределенная строка совпадает с именем команды, то тогда доступ к команде будет унаследован от переопределения.&lt;br /&gt;
&lt;br /&gt;
Это очень важно по двум причинам:&lt;br /&gt;
*Переопределение может изменить доступ к команде.&lt;br /&gt;
*Переопределение может использоваться как настраиваемый флаг доступа.&lt;br /&gt;
&lt;br /&gt;
Например, плагин требует доступ к флагу &amp;quot;g&amp;quot;, чтобы использовать команду &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; на &amp;quot;k&amp;quot; (или любой другой).&lt;br /&gt;
&lt;br /&gt;
Другой случай: плагин может требовать доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, чтобы использовать пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, а не иметь флаг целиком.&lt;br /&gt;
&lt;br /&gt;
Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к &amp;lt;tt&amp;gt;plugin_crab_usage&amp;lt;/tt&amp;gt;, а это не является командой. Вместо этого плагин подразумевает &amp;quot;значение по умолчание&amp;quot; как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.&lt;br /&gt;
&lt;br /&gt;
=Типы Переопределений=&lt;br /&gt;
Переопределения бывают двух видов: переопределение ''команды'' и переопределение ''групп команд''. &lt;br /&gt;
&lt;br /&gt;
Переопределение команды переопределяет уровень доступа, если у переопределения и у команды одинаковые названия. В этом случае команда автоматически наследует уровень доступа у переопределения.&lt;br /&gt;
Пример: если существует переопределение для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, то тогда любая команда администратора, имеющая название &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; будет наследовать эти разрешения.&lt;br /&gt;
&lt;br /&gt;
По аналогии с этим, переопределение ''групп команд'' переопределяет уровни доступа для всех команд, которые относятся к этой группе.&lt;br /&gt;
Пример: Если существует переопределение ''групп команд'' для &amp;lt;tt&amp;gt;CSDM&amp;lt;/tt&amp;gt;, то все команды администратора, отмеченные как &amp;quot;CSDM&amp;quot; унаследуют такие же права доступа.&lt;br /&gt;
&lt;br /&gt;
=Глобальная конфигурация=&lt;br /&gt;
Уровни доступа для переопределений могут быть глобально переопределены через &amp;lt;tt&amp;gt;configs/admin_overrides.cfg&amp;lt;/tt&amp;gt;. Формат файла очень прост:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;[имя1]&amp;quot;	&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	&amp;quot;@[группа1]&amp;quot;	&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	/* ... */&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Группы команд отмечаются установкой символа ('@') перед названием. Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;sm_map&amp;quot;	&amp;quot;k&amp;quot;	//Изменить доступ к команде &amp;quot;sm_map&amp;quot; на &amp;quot;k&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;@CSDM&amp;quot;		&amp;quot;m&amp;quot;	//Изменяет доступ ко всем CSDM командам на &amp;quot;m&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;sm_chat&amp;quot;	&amp;quot;&amp;quot;	//Позволяет всем использовать &amp;quot;sm_chat&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стоит заметить, что клиент должен будет обладать '''всеми''' флагами доступа, указанными в переопределении.&lt;br /&gt;
&lt;br /&gt;
=Настройка Групп=&lt;br /&gt;
Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.&lt;br /&gt;
&lt;br /&gt;
Для более подробной информации посетите [[Adding_Groups_%28SourceMod%29#File_Format|Adding Groups]].&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9047</id>
		<title>Overriding Command Access (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9047"/>
		<updated>2013-08-31T18:09:35Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: edited little misprints&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Эта статья объясняет, как без изменений исходных кодов плагина вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.&lt;br /&gt;
&lt;br /&gt;
=Вступление=&lt;br /&gt;
Переопределение доступа к команде - один из самых мощных аспектов системы администрирования SourceMod. Оно позволяет вам:&lt;br /&gt;
*Настроить доступ к любой команде администратора без изменения исходного кода плагина;&lt;br /&gt;
*Изменить доступ к целой группе команд без изменений исходного кода;&lt;br /&gt;
*Создать настраиваемые уровни доступа;&lt;br /&gt;
*Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.&lt;br /&gt;
&lt;br /&gt;
Изменение прав доступа к SourceMod объекту называется ''переопределением'' (оверрайд, override). Переопределение - это произвольная строка. Если переопределенная строка совпадает с именем команды, то тогда доступ к команде будет унаследован от переопределения.&lt;br /&gt;
&lt;br /&gt;
Это очень важно по двум причинам:&lt;br /&gt;
*Переопределение может изменить доступ к команде.&lt;br /&gt;
*Переопределение может использоваться как настраиваемый флаг доступа.&lt;br /&gt;
&lt;br /&gt;
Например, плагин требует доступ к флагу &amp;quot;g&amp;quot;, чтобы использовать команду &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; на &amp;quot;k&amp;quot; (или любой другой).&lt;br /&gt;
&lt;br /&gt;
Другой случай: плагин может требовать доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, чтобы использовать пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, а не иметь флаг целиком.&lt;br /&gt;
&lt;br /&gt;
Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к &amp;lt;tt&amp;gt;plugin_crab_usage&amp;lt;/tt&amp;gt;, а это не является командой. Вместо этого плагин подразумевает &amp;quot;значение по умолчание&amp;quot; как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.&lt;br /&gt;
&lt;br /&gt;
=Типы Переопределений=&lt;br /&gt;
Переопределения бывают двух видов: переопределение ''команды'' и переопределение ''групп команд''. &lt;br /&gt;
&lt;br /&gt;
Переопределение команды переопределяет уровень доступа, если у переопределения и у команды одинаковые названия. В этом случае команда автоматически наследует уровень доступа у переопределения.&lt;br /&gt;
Пример: если существует переопределение для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, то тогда любая команда администратора, имеющая название &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; будет наследовать эти разрешения.&lt;br /&gt;
&lt;br /&gt;
По аналогии с этим, переопределение ''групп команд'' переопределяет уровни доступа для всех команд, которые относятся к этой группе.&lt;br /&gt;
Пример: Если существует переопределение ''групп команд'' для &amp;lt;tt&amp;gt;CSDM&amp;lt;/tt&amp;gt;, то все команды администратора, отмеченные как &amp;quot;CSDM&amp;quot; унаследуют такие же права доступа.&lt;br /&gt;
&lt;br /&gt;
=Глобальная конфигурация=&lt;br /&gt;
Уровни доступа для переопределений могут быть глобально переопределены через &amp;lt;tt&amp;gt;configs/admin_overrides.cfg&amp;lt;/tt&amp;gt;. Формат файла очень прост:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;[имя1]&amp;quot;		&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	&amp;quot;@[группа1]&amp;quot;	&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	/* ... */&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Группы команд отмечаются установкой символа ('@') перед названием. Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;sm_map&amp;quot;	&amp;quot;k&amp;quot;	//Изменить доступ к команде &amp;quot;sm_map&amp;quot; на &amp;quot;k&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;@CSDM&amp;quot;		&amp;quot;m&amp;quot;	//Изменяет доступ ко всем CSDM командам на &amp;quot;m&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;sm_chat&amp;quot;	&amp;quot;&amp;quot;	//Позволяет всем использовать &amp;quot;sm_chat&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стоит заметить, что клиент должен будет обладать '''всеми''' флагами доступа, указанными в переопределении.&lt;br /&gt;
&lt;br /&gt;
=Настройка Групп=&lt;br /&gt;
Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.&lt;br /&gt;
&lt;br /&gt;
Для более подробной информации посетите [[Adding_Groups_%28SourceMod%29#File_Format|Adding Groups]].&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9046</id>
		<title>Custom Admin Menu (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9046"/>
		<updated>2013-08-31T18:05:41Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: changed link from En:Overriding Command Access to Ru:Overriding Command Access&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Кастом меню (Custom menu) позволяет серверным администраторам добавлять новые пункты в меню администратора. Оно было разработано, чтобы позволить плагинам добавлять свои возможности в меню, без внесения изменений в исходный код, т.к. большинство людей не обладают необходимыми знаниями. Для более подробной информации смотрите [[Admin Menu (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
Настраивается кастом меню через конфиг файл (расположен по пути: sourcemod/configs/adminmenu_custom.txt) и именно этот файл определяет, какие пункты или категории будут ''добавлены'' к стандартному меню при запуске сервера.&lt;br /&gt;
&lt;br /&gt;
==Параметры==&lt;br /&gt;
&lt;br /&gt;
Ниже перечислены все парамерты, которые могут быть указаны при настройке вашего меню. Многие из них опциональны и имеют значение по умолчанию, если их не указали. Для более подробной информации смотрите [[#Пример|Пример]] и/или приложение(я) [[#Файлы с примерами|Файлы с примерами]].&lt;br /&gt;
&lt;br /&gt;
*cmd - команда на выполнение (#1,#2 и так далее - лимита на число параметров нет) Используйте @номер чтобы параметр не был взят в &amp;quot;кавычки&amp;quot;&lt;br /&gt;
*admin - требуемый уровень администратора для доступа к этой команде - смотрите [[#Уровни администраторов|Уровни администраторов]] для более подробной информации&lt;br /&gt;
*execute - 'server' или 'player' - кто является &amp;quot;выполнителем&amp;quot; команды - сервер или тот, кто использует эту команду. По умолчанию 'player'&lt;br /&gt;
*1 - Информация о параметре 1 (#1) - их должно быть ровно столько, сколько параметров в cmd&lt;br /&gt;
**type - по умолчанию 'list', если не было указан.&lt;br /&gt;
***'groupplayer' 	- Лист [[#Group Подменю|Групп]] + подключенные игроки&lt;br /&gt;
***'group' 			- Лист [[#Group Подменю|Групп]]&lt;br /&gt;
***'player' 		- Лист игроков&lt;br /&gt;
***'list'			- Настраеваемый список опций&lt;br /&gt;
***'mapcycle'		- Автоматически заполняемое меню из карт вашего файла цикла карт&lt;br /&gt;
***'onoff'			- &amp;quot;Вкл&amp;quot; или &amp;quot;Выкл&amp;quot;, отсылает 1/0 (удобно для работы с консольными переменными (квары, ConVars, cvars), и им подобным)&lt;br /&gt;
**path - Требуется только при type = mapcycle. Путь (включая имя файла и расширение) к файлу, содержащему список карт (с форматом записи как у mapcycle.txt) - по умолчанию значение 'mapcycle.txt'&lt;br /&gt;
**method - 'name' (имена игроков), 'steamid' (стим айди), 'userid' (юзерид), 'userid2' (не содержит '#'), 'clientid' (айди клиента), 'ip' (айпи) - требуется только для groupplayer/player типов - по умолчанию name&lt;br /&gt;
**title - Заглавие меню, которое будет отображаться для выбора параметров (опционально (не обязательно))&lt;br /&gt;
**1-x	 - Лист параметров - требуется только для типа 'list'&lt;br /&gt;
**1.-x. - Текст, который будет показан для параметра - требуется только для типа 'list' (опционально, если не указать, то будет написано то, что указано в соответствующем листе параметров)&lt;br /&gt;
**1* - x* - Требуемый уровень доступа администратора, чтобы увидеть эту опцию (тоже самое, что и поле 'admin')&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
'''Внимание!'''&lt;br /&gt;
Если вы хотите использовать русские буквы в меню, то кодировка файла '''должна быть''' UTF-8 (без BOOM), иначе вместо букв вы увидите знаки вопроса!&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;Commands&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Fun Commands&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;cmd&amp;quot;			&amp;quot;sm_speed #1 @2&amp;quot;&lt;br /&gt;
			&amp;quot;admin&amp;quot;			&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
			&amp;quot;execute&amp;quot;		&amp;quot;player&amp;quot;&lt;br /&gt;
			&amp;quot;1&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;groupplayer&amp;quot;&lt;br /&gt;
				&amp;quot;method&amp;quot;	&amp;quot;name&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Player/Team to Edit&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
			&amp;quot;2&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;list&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Speed Multiplier&amp;quot;&lt;br /&gt;
				&amp;quot;1&amp;quot;		&amp;quot;1.0&amp;quot;&lt;br /&gt;
				&amp;quot;1.&amp;quot;		&amp;quot;Normal&amp;quot;&lt;br /&gt;
				&amp;quot;2&amp;quot;		&amp;quot;0.8&amp;quot;&lt;br /&gt;
				&amp;quot;2.&amp;quot;		&amp;quot;80%&amp;quot;&lt;br /&gt;
				&amp;quot;3&amp;quot;		&amp;quot;0.5&amp;quot;&lt;br /&gt;
				&amp;quot;3.&amp;quot;		&amp;quot;Half&amp;quot;&lt;br /&gt;
				&amp;quot;4&amp;quot;		&amp;quot;1.5&amp;quot;&lt;br /&gt;
				&amp;quot;4.&amp;quot;		&amp;quot;50% Boost&amp;quot;&lt;br /&gt;
				&amp;quot;5&amp;quot;		&amp;quot;2.0&amp;quot;&lt;br /&gt;
				&amp;quot;5.&amp;quot;		&amp;quot;Double&amp;quot;&lt;br /&gt;
				&amp;quot;5*&amp;quot;		&amp;quot;sm_ban&amp;quot; &lt;br /&gt;
				//Double увидят лишь те администраторы, которые имеют доступ к команде &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Если использовать пример выше для вашего adminmenu_custom.txt, то при запуске сервера в меню администратора будет добавлена новая категория под названием 'Fun Commands'.&lt;br /&gt;
*Эта категория будет содержать пункт под названием: &amp;quot;Set Player Speed&amp;quot;.&lt;br /&gt;
*Выбрав его, вы увидите другое меню, с названием: &amp;quot;Player/Team to Edit&amp;quot;, содержащий названия команд и имена игроков.&lt;br /&gt;
*Выбрав один из вариантов, будет создано второе меню, с названием &amp;quot;Speed Multiplier&amp;quot;.&lt;br /&gt;
*С выбором опций: &amp;quot;Normal&amp;quot;, &amp;quot;80%&amp;quot;, и так далее.&lt;br /&gt;
*Если игрок выберет опцию &amp;quot;Double&amp;quot;, то команда на выполнение будет выглядеть так: 'sm_speed &amp;quot;@CT&amp;quot; 2.0' (команда отсылается на выполнение через FakeClientCommand)&lt;br /&gt;
&lt;br /&gt;
Заметка: Вы можете использовать \ как управляющий символ. Таким образом, \&amp;quot; позволит вам добавить кавычку в вашу строку.&lt;br /&gt;
&lt;br /&gt;
==Уровни администраторов==&lt;br /&gt;
&lt;br /&gt;
	Все 'type' 'admin' теперь требуют строчную команду. Эта команда может уже существовать (например, sm_ban) или быть полностью придуманной (например, onlycrabscanusethis).&lt;br /&gt;
	&lt;br /&gt;
	Если команда существует, то эта опция (или лист опций) будет требовать уровень доступа, равный уровню доступа к этой команде (включая любые переопределения (оверрайды, overrides), которые вы сделали).&amp;lt;br&amp;gt;&lt;br /&gt;
	Например, если вы используете sm_ban как уровень администратора для подменю, то таким образом каждый, кто имеет доступ к sm_ban, будет так же иметь доступ и к этому подменю (по умолчанию доступ к этой команде является флаг бана). Однако если вы переопределили sm_ban для одной из групп (&amp;quot;override&amp;quot; &amp;quot;allow&amp;quot; - в файле admin_groups.cfg), то эта группа так же получит доступ.&lt;br /&gt;
	&lt;br /&gt;
	Если команда не существует, то вам нужно будет добавить переопределение для этой команды, как это делается для простых команд. Это делается в файле admin_overrides.cfg (чтобы назначить флаг доступа к этой команде,&lt;br /&gt;
	и/или в файле admin_groups.cfg (чтобы дать доступ к команде определенной группе или же забрать, несмотря на то, что они имеют флаг доступа)&lt;br /&gt;
&lt;br /&gt;
Если уровень доступа не был назначен, то тогда уровнем доступа будет назначен первый аргумент &amp;quot;cmd&amp;quot;. Например, для команды&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;sm_ban #1 #2&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
уровнем доступа будет уровень доступа sm_ban, включая все его переопределения.&lt;br /&gt;
	&lt;br /&gt;
Для более подробной информации смотрите [[Ru:Overriding Command Access (SourceMod)|Переопределение уровней доступа]]&lt;br /&gt;
&lt;br /&gt;
==Group Подменю==&lt;br /&gt;
&lt;br /&gt;
Типы 'group' и 'groupplayer' автоматически добавляют заранее настроенные опции в меню. Эти опции настраиваются в файле sourcemod/configs/adminmenu_grouping.txt&lt;br /&gt;
&lt;br /&gt;
Обычно они используются, чтобы добавить такие команды как '@all', '@t' и другие, для ваших меню.&lt;br /&gt;
&lt;br /&gt;
==Категории==&lt;br /&gt;
&lt;br /&gt;
Если вы хотите добавить пункт в уже существующую SourceMod категорию,  вы должны будете определить его внутреннее имя в &amp;quot;commands&amp;quot; группе. Три категории, предоставленные SourceMod'ом:&lt;br /&gt;
&lt;br /&gt;
*PlayerCommands (Управление игроками)&lt;br /&gt;
*ServerCommands (Управление сервером)&lt;br /&gt;
*VotingCommands (Управление голосованиями)&lt;br /&gt;
&lt;br /&gt;
==Сортировка==&lt;br /&gt;
Категории и пункты, добавленные с использованием динамических меню, могут быть отсортированы, как обычные пункты. Для подробной информации смотрите [[Admin Menu Configuration (SourceMod)|Admin Menu Configuration]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы можно было сортировать добавленный пункт, вы должны дать вашей команде уникальное имя в вашем конфигурационном файле. Для приведенного примера:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;item&amp;quot;	&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
==Дополнительные возможности==&lt;br /&gt;
Пример использования полного потенциала меню: даем администраторам доступ к квару, не давая им флага доступа 'sm_cvars' &lt;br /&gt;
&lt;br /&gt;
Добавьте квар, к которому вы хотите дать доступ, и установите 'execute' 'server'&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;mp_friendlyfire #1&amp;quot;&lt;br /&gt;
&amp;quot;execute&amp;quot;	&amp;quot;server&amp;quot;&lt;br /&gt;
&amp;quot;admin&amp;quot;		&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Таким образом, команда будет выполнена через rcon, несмотря на обычную систему уровней доступа, и проверит доступ только к флагу, указанному в поле 'admin'. Это так же работает для любых других команд, включая sm_rcon.&lt;br /&gt;
&lt;br /&gt;
==Файлы с примерами==&lt;br /&gt;
&lt;br /&gt;
Пример файла adminmenu_custom.txt настроенный для Super Commands:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/supercmdsmenu.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Полный пример, спасибо uE|Tekniqal:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/smsuper.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_overrides.cfg admin_overrides.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_groups.cfg admin_groups.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9045</id>
		<title>Overriding Command Access (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)/ru&amp;diff=9045"/>
		<updated>2013-08-31T18:03:32Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: Created page with &amp;quot;Эта статья объясняет, как без изменений исходных кодов плагина, вы можете изменить флаги доступ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Эта статья объясняет, как без изменений исходных кодов плагина, вы можете изменить флаги доступа к любой команде, как для всех сразу, так и для одной из групп.&lt;br /&gt;
&lt;br /&gt;
=Вступление=&lt;br /&gt;
Переопределение доступа к коменде - один из самых мощных аспектов SourceMod администрирования. Оно позволяет вам:&lt;br /&gt;
*Настроить доступ к любой команде администратора без изменения исходного кода плагина;&lt;br /&gt;
*Изменить доступ к целой группе команд без изменений исходного кода;&lt;br /&gt;
*Создать настраивыемые уровни доступа;&lt;br /&gt;
*Разрешить или запретить команду или группу команд группе администраторов, несмотря на их флаги доступа.&lt;br /&gt;
&lt;br /&gt;
Изменение прав доступа к SourceMod объекту называется ''переопределением'' (оверрайд, override). Переопределение - это произвольная строка. Если переопределенная строка совпадает с именем команды, то тогда доступ к команде будет унаследован от переопределения.&lt;br /&gt;
&lt;br /&gt;
Это очень важно по двум причинам:&lt;br /&gt;
*Переопределение может изменить доступ к команде.&lt;br /&gt;
*Переопределение может использоваться как настраиваемый флаг доступа.&lt;br /&gt;
&lt;br /&gt;
Например, плагин требует доступ к флагу &amp;quot;g&amp;quot;, чтобы использовать команду &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;. Однако, переопределение может дать/запретить использовать эту команду определенной группе и/или может изменить обычный флаг для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; на &amp;quot;k&amp;quot; (или любой другой).&lt;br /&gt;
&lt;br /&gt;
Другой случай: плагин может требовать доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, чтобы использовать особый пункт в меню. В этом случае, пользователю будет достаточно иметь только доступ к &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, а не иметь флаг целиком.&lt;br /&gt;
&lt;br /&gt;
Последний пример гибкости этой системы: плагин может сообщить, что пользователь должен обладать доступом к &amp;lt;tt&amp;gt;plugin_crab_usage&amp;lt;/tt&amp;gt;, а это не является командой. Вместо этого плагин подразумевает &amp;quot;значение по умолчание&amp;quot; как уровень доступа, и пользователи могут выбрать, как переопределить. Это показывает, что переопределения отделены от команд, однако, команды наследуют их права доступа от переопределений одинаковых имен.&lt;br /&gt;
&lt;br /&gt;
=Типы Переопределений=&lt;br /&gt;
Переопределения бывают двух видов: переопределение ''команды'' и переопределение ''групп команд''. &lt;br /&gt;
&lt;br /&gt;
Переопределение команды переопределяет уровень доступа, если у переопределения и у команды одинаковые названия. В этом случае команда автоматически наследует уровень доступа у переопределения.&lt;br /&gt;
Пример: если существует переопределение для &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, то тогда любая команда администратора, имеющая название &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; будет наследовать эти разрешения.&lt;br /&gt;
&lt;br /&gt;
По аналогии с этим, переопределение ''групп команд'' переопределяет уровни доступа для всех команд, которые относятся к этой группе.&lt;br /&gt;
Пример: Если существует переопределение ''групп команд'' для &amp;lt;tt&amp;gt;CSDM&amp;lt;/tt&amp;gt;, то все команды администратора, отмеченные как &amp;quot;CSDM&amp;quot; унаследуют такие же права доступа.&lt;br /&gt;
&lt;br /&gt;
=Глобальная конфигурация=&lt;br /&gt;
Уровни доступа для переопределений могут быть глобально переопределены через &amp;lt;tt&amp;gt;configs/admin_overrides.cfg&amp;lt;/tt&amp;gt;. Формат файла очень прост:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;[имя1]&amp;quot;		&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	&amp;quot;@[группа1]&amp;quot;	&amp;quot;[флаги]&amp;quot;&lt;br /&gt;
	/* ... */&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Группы команд отмечаются установкой символа ('@') перед названием. Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;sm_map&amp;quot;	&amp;quot;k&amp;quot;	//Изменить доступ к команде &amp;quot;sm_map&amp;quot; на &amp;quot;k&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;@CSDM&amp;quot;		&amp;quot;m&amp;quot;	//Изменяет доступ ко всем CSDM командам на &amp;quot;m&amp;quot; флаг.&lt;br /&gt;
	&amp;quot;sm_chat&amp;quot;	&amp;quot;&amp;quot;	//Позволяет всем использовать &amp;quot;sm_chat&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стоит заметить, что клиент должен будет обладать '''всеми''' флагами доступа, указанными в переопределении.&lt;br /&gt;
&lt;br /&gt;
=Настройка групп=&lt;br /&gt;
Переопределения групп позволяет разрешить или запретить группе команды. Это гораздо проще, чем настраивать флаги каждой группе.&lt;br /&gt;
&lt;br /&gt;
Для более подробной информации посетите [[Adding_Groups_%28SourceMod%29#File_Format|Adding Groups]].&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)&amp;diff=9044</id>
		<title>Overriding Command Access (SourceMod)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Overriding_Command_Access_(SourceMod)&amp;diff=9044"/>
		<updated>2013-08-31T18:03:01Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: added LanguageSwitch, added RU translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how, without editing plugin source code, you can change the flags or permissions on any command, either globally, or for a specific group.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Command access overrides are one of the most powerful aspects of the SourceMod administration system.  They effectively let you:&lt;br /&gt;
*Change the access to any admin command without modifying plugin source code;&lt;br /&gt;
*Change the access to entire groups of commands without modifying source code;&lt;br /&gt;
*Create custom access levels;&lt;br /&gt;
*Allow or deny commands and groups of commands to an administrator group regardless of the command flags.&lt;br /&gt;
&lt;br /&gt;
When you change the permissions to a SourceMod object, it is called an ''override''.  An override is an arbitrary string.  If the override string matches a command name, then the command permissions will be inherited from that override.&lt;br /&gt;
&lt;br /&gt;
This concept is important for two reasons:&lt;br /&gt;
*An override can change the permissions of a command.&lt;br /&gt;
*An override can be used as a custom access flag.&lt;br /&gt;
&lt;br /&gt;
For example, a plugin might require access &amp;quot;g&amp;quot; to use the &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; command.  However, an override could explicitly allow/deny usage of this command to a given group, and/or it could change the default flag for &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; to be &amp;quot;k&amp;quot; instead.&lt;br /&gt;
&lt;br /&gt;
More interestingly, a plugin could require &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; access in order to use a specific menu option.  In this case, a user would have to be able to access &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, rather than have a hardcoded flag.&lt;br /&gt;
&lt;br /&gt;
As a final example of the flexibility of this system, a plugin might say that users must be able to access &amp;lt;tt&amp;gt;plugin_crab_usage&amp;lt;/tt&amp;gt;, which isn't a command at all.  Instead, the plugin assumes a ''default'' access level internally, and users can opt to override it as they wish.  This demonstrates that overrides are separate from commands, however, commands themselves inherit their permissions from overrides of the same name.&lt;br /&gt;
&lt;br /&gt;
=Override Types=&lt;br /&gt;
Overrides come in two flavors: ''command'' overrides and ''command group'' overrides.  Command overrides are overrides that, if they have the same name as a command, that command will automatically inherit that override's permissions.&lt;br /&gt;
&lt;br /&gt;
Similarly, a ''command group'' override is an override that which, if a command has the same group name as a ''command group'' override, that command will inherit the override's permissions.&lt;br /&gt;
&lt;br /&gt;
Example 1: If a command override exists for &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt;, any admin command named &amp;lt;tt&amp;gt;sm_map&amp;lt;/tt&amp;gt; will inherit those permissions.&lt;br /&gt;
&lt;br /&gt;
Example 2: If a command group override exists for &amp;lt;tt&amp;gt;CSDM&amp;lt;/tt&amp;gt;, any admin command labelled as a &amp;quot;CSDM&amp;quot; command will inherit those permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Global Configuration=&lt;br /&gt;
Access levels for overrides can be globally reconfigured via &amp;lt;tt&amp;gt;configs/admin_overrides.cfg&amp;lt;/tt&amp;gt;.  The file format is very simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;[name1]&amp;quot;	&amp;quot;[flags]&amp;quot;&lt;br /&gt;
	&amp;quot;@[group1]&amp;quot;	&amp;quot;[flags]&amp;quot;&lt;br /&gt;
	/* ... */&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Command groups are specified with an 'at' sign ('@') preceding the name.  Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Overrides&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;sm_map&amp;quot;	&amp;quot;k&amp;quot;	//Change &amp;quot;sm_map&amp;quot; to the &amp;quot;k&amp;quot; flag.&lt;br /&gt;
	&amp;quot;@CSDM&amp;quot;		&amp;quot;m&amp;quot;	//Change all CSDM commands to the &amp;quot;m&amp;quot; flag.&lt;br /&gt;
	&amp;quot;sm_chat&amp;quot;	&amp;quot;&amp;quot;	//Allow anyone to use &amp;quot;sm_chat&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that given an arbitrary number of flags, the client must require access to '''all''' specified flags in the string, as opposed to just any one of them.&lt;br /&gt;
&lt;br /&gt;
=Group Configuration=&lt;br /&gt;
Group overrides are given on an allow or deny basis.  That is, rather than changing flags per-group, the override is simply whether it is allowed or denied to members of that group.  &lt;br /&gt;
&lt;br /&gt;
For more information, visit [[Adding_Groups_%28SourceMod%29#File_Format|Adding Groups]].&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9037</id>
		<title>Custom Admin Menu (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9037"/>
		<updated>2013-08-30T10:20:37Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Кастом меню (Custom menu) позволяет серверным администраторам добавлять новые пункты в меню администратора. Оно было разработано, чтобы позволить плагинам добавлять свои возможности в меню, без внесения изменений в исходный код, т.к. большинство людей не обладают необходимыми знаниями. Для более подробной информации смотрите [[Admin Menu (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
Настраивается кастом меню через конфиг файл (расположен по пути: sourcemod/configs/adminmenu_custom.txt) и именно этот файл определяет, какие пункты или категории будут ''добавлены'' к стандартному меню при запуске сервера.&lt;br /&gt;
&lt;br /&gt;
==Параметры==&lt;br /&gt;
&lt;br /&gt;
Ниже перечислены все парамерты, которые могут быть указаны при настройке вашего меню. Многие из них опциональны и имеют значение по умолчанию, если их не указали. Для более подробной информации смотрите [[#Пример|Пример]] и/или приложение(я) [[#Файлы с примерами|Файлы с примерами]].&lt;br /&gt;
&lt;br /&gt;
*cmd - команда на выполнение (#1,#2 и так далее - лимита на число параметров нет) Используйте @номер чтобы параметр не был взят в &amp;quot;кавычки&amp;quot;&lt;br /&gt;
*admin - требуемый уровень администратора для доступа к этой команде - смотрите [[#Уровни администраторов|Уровни администраторов]] для более подробной информации&lt;br /&gt;
*execute - 'server' или 'player' - кто является &amp;quot;выполнителем&amp;quot; команды - сервер или тот, кто использует эту команду. По умолчанию 'player'&lt;br /&gt;
*1 - Информация о параметре 1 (#1) - их должно быть ровно столько, сколько параметров в cmd&lt;br /&gt;
**type - по умолчанию 'list', если не было указан.&lt;br /&gt;
***'groupplayer' 	- Лист [[#Group Подменю|Групп]] + подключенные игроки&lt;br /&gt;
***'group' 			- Лист [[#Group Подменю|Групп]]&lt;br /&gt;
***'player' 		- Лист игроков&lt;br /&gt;
***'list'			- Настраеваемый список опций&lt;br /&gt;
***'mapcycle'		- Автоматически заполняемое меню из карт вашего файла цикла карт&lt;br /&gt;
***'onoff'			- &amp;quot;Вкл&amp;quot; или &amp;quot;Выкл&amp;quot;, отсылает 1/0 (удобно для работы с консольными переменными (квары, ConVars, cvars), и им подобным)&lt;br /&gt;
**path - Требуется только при type = mapcycle. Путь (включая имя файла и расширение) к файлу, содержащему список карт (с форматом записи как у mapcycle.txt) - по умолчанию значение 'mapcycle.txt'&lt;br /&gt;
**method - 'name' (имена игроков), 'steamid' (стим айди), 'userid' (юзерид), 'userid2' (не содержит '#'), 'clientid' (айди клиента), 'ip' (айпи) - требуется только для groupplayer/player типов - по умолчанию name&lt;br /&gt;
**title - Заглавие меню, которое будет отображаться для выбора параметров (опционально (не обязательно))&lt;br /&gt;
**1-x	 - Лист параметров - требуется только для типа 'list'&lt;br /&gt;
**1.-x. - Текст, который будет показан для параметра - требуется только для типа 'list' (опционально, если не указать, то будет написано то, что указано в соответствующем листе параметров)&lt;br /&gt;
**1* - x* - Требуемый уровень доступа администратора, чтобы увидеть эту опцию (тоже самое, что и поле 'admin')&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
'''Внимание!'''&lt;br /&gt;
Если вы хотите использовать русские буквы в меню, то кодировка файла '''должна быть''' UTF-8 (без BOOM), иначе вместо букв вы увидите знаки вопроса!&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;Commands&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Fun Commands&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;cmd&amp;quot;			&amp;quot;sm_speed #1 @2&amp;quot;&lt;br /&gt;
			&amp;quot;admin&amp;quot;			&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
			&amp;quot;execute&amp;quot;		&amp;quot;player&amp;quot;&lt;br /&gt;
			&amp;quot;1&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;groupplayer&amp;quot;&lt;br /&gt;
				&amp;quot;method&amp;quot;	&amp;quot;name&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Player/Team to Edit&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
			&amp;quot;2&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;list&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Speed Multiplier&amp;quot;&lt;br /&gt;
				&amp;quot;1&amp;quot;		&amp;quot;1.0&amp;quot;&lt;br /&gt;
				&amp;quot;1.&amp;quot;		&amp;quot;Normal&amp;quot;&lt;br /&gt;
				&amp;quot;2&amp;quot;		&amp;quot;0.8&amp;quot;&lt;br /&gt;
				&amp;quot;2.&amp;quot;		&amp;quot;80%&amp;quot;&lt;br /&gt;
				&amp;quot;3&amp;quot;		&amp;quot;0.5&amp;quot;&lt;br /&gt;
				&amp;quot;3.&amp;quot;		&amp;quot;Half&amp;quot;&lt;br /&gt;
				&amp;quot;4&amp;quot;		&amp;quot;1.5&amp;quot;&lt;br /&gt;
				&amp;quot;4.&amp;quot;		&amp;quot;50% Boost&amp;quot;&lt;br /&gt;
				&amp;quot;5&amp;quot;		&amp;quot;2.0&amp;quot;&lt;br /&gt;
				&amp;quot;5.&amp;quot;		&amp;quot;Double&amp;quot;&lt;br /&gt;
				&amp;quot;5*&amp;quot;		&amp;quot;sm_ban&amp;quot; &lt;br /&gt;
				//Double увидят лишь те администраторы, которые имеют доступ к команде &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Если использовать пример выше для вашего adminmenu_custom.txt, то при запуске сервера в меню администратора будет добавлена новая категория под названием 'Fun Commands'.&lt;br /&gt;
*Эта категория будет содержать пункт под названием: &amp;quot;Set Player Speed&amp;quot;.&lt;br /&gt;
*Выбрав его, вы увидите другое меню, с названием: &amp;quot;Player/Team to Edit&amp;quot;, содержащий названия команд и имена игроков.&lt;br /&gt;
*Выбрав один из вариантов, будет создано второе меню, с названием &amp;quot;Speed Multiplier&amp;quot;.&lt;br /&gt;
*С выбором опций: &amp;quot;Normal&amp;quot;, &amp;quot;80%&amp;quot;, и так далее.&lt;br /&gt;
*Если игрок выберет опцию &amp;quot;Double&amp;quot;, то команда на выполнение будет выглядеть так: 'sm_speed &amp;quot;@CT&amp;quot; 2.0' (команда отсылается на выполнение через FakeClientCommand)&lt;br /&gt;
&lt;br /&gt;
Заметка: Вы можете использовать \ как управляющий символ. Таким образом, \&amp;quot; позволит вам добавить кавычку в вашу строку.&lt;br /&gt;
&lt;br /&gt;
==Уровни администраторов==&lt;br /&gt;
&lt;br /&gt;
	Все 'type' 'admin' теперь требуют строчную команду. Эта команда может уже существовать (например, sm_ban) или быть полностью придуманной (например, onlycrabscanusethis).&lt;br /&gt;
	&lt;br /&gt;
	Если команда существует, то эта опция (или лист опций) будет требовать уровень доступа, равный уровню доступа к этой команде (включая любые переопределения (оверрайды, overrides), которые вы сделали).&amp;lt;br&amp;gt;&lt;br /&gt;
	Например, если вы используете sm_ban как уровень администратора для подменю, то таким образом каждый, кто имеет доступ к sm_ban, будет так же иметь доступ и к этому подменю (по умолчанию доступ к этой команде является флаг бана). Однако если вы переопределили sm_ban для одной из групп (&amp;quot;override&amp;quot; &amp;quot;allow&amp;quot; - в файле admin_groups.cfg), то эта группа так же получит доступ.&lt;br /&gt;
	&lt;br /&gt;
	Если команда не существует, то вам нужно будет добавить переопределение для этой команды, как это делается для простых команд. Это делается в файле admin_overrides.cfg (чтобы назначить флаг доступа к этой команде,&lt;br /&gt;
	и/или в файле admin_groups.cfg (чтобы дать доступ к команде определенной группе или же забрать, несмотря на то, что они имеют флаг доступа)&lt;br /&gt;
&lt;br /&gt;
Если уровень доступа не был назначен, то тогда уровнем доступа будет назначен первый аргумент &amp;quot;cmd&amp;quot;. Например, для команды&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;sm_ban #1 #2&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
уровнем доступа будет уровень доступа sm_ban, включая все его переопределения.&lt;br /&gt;
	&lt;br /&gt;
Для более подробной информации смотрите [[Overriding Command Access (SourceMod)|Overriding Command Access]]&lt;br /&gt;
&lt;br /&gt;
==Group Подменю==&lt;br /&gt;
&lt;br /&gt;
Типы 'group' и 'groupplayer' автоматически добавляют заранее настроенные опции в меню. Эти опции настраиваются в файле sourcemod/configs/adminmenu_grouping.txt&lt;br /&gt;
&lt;br /&gt;
Обычно они используются, чтобы добавить такие команды как '@all', '@t' и другие, для ваших меню.&lt;br /&gt;
&lt;br /&gt;
==Категории==&lt;br /&gt;
&lt;br /&gt;
Если вы хотите добавить пункт в уже существующую SourceMod категорию,  вы должны будете определить его внутреннее имя в &amp;quot;commands&amp;quot; группе. Три категории, предоставленные SourceMod'ом:&lt;br /&gt;
&lt;br /&gt;
*PlayerCommands (Управление игроками)&lt;br /&gt;
*ServerCommands (Управление сервером)&lt;br /&gt;
*VotingCommands (Управление голосованиями)&lt;br /&gt;
&lt;br /&gt;
==Сортировка==&lt;br /&gt;
Категории и пункты, добавленные с использованием динамических меню, могут быть отсортированы, как обычные пункты. Для подробной информации смотрите [[Admin Menu Configuration (SourceMod)|Admin Menu Configuration]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы можно было сортировать добавленный пункт, вы должны дать вашей команде уникальное имя в вашем конфигурационном файле. Для приведенного примера:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;item&amp;quot;	&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
==Дополнительные возможности==&lt;br /&gt;
Пример использования полного потенциала меню: даем администраторам доступ к квару, не давая им флага доступа 'sm_cvars' &lt;br /&gt;
&lt;br /&gt;
Добавьте квар, к которому вы хотите дать доступ, и установите 'execute' 'server'&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;mp_friendlyfire #1&amp;quot;&lt;br /&gt;
&amp;quot;execute&amp;quot;	&amp;quot;server&amp;quot;&lt;br /&gt;
&amp;quot;admin&amp;quot;		&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Таким образом, команда будет выполнена через rcon, несмотря на обычную систему уровней доступа, и проверит доступ только к флагу, указанному в поле 'admin'. Это так же работает для любых других команд, включая sm_rcon.&lt;br /&gt;
&lt;br /&gt;
==Файлы с примерами==&lt;br /&gt;
&lt;br /&gt;
Пример файла adminmenu_custom.txt настроенный для Super Commands:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/supercmdsmenu.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Полный пример, спасибо uE|Tekniqal:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/smsuper.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_overrides.cfg admin_overrides.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_groups.cfg admin_groups.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9036</id>
		<title>Custom Admin Menu (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9036"/>
		<updated>2013-08-30T10:18:43Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Кастом меню (Custom menu) позволяет серверным администраторам добавлять новые пункты в меню администратора. Оно было разработано, чтобы позволить плагинам добавлять свои возможности в меню, без внесения изменений в исходный код, т.к. большинство людей не обладают необходимыми знаниями. Для более подробной информации смотрите [[Admin Menu (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
Настраивается кастом меню через конфиг файл (расположен по пути: sourcemod/configs/adminmenu_custom.txt) и именно этот файл определяет, какие пункты или категории будут ''добавлены'' к стандартному меню при запуске сервера.&lt;br /&gt;
&lt;br /&gt;
==Параметры==&lt;br /&gt;
&lt;br /&gt;
Ниже перечислены все парамерты, которые могут быть указаны при настройке вашего меню. Многие из них опциональныи и имеют значение по умолчанию, если их не указали. Для более подробной информации смотрите [[#Пример|Пример]] и/или приложение(я) [[#Файлы с примерами|Файлы с примерами]].&lt;br /&gt;
&lt;br /&gt;
*cmd - команда на выполнение (#1,#2 и так далее - лимита на число параметров нет) Используйте @номер чтобы параметр не был взят в &amp;quot;кавычки&amp;quot;&lt;br /&gt;
*admin - требуемый уровень администратора для доступа к этой команде - смотрите [[#Уровни администраторов|Уровни администраторов]] для более подробной информации&lt;br /&gt;
*execute - 'server' или 'player' - кто является &amp;quot;выполнителем&amp;quot; команды - сервер или тот, кто использует эту команду. По умолчанию 'player'&lt;br /&gt;
*1 - Информация о параметре 1 (#1) - их должно быть ровно столько, сколько параметров в cmd&lt;br /&gt;
**type - по умолчанию 'list', если не было указан.&lt;br /&gt;
***'groupplayer' 	- Лист [[#Group Подменю|Групп]] + подключенные игроки&lt;br /&gt;
***'group' 			- Лист [[#Group Подменю|Групп]]&lt;br /&gt;
***'player' 		- Лист игроков&lt;br /&gt;
***'list'			- Настраеваемый список опций&lt;br /&gt;
***'mapcycle'		- Автоматически заполняемое меню из карт вашего файла цикла карт&lt;br /&gt;
***'onoff'			- &amp;quot;Вкл&amp;quot; или &amp;quot;Выкл&amp;quot;, отсылает 1/0 (удобно для работы с консольными переменными (квары, ConVars, cvars), и им подобным)&lt;br /&gt;
**path - Требуется только при type = mapcycle. Путь (включая имя файла и расширение) к файлу, содержащему список карт (с форматом записи как у mapcycle.txt) - по умолчанию значение 'mapcycle.txt'&lt;br /&gt;
**method - 'name' (имена игроков), 'steamid' (стим айди), 'userid' (юзерид), 'userid2' (не содержит '#'), 'clientid' (айди клиента), 'ip' (айпи) - требуется только для groupplayer/player типов - по умолчанию name&lt;br /&gt;
**title - Заглавие меню, которое будет отображаться для выбора параметров (опционально (не обязательно))&lt;br /&gt;
**1-x	 - Лист параметров - требуется только для типа 'list'&lt;br /&gt;
**1.-x. - Текст, который будет показан для параметра - требуется только для типа 'list' (опционально, если не указать, то будет написано то, что указано в соответствующем листе параметров)&lt;br /&gt;
**1* - x* - Требуемый уровень доступа администратора, чтобы увидеть эту опцию (тоже самое, что и поле 'admin')&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
'''Внимание!'''&lt;br /&gt;
Если вы хотите использовать русские буквы в меню, то кодировка файла '''должна быть''' UTF-8 (без BOOM), иначе вместо букв вы увидите знаки вопроса!&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;Commands&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Fun Commands&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;cmd&amp;quot;			&amp;quot;sm_speed #1 @2&amp;quot;&lt;br /&gt;
			&amp;quot;admin&amp;quot;			&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
			&amp;quot;execute&amp;quot;		&amp;quot;player&amp;quot;&lt;br /&gt;
			&amp;quot;1&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;groupplayer&amp;quot;&lt;br /&gt;
				&amp;quot;method&amp;quot;	&amp;quot;name&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Player/Team to Edit&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
			&amp;quot;2&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;list&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Speed Multiplier&amp;quot;&lt;br /&gt;
				&amp;quot;1&amp;quot;		&amp;quot;1.0&amp;quot;&lt;br /&gt;
				&amp;quot;1.&amp;quot;		&amp;quot;Normal&amp;quot;&lt;br /&gt;
				&amp;quot;2&amp;quot;		&amp;quot;0.8&amp;quot;&lt;br /&gt;
				&amp;quot;2.&amp;quot;		&amp;quot;80%&amp;quot;&lt;br /&gt;
				&amp;quot;3&amp;quot;		&amp;quot;0.5&amp;quot;&lt;br /&gt;
				&amp;quot;3.&amp;quot;		&amp;quot;Half&amp;quot;&lt;br /&gt;
				&amp;quot;4&amp;quot;		&amp;quot;1.5&amp;quot;&lt;br /&gt;
				&amp;quot;4.&amp;quot;		&amp;quot;50% Boost&amp;quot;&lt;br /&gt;
				&amp;quot;5&amp;quot;		&amp;quot;2.0&amp;quot;&lt;br /&gt;
				&amp;quot;5.&amp;quot;		&amp;quot;Double&amp;quot;&lt;br /&gt;
				&amp;quot;5*&amp;quot;		&amp;quot;sm_ban&amp;quot; &lt;br /&gt;
				//Double увидят лишь те администраторы, которые имеют доступ к команде &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Если использовать пример выше для вашего adminmenu_custom.txt, то при запуске сервера в меню администратора будет добавлена новая категория под названием 'Fun Commands'.&lt;br /&gt;
*Эта категория будет содержать пункт под названием: &amp;quot;Set Player Speed&amp;quot;.&lt;br /&gt;
*Выбрав его, вы увидите другое меню, с названием: &amp;quot;Player/Team to Edit&amp;quot;, содержащий названия команд и имена игроков.&lt;br /&gt;
*Выбрав один из вариантов, будет создано второе меню, с названием &amp;quot;Speed Multiplier&amp;quot;.&lt;br /&gt;
*С выбором опций: &amp;quot;Normal&amp;quot;, &amp;quot;80%&amp;quot;, и так далее.&lt;br /&gt;
*Если игрок выберет опцию &amp;quot;Double&amp;quot;, то команда на выполнение будет выглядеть так: 'sm_speed &amp;quot;@CT&amp;quot; 2.0' (команда отсылается на выполнение через FakeClientCommand)&lt;br /&gt;
&lt;br /&gt;
Заметка: Вы можете использовать \ как управляющий символ. Таким образом, \&amp;quot; позволит вам добавить кавычку в вашу строку.&lt;br /&gt;
&lt;br /&gt;
==Уровни администраторов==&lt;br /&gt;
&lt;br /&gt;
	Все 'type' 'admin' теперь требуют строчную команду. Эта команда может уже существовать (например, sm_ban) или быть полностью придуманной (например, onlycrabscanusethis).&lt;br /&gt;
	&lt;br /&gt;
	Если команда существует, то эта опция (или лист опций) будет требовать уровень доступа, равный уровню доступа к этой команде (включая любые переопределения (оверрайды, overrides), которые вы сделали).&amp;lt;br&amp;gt;&lt;br /&gt;
	Например, если вы используете sm_ban как уровень администратора для подменю, то таким образом каждый, кто имеет доступ к sm_ban, будет так же иметь доступ и к этому подменю (по умолчанию доступ к этой команде является флаг бана). Однако если вы переопределили sm_ban для одной из групп (&amp;quot;override&amp;quot; &amp;quot;allow&amp;quot; - в файле admin_groups.cfg), то эта группа так же получит доступ.&lt;br /&gt;
	&lt;br /&gt;
	Если команда не существует, то вам нужно будет добавить переопределение для этой команды, как это делается для простых команд. Это делается в файле admin_overrides.cfg (чтобы назначить флаг доступа к этой команде,&lt;br /&gt;
	и/или в файле admin_groups.cfg (чтобы дать доступ к команде определенной группе или же забрать, несмотря на то, что они имеют флаг доступа)&lt;br /&gt;
&lt;br /&gt;
Если уровень доступа не был назначен, то тогда уровнем доступа будет назначен первый аргумент &amp;quot;cmd&amp;quot;. Например, для команды&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;sm_ban #1 #2&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
уровнем доступа будет уровень доступа sm_ban, включая все его переопределения.&lt;br /&gt;
	&lt;br /&gt;
Для более подробной информации смотрите [[Overriding Command Access (SourceMod)|Overriding Command Access]]&lt;br /&gt;
&lt;br /&gt;
==Group Подменю==&lt;br /&gt;
&lt;br /&gt;
Типы 'group' и 'groupplayer' автоматически добавляют заранее настроенные опции в меню. Эти опции настраиваются в файле sourcemod/configs/adminmenu_grouping.txt&lt;br /&gt;
&lt;br /&gt;
Обычно они используются, чтобы добавить такие команды как '@all', '@t' и другие, для ваших меню.&lt;br /&gt;
&lt;br /&gt;
==Категории==&lt;br /&gt;
&lt;br /&gt;
Если вы хотите добавить пункт в уже существующую SourceMod категорию,  вы должны будете определить его внутреннее имя в &amp;quot;commands&amp;quot; группе. Три категории, предоставленные SourceMod'ом:&lt;br /&gt;
&lt;br /&gt;
*PlayerCommands (Управление игроками)&lt;br /&gt;
*ServerCommands (Управление сервером)&lt;br /&gt;
*VotingCommands (Управление голосованиями)&lt;br /&gt;
&lt;br /&gt;
==Сортировка==&lt;br /&gt;
Категории и пункты, добавленные с использованием динамических меню, могут быть отсортированы, как обычные пункты. Для подробной информации смотрите [[Admin Menu Configuration (SourceMod)|Admin Menu Configuration]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы можно было сортировать добавленный пункт, вы должны дать вашей команде уникальное имя в вашем конфигурационном файле. Для приведенного примера:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;item&amp;quot;	&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
==Дополнительные возможности==&lt;br /&gt;
Пример использования полного потенциала меню: даем администраторам доступ к квару, не давая им флага доступа 'sm_cvars' &lt;br /&gt;
&lt;br /&gt;
Добавьте квар, к которому вы хотите дать доступ, и установите 'execute' 'server'&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;mp_friendlyfire #1&amp;quot;&lt;br /&gt;
&amp;quot;execute&amp;quot;	&amp;quot;server&amp;quot;&lt;br /&gt;
&amp;quot;admin&amp;quot;		&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Таким образом, команда будет выполнена через rcon, несмотря на обычную систему уровней доступа, и проверит доступ только к флагу, указанному в поле 'admin'. Это так же работает для любых других команд, включая sm_rcon.&lt;br /&gt;
&lt;br /&gt;
==Файлы с примерами==&lt;br /&gt;
&lt;br /&gt;
Пример файла adminmenu_custom.txt настроенный для Super Commands:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/supercmdsmenu.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Полный пример, спасибо uE|Tekniqal:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/smsuper.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_overrides.cfg admin_overrides.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_groups.cfg admin_groups.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9035</id>
		<title>Custom Admin Menu (SourceMod)/ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)/ru&amp;diff=9035"/>
		<updated>2013-08-30T10:16:47Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: Created page with &amp;quot;==Вступление==  Кастом меню (Custom menu) позволяет серверным администраторам добавлять новые пункты ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Кастом меню (Custom menu) позволяет серверным администраторам добавлять новые пункты в меню администратора. Оно было разработано, чтобы позволить плагинам добавлять свои возможности в меню, без внесения изменений в исходный код, т.к. большинство людей не обладают необходимыми знаниями. Для более подробной информации смотрите [[Admin Menu (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
Настраивается кастом меню через конфиг файл (расположен по пути: sourcemod/configs/adminmenu_custom.txt) и именно этот файл определяет, какие пункты или категории будут ''добавлены'' к стандартному меню при запуске сервера.&lt;br /&gt;
&lt;br /&gt;
==Лист параметров==&lt;br /&gt;
&lt;br /&gt;
Ниже перечислены все парамерты, которые могут быть указаны при настройке вашего меню. Многие из них опциональныи и имеют значение по умолчанию, если их не указали. Для более подробной информации смотрите [[#Пример|Пример]] и/или приложение(я) [[#Файлы с примерами|Файлы с примерами]].&lt;br /&gt;
&lt;br /&gt;
*cmd - команда на выполнение (#1,#2 и так далее - лимита на число параметров нет) Используйте @номер чтобы параметр не был взят в &amp;quot;кавычки&amp;quot;&lt;br /&gt;
*admin - требуемый уровень администратора для доступа к этой команде - смотрите [[#Уровни администраторов|Уровни администраторов]] для более подробной информации&lt;br /&gt;
*execute - 'server' или 'player' - кто является &amp;quot;выполнителем&amp;quot; команды - сервер или тот, кто использует эту команду. По умолчанию 'player'&lt;br /&gt;
*1 - Информация о параметре 1 (#1) - их должно быть ровно столько, сколько параметров в cmd&lt;br /&gt;
**type - по умолчанию 'list', если не было указан.&lt;br /&gt;
***'groupplayer' 	- Лист [[#Group Подменю|Групп]] + подключенные игроки&lt;br /&gt;
***'group' 			- Лист [[#Group Подменю|Групп]]&lt;br /&gt;
***'player' 		- Лист игроков&lt;br /&gt;
***'list'			- Настраеваемый список опций&lt;br /&gt;
***'mapcycle'		- Автоматически заполняемое меню из карт вашего файла цикла карт&lt;br /&gt;
***'onoff'			- &amp;quot;Вкл&amp;quot; или &amp;quot;Выкл&amp;quot;, отсылает 1/0 (удобно для работы с консольными переменными (квары, ConVars, cvars), и им подобным)&lt;br /&gt;
**path - Требуется только при type = mapcycle. Путь (включая имя файла и расширение) к файлу, содержащему список карт (с форматом записи как у mapcycle.txt) - по умолчанию значение 'mapcycle.txt'&lt;br /&gt;
**method - 'name' (имена игроков), 'steamid' (стим айди), 'userid' (юзерид), 'userid2' (не содержит '#'), 'clientid' (айди клиента), 'ip' (айпи) - требуется только для groupplayer/player типов - по умолчанию name&lt;br /&gt;
**title - Заглавие меню, которое будет отображаться для выбора параметров (опционально (не обязательно))&lt;br /&gt;
**1-x	 - Лист параметров - требуется только для типа 'list'&lt;br /&gt;
**1.-x. - Текст, который будет показан для параметра - требуется только для типа 'list' (опционально, если не указать, то будет написано то, что указано в соответствующем листе параметров)&lt;br /&gt;
**1* - x* - Требуемый уровень доступа администратора, чтобы увидеть эту опцию (тоже самое, что и поле 'admin')&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
'''Внимание!'''&lt;br /&gt;
Если вы хотите использовать русские буквы в меню, то кодировка файла '''должна быть''' UTF-8 (без BOOM), иначе вместо букв вы увидите знаки вопроса!&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;Commands&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Fun Commands&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;cmd&amp;quot;			&amp;quot;sm_speed #1 @2&amp;quot;&lt;br /&gt;
			&amp;quot;admin&amp;quot;			&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
			&amp;quot;execute&amp;quot;		&amp;quot;player&amp;quot;&lt;br /&gt;
			&amp;quot;1&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;groupplayer&amp;quot;&lt;br /&gt;
				&amp;quot;method&amp;quot;	&amp;quot;name&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Player/Team to Edit&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
			&amp;quot;2&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;list&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Speed Multiplier&amp;quot;&lt;br /&gt;
				&amp;quot;1&amp;quot;		&amp;quot;1.0&amp;quot;&lt;br /&gt;
				&amp;quot;1.&amp;quot;		&amp;quot;Normal&amp;quot;&lt;br /&gt;
				&amp;quot;2&amp;quot;		&amp;quot;0.8&amp;quot;&lt;br /&gt;
				&amp;quot;2.&amp;quot;		&amp;quot;80%&amp;quot;&lt;br /&gt;
				&amp;quot;3&amp;quot;		&amp;quot;0.5&amp;quot;&lt;br /&gt;
				&amp;quot;3.&amp;quot;		&amp;quot;Half&amp;quot;&lt;br /&gt;
				&amp;quot;4&amp;quot;		&amp;quot;1.5&amp;quot;&lt;br /&gt;
				&amp;quot;4.&amp;quot;		&amp;quot;50% Boost&amp;quot;&lt;br /&gt;
				&amp;quot;5&amp;quot;		&amp;quot;2.0&amp;quot;&lt;br /&gt;
				&amp;quot;5.&amp;quot;		&amp;quot;Double&amp;quot;&lt;br /&gt;
				&amp;quot;5*&amp;quot;		&amp;quot;sm_ban&amp;quot; &lt;br /&gt;
				//Double увидят лишь те администраторы, которые имеют доступ к команде &amp;quot;sm_ban&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Если использовать пример выше для вашего adminmenu_custom.txt, то при запуске сервера в меню администратора будет добавлена новая категория под названием 'Fun Commands'.&lt;br /&gt;
*Эта категория будет содержать пункт под названием: &amp;quot;Set Player Speed&amp;quot;.&lt;br /&gt;
*Выбрав его, вы увидите другое меню, с названием: &amp;quot;Player/Team to Edit&amp;quot;, содержащий названия команд и имена игроков.&lt;br /&gt;
*Выбрав один из вариантов, будет создано второе меню, с названием &amp;quot;Speed Multiplier&amp;quot;.&lt;br /&gt;
*С выбором опций: &amp;quot;Normal&amp;quot;, &amp;quot;80%&amp;quot;, и так далее.&lt;br /&gt;
*Если игрок выберет опцию &amp;quot;Double&amp;quot;, то команда на выполнение будет выглядеть так: 'sm_speed &amp;quot;@CT&amp;quot; 2.0' (команда отсылается на выполнение через FakeClientCommand)&lt;br /&gt;
&lt;br /&gt;
Заметка: Вы можете использовать \ как управляющий символ. Таким образом, \&amp;quot; позволит вам добавить кавычку в вашу строку.&lt;br /&gt;
&lt;br /&gt;
==Уровни администраторов==&lt;br /&gt;
&lt;br /&gt;
	Все 'type' 'admin' теперь требуют строчную команду. Эта команда может уже существовать (например, sm_ban) или быть полностью придуманной (например, onlycrabscanusethis).&lt;br /&gt;
	&lt;br /&gt;
	Если команда существует, то эта опция (или лист опций) будет требовать уровень доступа, равный уровню доступа к этой команде (включая любые переопределения (оверрайды, overrides), которые вы сделали).&amp;lt;br&amp;gt;&lt;br /&gt;
	Например, если вы используете sm_ban как уровень администратора для подменю, то таким образом каждый, кто имеет доступ к sm_ban, будет так же иметь доступ и к этому подменю (по умолчанию доступ к этой команде является флаг бана). Однако если вы переопределили sm_ban для одной из групп (&amp;quot;override&amp;quot; &amp;quot;allow&amp;quot; - в файле admin_groups.cfg), то эта группа так же получит доступ.&lt;br /&gt;
	&lt;br /&gt;
	Если команда не существует, то вам нужно будет добавить переопределение для этой команды, как это делается для простых команд. Это делается в файле admin_overrides.cfg (чтобы назначить флаг доступа к этой команде,&lt;br /&gt;
	и/или в файле admin_groups.cfg (чтобы дать доступ к команде определенной группе или же забрать, несмотря на то, что они имеют флаг доступа)&lt;br /&gt;
&lt;br /&gt;
Если уровень доступа не был назначен, то тогда уровнем доступа будет назначен первый аргумент &amp;quot;cmd&amp;quot;. Например, для команды&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;sm_ban #1 #2&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
уровнем доступа будет уровень доступа sm_ban, включая все его переопределения.&lt;br /&gt;
	&lt;br /&gt;
Для более подробной информации смотрите [[Overriding Command Access (SourceMod)|Overriding Command Access]]&lt;br /&gt;
&lt;br /&gt;
==Group Подменю==&lt;br /&gt;
&lt;br /&gt;
Типы 'group' и 'groupplayer' автоматически добавляют заранее настроенные опции в меню. Эти опции настраиваются в файле sourcemod/configs/adminmenu_grouping.txt&lt;br /&gt;
&lt;br /&gt;
Обычно они используются, чтобы добавить такие команды как '@all', '@t' и другие, для ваших меню.&lt;br /&gt;
&lt;br /&gt;
==Категории==&lt;br /&gt;
&lt;br /&gt;
Если вы хотите добавить пункт в уже существующую SourceMod категорию,  вы должны будете определить его внутреннее имя в &amp;quot;commands&amp;quot; группе. Три категории, предоставленные SourceMod'ом:&lt;br /&gt;
&lt;br /&gt;
*PlayerCommands (Управление игроками)&lt;br /&gt;
*ServerCommands (Управление сервером)&lt;br /&gt;
*VotingCommands (Управление голосованиями)&lt;br /&gt;
&lt;br /&gt;
==Сортировка==&lt;br /&gt;
Категории и пункты, добавленные с использованием динамических меню, могут быть отсортированы, как обычные пункты. Для подробной информации смотрите [[Admin Menu Configuration (SourceMod)|Admin Menu Configuration]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы можно было сортировать добавленный пункт, вы должны дать вашей команде уникальное имя в вашем конфигурационном файле. Для приведенного примера:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;item&amp;quot;	&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
==Дополнительные возможности==&lt;br /&gt;
Пример использования полного потенциала меню: даем администраторам доступ к квару, не давая им флага доступа 'sm_cvars' &lt;br /&gt;
&lt;br /&gt;
Добавьте квар, к которому вы хотите дать доступ, и установите 'execute' 'server'&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;mp_friendlyfire #1&amp;quot;&lt;br /&gt;
&amp;quot;execute&amp;quot;	&amp;quot;server&amp;quot;&lt;br /&gt;
&amp;quot;admin&amp;quot;		&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Таким образом, команда будет выполнена через rcon, несмотря на обычную систему уровней доступа, и проверит доступ только к флагу, указанному в поле 'admin'. Это так же работает для любых других команд, включая sm_rcon.&lt;br /&gt;
&lt;br /&gt;
==Файлы с примерами==&lt;br /&gt;
&lt;br /&gt;
Пример файла adminmenu_custom.txt настроенный для Super Commands:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/supercmdsmenu.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Полный пример, спасибо uE|Tekniqal:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/smsuper.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_overrides.cfg admin_overrides.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_groups.cfg admin_groups.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)&amp;diff=9034</id>
		<title>Custom Admin Menu (SourceMod)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Custom_Admin_Menu_(SourceMod)&amp;diff=9034"/>
		<updated>2013-08-30T10:10:22Z</updated>

		<summary type="html">&lt;p&gt;Reiko1231: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The custom menu feature allows server admins to add new items to the SourceMod admin menu. It is designed to be used as a complement to plugins adding themselves to the menu. For more information see [[Admin Menu (SourceMod Scripting)]].&lt;br /&gt;
&lt;br /&gt;
Admins configure their menu using the config file (sourcemod/configs/adminmenu_custom.txt) and this is generated into a set of items and categories for the admin menu when the server starts.&lt;br /&gt;
&lt;br /&gt;
==Parameter List==&lt;br /&gt;
&lt;br /&gt;
These are all the parameters that can be specified to configure your menu. Most are optional and have a default value if they are not found. See the [[#Example Command|Example Command]] and/or the attached [[#Example Files|Example Files]] for information on how to lay out your config file.&lt;br /&gt;
&lt;br /&gt;
*cmd - command to be executed (#1,#2 etc for parameters - no limit on these) Use @num to have the parameter sent without being surrounded by &amp;quot;quotes&amp;quot;&lt;br /&gt;
*admin - admin level required to access the command - see [[#Admin Levels|Admin Levels]]&lt;br /&gt;
*execute - 'server' or 'player' - selects whether to execute as a client command or server command - defaults to 'player'&lt;br /&gt;
*1 - Information about parameter 1 (#1) - You need as many of these as you have parameters&lt;br /&gt;
**type - defaults to 'list' if not provided&lt;br /&gt;
***'groupplayer' 	- List of [[#Group Submenus|Groups]] + connected player &lt;br /&gt;
***'group' 			- List of [[#Group Submenus|Groups]]&lt;br /&gt;
***'player' 		- List of players&lt;br /&gt;
***'list'			- Custom Defined list of Options&lt;br /&gt;
***'mapcycle'		- Auto filled with the contents of your mapcycle file&lt;br /&gt;
***'onoff'			- On or Off menu that sends the numbers 1/0 (good for cvars etc)&lt;br /&gt;
**path - Only required for type mapcycle. Path (including file name and extension) to the file containing a list of maps (straight text formatting like mapcycle.txt) - defaults to 'mapcycle.txt'&lt;br /&gt;
**method - 'name', 'steamid', 'userid', 'userid2' (doesn't prepend the '#'), 'clientid', 'ip' - only needed for groupplayer/player menus - defaults to name&lt;br /&gt;
**title - To be shown for the parameter selection menu (optional)&lt;br /&gt;
**1-x	 - List parameters - only needed for 'list' type parameters&lt;br /&gt;
**1.-x. - Text to be shown for parameter - only needed for 'list' type parameters (optional, above will be used as text if ommited)&lt;br /&gt;
**1* - x* - Admin level required to see this option (same as the rest of the admin types)&lt;br /&gt;
&lt;br /&gt;
==Example Command==&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;Commands&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Fun Commands&amp;quot;&lt;br /&gt;
	{&lt;br /&gt;
		&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;cmd&amp;quot;			&amp;quot;sm_speed #1 @2&amp;quot;&lt;br /&gt;
			&amp;quot;admin&amp;quot;			&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
			&amp;quot;execute&amp;quot;		&amp;quot;player&amp;quot;&lt;br /&gt;
			&amp;quot;1&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;groupplayer&amp;quot;&lt;br /&gt;
				&amp;quot;method&amp;quot;	&amp;quot;name&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Player/Team to Edit&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
			}&lt;br /&gt;
			&amp;quot;2&amp;quot;&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;type&amp;quot; 		&amp;quot;list&amp;quot;&lt;br /&gt;
				&amp;quot;title&amp;quot;		&amp;quot;Speed Multiplier&amp;quot;&lt;br /&gt;
				&amp;quot;1&amp;quot;		&amp;quot;1.0&amp;quot;&lt;br /&gt;
				&amp;quot;1.&amp;quot;		&amp;quot;Normal&amp;quot;&lt;br /&gt;
				&amp;quot;2&amp;quot;		&amp;quot;0.8&amp;quot;&lt;br /&gt;
				&amp;quot;2.&amp;quot;		&amp;quot;80%&amp;quot;&lt;br /&gt;
				&amp;quot;3&amp;quot;		&amp;quot;0.5&amp;quot;&lt;br /&gt;
				&amp;quot;3.&amp;quot;		&amp;quot;Half&amp;quot;&lt;br /&gt;
				&amp;quot;4&amp;quot;		&amp;quot;1.5&amp;quot;&lt;br /&gt;
				&amp;quot;4.&amp;quot;		&amp;quot;50% Boost&amp;quot;&lt;br /&gt;
				&amp;quot;5&amp;quot;		&amp;quot;2.0&amp;quot;&lt;br /&gt;
				&amp;quot;5.&amp;quot;		&amp;quot;Double&amp;quot;&lt;br /&gt;
				&amp;quot;5*&amp;quot;		&amp;quot;sm_ban&amp;quot; &lt;br /&gt;
				//restrict the double option to admins who have access to the 'sm_ban' override&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
Using the above as the contents of your adminmenu_custom.txt config file would create a new category option in the admin menu called 'Fun Commands'.&lt;br /&gt;
*This category would contain an option called : &amp;quot;Set Player Speed&amp;quot;.&lt;br /&gt;
*Selecting it would prompt another menu titled: &amp;quot;Player/Team to Edit&amp;quot; containing a list of Groups and Player Names.&lt;br /&gt;
*Selecting one of these would prompt a second menu titled &amp;quot;Speed Multiplier&amp;quot;.&lt;br /&gt;
*List of options like &amp;quot;Normal&amp;quot;, &amp;quot;80%&amp;quot; etc.&lt;br /&gt;
*Example command sent if the user selected &amp;quot;Double&amp;quot; (through the player using FakeClientCommand)  - 'sm_speed &amp;quot;@CT&amp;quot; 2.0'&lt;br /&gt;
&lt;br /&gt;
NB: You can use \ as an escape character. So \&amp;quot; will let you add quotes to your strings.&lt;br /&gt;
&lt;br /&gt;
==Admin Levels==&lt;br /&gt;
&lt;br /&gt;
	All 'admin' types now require a string command name. This command can be already existing (sm_ban) or completely imaginary (onlycrabscanusethis).&lt;br /&gt;
	&lt;br /&gt;
	If the command exists that section (or list option) will require the exact same access level as that command (including any overrides you have specified).&amp;lt;br&amp;gt;&lt;br /&gt;
	E.g. You use sm_ban as the admin level for a submenu, so anyone that can access sm_ban will also be able to access this menu option (By default this is admins with the 'ban' flag). However if you have overridden sm_ban in one of your lower groups (&amp;quot;override&amp;quot; &amp;quot;allow&amp;quot; - in admin_groups.cfg). This group will also have access.&lt;br /&gt;
	&lt;br /&gt;
	If the command doesn't exist you will need to add it to your overrides sections as if it was a normal command. This can be done in admin_overrides.cfg (to assign flag letters to this command),&lt;br /&gt;
	and/or in admin_groups.cfg (to give access to the command to a specified group or remove it from a group even though they have the flag)&lt;br /&gt;
&lt;br /&gt;
If no admin level is specified for a base command it will default to the first argument of the &amp;quot;cmd&amp;quot; string. For example having&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;sm_ban #1 #2&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would have a default admin override string of 'sm_ban'&lt;br /&gt;
	&lt;br /&gt;
For more information, see [[Overriding Command Access (SourceMod)|Overriding Command Access]]&lt;br /&gt;
&lt;br /&gt;
==Group Submenus==&lt;br /&gt;
&lt;br /&gt;
Types 'group' and 'groupplayer' auto-add pre configured options to the menu. These options are configured using sourcemod/configs/adminmenu_grouping.txt&lt;br /&gt;
&lt;br /&gt;
They are generally used to provide common commands like '@all' , '@t' etc to your menus.&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
&lt;br /&gt;
If you wish to add items to an existing SourceMod category you will need to specify it’s internal name within the &amp;quot;commands&amp;quot; group. The three categories provided by SourceMod are:&lt;br /&gt;
&lt;br /&gt;
*PlayerCommands&lt;br /&gt;
*ServerCommands&lt;br /&gt;
*VotingCommands&lt;br /&gt;
&lt;br /&gt;
==Sorting==&lt;br /&gt;
Categories and items added using the dynamic menu can be sorted in the same way as normal items. For more information, see [[Admin Menu Configuration (SourceMod)|Admin Menu Configuration]]&lt;br /&gt;
&lt;br /&gt;
You need to specify the name you gave the command in your configuration file. For the provided example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;item&amp;quot;	&amp;quot;Set Player Speed&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
==Extra Uses==&lt;br /&gt;
An example of using the dynamic menu to its full potential: Giving admins access to some cvars while not letting them have general 'sm_cvar' access.&lt;br /&gt;
&lt;br /&gt;
Add the cvar you want to make available using the command directly and set the 'execute' parameter to 'server'&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
&amp;quot;cmd&amp;quot;		&amp;quot;mp_friendlyfire #1&amp;quot;&lt;br /&gt;
&amp;quot;execute&amp;quot;	&amp;quot;server&amp;quot;&lt;br /&gt;
&amp;quot;admin&amp;quot;		&amp;quot;sm_kick&amp;quot;&lt;br /&gt;
&amp;lt;/pawn&amp;gt;&lt;br /&gt;
This fires the command directly through rcon so it bypasses the normal SourceMod admin requirements and only checks what you set using the 'admin' parameter. This method can be used to create a list of commonly used (and low impact) cvars that your lower admins can change at will, without giving them access to everything. The same method works for rcon commands.&lt;br /&gt;
&lt;br /&gt;
==Example Files==&lt;br /&gt;
&lt;br /&gt;
Example adminmenu_custom.txt setup with Super Commands examples:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/supercmdsmenu.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A Full example setup thanks to uE|Tekniqal:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/smsuper.ini adminmenu_custom.txt]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_overrides.cfg admin_overrides.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://alliedmods.net/~pred/admin_groups.cfg admin_groups.cfg]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Documentation]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageSwitch}}&lt;/div&gt;</summary>
		<author><name>Reiko1231</name></author>
		
	</entry>
</feed>