<?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=BlagoYar</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=BlagoYar"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/BlagoYar"/>
	<updated>2026-05-09T15:09:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Ru:Format_Class_Functions_(SourceMod_Scripting)&amp;diff=10702</id>
		<title>Ru:Format Class Functions (SourceMod Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Ru:Format_Class_Functions_(SourceMod_Scripting)&amp;diff=10702"/>
		<updated>2019-01-16T17:55:32Z</updated>

		<summary type="html">&lt;p&gt;BlagoYar: Исправил &amp;quot;обрежится&amp;quot; на &amp;quot;обрежется&amp;quot; в описании к расширенному формату &amp;quot;width&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Введение=&lt;br /&gt;
Формат классов функций, аргументов переменной - функции в [[SourceMod]] которые позволяют Вам форматировать строки. Простой пример этой &amp;lt;tt&amp;gt;Format()&amp;lt;/tt&amp;gt; функции, выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;decl String:buffer[512];&lt;br /&gt;
Format(buffer, sizeof(buffer), &amp;quot;Ваше имя: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если userName содержит &amp;quot;&amp;lt;tt&amp;gt;Frenzzy&amp;lt;/tt&amp;gt;&amp;quot;, содержимое &amp;lt;tt&amp;gt;buffer&amp;lt;/tt&amp;gt; будет: &amp;quot;&amp;lt;tt&amp;gt;Ваше имя: Frenzzy&amp;lt;/tt&amp;gt;&amp;quot;. Прототип этих функций почти всегда содержит следующие параметры:&lt;br /&gt;
&amp;lt;pawn&amp;gt;const char[] fmt, {Handle,float,_}:...&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Например, обратите внимание на эти два выражения:&lt;br /&gt;
&amp;lt;pawn&amp;gt;native Format(char[] buffer, int maxlength, const char[] fmt, {Handle,float,_}:...);&lt;br /&gt;
native PrintToClient(int client, char[] fmt, {Handle,float,_}:...);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом, &amp;lt;tt&amp;gt;PrintToClient&amp;lt;/tt&amp;gt; является формат-классовой функцией. Она может быть использована точно так же, как было показано ранее:&lt;br /&gt;
&amp;lt;pawn&amp;gt;PrintToClient(client, &amp;quot;Ваше имя: %s&amp;quot;, userName);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Спецификаторы Формата=&lt;br /&gt;
Спецификаторы Формата имеют код, который позволяет указать, какие типы данных будут отображаться. Наиболее распространенными спецификаторами являются:&lt;br /&gt;
*'''Числовые'''&lt;br /&gt;
**'''d''' или '''i''': Целое число как десятичные&lt;br /&gt;
**'''b''': Бинарные символы в значении&lt;br /&gt;
**'''f''': Числа с плавающей точкой&lt;br /&gt;
**'''x''' or '''X''': Шестнадцатеричное представление бинарных значений (применение заглавных букв влияет на шестнадцатеричный регистр букв)&lt;br /&gt;
*'''Символ(ы)'''&lt;br /&gt;
**'''s''': Строка&lt;br /&gt;
**'''t''' или '''T''': Переводы фраз (см. в [[Translations (SourceMod_Scripting)#Inline_Translations|Inline Translations]])&lt;br /&gt;
**'''c''': Вывод одного символа (совместимо с UTF-8)&lt;br /&gt;
*'''Специальные'''&lt;br /&gt;
**'''L''': Требуется индекс клиента; расширяется до 1&amp;lt;2&amp;gt;&amp;lt;3&amp;gt;&amp;lt;&amp;gt;, где 1 - имя игрока, 2 - userid игрока, и 3 - Steam ID игрока. Если клиент имеет индекс 0, строка будет: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;Console&amp;lt;0&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;Console&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**'''N''': Требуется индекс клиента; расширяется до строки, содержащей имя игрока. Если клиент имеет индекс 0, строка будет: &amp;lt;tt&amp;gt;Console&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Использование=&lt;br /&gt;
Спецификаторы формата обозначаются символом &amp;lt;tt&amp;gt;'%s'&amp;lt;/tt&amp;gt;. Например, чтобы отобразилось число с плавающей точкой, десятичное число и строка, Вы можете использовать этот код:&lt;br /&gt;
&amp;lt;pawn&amp;gt;float fNum = 5.0;&lt;br /&gt;
int iNum = 5;&lt;br /&gt;
char[] str = &amp;quot;5&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
PrintToClient(client, &amp;quot;Десятичное число: %d Число с плавающей точкой: %f Строка: %s&amp;quot;, iNum, fNum, str);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Примечание''': Использование неправильных типов данных спецификаторов может быть очень опасно. Всегда убедитесь, что выводится правильный тип. Например, указание строки и передача числа, может привести к падению сервера.&lt;br /&gt;
&lt;br /&gt;
=Расширенный формат=&lt;br /&gt;
Спецификаторы формата имеют расширенный синтаксис для управления различными аспектами того, как будут выводиться данные.&lt;br /&gt;
Полный синтаксис: &amp;lt;tt&amp;gt;%[flags][width][.precision]specifier&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый раздел в квадратных скобках является дополнительным расширением. Описание поддерживаемых SourceMod расширений формата:&lt;br /&gt;
*'''%''': Очевидно, что это требуется всегда.&lt;br /&gt;
*'''flags''':&lt;br /&gt;
**'''-''': Выравнивание по левому краю (выравнивание по правому краю установлено по умолчанию)&lt;br /&gt;
**'''0''': Заполняет 0 вместо пробелов в случае необходимости (см. '''width''' ниже).&lt;br /&gt;
*'''width''': Минимальное количество символов, которые будут отображены. Если отображаемая величина будет короче, чем это число, результат будет заполнен пустым пространством. Значение так же не обрежется, даже если результат будет длиннее.&lt;br /&gt;
*'''precision''':&lt;br /&gt;
**'''For integers''': определяет минимальное количество цифр для отображения (или заполняет пробелами/нулями, если она меньше минимальной).&lt;br /&gt;
**'''For strings''': определяет максимальное количество символов для отображения.&lt;br /&gt;
**'''For floats''': определяет количество цифр для отображения ''после запятой''.&lt;br /&gt;
**'''For all other types''': нет эффекта.&lt;br /&gt;
*'''specifier''': символ указывающий тип данных (требуется всегда).&lt;br /&gt;
&lt;br /&gt;
Для получения более подробной информации см. [http://www.cplusplus.com/reference/clibrary/cstdio/printf.html printf] из C Standard Library, хотя не dсе режимы из C поддерживаются.&lt;br /&gt;
&lt;br /&gt;
[[Category:Ru:SourceMod Scripting]]&lt;/div&gt;</summary>
		<author><name>BlagoYar</name></author>
		
	</entry>
</feed>