<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://pawno.fanbb.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Pawno</title>
		<link>http://pawno.fanbb.ru/</link>
		<description>Pawno</description>
		<language>ru-ru</language>
		<lastBuildDate>Fri, 27 Apr 2012 22:55:31 +0400</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>[Услуга] Установка / настройка движков</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=27#p27</link>
			<description>&lt;p&gt;Здравствуйте, за небольшую плату помогу установке / настройке движков.&lt;br /&gt;Обращаться в skype: ted67t&lt;/p&gt;</description>
			<author>mybb@mybb.ru (ted)</author>
			<pubDate>Fri, 27 Apr 2012 22:55:31 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=27#p27</guid>
		</item>
		<item>
			<title>На форум требуются!</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=26#p26</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: black&quot;&gt;Ник:Rishatka&lt;br /&gt;Старж:1год&lt;br /&gt;Кем хотите быть?:Модератор..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Rishatka)</author>
			<pubDate>Tue, 13 Dec 2011 22:57:34 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=26#p26</guid>
		</item>
		<item>
			<title>Общаемся!</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=25#p25</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;font-family: Century Gothic&quot;&gt;&lt;span style=&quot;font-size: 14px&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: red&quot;&gt;Здесь мы будем общатся на разные темы&amp;#160; :music:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 22:50:28 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=25#p25</guid>
		</item>
		<item>
			<title>Правила раздела. [ От 11.12.2011 ]</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=23#p23</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;Правила раздела &amp;quot; Читы/Хаки &amp;quot;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;&lt;span style=&quot;font-family: Century Gothic&quot;&gt;1. Не использовать нецензурную лексику с названии темы.&lt;br /&gt;2. Не обсуждать\оскарбл*ять автора создавшего тему.&lt;br /&gt;3. В названии темы полностью выражать смысл темы.&lt;br /&gt;4. Не создавать темы похожие по содержанию.&lt;br /&gt;5. Не выкладывать файлы содержашие вирусы,ссылки на сторонние ресурсы,и прочие ссылки не относящиеся к разделу. ( Наказание: Предупрежнение\Блокировка аккаунта ).&lt;br /&gt;&lt;strong&gt;6. Обязательно! При создании темы,вписывать автора чита/хака и исходник ( т.е. сайт с которого был скачан чит ).&lt;/strong&gt;&lt;br /&gt;7.Выкладывать скриншоты работы чита.&lt;br /&gt;8.Заливать строго на wwwrghost.ru&lt;/p&gt;
						&lt;p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:35:41 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=23#p23</guid>
		</item>
		<item>
			<title>Правила раздела</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=22#p22</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Не знание правил, не освобождает от ответственности!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: yellow&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Правила создание темы&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;Обязательно:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;•Указывать город физического расположения вычислительного центра, адрес сайта и контрольной панели&lt;br /&gt;•Указывать примерные тарифы на услуги&lt;br /&gt;•Указывать базовый (гарантированный) комплект услуг при заключении договора&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;Желательно:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;•Указывать характеристики серверного оборудования&lt;br /&gt;•Указывать средний пинг по ближайшим к серверу регионам России и зарубежья&lt;br /&gt;•Предоставлять тестовый сервер минимум на 24 часа&lt;br /&gt;•Указывать реквизиты и аттестат &amp;quot;WebMoney&amp;quot;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: yellow&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Правила раздела&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;Запрещено:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;•Оставлять бессмысленные сообщение не зная не чего о хостинге&lt;br /&gt;•Оскорбление автора темы и его сотрудников&lt;br /&gt;•Запрещен спам своих серверов и прочего (Бан пожизненное)&lt;br /&gt;•Клевета и прочее обсуждение на хостинг не зная его&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: yellow&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Правила по поводу &amp;quot;AP/UP&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;Разрешено:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;•Поднятие темы &amp;quot;UP&amp;quot;&lt;br /&gt;•Поднятие темы 1 раз в 24 часа.&lt;br /&gt;•Поднятие темы только автором&lt;br /&gt;Запрещено:&lt;br /&gt;•Бессмысленные поднятие темы&lt;br /&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Нарушение любого параметра грозит удалением темы, закрытие тему,баном или предупреждением!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:28:18 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=22#p22</guid>
		</item>
		<item>
			<title>Правила создания темы</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=21#p21</link>
			<description>&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;Если вы хотите создать тему с вашим сервером, вы обязаны соблюдать следующие правила:&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;- Сервер должен иметь картинку (по желанию).&lt;br /&gt;- Обязательно должно быть описание .&lt;br /&gt;- Запрещено создавать тему только с информацией сервера.&lt;br /&gt;- Запрещено апать тему раз в сутки ибо читайте правила &lt;br /&gt;- Обязательно должно быть описание не менее 5 предложений.&lt;br /&gt;- Обязательно должен быть указать IP адресс,сайт,форум.&lt;br /&gt;- Если тему удалили,создать её можно только через 1 день.&lt;br /&gt;- Запрещено ставить размер шрифта более чем 3.&lt;br /&gt;- Создание тем типа &amp;quot;какой лучший серв?&amp;quot; - будут удалены.&lt;br /&gt;- Если в тема будет оформлена к примеру так &amp;quot;SERVER name (ip) или SERVER name (web-site)&amp;quot; - тема сразуже будет удалена.&lt;br /&gt;- В случае если в вашей теме есть картинка но нет описания, она всё равно будет удалена.&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;- &lt;em class=&quot;bbuline&quot;&gt;МОДЕРАТОРАМ:&lt;/em&gt; если тема удалена без причины - значит она не соответствует правилам.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: black&quot;&gt;- - - - - - - - Правила, 12.12.2011:- - - - - - - - - -&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;- автору темы категорически запрещено писать что-либо в своей теме до того, как в ней появится комментарий(на сервере обновление? так редактируй предыдущий пост.)&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;- Несоблюдение правил несет за собой удаление темы.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:23:24 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=21#p21</guid>
		</item>
		<item>
			<title>Полный учебник pawn &amp; sa-mp</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=20#p20</link>
			<description>&lt;p&gt;Недавно друг начал учится pawn-скриптингу, ну и часто расспрашивал меня обо всём подряд. Вообщем решил поискать ему учебник и наткнулся на... Замечательное 187-страничное издание, в котором довольно подробно всё расписано. &lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: right&quot;&gt;&lt;strong&gt;Что тут есть&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: right&quot;&gt;*ID оружия, пикапов, иконок, интерьеров, покрасочных работ, некоторых объектов с картинками&lt;br /&gt;*Описание всех операторов&lt;br /&gt;*Описание стандартных функций(тоже вроде всех)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Собственно, если уже есть такая тема, прошу удалить, а так я думаю этот учебник очень пригодится новичкам.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Автор&lt;/strong&gt;: Cloud&lt;br /&gt;&lt;strong&gt;Ссылки&lt;/strong&gt;: &lt;br /&gt;&lt;a href=&quot;http://rghost.ru/33423031&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;RG&lt;span style=&quot;color: red&quot;&gt;Host&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;a href=&quot;http://depositfiles.com/files/eeuavg3w2&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;D&lt;span style=&quot;color: red&quot;&gt;eposit&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://avalanche.ks8.ru/news.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Copyright&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:18:25 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=20#p20</guid>
		</item>
		<item>
			<title>MySQL</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=19#p19</link>
			<description>&lt;p&gt;Среда MySQL.&lt;br /&gt;В данном F.A.Q. мы более близко познакомимся с MySQL.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;SQL запросы.&lt;/strong&gt;&lt;br /&gt;Structured Query Language - язык структурированных запросов.&lt;br /&gt;Это специальный язык, который позволяет нам управлять данными в реляционных базах данных.&lt;br /&gt;Следовательно, не сложно будет понять что именно его и будем использовать для управления.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkRed&quot;&gt;&lt;strong&gt;Знакомимся с операторами:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: DarkGreen&quot;&gt;Операторы определения данных:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: Blue&quot;&gt;&lt;strong&gt;CREATE&lt;/strong&gt;&lt;/span&gt; - создает объект БД&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;ALTER&lt;/span&gt;&lt;/strong&gt; - изменяет объект&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;DROP&lt;/span&gt;&lt;/strong&gt; - удаляет объект&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkGreen&quot;&gt;&lt;strong&gt;Операторы манипуляции данными:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Blue&quot;&gt;SELECT&lt;/span&gt;&lt;/strong&gt; - считывает данные&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Blue&quot;&gt;INSERT&lt;/span&gt;&lt;/strong&gt; - добавляет новые данные&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Blue&quot;&gt;UPDATE&lt;/span&gt;&lt;/strong&gt; - изменяет существующие данные&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Blue&quot;&gt;DELETE&lt;/span&gt;&lt;/strong&gt; - удаляет данные&lt;br /&gt;&lt;span style=&quot;color: DarkGreen&quot;&gt;&lt;br /&gt;&lt;strong&gt;Операторы определения доступа к данным:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;GRANT&lt;/span&gt;&lt;/strong&gt; - предоставляет пользователю разрешения на определенные операции с объектом&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;REVOKE&lt;/span&gt;&lt;/strong&gt; - отзывает ранее выданные разрешения&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;DENY&lt;/span&gt;&lt;/strong&gt; - задает запрет, имеющий приоритет над разрешением&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: DarkGreen&quot;&gt;Операторы управления транзакциями:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: Blue&quot;&gt;&lt;strong&gt;COMMIT&lt;/strong&gt;&lt;/span&gt; - применяет транзакцию.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: Blue&quot;&gt;&lt;strong&gt;ROLLBACK&lt;/strong&gt;&lt;/span&gt; - откатывает все изменения, сделанные в контексте текущей транзакции.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: Blue&quot;&gt;&lt;strong&gt;SAVEPOINT&lt;/strong&gt;&lt;/span&gt; - делит транзакцию на более мелкие участки.&lt;/p&gt;
						&lt;p&gt;Итак, как же мы работаем.&lt;br /&gt;Начиная с версии 0.2, мультиплеер поддерживает возможность создания плагинов, расширяющих возможности сервера. Наиболее популярными являются плагины для работы с СУБД MySQL, а именно плагин от G-sTyLeZzZ&#039;s.&lt;br /&gt;Сервер после определения БД, может посылать запросы MySQL серверу, который их обрабатывает.&lt;/p&gt;
						&lt;p&gt;Функции плагина:&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;samp_mysql_query(query[]) &lt;/strong&gt;&lt;br /&gt;Отправка SQL запроса, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 7.5em&quot;&gt;&lt;pre&gt;new string[256];
format(string, sizeof(string), &amp;quot;SELECT `password` FROM `users` WHERE `username` = &#039;%s&#039;&amp;quot;, PlayerName(playerid));
mysql_query(string);//посылает запрос лежащий в переменной string&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_connect(server[], user[], password[])&lt;/strong&gt;&lt;br /&gt;Соединение с MySQL сервером, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 6em&quot;&gt;&lt;pre&gt;mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))//подключаемся с массивами
//где SQL_HOST, SQL_USER, SQL_DB, SQL_PASS = IP MySQL сервера, юзер, пароль, название БД.&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_ping() &lt;/strong&gt;&lt;br /&gt;Пингует MySQL сервер, обычно используется для проверки соединился или нет, пример использования:&lt;br /&gt; &lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 15em&quot;&gt;&lt;pre&gt;  if(mysql_ping() == 1)//проверка подключились мы к MySQL
    {
        printf(&amp;quot;[MYSQL]: Подключение к `%s` выполнено!&amp;quot;, SQL_DB);
    } 
    else
    {
        printf(&amp;quot;[MYSQL]: [ERROR]: Подключение к `%s` не выполнено&amp;quot;, SQL_DB);
    }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_free_result() &lt;/strong&gt;&lt;br /&gt;Сбрасывает полученный результат от запроса, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 9em&quot;&gt;&lt;pre&gt;new string[256];
format(string, sizeof(string), &amp;quot;SELECT `password` FROM `users` WHERE `username` = &#039;%s&#039;&amp;quot;, PlayerName(playerid));
mysql_query(string);//посылает запрос лежащий в переменной string 
samp_mysql_free_result(string) //сброс&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_close() &lt;/strong&gt;&lt;br /&gt;Закрывает соединение с сервером MySQL, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 7.5em&quot;&gt;&lt;pre&gt;mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))//подключаемся с массивами
//где SQL_HOST, SQL_USER, SQL_DB, SQL_PASS = IP MySQL сервера, юзер, пароль, название БД.
samp_mysql_close() //отключение от сервера&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_num_rows() &lt;/strong&gt;&lt;br /&gt;Возвращает число строк, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 12em&quot;&gt;&lt;pre&gt;new stroki[256];
samp_mysql_num_rows(stroki);
{
printf(&amp;quot; Число строк `%s` &amp;quot;, stroki);
return 1;
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;samp_mysql_num_field() &lt;/strong&gt;&lt;br /&gt;Возвращает количество полей в таблице, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 10.5em&quot;&gt;&lt;pre&gt;new line[1024];
new fieldvalue[128];
samp_mysql_fetch_row(line);
samp_mysql_get_field(&amp;quot;user_name&amp;quot;, field);
printf(&amp;quot;%s &amp;quot;, field);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;samp_mysql_store_result() &lt;/strong&gt;&lt;br /&gt;Подготавливает полученный результат, пример использования:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 19.5em&quot;&gt;&lt;pre&gt;new string[256];
new result[256];
format(string, sizeof(string), &amp;quot;SELECT `password` FROM `users` WHERE `username` = &#039;%s&#039;&amp;quot;, PlayerName(playerid));
mysql_query(string);  
{
samp_mysql_store_result(result)
{
printf(&amp;quot;`%s` &amp;quot;, result);
}
return 0;
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:12:53 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=19#p19</guid>
		</item>
		<item>
			<title>Работа и настройка Audio Plugin v0.5</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=18#p18</link>
			<description>&lt;p&gt;&lt;span style=&quot;color: black&quot;&gt;Что ж, многие спрашивали здесь на форуме как поставить свою музыку на сервер. В ответ они получали:&amp;quot;Ставьте Audio Plugin&amp;quot;. Но вот незадача, а как им пользоваться? Ну что ж, сейчас я всё обьясню.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;&lt;em class=&quot;bbuline&quot;&gt;В связи обновлением до новой версии, описание меняется полностью.&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;Достояние этого плагина в том, что он позволяет ставить свою музыку на сервер в форматах WAV, AIFF, MP3/MP2/MP1, OGG, WMA, FLAC, WV, SPX, MPC,AC3, AAC, ALAC, TTA, APE и MIDI, 3D-позицию для музыки, воспроизведение музыкальных файлов из Интернета.&lt;/p&gt;
						&lt;p&gt;Для его работы нам понадобятся:&amp;#160; &lt;a href=&quot;http://solidfiles.com/d/05b58/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; &amp;#160; &amp;#160;- Audio Plugin v0.5 для клиентов,&amp;#160; &lt;a href=&quot;http://solidfiles.com/d/7dd94/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; &amp;#160;- Audio Plugin v0.5 для сервера.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Установка клиентской части:&lt;/strong&gt;&lt;br /&gt;______________________________&lt;br /&gt;Для установки плагина на клиентскую часть требуется скачать &lt;strong&gt;&lt;a href=&quot;http://solidfiles.com/d/05b58/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; &amp;#160;- Audio Plugin v0.5 для клиентов&lt;/strong&gt; и установить его в корневую папку с игрой. Но, для его правильной работы требуется Microsoft .NET Framework 3.5 или выше. (Для владельцев Wnidows XP SP2 настоятельно не рекомендуется ставить Microsoft .NET Framework 4.0, так как он работает не стабильно на данной системе.)&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Установка плагина на сервер:&lt;/strong&gt;&lt;br /&gt;_______________________________&lt;br /&gt;&lt;em class=&quot;bbuline&quot;&gt;Для стабильной работы плагина на сервере тоже требуется&amp;#160; Microsoft .NET Framework 3.5 или выше.&lt;/em&gt;&lt;br /&gt;Скачиваем&amp;#160; &lt;strong&gt;&lt;a href=&quot;http://solidfiles.com/d/7dd94/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; &amp;#160; Работа и настройка Audio Plugin v0.5 - Audio Plugin v0.5 для сервера&lt;/strong&gt;. Извлекаем все содержимое архива в папку с сервером. Инклуд audio.inc, содержащийся в папке &lt;strong&gt;pawno/include&lt;/strong&gt;, переместите в папку инклудов Pawno, которое Вы используете для компилирования.&lt;br /&gt;Переходим к файлу server.cfg. Прописываем в нем:&lt;br /&gt;[color=black]&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 6em&quot;&gt;&lt;pre&gt;plugins audio // если у Вас Windows
plugins audio.so // если у Вас Linux&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Переходим к Вашему gamemode&#039;у. В самом начале, где находятся подключенные к моду инклуды, прописываем:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;#include &amp;lt;audio&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Далее, следует добавить функции, чтобы плагин начал работать.&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;//OnGameModeInit()
Audio_SetPack(&amp;quot;default_pack&amp;quot;,true,true); // &amp;quot; &amp;quot; - пак файлов, который Вы используете. Доступны default_pack и other_pack.

public Audio_OnTransferFile(playerid, file[], current, total, result)
{
    new string[128];
    switch (result)
    {
        case 0: format(string, sizeof(string), &amp;quot;Audio file \&amp;quot;%s\&amp;quot; (%d of %d) finished local download (Player ID: %d)&amp;quot;, file, current, total, playerid);
        case 1: format(string, sizeof(string), &amp;quot;Audio file \&amp;quot;%s\&amp;quot; (%d of %d) finished remote download (Player ID: %d)&amp;quot;, file, current, total, playerid);
        case 2: format(string, sizeof(string), &amp;quot;Audio file \&amp;quot;%s\&amp;quot; (%d of %d) passed check (Player ID: %d)&amp;quot;, file, current, total, playerid);
        case 3: format(string, sizeof(string), &amp;quot;Audio file \&amp;quot;%s\&amp;quot; (%d of %d) could not be downloaded or checked (Player ID: %d)&amp;quot;, file, current, total, playerid);
    }
    SendClientMessage(playerid, 0xFFFF00FF, string);
    if (current == total) SendClientMessage(playerid, 0xFFFF00FF, &amp;quot;All files have been processed&amp;quot;);
    return 1;
} // Если хотите, можете перевести с английского на русский.

public Audio_OnClientConnect(playerid)
{
    Audio_TransferPack(playerid);
    return 1;
}

//OnGameModeExit
Audio_DestroyTCPServer();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Установка музыки:&lt;/strong&gt;&lt;br /&gt;_____________________&lt;br /&gt;Открываем файл audio.ini. Мы видим содержимое типа:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 16.5em&quot;&gt;&lt;pre&gt;[default_pack]
1 = example.mp3
2 = example.ogg
3 = example.wav

[other_pack]
1 = http://www.website.com/file.mp3
2 = example.ogg
3 = example.wav&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;,&lt;strong&gt;2&lt;/strong&gt; и &lt;strong&gt;3&lt;/strong&gt; - это ID музыкальных файлов, которые потребуются Вам для их воспроизведения. Чтобы поставить музыку, нужно, чтобы бы файл был прописан в audio.ini и содержаться в папке с паком, который Вы указали в &lt;strong&gt;OnGameModeInit&lt;/strong&gt;. Пример:&lt;br /&gt;&lt;a href=&quot;http://s2.ipicture.ru/Gallery/Viewfull/5564223.html&amp;quot;]&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://s2.ipicture.ru/Gallery/Viewfull/ &amp;#8230; tml&amp;quot;]&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://s2.ipicture.ru/uploads/20110824/thumbs/E62S1To9.png&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://s2.ipicture.ru/uploads/20110824/ &amp;#8230; 2S1To9.png&lt;/a&gt;&lt;br /&gt;Таким образом, под ID 1 будет звуковой файл &lt;strong&gt;520b4305e0cf.mp3&lt;/strong&gt;. При вписывании файлов в audio.ini нужно писать полное название и расширение файла. Иначе файл не будет распознан.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Функции:&lt;/strong&gt;&lt;br /&gt;_____________&lt;br /&gt;&lt;strong&gt;Audio_CreateTCPServer(port)&lt;/strong&gt; - создание порта, к которому будут подключаться игроки с установленной клиентской частью. Данная функция ,в принципе, не требуется, так как при запуске сервера плагин автоматически создает порт (он равен порту Вашего сервера).&lt;br /&gt;&lt;strong&gt;Audio_DestroyTCPServer()&lt;/strong&gt; - уничтожение порта. Отменит все подключения, и не будет возможным воспроизведение звуков.&lt;br /&gt;&lt;strong&gt;Audio_SetPack(const name[], bool:transferable = true, bool:automated = true);&lt;/strong&gt; - указание пака со звуками.&lt;span style=&quot;font-style: italic&quot;&gt; const name[]&lt;/span&gt; - название пака, &lt;span style=&quot;font-style: italic&quot;&gt;transferable&lt;/span&gt; - разрешение на скачивание, &lt;span style=&quot;font-style: italic&quot;&gt;automated&lt;/span&gt; - автоматизация скачивания (следует ставить &lt;strong&gt;true&lt;/strong&gt;).&lt;br /&gt;&lt;strong&gt;Audio_IsClientConnected(playerid);&lt;/strong&gt; - проверка на то, что игрок подключен к аудио-порту.&lt;br /&gt;&lt;strong&gt;Audio_SendMessage(playerid, const message[]);&lt;/strong&gt; - отсылка подключенному к аудио-порту игроку сообщения.&lt;br /&gt;&lt;strong&gt;Audio_TransferPack(playerid);&lt;/strong&gt; - отсылка игроку пака со звуками.&lt;br /&gt;&lt;strong&gt;Audio_CreateSequence();&lt;/strong&gt; - создание последовательности, или очереди файлов на воспроизведение.&lt;br /&gt;&lt;strong&gt;Audio_DestroySequence(sequenceid);&lt;/strong&gt; - уничтожение последовательности.&lt;br /&gt;&lt;strong&gt;Audio_AddToSequence(sequenceid, audioid);&lt;/strong&gt; - добавление файла в последовательность.&lt;br /&gt;&lt;strong&gt;Audio_RemoveFromSequence(sequenceid, audioid);&lt;/strong&gt; - удаление файла из последовательности.&lt;br /&gt;&lt;strong&gt;Audio_Play(playerid, audioid, bool: pause = false, bool:loop = false, bool: downmix = false);&lt;/strong&gt; - воспроизведение файла. &lt;span style=&quot;font-style: italic&quot;&gt;pause&lt;/span&gt; - остановка при запуске воспроизведения, &lt;span style=&quot;font-style: italic&quot;&gt;loop&lt;/span&gt; - зацикленное воспроизведение, &lt;span style=&quot;font-style: italic&quot;&gt;downmix&lt;/span&gt; - микширование из стерео в моно.&lt;br /&gt;&lt;strong&gt;Audio_PlayStreamed(playerid, const url[], bool: pause = false, bool:loop = false, bool: downmix = false);&lt;/strong&gt; - воспроизведение из Интернета. &lt;span style=&quot;font-style: italic&quot;&gt; const url[]&lt;/span&gt; - прямая ссылка на файл.&lt;br /&gt;&lt;strong&gt;Audio_PlaySequence(playerid, sequenceid, bool: pause = false, bool:loop = false, bool: downmix = false);&lt;/strong&gt; - запуск последовательности. &lt;span style=&quot;font-style: italic&quot;&gt;sequenceid&lt;/span&gt; - ID последовательности.&lt;br /&gt;&lt;strong&gt;Audio_Pause(playerid, handleid);&lt;/strong&gt; - приостановка воспроизведения. &lt;span style=&quot;font-style: italic&quot;&gt;handleid&lt;/span&gt; - ID потока запущенного файла.&lt;br /&gt;&lt;strong&gt;Audio_Resume(playerid, handleid);&lt;/strong&gt; - продолжение воспроизведения.&lt;br /&gt;&lt;strong&gt;Audio_Stop(playerid, handleid);&lt;/strong&gt; - полная остановка воспроизведения.&lt;br /&gt;&lt;strong&gt;Audio_Restart(playerid, handleid);&lt;/strong&gt; - перезапуск воспроизведения.&lt;br /&gt;&lt;strong&gt;Audio_GetPosition(playerid, handleid, const callback[] = &amp;quot;Audio_OnGetPosition&amp;quot;);&lt;/strong&gt; - функция позволяет узнать, на какой секунде воспроизводится файл в данный момент. Используйте такой вид: &lt;strong&gt;Audio_GetPosition(playerid, handleid);&lt;/strong&gt;.&lt;br /&gt;&lt;strong&gt;Audio_SetPosition(playerid, handleid, seconds);&lt;/strong&gt; - указать, на какую секунду перемотать воспроизведение. &lt;span style=&quot;font-style: italic&quot;&gt;seconds&lt;/span&gt; - секунды.&lt;br /&gt;&lt;strong&gt;Audio_SetVolume(playerid, handleid, volume);&lt;/strong&gt; - установка громкости. По стандарту - 50. &lt;span style=&quot;font-style: italic&quot;&gt;volume&lt;/span&gt; - громкость (от 0 до 100).&lt;br /&gt;&lt;strong&gt;Audio_SetFX(playerid, handleid, type);&lt;/strong&gt; - указание эффекта. Доступные эффекты:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 16.5em&quot;&gt;&lt;pre&gt;0 - Хор.
1 - Эффект музыки в малом пространстве.
2 - Искажения музыки.
3 - Эхо.
4 - Фленджер.
5 - Звучание в воде.
6 -  I3DL2 ревибрация.
7 - Параметрический эквалайзер.
8 - Ревибрация.&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Audio_Set3DPosition(playerid, handleid, Float:x, Float:y, Float:z, Float: distance);&lt;/strong&gt; - указание позиции музыки. При отдалении от точки музыка будет затихать. &lt;span style=&quot;font-style: italic&quot;&gt;x&lt;/span&gt;,&lt;span style=&quot;font-style: italic&quot;&gt;y&lt;/span&gt;,&lt;span style=&quot;font-style: italic&quot;&gt;z&lt;/span&gt; - позиция, &lt;span style=&quot;font-style: italic&quot;&gt;distance&lt;/span&gt; - дистанция, на котором будет слышна музыка.&lt;br /&gt;&lt;strong&gt;Audio_Remove3DPosition(playerid, handleid);&lt;/strong&gt; - удаление 3D-позиции.&lt;br /&gt;&lt;strong&gt;Audio_SetRadioStation(playerid, station);&lt;/strong&gt; - указание радио-станции. Работает только тогда, когда игрок сидит в транспорте. Доступные станции:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 22.5em&quot;&gt;&lt;pre&gt;0: Выключение радио, но точнее - включение радио с полицейской/медицинской волны.
1: Playback FM
2: K-Rose
3: K-DST
4: Bounce FM
5: SF-UR
6: Radio Los Santos
7: Radio X
8: CSR 103.9
9: K-Jah West
10: Master Sounds 98.3
11: WCTR
12: Пользовательские треки&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Audio_StopRadio(playerid);&lt;/strong&gt; - остановка радио.&lt;br /&gt;&lt;strong&gt;Audio_RenamePlayer(playerid, const name[]);&lt;/strong&gt; - переименование игрока.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Callback&#039;и:&lt;/strong&gt;&lt;br /&gt;______________&lt;br /&gt;&lt;strong&gt;forward Audio_OnClientConnect(playerid);&lt;/strong&gt; - при соединении игрока к аудио-порту.&lt;br /&gt;&lt;strong&gt;forward Audio_OnClientDisconnect(playerid);&lt;/strong&gt; - при отсоединении игрока от аудио-порта.&lt;br /&gt;&lt;strong&gt;forward Audio_OnTransferFile(playerid, file[], current, total, result);&lt;/strong&gt; - при получении файлов.&lt;br /&gt;&lt;strong&gt;forward Audio_OnPlay(playerid, handleid);&lt;/strong&gt; - при воспроизведении.&lt;br /&gt;&lt;strong&gt;forward Audio_OnStop(playerid, handleid);&lt;/strong&gt; - при остановке воспроизведения&lt;br /&gt;&lt;strong&gt;forward Audio_OnTrackChange(playerid, handleid, track[]);&lt;/strong&gt; - при изменении ID3-информации о треке. Вызывается в большинстве случаев при воспроизведении онлайн-радио.&lt;br /&gt;&lt;strong&gt;forward Audio_OnRadioStationChange(playerid, station);&lt;/strong&gt; - при переключении радио в транспорте.&lt;br /&gt;&lt;strong&gt;forward Audio_OnGetPosition(playerid, handleid, seconds);&lt;/strong&gt; - callback, отвечающий за получение позиции времени.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;По поводу&lt;span style=&quot;font-style: italic&quot;&gt; handleid&lt;/span&gt;:&lt;/strong&gt;&lt;br /&gt;___________________________&lt;br /&gt;Многие путают &lt;span style=&quot;font-style: italic&quot;&gt;hadleid&lt;/span&gt; и &lt;span style=&quot;font-style: italic&quot;&gt;soundid&lt;/span&gt;. Это разные вещи. &lt;span style=&quot;font-style: italic&quot;&gt;soundid&lt;/span&gt; - это ID&#039;ы, прописанные в &lt;strong&gt;audio.ini&lt;/strong&gt;, а &lt;span style=&quot;font-style: italic&quot;&gt;hadleid&lt;/span&gt; - это номер потока, на котором воспроизводится файл.&lt;br /&gt;Чтобы было проще и понятно, при запуске воспроизведения файл занимает свободный поток, отчитываемый от 1 до бесконечности. Если у Вас не воспроизводилась никакая музыка, то файл займет поток №1, если же была, то займет следующий поток, то есть №2.&lt;br /&gt;Чтобы узнать, какой &lt;span style=&quot;font-style: italic&quot;&gt;handleid&lt;/span&gt; Вам нужен для остановки определенного потока, используйте такой код:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 6em&quot;&gt;&lt;pre&gt;new audio = Audio_Play(Streamed)(параметры);
printf(&amp;quot;Handleid %d&amp;quot;,audio);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Но это только для одного игрока. Чтобы использовать &lt;span style=&quot;font-style: italic&quot;&gt;handleid&lt;/span&gt; для каждого игрока (а он у каждого будет разный), используйте переменную, привязанную к игроку. Пример:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 10.5em&quot;&gt;&lt;pre&gt;new audio_sound[MAX_PLAYERS]; // В начало мода
//В то место, где Вы хотите запустить музыку для игрока
audio_sound[playerid] = Audio_Play(playerid, audioid, bool: pause = false, bool:loop = false, bool: downmix = false);
//В то место, где Вы хотите остановить музыку
Audio_Stop(playerid,audio_sound[playerid]);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Примечание:&lt;/strong&gt;&lt;br /&gt;________________&lt;br /&gt;FS &amp;quot;audio.pwn&amp;quot; - просто тестовый скрипт для проверки работы Audio Plugin&#039;а. Нет смысла запускать его на сервере.&lt;br /&gt;Ограничение количества файлов в &lt;strong&gt;audio.ini&lt;/strong&gt; неизвестно.&lt;br /&gt;Запрещено вставлять в &lt;strong&gt;audio.ini&lt;/strong&gt; ссылки на онлайн-радио, так как у них нет размера потока. Иначе появится ошибка, или же Вы будете качать этот поток, пока не кончится место на Вашем жестком диске.&lt;br /&gt;При использовании сервера версии 0.3c-R5 была найдена ошибка в плагине, когда при закрытии сервера появлялся файл crashinfo.txt с неизвестными ошибками. Данная ошибка была найдена пользователем &lt;br /&gt;&amp;quot;http://forum.sa-mp.com/member.php?u=85372, решение данной проблемы найдено мной. Для избежания данной ошибки добавьте функцию &lt;strong&gt;Audio_DestroyTCPServer(); &lt;/strong&gt;в &lt;strong&gt;OnGameMo&lt;/span&gt;deExit()&lt;/strong&gt;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:11:48 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=18#p18</guid>
		</item>
		<item>
			<title>[Урок] Операторы (дополнено 12.12.2011)</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=17#p17</link>
			<description>&lt;p&gt;Короче, здорова, пользователи павно.ру. С вами &lt;strong&gt;&lt;span style=&quot;color: Blue&quot;&gt;[A]Le[X]and[R]&lt;/span&gt;&lt;/strong&gt;.&lt;/p&gt;
						&lt;p&gt;В общем начнем с того, что урок про операторы уже был на форуме. Но его автор, который являлся модератором раздела (&lt;span style=&quot;color: White&quot;&gt;за что ему только давали модерку - он все поудалял о_О&lt;/span&gt;), попросил удалить ее. Вот решил написать свой урок!&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: Red&quot;&gt;&lt;strong&gt;Приступаем к самому уроку!&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Что же такое оператор?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Оператор &lt;/strong&gt;- это литерал, который заставляет компилятор выполнять некоторое действие. Операторы воздействуют на операнды (аргументы операции). Операндами в PAWN могут быть как отдельные литералы, так и целые выражения. Мы рассмотрим 5 видов операторов:&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: left&quot;&gt;*операторы присваивания&lt;br /&gt;*математические операторы&lt;br /&gt;*операторы отношений&lt;br /&gt;*логические операторы&lt;br /&gt;*условный оператор&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;[color=DarkOrange]&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Оператор присваивания&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Оператор присваивания ( = ) позволяет заменить значение операнда, расположенного с левой стороны от знака равенства, значением, вычисляемым с правой стороны от него. Так, выражение:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;x = a + b;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;присваивает операнду x значение, которое является результатом сложения значений переменных a и b.&lt;/p&gt;
						&lt;p&gt;Операнд, который может находиться с левой стороны от оператора присваивания, называется адресным операндом, или l-значением (от англ. &amp;quot;left&amp;quot; - левый). Операнд, который может находиться справа от оператора присваивания называется операционным операндом, или r-значением (от англ. &amp;quot;right&amp;quot; - правый). &lt;/p&gt;
						&lt;p&gt;Константы/числа могут быть только r-значениями и никогда не бывают адресными операндами, поскольку значения констант изменять нельзя! То есть:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 6em&quot;&gt;&lt;pre&gt;x = 35; // Верно
35 = x; // Ошибка&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Обратите внимание, что все l-значения могут быть r-значениями, но не все r-значения могут быть l-значениями&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Математические операторы&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;В PAWN используется 5 математических операторов: сложения ( + ), вычитания ( - ), умножения ( * ), деления( / ) и деления по модулю ( % ). &lt;/p&gt;
						&lt;p&gt;В операциях сложения, вычитания и умножения разобраться не сложно. Мы подробно разберем операторы деления&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: Magenta&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Целочисленное деление и деление по модулю&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Целочисленное деление отличается от обычного. При делении числа 21 на число 4 (24 / 4) в результате целочисленного деления в ответе получается 5 и остаток 1. &lt;/p&gt;
						&lt;p&gt;Чтобы получить остаток, нужно число 21 разделить по модулю 4 (21 % 4), в результате получим остаток 1. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Совместное использование математических операторов и операторов присваивания&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Нет ничего необычного в том, чтобы к переменной прибавить некоторое значение, а потом присвоить результат той же переменной. Если у вас есть переменная a и вы хотите увеличить ее значение на 2 можно записать следующее:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 7.5em&quot;&gt;&lt;pre&gt;new a = 5, temp;
temp = a + 2;
a = temp&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Однако этот метод грозит излишествами. В языке PAWN можно поместить одну и ту же переменную по обе стороны о оператора присваивания, и тогда предыдущий блок сведется лишь к одному выражению:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;a = a + 2;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;В алгебре это выражение рассматривалось бы как бессмысленное, но в PAWN оно читается следующим образом: добавить 2 к значению переменной a и присвоить результат переменной a. &lt;/p&gt;
						&lt;p&gt;Но существует еще более простой вариант предыдущей записи:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;a += 2;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Оператор присваивания с суммой ( += ) добавляет r-значение к l-значению, а затем снова записывает результат в l-значение. Если бы до начала выполнения выражения переменная a была бы равна 4,то после ее выполнения значение переменной стало бы 6. &lt;/p&gt;
						&lt;p&gt;Помимо оператора присваивания с суммой существуют также операторы присваивания с вычитанием ( -= ), делением ( /= ), умножением ( *= ), делением по модулю ( %= ). &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Инкремент и декремент&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Очень часто требуется к переменной прибавить/вычесть единицу. В языке PAWN увеличение значения на 1 называется &lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;инкрементом&lt;/span&gt;&lt;/strong&gt;, а уменьшение на 1 - &lt;strong&gt;&lt;span style=&quot;font-style: italic&quot;&gt;декрементом&lt;/span&gt;&lt;/strong&gt;. Для этих действий предусмотрены специальные операторы.&lt;/p&gt;
						&lt;p&gt;Оператор инкремента ( ++ ) увеличивает значение переменной на 1, а оператор декремента ( -- ) - уменьшает на 1. Так, если у вас есть переменная a и вы хотите увеличить ее на единицу, то вы можете записать:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;a++;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Такой же результат можно получить и другими способами:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;a = a + 1;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;или &lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;a += 1;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: Magenta&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Префикс и постфикс&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Как оператор инкремента, так и оператор декремента могут работать в 2 вариантах: префиксном и постфиксном. Префиксный вариант записывается перед переменной ( ++a ), а постфиксный - после него ( a++ ).&lt;/p&gt;
						&lt;p&gt;В простом выражении вариант использования не имеет большого значения, но в сложном при выполнении инкремента одной переменной с последующим присваиванием результата другой переменной это вполне существенно. Префиксный оператор вычисляется до присваивания, постфиксный - после. &lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Семантика префиксного оператора:&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: left&quot;&gt;*Инкрементируем значение&lt;br /&gt;*Считываем его&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Семантика постфиксного оператора:&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: left&quot;&gt;*Считываем значение&lt;br /&gt;*Инкрементируем оригинал&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Для тех, кто не совсем понял, покажу на примере:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 13.5em&quot;&gt;&lt;pre&gt;new a, b, c, d;
       
      a = ++b;
      c = d++;
        
      printf(&amp;quot;A = %d, C = %d&amp;quot;, a, c);
      printf(&amp;quot;B = %d, D = %d&amp;quot;, b, d);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Выведет:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;[center]&lt;strong&gt;Приоритеты операторов&lt;/strong&gt;[/center]&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Хочу сказать, что в PAWN у операторов такие же приоритеты, как и в алгебре: действия в скобках; умножение, деление; сложение, вычитание&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Истина / ложь&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;В языке PAWN существует особый тип переменных - bool. Объявление:&lt;/p&gt;
						&lt;p&gt;new bool:a; &lt;/p&gt;
						&lt;p&gt;Отличие этой переменной от переменных целочисленного типа в том, что она может вернуть только 2 значение: true (истину) или false (ложь).&lt;/p&gt;
						&lt;p&gt;Любое выражение можно рассмотреть с точки зрения - истинно или ложно. Математические выражения, возвращающие 0, можно расценивать как ложные. Все остальные - как истинные.&lt;/p&gt;
						&lt;p&gt;P.S. Это нам пригодится в следующем разделе.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Операторы отношений&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Операторы отношений используются для выяснения равенства или неравенства двух значений. Выражения сравнения всегда возвращают значения true или false. &lt;/p&gt;
						&lt;p&gt;Всего в языке PAWN существует 6 операторов отношений. Они все представлены ниже:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;*[b]Равно ( == )[/b]
100 == 50 (false)
50 == 50 (true)

*[b]Не равно ( != )[/b]
100 != 50 (true)
50 != 50 (false)

*[b]Больше ( &amp;gt; )[/b]
100 &amp;gt; 50 (true)
50 &amp;gt; 50 (false)

*[b]Больше или равно ( &amp;gt;= )[/b]
100 &amp;gt;= 50 (true)
50 &amp;gt;= 50 (true)

*[b]Меньше ( &amp;lt; )[/b]
100 &amp;lt; 50 (false)
50 &amp;lt; 50 (false)

*[b]Меньше или равно ( &amp;lt;= )[/b]
100 &amp;lt;= 50 (false)
50 &amp;lt;50&amp;gt;= 5) // Если a больше или равно 5
{
// Ваш код
}
else // иначе
{
// Ваш код
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Логические операторы&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Довольно часто возникает необходимость проверять не одно условное выражение, а несколько. Например, правда ли что x &amp;gt; y и y != z. Для этого используются логические операторы.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: Magenta&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Логическое И ( &amp;amp;&amp;amp; )&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Логический оператор И вычисляет 2 выражения, и, если &lt;strong&gt;оба &lt;/strong&gt;выражения возвращают true, то и оператор И вернет true. А если хотя бы одно выражение возвращает false, то и оператор И вернет false. Пример:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;if(x == 5 &amp;amp;&amp;amp; y == 5)&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;если x и y равны 5, то все выражение вернет true. Если хотя бы один из них не равен 5, то все выражение вернет false. Обратите внимание, что выражение возвращает true только в том случае, если истинны &lt;strong&gt;обе &lt;/strong&gt;его части. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: Magenta&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Логическое ИЛИ ( || )&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Логический оператор ИЛИ также вычисляет 2 выражения, и, если любое из них истинно, также вернет true. При использования ИЛИ нет необходимости соблюдения двух условий сразу. Вам достаточно выполнения одного из них. Пример:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;if(x == 5 || y == 5)&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Выражение возвратит true, если либо x, либо y, либо они оба равны 5.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: Magenta&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Логическое НЕТ ( ! )&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Логический оператор НЕТ возвращает true, если тестируемое выражение является ложным (возвращает false). И наоборот, если тестируемое выражение является истинным, то оператор НЕТ вернет false. Пример:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;if(!(x == 5))&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;вернет true, только если x не равно 5. Это выражение можно записать и по-другому:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;if(x != 5)&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Условный оператор&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Условный оператор ( ?: ) - единственный оператор в PAWN, который работает сразу с тремя операндами. Синтаксис условного оператора:&lt;/p&gt;
						&lt;p&gt;(выражение1) ? (выражение2) : (выражение3)&lt;/p&gt;
						&lt;p&gt;Это читается следующим образом: если &lt;span style=&quot;font-style: italic&quot;&gt;выражение1 &lt;/span&gt;возвращает true, то выполняется &lt;span style=&quot;font-style: italic&quot;&gt;выражение2&lt;/span&gt;, в противном случае выполняется &lt;span style=&quot;font-style: italic&quot;&gt;выражение3&lt;/span&gt;. Обычно возвращаемое значение присваивается некоторой переменной. Пример:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;z = (x &amp;gt; y) ? x : y;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Это выражение присвоит переменной z большее значение (если больше x - присвоит значение x, если больше y - присвоит значение y)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Вот впринципи и все&lt;/p&gt;
						&lt;p&gt;Будут какие-то замечания или дополнения, прошу отписываться&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Копирайты:&lt;/strong&gt;&lt;br /&gt;Основано на уроке &lt;strong&gt;Джесса Либерти&lt;/strong&gt;&lt;br /&gt;Примеры для префиксного и постфиксного инкрементов - &lt;strong&gt;&lt;span style=&quot;color: DarkOrange&quot;&gt;Romanius&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 21:07:05 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=17#p17</guid>
		</item>
		<item>
			<title>Переключатели (2 урок Y_Less по оптимизации мода)</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=16#p16</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://forum.sa-mp.com/showthread.php?t=86850&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;На правах рерайтинга&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Вступление&lt;/span&gt;&lt;br /&gt;Я никогда не использовал переключатели, за это мне стыдно. Они очень полезны. Павн с роду умеет использовать переключатели(так же известные как automata) которые позволяют подстраивать функции под нужные требования, которые могут менятся&lt;br /&gt;На словах все трудно. Перейдем к делу&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Пример №1&lt;/span&gt;&lt;br /&gt;Что бы продемонстрировать суть переключателей, я написал очень простой мод(*да да, именно мод)&lt;br /&gt;Используя стандартные способы, так что люди смогут понять что делает этот код:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;#include &amp;lt;a_samp&amp;gt;

forward change();

enum
{
    end = 0,
    gmx
}

new
    gExitType;

main()
{
    gExitType = end;
    SetTimer(&amp;quot;change&amp;quot;, 10000, 0);
}

public OnGameModeExit()
{
    switch (gExitType)
    {
        case end:
            printf(&amp;quot;This mode was ended by the server&amp;quot;);
        case gmx:
            printf(&amp;quot;This mode was ended by the timer&amp;quot;);
    }
}

public change()
{
    gExitType = gmx;
    GameModeExit();
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;А теперь тоже самое но на переключателях:

#include &amp;lt;a_samp&amp;gt;

forward change();

main()
{
    state exitType:end;
    SetTimer(&amp;quot;change&amp;quot;, 10000, 0);
}

public OnGameModeExit() &amp;lt;exitType&amp;gt;
{
    printf(&amp;quot;This mode was ended by the server&amp;quot;);
}

public OnGameModeExit() &amp;lt;exitType&amp;gt;
{
    printf(&amp;quot;This mode was ended by the timer&amp;quot;);
}

public change()
{
    state exitType:gmx;
    GameModeExit();
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;Преимущества[&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Какие же преимущества от этого способа? Ну, как вы можете заметить код МЕНЬШЕ; к тому же, я добавил enum к первой версии, чтобы коды выглядели как можно более похоже, но OnGameModeExit функция определенно меньше. Так же, оно намного полезнее - вам не нужны большие switch проверки в функции чтобы определить что же происходит. &lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;Пример №2&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Другой пример, в этот раз используем комманду /debug, чтобы быстро переключать вывод сообщении&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;#include &amp;lt;a_samp&amp;gt;

dprint(message[]) &amp;lt;printState&amp;gt;
{
    // Показываем сообщение
    print(message);
}

dprint(message[]) &amp;lt;printState&amp;gt;
{
    //Ничего не делаем
    #pragma unused message
}

forward output();

main()
{
    state printState:off;
    // Включаем таймер
    SetTimer(&amp;quot;output&amp;quot;, 1000, 1);
}

public OnPlayerCommandText(playerid, cmdtext[]) &amp;lt;printState&amp;gt;
{
    state (!strcmp(cmdtext, &amp;quot;/debug&amp;quot;)) printState:off;
}

public OnPlayerCommandText(playerid, cmdtext[]) &amp;lt;printState&amp;gt;
{
    state (!strcmp(cmdtext, &amp;quot;/debug&amp;quot;)) printState:on;
}

public output()
{
    static
        sCount = 0;
    if (++sCount == 5)
    {
        OnPlayerCommandText(0, &amp;quot;/debug&amp;quot;);
        sCount = 0;
    }
    // Статично выводим сообщение дял примера
    dprint(&amp;quot;Hello World&amp;quot;);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Разбор полетов&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Некоторые вещи которые необходимо учесть здесь:&lt;/p&gt;
						&lt;p&gt;Во-первых dprint не public функция, это обычная функция, но переключатели нормально работают с ней.&lt;/p&gt;
						&lt;p&gt;Во-вторых в переключателях могут быть условия. Как в этой строке&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 15em&quot;&gt;&lt;pre&gt;state (!strcmp(cmdtext, &amp;quot;/debug&amp;quot;)) printState:on;[/php]

тоже самое что и

if (!strcmp(cmdtext, &amp;quot;/debug&amp;quot;))
{
    state printState:on;
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;В-третьих здесь 2 функции которые зависят от одного переключателя (OnPlayerCommandText and dprint). Это не проблема.&lt;/p&gt;
						&lt;p&gt;Разьяснения&lt;br /&gt;Теперь, когда мы взглянули на примеры, вы наверно интересуетесь, что же происходит (конечно если вы не читали pawn-lang.pdf). Давайте, в таком случае, взглянем на код ближе&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;state:&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;state a:b&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Это устанавливает переключатель a в положение b. Вам не надо обьявлять переключатели, по сравнению с переменными.&lt;br /&gt;Как уже упоминалось в переключателях может быть условие&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;state (c == 1) a:b;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Это устанавливает переключатель а в положение б если с равно 1. &lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Функции:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Вы можете создавать множество копий одной и той же функции, которая должна будет вызываться в разных ситуациях, без проверок до вызова или в самой функции. Функция может содержать: 0 переключателей, 1 переключатель, множество переключателей, другие переключатели(*заметка от переводчика: взгляните на пример прежде чем понимать это)&lt;br /&gt;Например:&lt;/p&gt;
						&lt;p&gt;Без переключателей&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 9em&quot;&gt;&lt;pre&gt;dprint(message[])
{
    print(message);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Эта функция вызывается всегда, неважно в каком положении любой переключатель находится&lt;/p&gt;
						&lt;p&gt;Один переключатель&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 9em&quot;&gt;&lt;pre&gt;dprint(message[]) &amp;lt;debugState&amp;gt;
{
print(message);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Эта функция будет вызываться когда debugstate в положении on&lt;/p&gt;
						&lt;p&gt;Несколько переключателей&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 9em&quot;&gt;&lt;pre&gt;dprint(message[]) &amp;lt;debugLevel&amp;gt;
{
    print(message);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Функция будет вызываться если debuglevel в положении _1 или _2 (переменные не могут иметь в названии лишь цифры или начинаться с них)&lt;/p&gt;
						&lt;p&gt;Другие переключатели&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 9em&quot;&gt;&lt;pre&gt;dprint(message[]) &amp;lt;&amp;gt;
{
    print(message);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Эта функция будет вызываться тогда когда другие функции dprint не вызвались, из-за того что переключатели не совпали&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;entry()&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Это спец функция (похожая на main) которая вызывается в тех случаях, когда вы переключаете переключатель(sic). К сожалению работает лишь для одного переключателя&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 19.5em&quot;&gt;&lt;pre&gt;main ()
{
    printf(&amp;quot;hello&amp;quot;);
    state myState:moo;
    printf(&amp;quot;world&amp;quot;);
}

entry() &amp;lt;myState&amp;gt;
{
    printf(&amp;quot;change&amp;quot;);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Выведет в консоль&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 7.5em&quot;&gt;&lt;pre&gt;hello
change
world&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;Пример №3&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 35em&quot;&gt;&lt;pre&gt;CancelRace()
{
    state raceState:none; // Выключает гонку
    gEntrants = 0;
}

public OnPlayerEnterRaceCheckpoint(playerid) &amp;lt;raceState&amp;gt;
{
    // Вызывается когда ниодной гонки не запущено
    SendClientMessage(playerid, 0xFF0000AA, &amp;quot;Sorry, there&#039;s no race on at this time&amp;quot;);
}

public OnPlayerEnterRaceCheckpoint(playerid) &amp;lt;raceState&amp;gt;
{
    // Вызывается когда кто-то из игроков входит в последний чекпоинт
    if (AtLastCheckpoint(playerid))
    {
        // Этот игрок вошел в последнюю точку первым
        SendClientMessage(playerid, 0xFF0000AA, &amp;quot;Congratulations, you won the race&amp;quot;);
        DisablePlayerRaceCheckpoint(playerid);
        state raceState:won;
        --gEntrants;
    }
    else
    {
        // И тот который нет
        SetNextCheckpoint(playerid);
    }
}

public OnPlayerEnterRaceCheckpoint(playerid) &amp;lt;raceState&amp;gt;
{
    // Вызывается когда кто-то уже выйграл, а другие нет
    if (AtLastCheckpoint(playerid))
    {
        // Доехал до конца, но не выйграл
        SendClientMessage(playerid, 0xFF0000AA, &amp;quot;Sorry, somebody already won&amp;quot;);
        DisablePlayerRaceCheckpoint(playerid);
        state (--gEntrants == 0) raceState:none;
    }
    else
    {
        // Еще не доехал
        SetNextCheckpoint(playerid);
    }
}

public OnPlayerEnterRaceCheckpoint(playerid) &amp;lt;&amp;gt;
{
    // Вызывается во время гонки, просто переставляем чекпоинты
    SetNextCheckpoint(playerid);
    if (AtLastCheckpoint(playerid))
    {
        // Кто-то доехал до финиша
        state raceState:finish;
    }
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Автор: Y_Less Перевод: [A]Le[X]and[R]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:56:51 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=16#p16</guid>
		</item>
		<item>
			<title>Почему не стоит использовать стринги длинной в 256 ячеек</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=15#p15</link>
			<description>&lt;p&gt;Перевод урока [A]Le[X]and[R]&amp;#160; &amp;#160;&lt;a href=&quot;http://forum.sa-mp.com/showthread.php?t=55261&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&lt;br /&gt;На правах рерайтинга&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: teal&quot;&gt;Вступление:&lt;/span&gt;&lt;br /&gt;У людей&amp;#160; есть весьма необычные взгляды на стринги в ПАВН, особенно на их длинну. Много людей думают что стринги не могут быть длинее 256*, почему, я незнаю, похоже на произвольно введенный лимит для них без нужды, когда на самом деле лимита нету. Другие люди думают что все стринги должны быть 256 без причины, неважно насколько длинно они создают стринг. Стринг в ПАВН тоже самое что и массив, у людей вроде нет больших проблем с использованием массивом, так почему же есть со стрингами?&lt;br /&gt;*Заметка автора: заметьте что много людей используют либо 255 либо 256, но это так же глупо.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Предпосылка&lt;/span&gt;&lt;br /&gt;Стринг в павне это просто массив символов, без отличия от других массивов. Стринги заканчиваются NULL&#039;ом, это занчит что они все имеют символ \0 (NULL) на конце (ASCII код 0, не путать с символом &amp;quot;0&amp;quot; у которого код 4). Если у вас такая вот строка&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;new str[3] = &amp;quot;hi&amp;quot;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;То на самом деле она использует 3 ячейки. Одна для h, другая для i, и последня для символа NULL, что сигнализирует об окончании строки. Если копнуть глубже, то это выглядит вот так&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;new str[3] = {&#039;h&#039;, &#039;i&#039;, &#039;\0&#039;);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Или так&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 4.5em&quot;&gt;&lt;pre&gt;new str[3] = {104,105,0};&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Где 104 и 105 это ASCII код для символов &#039;h&#039; и &#039;i&#039; соотвественно, и 0 - код для NULL символа.&lt;/p&gt;
						&lt;p&gt;В павн по дефолту все переменные равняются 0 когда вы их обьявляете, это значит что когда вы делаете.&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new str[256];&lt;/p&gt;
						&lt;p&gt;На самом деле вы делаете&lt;/p&gt;
						&lt;p&gt;new str[256];&lt;br /&gt;for(new i=0;i&amp;lt;256;i++)&lt;br /&gt;{&lt;br /&gt;str[i]=0;&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Оптимизации больше, но это все равно требует времени&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: seagreen&quot;&gt;Так почему же вы не должны использовать 256?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: darkorange&quot;&gt;Во-первых - медленно&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Как я обьяснил в предпосылке все переменные ставятся на 0, когда мы их задаем, больше переменных - больше нагрузка на сервер чтобы он выставил их всех на 0. Этим занимается оптимизированная сборка, не интепретатор PAWN, спешу заметить что в AMXModX переменные не отчищаются при обьявлении, и они страдают проблемами из-за этого.*&lt;/p&gt;
						&lt;p&gt;*Заметка переводчика: текст йоба, могут быть проблемы с восприятием&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: sandybrown&quot;&gt;Во-вторых - вам это не надо&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Рассмотрим пост который я недавно видел&lt;br /&gt;Quote: Originally Posted by X_Cutterz&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 12em&quot;&gt;&lt;pre&gt;stock ReturnModeratorCmd(playerid,reqlvl)
{
    new rmcmd[256];
    format(rmcmd,sizeof(rmcmd),&amp;quot;Only moderators level %d+ can use this command!&amp;quot;,reqlvl);
    return SendClientMessage(playerid,Green,rmcmd);
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Предположим что максимум админ уровня это 10000, чтобы не запутаться (0 до 9999), таким образом самый длинный номер который будет вставлен в стринг состоит из 4 символов.&lt;/p&gt;
						&lt;p&gt;Quote: Only moderators level %d+ can use this command!&lt;/p&gt;
						&lt;p&gt;Но мои подсчеты подсказывают мне что их здесь всего 47, 2 из которых это %d которые не появятся в окончательном стринге, получается 45 уходят в окончательную строку. Мы уже убедились что самое длинное записываемое число будет длинной в 4(кстати, самое длинное число в павн может быть длинной в 11 символов (-2147483647)), и мы знаем что все строки нуждаются в NULL на конце, поэтому в этой строке максимальная длинна:&lt;/p&gt;
						&lt;p&gt;47 - 2 + 4 + 1 = 50&lt;/p&gt;
						&lt;p&gt;50 ячеек, и зачем вам 256? Это просто трата впустую 206 ячеек (824 байта - почти килобайт потерянной памяти)&lt;br /&gt;&lt;span style=&quot;color: sandybrown&quot;&gt;&lt;br /&gt;Максимальное поле ввода - 128&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;В SA-MP чате максимальная длинна линий - 128, если кто-то что-то вводит, вы может быть уверены что это никогда не будет длинее 128. Это включает текст и комманды, так для чего же выделять массив который в 2 раза больше чем длинна вводимой строки?&lt;/p&gt;
						&lt;p&gt;Заметка переводчика: след часть несет в себя тоже самое, но для вывода, ее я опустил&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: darkorange&quot;&gt;Вам на самом деле это не надо&lt;/span&gt;(*да там так и написано)&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;public OnPlayerCommandText(playerid, cmdtext[])&lt;br /&gt;{&lt;br /&gt;&amp;#160; &amp;#160; new&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; string[256],&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; cmd[256];&lt;br /&gt;&amp;#160; &amp;#160; cmd = strtok(cmdtext, idx);&lt;br /&gt;&amp;#160; &amp;#160; if (strcmp(cmd, &amp;quot;/num&amp;quot;, true) == 0)&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; format(string, sizeof (string), &amp;quot;Random number: %d&amp;quot;, random(27));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SendClientMessage(playerid, 0xFF0000AA, string);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Достаточно много смысловых ошибок в этом коде, но к сожалению это встречается ОЧЕНЬ часто. Игнорируем то что они используют strtok, сейчас речь не об этом. Код ОЧЕНЬ плохой:&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new string[256],cmd[256];&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Зачем два? Зачем вам нужен один огромный стринг для комманды и другой огромный стринг для данных которые вы будете обрабатывать после ввода команды, когда данные в переменной cmd&amp;#160; уже ненужны? Просто используйте это еще раз, в ином случае вы создаете двойную нагрузку.&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new string[256];&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Почему 256? Как я уже обьяснил вводимая строка не может быть больше 128. А в коде выше можно сказать из-за заносимой строки в стринг нам не понадобится ячеек больше чем 18.&lt;/p&gt;
						&lt;p&gt;Более разумная версия всего происходящего будет выглядеть вот так:&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;public OnPlayerCommandText(playerid, cmdtext[])&lt;br /&gt;{&lt;br /&gt;&amp;#160; &amp;#160; new&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; string[128]; // cmdtext НИКОГДА НЕ БУДЕТ ДЛИНЕЕ 128!!!&lt;br /&gt;&amp;#160; &amp;#160; string = strtok(cmdtext, idx);&lt;br /&gt;&amp;#160; &amp;#160; if (strcmp(string, &amp;quot;/num&amp;quot;, true) == 0)&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; format(string, sizeof (string), &amp;quot;Random number: %d&amp;quot;, random(27)); // Нам надо 18 ячеек есть, однако так как вверху нам требовалось 128, все не так уж и плохо&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SendClientMessage(playerid, 0xFF0000AA, string);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;*Некоторые слова далее не переводятся для лучшего восприятия&lt;/p&gt;
						&lt;p&gt;Использование Stack&#039;а&lt;/p&gt;
						&lt;p&gt;Когда вы вызываете функцию, память используемая в ней хранится на штуке называемой stack(или Heap, но они используют одинаковый размер памяти, так что для упрощения мы называем stack), память выделяемая функции не может быть выделена статично, потому что функция может вызывать саму себя*, тем самым вынуждая выделенную память двоится. Та зона памяти где хранятся данные функция называется dynamic(динамичная) память. Например:&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 24em&quot;&gt;&lt;pre&gt;new
    gVar = 2;
stock StackUse()
{
    new
        str[9];
    format(str, sizeof (str), &amp;quot;gVar = %d&amp;quot;, gVar);
    SendClientMessageToAll(0xFF0000AA, str);
    if (gVar)
    {
        gVar--;
        StackUse();
    }
}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Каждый вызов этой функции выделяет 9 ячеек в stack для использования, а затем она вызовет сама себя и выделит еще 9 ячеек, и еще раз она вызывет сама себя и выделит 9 ячеек. В сумме 3 выполнении, у нас выделено 27 ячеек в stack&#039;е. На третье выполнение gVar становится равным 0, поэтому функция не вызывает себя и заканчивает свое действие, удаляя 9 ячеек из stack&#039;а. Функция передает контроль прошлой инстанции этой функции, которая так же заканчивается и высвобождает 9 ячеек из stack&#039;а, так же поступает и первая инстанция. В итоге теперь у нас занято 0 ячеек.&lt;/p&gt;
						&lt;p&gt;А теперь представьте этот код&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new&lt;br /&gt;&amp;#160; &amp;#160; gVar = 2;&lt;br /&gt;stock StackUse()&lt;br /&gt;{&lt;br /&gt;&amp;#160; &amp;#160; new&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; str[256];&lt;br /&gt;&amp;#160; &amp;#160; format(str, sizeof (str), &amp;quot;gVar = %d&amp;quot;, gVar);&lt;br /&gt;&amp;#160; &amp;#160; SendClientMessageToAll(0xFF0000AA, str);&lt;br /&gt;&amp;#160; &amp;#160; if (gVar)&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; gVar--;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; StackUse();&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Тоже самое, но теперь она, при вызове ее 3 раза, выделит 768 ячеек (3 килобайта) в stack&#039;е, сравнивая с оригинальными 27 ячейками (0,1 килобайт, кпд больше чем 2800%).&lt;/p&gt;
						&lt;p&gt;Некотоыре из вас могли замечать такие сообщения при компиляции&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 10.5em&quot;&gt;&lt;pre&gt;Header size:      216 bytes
Code size:       776 bytes
Data size:       528 bytes
Stack/heap size:   16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:  17904 bytes&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;или&lt;/p&gt;&lt;div class=&quot;code-box&quot;&gt;&lt;strong class=&quot;legend&quot;&gt;Код:&lt;/strong&gt;&lt;div class=&quot;blockcode&quot;&gt;&lt;div class=&quot;scrollbox&quot; style=&quot;height: 10.5em&quot;&gt;&lt;pre&gt;Header size:      200 bytes
Code size:       588 bytes
Data size:       512 bytes
Stack/heap size:   16384 bytes; estimated max. usage=10250 cells (41000 bytes)
Total requirements:  17684 bytes&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Это значит что компилятор обнаружил что вы используете больше места в stack&#039;е чем доступно. Много важной информации хранится в stack&#039;е, такой как техническая информация о текущей функции, из-за которой PAWN знает куда возвращаться. Используя слишком много памяти, вы можете переписать информацию в stack, возвращая(returning) в случайную точку в коде, что означает абсолютный крэш. В конце концов ваша информация может быть испорчена, когда ее перезапишет другая информация. Когда люди получают эти ошибки стандартный совет использовать #pragma dynamic, который служит обходом проблемы, не решением. Я уверен что застану вас в расплох, сказав то что YSI не вызывает этой ошибки, не смотря на его огромный размер, но маленькие скрипты нубоскриптеров вызывают. А ваш скрипт вызывает ли эту ошибку?&lt;/p&gt;
						&lt;p&gt;Прошу заметить что в 1 ошибке что я продемонстрировал, значится что вы используете больше stack&#039;а чем положено, но так как функции вызывают сами себя(рекурсия епта), компилятор не может сказать точно сколько stack&#039;а использует скрипт. Заметьте что компилятор не может самостоятельно рассчитать кол-во запусков функции. Во второй ошибке рекурсии нету.&lt;/p&gt;
						&lt;p&gt;Это относится ко всем массивам, но к стрингам в первую очередь.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: sandybrown&quot;&gt;Запакованные стринги&lt;/span&gt;*запакованные - сжатые. Трудности перевода, господа.&lt;br /&gt;Фишка PAWN которая очень редко используется в SA:MP это запакованные стринги. Обычные стринги содержат 1 символ в каждой ячейке, а ячейка это 4 байта. Запакованные стринги же хранят по 4 символа на каждую ячейку.&lt;/p&gt;
						&lt;p&gt;Не запакованные:&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new string[12] = &amp;quot;Hello there&amp;quot;; // 12 cells, 48 bytes&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Запакованные &lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;new string[12 char] = !&amp;quot;Hello there&amp;quot;; // 3 cells, 12 bytes&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Такие стринги хорошо описаны в pawn-lang.pdf, поэтому я здесь долго не задерживаюсь, но если у вас большие массивы стрингов, то это было бы очень хорошо, если вы будете использовать сжатые стринги для хранения, не для манипуляции. Если бы этот метод использовался в ReturnModeratorCmd выше, то кпд было бы больше 2000%(1 килобайт к 50 байтам)&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: sandybrown&quot;&gt;Когда я должен использовать 256?&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Говоря все это, хочу заметить что есть такие случаи, когда большие массивы необходимы.&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: left&quot;&gt;*SQL&lt;br /&gt;Запросы в SQL могут быть очень длинными. Мне когда-то потребовался стринг размером в 1024 ячейки, однако это просто исключение из правила &amp;quot;Вам это не нужно&amp;quot;, в этом случае вам это НУЖНО.&lt;br /&gt;*File Reading&lt;br /&gt;Когда вы читаете файл, нет уверенности в длинне строки. Будет неплохо использовать стринг размером в 256.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: yellowgreen&quot;&gt;Заключение&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Если сомневаешься - пропусти это*. Бывают такие случаи, когда огромные массивы удобны для использования, думайте каждый раз когда вы объявляете массив. Думайте о том что вы собираетесь с ним делать&lt;br /&gt;*Заметка переводчика: английские устойчивые выражения не поддаются грамотному переводу&lt;/p&gt;
						&lt;p&gt;Перевод: Tracker1. Оригинал статьи: Y_Less&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:55:27 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=15#p15</guid>
		</item>
		<item>
			<title>Учимся делать шаблон для Pawno</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=14#p14</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;Доброго времени суток, сейчас я вас познакомлю с тем как создать свой, новый шаблон для компилятора pawno.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;Для начала откроем new.pwn (он находится в папке самого компилятора).&lt;br /&gt;Что мы видим? Тоже самое, что если бы нажали на кнопку new. Именнно из этого исходника бередся тот код что поподает к вам при нажатии на кнопку new.&lt;/p&gt;
						&lt;p&gt;Теперь, любые изменения в нем, будут также происходить при нажатии кнопки new.&lt;/p&gt;
						&lt;p&gt;На самом деле, урок не очень полезный, но написал я его потому что мне надоело вечно все писать с стандартного шаблона. И так, дамы и господа, представляю я вам свой шаблон для модов:&amp;#160; &lt;br /&gt;&lt;a href=&quot;http://www.sharemania.ru/0225028&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; &amp;#160;- new.pwn&lt;br /&gt;&lt;a href=&quot;http://topfilez.ru/file/227&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&amp;gt;&amp;gt;Клацай&amp;lt;&amp;lt;&lt;/a&gt;&amp;#160; -&amp;#160; Зеркало &lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Для чего это нужно.&lt;/strong&gt;&lt;br /&gt;Во первых, естественно то что это можно использовать для себя, лично мне так удобней.&lt;br /&gt;Во вторых для всяческих сборок плагинов\инклудов\модов идущих вместе с сервером (дабы были новые кал баки).&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:50:40 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=14#p14</guid>
		</item>
		<item>
			<title>Адаптируем Notepad++ для языка PAWN</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=13#p13</link>
			<description>&lt;p&gt;Хочу поделится с вами секретом как в Notepad++ встроить функцию компиляции PAWN Скриптов. Да и не только компиляцию, а еще подсказки функций! Для начала вам понадобится сам Notepad++ вы можете взять его здесь &amp;quot; &lt;a href=&quot;http://notepad-plus-plus.org/download/v5.9.6.2.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://notepad-plus-plus.org/download/v5.9.6.2.html&lt;/a&gt; &amp;quot;. Делается все очень просто, буду расказывать с &amp;quot;иллюстрациями&amp;quot;. Все погнали!!&lt;/p&gt;
						&lt;p&gt;Скачали Notepad++, установили? Молодцы, передем к следующему шагу.&lt;/p&gt;
						&lt;p&gt;Чтобы Notepad++ выполнял компиляцию скриптов, нужно загрузить плагин NppExec&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Заходим Домолнения -&amp;gt; Plugins Manager -&amp;gt; Show Plugins Manager&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Открывается окно с доступными плагинами:&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://i041.radikal.ru/1107/85/1e8e812ebc96.jpg&quot; alt=&quot;http://i041.radikal.ru/1107/85/1e8e812ebc96.jpg&quot; /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt;Ищем там NppExec, Ставим на против него галочку и жмем кнопку Install&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt;На запрос перезапустить ли программу отвечаем ДА.&lt;/p&gt;
						&lt;p&gt;Теперь у нас есть плагин NppExec, с помощью которого будет происходить запуск компилятора&lt;/p&gt;
						&lt;p&gt;Теперь будем сооружать саму компиляцию, это не так уж сложно&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;Откроем Дополнения -&amp;gt; NppExec -&amp;gt; Execute&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;Появилось такое окно&lt;/p&gt;
						&lt;p&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s58.radikal.ru/i161/1107/1e/86cd8ca3ad17.jpg&quot; alt=&quot;http://s58.radikal.ru/i161/1107/1e/86cd8ca3ad17.jpg&quot; /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt;Вводим в него вот такие строки&lt;br /&gt;[PHP]1.cd $(CURRENT_DIRECTORY) &lt;br /&gt;2.&amp;quot;путь до вашего файла pawncc.exe в кавычках&amp;quot; &amp;quot;$(FILE_NAME)&amp;quot; -; -([/PHP]&lt;br /&gt;у меня он выглядит так&lt;br /&gt;[PHP]1.cd $(CURRENT_DIRECTORY) &lt;br /&gt;2.&amp;quot;D:\0.3\samp03svr\pawno\pawncc.exe&amp;quot; &amp;quot;$(FILE_NAME)&amp;quot; -; -([/PHP]&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt;Нажимаем кнопку Save...&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt;Вводим имя PAWN Compiler&lt;br /&gt;&lt;strong&gt;6.&lt;/strong&gt;И нажимаем Save&lt;/p&gt;
						&lt;p&gt;Теперь нужно &amp;quot;застолбить&amp;quot; кнопку F6 для выполнения компиляции&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;Заходим Дополнения -&amp;gt; NppExec -&amp;gt; Advanced Options&lt;br /&gt;Появляется вот такое окно:&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s004.radikal.ru/i205/1107/76/f1697f16511f.jpg&quot; alt=&quot;http://s004.radikal.ru/i205/1107/76/f1697f16511f.jpg&quot; /&gt;&lt;br /&gt;Теперь нужно &amp;quot;застолбить&amp;quot; кнопку F6 для выполнения компиляции&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;В поле Associated script Выбераем PAWN Compiller&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt;Нажимаем кнопку Add/Modify&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt;В поле Menu items Появилась надпись PAWN COmpiler :: PAWN Compiler Значит все прально&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt;Нажимаем ОК и перезапускаем Notepad++&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;Теперь идем в Опции -&amp;gt; Горячие клавиши&lt;br /&gt;Появляется вот такое окно:&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s53.radikal.ru/i140/1107/50/777b0397d8e4.jpg&quot; alt=&quot;http://s53.radikal.ru/i140/1107/50/777b0397d8e4.jpg&quot; /&gt;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;В нем нам нужна вкладка Plugins Commands&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt;Ищем там Execute... два раза кликаете по комбинации клавиш и делаете как на скрине:&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s48.radikal.ru/i120/1107/3c/7549718d0495.jpg&quot; alt=&quot;http://s48.radikal.ru/i120/1107/3c/7549718d0495.jpg&quot; /&gt;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt;С Direct Execute Previous делаете также как и с Execute...&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt;Далее ищите строку PAWN Compiller и ставите комбинацию клавиш F6 (можете любую другую, если она не занята)&lt;/p&gt;
						&lt;p&gt;Теперь нужно создать ассоциацию с файлами *.inc и *.pwn&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s54.radikal.ru/i145/1107/48/a858b30d71ec.jpg&quot; alt=&quot;http://s54.radikal.ru/i145/1107/48/a858b30d71ec.jpg&quot; /&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;Заходим Опции -&amp;gt; Настройки. Нас интересует вкладка Ассоциация файлов&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;В поле отмеченное красным вводим .inc вжем кнопку -&amp;gt; и потом точно также с .pwn&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s56.radikal.ru/i154/1107/e9/ab9e17e6a831.jpg&quot; alt=&quot;http://s56.radikal.ru/i154/1107/e9/ab9e17e6a831.jpg&quot; /&gt;&lt;br /&gt;Теперь нужно чтобы Notepad++ для файлов *.pwn и *.inc задовал подсветку языка С++&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;Заходим Опции -&amp;gt; Определение стилей&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt;Все вводим как на скрине:&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://s016.radikal.ru/i337/1107/a1/ec302893b4f9.jpg&quot; alt=&quot;http://s016.radikal.ru/i337/1107/a1/ec302893b4f9.jpg&quot; /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt;Все перезапускаете Notepad++&lt;/p&gt;
						&lt;p&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;Все пользуйтесь прокачаным Notepad++&#039;ом! &lt;br /&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;Автор:&lt;/strong&gt; &lt;strong&gt;&lt;em class=&quot;bbuline&quot;&gt;Romanius&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:45:21 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=13#p13</guid>
		</item>
		<item>
			<title>Редактирование мода и использование Pawno</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=12#p12</link>
			<description>&lt;p&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;Добрый вечер всем. Новички, обычно, задаются простым вопросом: &lt;strong&gt;&lt;span style=&quot;color: Red&quot;&gt;&amp;quot;Как и чем редактировать мод для samp?&amp;quot;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-size: 14px&quot;&gt;1) Какие моды я могу редактировать?&lt;br /&gt;Вы можете редактировать моды, имеющие расширение pwn (пример gf.pwn)&lt;/p&gt;
						&lt;p&gt;2) Чем открывать такие файлы?&lt;br /&gt;Для открытия таких файлов, в большинстве случаев, использую текстовый редактор - Pawno. &lt;br /&gt;3) &lt;strong&gt;Для чего служат кнопки в Pawno?&lt;/strong&gt; &lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/open.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/open.jpg&quot; /&gt;-открыть файл&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/compile.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/compile.jpg&quot; /&gt;-скомпилировать&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/find.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/find.jpg&quot; /&gt;-найти в файле&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/find_done.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/find_done.jpg&quot; /&gt;-перейти к предыдущей найденной записи&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/find_next.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/find_next.jpg&quot; /&gt;-перейти к следующей найденной записи&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/new.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/new.jpg&quot; /&gt;-обнулить файл/начать new.pwn&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/save.png&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/save.png&quot; /&gt;-сохранить файл&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/faq.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/faq.jpg&quot; /&gt;-справка&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://samp.ucoz.ru/pawnokeys/replace.jpg&quot; alt=&quot;http://samp.ucoz.ru/pawnokeys/replace.jpg&quot; /&gt;-заменить часть кода на другой &lt;br /&gt;&lt;span style=&quot;color: Orange&quot;&gt;--------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;4) Как мне получить &lt;span style=&quot;color: Red&quot;&gt;amx&lt;/span&gt; файл из &lt;span style=&quot;color: Red&quot;&gt;pwn&lt;/span&gt; файла?&lt;br /&gt;См. кнопка &amp;quot;скомпилировать&amp;quot;&lt;/p&gt;
						&lt;p&gt;5) Как мне получить&lt;span style=&quot;color: Red&quot;&gt; pwn&lt;/span&gt; файл из &lt;span style=&quot;color: Red&quot;&gt;amx&lt;/span&gt;?&lt;br /&gt;Получить рабочий pwn файл из amx простыми методами не получиться. Существуют методы, но мне не известно о них.&lt;br /&gt;Что бы получить не полный код можно использовать DeAmx.&lt;/p&gt;
						&lt;p&gt;6) &lt;strong&gt;Для чего нужен блок, который находиться справа?&lt;/strong&gt;&lt;br /&gt;В этом блоке указаны ваши &lt;strong&gt;include(инклуд) &lt;/strong&gt;файлы и их функции, для удобства вставки в ваш скрипт.&lt;/p&gt;
						&lt;p&gt;7) После того, как я нажал &amp;quot;скомпилировать&amp;quot; у меня &amp;quot;подвисает&amp;quot; компьютер.&lt;br /&gt;Компьютер &amp;quot;подвисает&amp;quot;, потому что идет процесс преобразование вашего кода в вид, который &amp;quot;понимает&amp;quot; samp сервер.&lt;br /&gt;Чем больше вам мод, тем дольше продолжается процесс.&lt;/p&gt;
						&lt;p&gt;8) После того, как я нажал &amp;quot;&lt;strong&gt;скомпилироват&lt;/strong&gt;ь&amp;quot; у меня появляется непонятное окно, что оно значит?&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;а)Такое окно значит, что ваш содержит ошибки и компилирование не произошло.&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://i016.radikal.ru/1107/19/d9311c593501.jpg&quot; alt=&quot;http://i016.radikal.ru/1107/19/d9311c593501.jpg&quot; /&gt;&lt;br /&gt;б) Такое окно значит, что ваш скрипт успешно скомпилировался,но у вас происходит переполнение памяти&lt;br /&gt;&lt;img class=&quot;postimg&quot; loading=&quot;lazy&quot; src=&quot;http://i030.radikal.ru/1107/7a/9ffe4ac50838.jpg&quot; alt=&quot;http://i030.radikal.ru/1107/7a/9ffe4ac50838.jpg&quot; /&gt;&lt;br /&gt;Автор:&lt;strong&gt;Неизвестно.&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:43:11 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=12#p12</guid>
		</item>
		<item>
			<title>Правила раздела!</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=11#p11</link>
			<description>&lt;p&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;Правила раздела&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-size: 14px&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Должен быть префикс &lt;span style=&quot;color: blue&quot;&gt;[&lt;strong&gt;ищу&lt;/strong&gt;]&lt;/span&gt; пример:&lt;span style=&quot;color: blue&quot;&gt;&lt;strong&gt;[ищу]&lt;/strong&gt;&lt;/span&gt;gm larp&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Должно быть конкретное описание того что вы ищите.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;font-size: 16px&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;em class=&quot;bbuline&quot;&gt;За не соблюдение правил тема будет удалена.&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:41:14 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=11#p11</guid>
		</item>
		<item>
			<title>Правила раздела [от 11.12.2011 и по сегоднишний день]</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=10#p10</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Правила раздела &amp;quot;вакансии&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: green&quot;&gt;-пользователям с репутацией от -10 запрещено создавать тему &lt;br /&gt;-описание должно быть развернутым&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;а)&lt;/span&gt;должно быть описание того,куда вы набираете персонал (от 200 сим.)&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;б)&lt;/span&gt;должны быть указаны все ссылки (форум,сайт,ip и др.)&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;в)&lt;/span&gt;тема должна содержать минимальное кол-во ошибок&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;г)&lt;/span&gt;вы должны указать з/п человеку,которого ищите&lt;br /&gt;&lt;span style=&quot;color: green&quot;&gt;-в теме не должно быть мата,оскорбления кого-либо,краткого описания не соответствующего новым правилам раздела,ибо тема будет удалена.&lt;br /&gt;-запрещено создавать темы с услугами,для этого есть раздел &amp;quot;услуги&lt;/span&gt;&amp;quot;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;span style=&quot;font-size: 18px&quot;&gt;Набор в команду&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;quote-box quote-main&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Проводится набор в команду сервера Sa:Mp.Сервер называется *название сервера*. Сервер образовался *дата* в результате *причина*.&lt;br /&gt;У нашего сервера стоит/пишется мод *название мода* Характеристики мода: &lt;br /&gt;-*характеристика*&lt;br /&gt;-*характеристика* &lt;br /&gt;-*характеристика* &lt;br /&gt;Мы ведем набор персонала на наш сервер. Нам требуются: &lt;br /&gt;-*вакансия*&lt;br /&gt;-*вакансия*&lt;br /&gt;-*вакансия* &lt;br /&gt;За работу они получат *то,что они получат* Узнать подробную информацию о нашем сервере можно: &lt;br /&gt;-на сайте *сайт*&lt;br /&gt; -на форуме *форум* &lt;br /&gt;Наши контакты: &lt;br /&gt;Skype-&lt;br /&gt;Email- &lt;br /&gt;ICQ-&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:38:09 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=10#p10</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=9#p9</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:32:48 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=9#p9</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=8#p8</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:32:12 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=8#p8</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=7#p7</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:31:48 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=7#p7</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=6#p6</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:31:25 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=6#p6</guid>
		</item>
		<item>
			<title>Правила форума!</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=5#p5</link>
			<description>&lt;p&gt;Уважаемые пользователи, создавайте темы очень внимательно. Ваша не аккуратность не убавляет работы, а лишь наоборот увеличивает её в разы.&lt;br /&gt;&lt;strong&gt;В разделах есть правила, они обязательны к прочтению.&lt;/strong&gt;&lt;br /&gt;Не знание правил не освобождает вас от блокировки. &lt;/p&gt;
						&lt;p&gt;Правила форума.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:25:49 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=5#p5</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=4#p4</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:23:33 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=4#p4</guid>
		</item>
		<item>
			<title>Жалобы на нарушение правил раздела</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=3#p3</link>
			<description>&lt;p&gt;Заметили нарушение правил в разделе Разработки сторонних разработчиков -&amp;gt; [GM] - моды?&lt;br /&gt;Пишем жалобу в этой теме и в ближайщие 24 часа - она будет расмотрена.&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: red&quot;&gt;Модераторы раздела:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Joker&lt;/strong&gt;&lt;/p&gt;
						&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: red&quot;&gt;Шаблон для оформления жалобы:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;1. Ссылка на нарушение&lt;br /&gt;2. Собственно, само нарушение (повтор, нет ссылки и т.д.)&lt;/p&gt;
						&lt;p&gt;P.S.S Не стоит писать название сервера на котором стоял мод в виде описания т.к часто бывает, что многие не знают данный сервер.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:21:21 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=3#p3</guid>
		</item>
		<item>
			<title>Правила публикаций файлов</title>
			<link>http://pawno.fanbb.ru/viewtopic.php?pid=2#p2</link>
			<description>&lt;p&gt;&lt;span style=&quot;display: block; text-align: center&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Заголовок темы должен содержать только название мода/фс/карты/инклуда/программы ;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Не нужно указывать префикс в названии темы, он уже указан в подразделе;*&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; В теме должно быть описание того, что вы публикуете;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Обязательно наличие ссылки;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Используйте поиск, прежде чем создать новую тему.Возможно эта работа уже есть.&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;* - Вы вправе использовать префикс, если название подраздела не подходит для работы.&lt;br /&gt;Например: [FS+MAP]Office&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Joker)</author>
			<pubDate>Tue, 13 Dec 2011 20:14:15 +0400</pubDate>
			<guid>http://pawno.fanbb.ru/viewtopic.php?pid=2#p2</guid>
		</item>
	</channel>
</rss>
