<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x423;&#x440;&#x43E;&#x43A;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x442;&#x435;&#x43C;</title><link>https://pawno-rus.com/forum/69-uroki/</link><description>&#x423;&#x440;&#x43E;&#x43A;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x442;&#x435;&#x43C;</description><language>ru</language><item><title>&#x41A;&#x430;&#x43A; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; CEF &#x43D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;?</title><link>https://pawno-rus.com/topic/8732-kak-zagruzit-cef-na-hosting/</link><description><![CDATA[
<p>
	Привет! Я заметил, что многие не понимают, как залить cef на хостинг, хотя информации по этому вопросу достаточно. Сегодня я покажу вам, как это сделать.
</p>

<ol><li>
		<p>
			Прежде всего, выберите хостинг. Я пользуюсь Maze host (это не реклама), потому что он удобен для меня. Вы можете выбрать любой хостинг, но я буду использовать его как пример. Можете выбрать платный или бесплатный вариант.
		</p>
	</li>
	<li>
		<p>
			После регистрации у вас появятся данные от ISP Manager. Чтобы их найти, откройте вкладку «Сайты», выберите свой сайт и нажмите на него. На Maze host есть кнопка, которая автоматически перенаправит вас в ISP Manager. Я использую этот способ, но вы также можете сделать - через FTP.<img alt="69b8587d873bd_2026-03-17001412.png.0fe9fb7b6065c4b1d03e1cfb3ecc360b.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24470" src="//storage.yandexcloud.net/pawnorus/monthly_2026_03/69b8587d873bd_2026-03-17001412.png.0fe9fb7b6065c4b1d03e1cfb3ecc360b.png" /></p>
	</li>
	<li>
		<p>
			В ISP Manager перейдите на вкладку «www-домены», выберите свой сайт и нажмите на иконку «Файлы сайта» в верхней панели.
		</p>
	</li>
	<li>
		<p>
			Удалите всё, что там есть.
		</p>
	</li>
	<li>
		<p>
			Откройте папку с вашим cef и переместите все файлы в центр экрана, или просто нажмите кнопку «Загрузить» и загрузите cef.
		</p>
	</li>
	<li>
		<p>
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24471" href="//storage.yandexcloud.net/pawnorus/monthly_2026_03/69b858d987c86_2026-03-17002350.png.8103da8ca8e45b9503e89803da177da6.png" rel=""><img alt="69b858da07059_2026-03-17002350.thumb.png.d43e4bb0f224d9380fbe21be092d6649.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24471" src="//storage.yandexcloud.net/pawnorus/monthly_2026_03/69b858da07059_2026-03-17002350.thumb.png.d43e4bb0f224d9380fbe21be092d6649.png" /></a>
		</p>
	</li>
	<li>
		<p>
			Вернитесь на главную страницу Maze host, найдите свой сайт и скопируйте домен. Он должен выглядеть так: «wh33333.web3.maze-tech.ru», без https://.
		</p>
	</li>
	<li>
		<p>
			Вставьте эту ссылку в мод.
		</p>
	</li>
</ol><p>
	Если у вас возникнут вопросы или что-то будет непонятно, обращайтесь.
</p>
]]></description><guid isPermaLink="false">8732</guid><pubDate>Mon, 16 Mar 2026 19:24:33 +0000</pubDate></item><item><title>SetTimer &#x438; SetTimerEx</title><link>https://pawno-rus.com/topic/6040-settimer-i-settimerex/</link><description><![CDATA[
<p>
	Всем доброго времени суток. Сегодня мне бы хотелось вам рассказать от таких функциях в PAWN-языке, как SetTimer и SetTimerEx.
</p>

<p>
	Сразу сделаю такое примечание: <b><i><u>Для SetTimer и SetTimerEx можно использовать ТОЛЬКО public!!!</u></i></b>
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><u><span style="font-size:20px;"><b><i>SetTimer</i></b></span></u></span>
</p>

<p>
	Итак, для начала приступим к лёгкому и пойдём по нарастающей:
</p>

<p>
	Первое, это SetTimer. Функция включает в себя 3 параметра:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="native SetTimer(funcname[], interval, repeating);">
<span><span>native SetTimer(funcname[], interval, repeating);</span></span>
</pre>

<p>
	funcname[] - Это название функции, по сути - название вашего pablic в кавычках.
</p>

<p>
	interval - Интервалы от вызова таймера до срабатывания pablic
</p>

<p>
	               Так же если стоит повторение таймера, то будет работать как интервал между таймерами.
</p>

<p>
	               Измеряется в миллисекундах. 1000 миллисекунд равно 1 секунде
</p>

<p>
	repating - Тут всё просто: будет ли повторяться ваша функция. Может иметь значения: true - будет выполняться повторение ИЛИ false - вызывается 1 раз.
</p>

<p>
	Давайте разберём пример для наглядности:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="forward Info();
public Info()
{
    SendClientMessageToAll(0xFFFFFFFF, &quot;Наш сайт: pawno-rus.ru&quot;);
}
// И теперь давайте вызовем данный таймер при запуске мода
public OngameModeInit()
{
    SetTimer(&quot;Info&quot;, 1000*60*20, true);
    return true
}">
<span><span>forward Info();</span></span>
<span><span>public</span><span> Info()</span></span>
<span><span>{</span></span>
<span><span>    SendClientMessageToAll(</span><span>0xFFFFFFFF</span><span>, </span><span>"Наш сайт: pawno-rus.ru"</span><span>);</span></span>
<span><span>}</span></span>
<span><span>// И теперь давайте вызовем данный таймер при </span><span>запуске мода</span></span>
<span><span>public</span><span> OngameModeInit()</span></span>
<span><span>{</span></span>
<span><span>    SetTimer(</span><span>"Info"</span><span>, </span><span>1000</span><span>*</span><span>60</span><span>*</span><span>20</span><span>, </span><span>true</span><span>);</span></span>
<span><span>    </span><span>return</span><span> </span><span>true</span></span>
<span><span>}</span></span>
</pre>

<p>
	Давайте разберёмся по интервалу: 1000*60*20. Так как я писал ранее, что 1000 млСек = 1 сек, то: 1 сек * 60 = 1 минута; 1 минута * 20 = 20 минут.
</p>

<p>
	Таким образом данный таймер будет выводить каждые 20 минут для всех игроков на сервере в чат: "<span style="color:#a31515;">pawno-rus.ru</span>".
</p>

<p>
	 
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><u><span style="font-size:20px;"><b><i>SetTimerEx</i></b></span></u></span>
</p>

<p>
	 
</p>

<p>
	По сути с SetTimer - всё, теперь перейдём к следующей функции: SetTimerEx:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...);">
<span><span>native SetTimerEx(funcname[], interval, repeating,</span><span> </span><span>const</span><span> format[], {Float,_}:...);</span></span>
</pre>

<p>
	Тут добавляются ещё 2 параметра:
</p>

<p>
	const format[] - формат данных для ввода в функцию. (Такие как: s, d, f);
</p>

<p>
	{Float,_}:... - переменные или значение для данных из const fromat[]
</p>

<p>
	Из данных объяснения мало что можно понять незнающему или начинающему скриптеру, поэтому давайте разберём на примере кода, который при входу даёт на авторизацию две минуты игроку:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="forward autorez(playerid);
public autorez(playerid)
{
    if(/*проверка на то залогинился ли игрок*/)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, &quot;Вы были кикнуты по причине: Время на авторизацию истекло.&quot;);
        Kick(playerid);
        return true;
    }
    return true;
}
//Дальше уже добавлям сам таймер
public OnPlayerConnect(playerid)
{
    SetTimerEx(&quot;autorez&quot;, 1000*60*2, false, &quot;d&quot;, playerid);
    return true;
}">
<span><span>forward autorez(playerid);</span></span>
<span><span>public</span><span> autorez(playerid)</span></span>
<span><span>{</span></span>
<span><span>    </span><span>if</span><span>(</span><span>/*проверка на то залогинился ли игрок*/</span><span>)</span></span>
<span><span>    {</span></span>
<span><span>        SendClientMessage(playerid, </span><span>0xFFFFFFFF</span><span>, </span><span>"Вы были кикнуты по причине: Время на авторизацию </span><span>истекло."</span><span>);</span></span>
<span><span>        Kick(playerid);</span></span>
<span><span>        </span><span>return</span><span> </span><span>true</span><span>;</span></span>
<span><span>    }</span></span>
<span><span>    </span><span>return</span><span> </span><span>true</span><span>;</span></span>
<span><span>}</span></span>
<span><span>//Дальше уже добавлям сам таймер</span></span>
<span><span>public</span><span> OnPlayerConnect(playerid)</span></span>
<span><span>{</span></span>
<span><span>    SetTimerEx(</span><span>"autorez"</span><span>, </span><span>1000</span><span>*</span><span>60</span><span>*</span><span>2</span><span>, </span><span>false</span><span>, </span><span>"d"</span><span>, playerid);</span></span>
<span><span>    </span><span>return</span><span> </span><span>true</span><span>;</span></span>
<span><span>}</span></span>
</pre>

<p>
	Если первые три пункта мы уже разбирали. то начнём сразу с 4-го:
</p>

<p>
	4. Тут в кавычках надо вставлять тип данных. Наподобие функции format(output[], len, <u><strong>"%s %d %f</strong><strong>"</strong></u>, string, int, float), <strong>только без знака процента (%)</strong>
</p>

<p>
	5. Тут уже указывают сами данные, так же разберём как и предыдущий: format(output[], len, "%s %d %f ", <u><strong>string, int, float</strong></u>)
</p>

<p>
	 
</p>

<p>
	<span style="color:#4e5f70;"><span style="font-size:14px;">Я надеюсь что кому-то помог, а если что непонятно, то спрашивайте, всегда помогу.</span></span>
</p>
]]></description><guid isPermaLink="false">6040</guid><pubDate>Tue, 18 Jan 2022 17:26:48 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x443;&#x440;?</title><link>https://pawno-rus.com/topic/1824-kak-sdelat-retekstur/</link><description><![CDATA[
<p style="color:#282828;">
	Доброго времени суток. В этом примере я расскажу, как сделать ретекстур объектов.
</p>

<p style="color:#282828;">
	Для начала скачиваем программу<span> </span><a class="ipsType_noLinkStyling" style="color:#0f72da;" title="" rel=""><strong>Map Editor</strong></a>
</p>

<p style="color:#282828;">
	Цель работы: Научиться пользоваться функцией SetObjectMaterial
</p>

<p style="color:#282828;">
	 
</p>

<p style="color:#282828;">
	Переходим к практике.
</p>

<p style="color:#282828;">
	Открываем<span> </span><u>Map Editor</u>, ставите объект, куда захотите и какой хотите, в моем случае - киоск (ID: 4638). Помечено галочками - что собрался ретекстурить.
</p>

<p style="color:#282828;">
	<a class="ipsAttachLink ipsAttachLink_image" href="//storage.yandexcloud.net/pawnorus/monthly_2017_12/92JTlFSy4zs.jpg.d827c5fe2d13cf3b20389c5f8e3855d8.jpg" data-fileid="1294" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="1294" data-unique="6eisduayl" src="//storage.yandexcloud.net/pawnorus/monthly_2017_12/92JTlFSy4zs.thumb.jpg.35145d3f8fb5ed626927c1cc9843d263.jpg" alt="92JTlFSy4zs.jpg"></a>
</p>

<p style="color:#282828;">
	Текстура в моем случае будет ID: 4442 (гараж).
</p>

<p style="color:#282828;">
	Жмем на киоск 2 раза и откроется окно:<br><a class="ipsAttachLink ipsAttachLink_image" href="//storage.yandexcloud.net/pawnorus/monthly_2017_12/gpgJpahItm4.jpg.c52a676c85bef1f7f1722c76508916f9.jpg" data-fileid="1292" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="1292" data-unique="18xsg2rq6" src="//storage.yandexcloud.net/pawnorus/monthly_2017_12/gpgJpahItm4.thumb.jpg.f6a561de9afc610ea628fa937f104007.jpg" alt="gpgJpahItm4.jpg"></a>
</p>

<p style="color:#282828;">
	Видим<span> </span><u><strong>Model Textures</strong></u>
</p>

<p style="color:#282828;">
	Где написано Material: ... - индексы у нас их 10, придется подбирать индекс/ы, я уже подобрал - 10 (Material: 10 split: 10 Tex: brusch). Открываем .txd объекта, у которого будем брать текстуру и копируем название текстуры. В моем случае - будет самая первая текстура (gar_wall1) объекта гаража (4442):<br><img class="ipsImage ipsImage_thumbnailed" data-fileid="1293" data-unique="8fwmjm6d7" src="//storage.yandexcloud.net/pawnorus/monthly_2017_12/B997ZSny9ng.jpg.0a6c401e68e4e7e418c88773f988c52f.jpg" alt="B997ZSny9ng.jpg"></p>

<p style="color:#282828;">
	Для того, чтобы открыть текстуры объекта, скачиваем эту программу<span> </span><a class="ipsType_noLinkStyling" style="color:#0f72da;" title="" rel=""><strong>TXD Workshop</strong></a>
</p>

<p style="color:#282828;">
	Теперь всё основное у нас есть. Переходим к заключению. Открываем ваш GM (gamemode) и переходим в паблик OnGameModeInit.
</p>

<p style="color:#282828;">
	В любое место этого коллбэка вставляем:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">new</span><span class="pun">-</span><span class="pln"> </span><span class="pun">переменная</span><span class="pln"> </span><span class="pun">объекта</span><span class="pln"> </span><span class="pun">(назвать</span><span class="pln"> </span><span class="pun">можно</span><span class="pln"> </span><span class="pun">по-разному)</span><span class="pln">
</span><span class="pun">переменная</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicObject</span><span class="pun">(</span><span class="lit">4638</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">343.51</span><span class="pun">,</span><span class="pln"> </span><span class="lit">433.54</span><span class="pun">,</span><span class="pln"> </span><span class="lit">11.70</span><span class="pun">,</span><span class="pln">   </span><span class="lit">0.00</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.00</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.00</span><span class="pun">);</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="pun">объект</span><span class="pln"> </span><span class="pun">киоска</span><span class="pln">
</span><span>SetDynamicObjectMaterial</span><span class="pun">(вставляем</span><span class="pln"> </span><span class="pun">переменную,</span><span class="pln"> </span><span class="pun">индекс</span><span class="pln"> </span><span class="pun">(в</span><span class="pln"> </span><span class="pun">моем</span><span class="pln"> </span><span class="pun">случае</span><span class="pln"> </span><span class="pun">это</span><span class="pln"> </span><span class="lit">10</span><span class="pun">-ый),</span><span class="pln"> </span><span class="pun">ид</span><span class="pln"> </span><span class="pun">объекта</span><span class="pln"> </span><span class="pun">у</span><span class="pln"> </span><span class="pun">которого</span><span class="pln"> </span><span class="pun">брали</span><span class="pln"> </span><span class="pun">текстуру</span><span class="pln"> </span><span class="pun">(в</span><span class="pln"> </span><span class="pun">моем</span><span class="pln"> </span><span class="pun">случае</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="pun">гараж),</span><span class="pln"> </span><span class="str">"название текстуры гаража (gen_garages)"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"название текстуры (в моем случае (gar_wall1)"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">по</span><span class="pln"> </span><span class="pun">умолчанию</span><span class="pln"> </span><span class="pun">здесь</span><span class="pln"> </span><span class="pun">оставляем</span><span class="pln"> </span><span class="pun">значение</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln"> </span></pre>

<p>
	<span style="color:#282828;">Выходит у нас так:</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">new</span><span class="pln"> kiosk</span><span class="pun">;</span><span class="pln">
kiosk </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicObject</span><span class="pun">(</span><span class="lit">4638</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">343.51</span><span class="pun">,</span><span class="pln"> </span><span class="lit">433.54</span><span class="pun">,</span><span class="pln"> </span><span class="lit">11.70</span><span class="pun">,</span><span class="pln">   </span><span class="lit">0.00</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.00</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.00</span><span class="pun">);</span><span class="pln">
</span><span>SetDynamicObjectMaterial</span><span class="pun">(</span><span class="pln">kiosk</span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4442</span><span class="pun">,</span><span class="pln"> </span><span class="str">"gen_garages"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"gar_wall1"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1824</guid><pubDate>Fri, 22 Dec 2017 12:25:29 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x443;&#x440;&#x43E;&#x43A;&#x43E;&#x432;. &#x41A;&#x430;&#x43A;&#x438;&#x445; &#x443;&#x440;&#x43E;&#x43A;&#x43E;&#x432; &#x43D;&#x435; &#x445;&#x432;&#x430;&#x442;&#x430;&#x435;&#x442; &#x432; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;?</title><link>https://pawno-rus.com/topic/2599-sozdanie-novyh-urokov-kakih-urokov-ne-hvataet-v-dannom-razdele/</link><description><![CDATA[<p>
	Всем привет. К сожалению, раздел "Уроки" на нашем портале появился совсем недавно. Поэтому количество уроков на данный момент относительно мало. Нам бы хотелось узнать ваше мнение: в каких уроках вы востребованы и какие уроки интересны. Ждем ваших комментариев.
</p>]]></description><guid isPermaLink="false">2599</guid><pubDate>Thu, 07 Jun 2018 19:43:48 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x444;&#x440;&#x430;&#x43A;&#x446;&#x438;&#x438;/&#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x43D;&#x430; MySQL R41</title><link>https://pawno-rus.com/topic/3616-sozdanie-frakciiorganizacii-na-mysql-r41/</link><description><![CDATA[
<p>
	Привет всем "обитателям" форума pawno-rus.ru
</p>

<p>
	В этом уроке я покажу как создать желаемую фракцию в pawno
</p>

<p>
	В этом уроке будет:
</p>

<p>
	<b>[1] </b>Создание самой фракции;
</p>

<p>
	<b>[2] </b>Создание фракционных машин(с проверкой, состоит ли игрок в данной организации или нет);
</p>

<p>
	<b>[3] </b>Создание пикапов входа и выхода в интерьер;
</p>

<p>
	<strong>[4] </strong>Создание команды /makeleader и /warehouse;
</p>

<p>
	<strong>[5]</strong> Сохранение всего в базе данных MySQL (R41);
</p>

<p>
	Все нужные инклуды и плагины:
</p>

<p>
	(текст кликабелен)
</p>

<p>
	<a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly9zYW1wLW1vZHMuY29tL2ZpbGVzL2ZpbGUxMzE0NC5odG1s" rel="external nofollow">Pawn.CMD</a>
</p>

<p>
	<a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly95YWRpLnNrL2QvaEdlSjhTUV9zUDdhbQ==" rel="external nofollow">sscanf</a>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">#include </span><span class="tag">&lt;a_samp&gt;</span><span class="pln">
#include </span><span class="tag">&lt;a_mysql&gt;</span><span class="pln">
#include </span><span class="tag">&lt;Pawn.CMD&gt;</span><span class="pln">
#include </span><span class="tag">&lt;sscanf2&gt;</span></pre>

<p>
	Начнем на примере будет организация LSPD! Если вы найдете какие-то баги, недоработки и т.д. и т.п. то пишите сюда или мне в личку ВК: vk.com/martun_mkrt
</p>

<p>
	 
</p>

<p>
	Для начала вставьте это в начало вашего мода(где хранятся все дефайны)
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="com">#define</span><span class="pln"> GN</span><span class="pun">(%</span><span class="lit">0</span><span class="pun">)</span><span class="pln">      	player_name</span><span class="pun">[%</span><span class="lit">0</span><span class="pun">]</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> SCM         	</span><span>SendClientMessage</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> SPD         	</span><span>ShowPlayerDialog</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> DSI				DIALOG_STYLE_INPUT
</span><span class="com">#define</span><span class="pln"> DSL				DIALOG_STYLE_LIST
</span><span class="com">#define</span><span class="pln"> DSM             DIALOG_STYLE_MSGBOX
</span><span class="com">#define</span><span class="pln"> DSTH            DIALOG_STYLE_TABLIST_HEADERS
</span><span class="com">#define</span><span class="pln"> DSP             DIALOG_STYLE_PASSWORD
</span><span class="com">#define</span><span class="pln"> SCMTA           </span><span>SendClientMessageToAll</span><span class="pln">
</span><span class="com">//</span><span class="pln">
</span><span class="com">#if !defined isnull</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> isnull</span><span class="pun">(%</span><span class="lit">0</span><span class="pun">)</span><span class="pln">      </span><span class="pun">((!(%</span><span class="lit">0</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">(((%</span><span class="lit">0</span><span class="pun">[</span><span class="lit">0</span><span class="pun">])</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'\1'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(!(%</span><span class="lit">0</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]))))</span><span class="pln">
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">//</span><span class="pln">
</span><span class="kwd">new</span><span class="pln">
  	connect_mysql</span><span class="pun">,</span><span class="pln"> </span><span class="com">// подключение к базе данных</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">7</span><span class="pun">],</span><span class="pln"> </span><span class="com">//Кол-во пикапов</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">27</span><span class="pun">],</span><span class="pln"> </span><span class="com">//Кол-во машин</span><span class="pln">

	</span><span>Float</span><span class="pun">:</span><span class="pln"> pos_pick</span><span class="pun">[</span><span class="lit">3</span><span class="pun">][</span><span class="pln">MAX_PLAYERS</span><span class="pun">],</span><span class="pln">
	</span><span class="kwd">bool</span><span class="pun">:</span><span class="pln"> anti_flood_pick</span><span class="pun">[</span><span class="pln">MAX_PLAYERS </span><span class="kwd">char</span><span class="pun">],</span><span class="pln">
	leaders_info</span><span class="pun">[</span><span class="lit">1</span><span class="pun">][</span><span class="lit">4</span><span class="pun">+</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">	</span><span class="com">//При создании нововй фракции то учитывайте название (не более 4 символов)</span><span class="pln">
	</span><span class="str">"LSPD"</span><span class="pln">
</span><span class="pun">};</span></pre>

<p>
	Затем рядом со всеми енумами создаем новый:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">enum</span><span class="pln"> mInfo
</span><span class="pun">{</span><span class="pln">
	mLSPD</span><span class="pun">,</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Затем в enum dInfo и pInfo -  вставляем следущий код(если нету enum dInfo то создаем):
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">enum</span><span class="pln"> pInfo </span><span class="com">// если у вас уже есть этот енум и все эти значения то заменяйте их на свои</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	pID</span><span class="pun">,</span><span class="pln">
	pName</span><span class="pun">[</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">],</span><span class="pln">
	pPass</span><span class="pun">[</span><span class="lit">65</span><span class="pun">],</span><span class="pln">
	pSkin</span><span class="pun">,</span><span class="pln">
	pLeader</span><span class="pun">,</span><span class="pln">
	pModel</span><span class="pun">,</span><span class="pln">
	pMember</span><span class="pun">,</span><span class="pln">
	pRank</span><span class="pun">,</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> </span><span>PlayerInfo</span><span class="pun">[</span><span class="pln">MAX_PLAYERS</span><span class="pun">][</span><span class="pln">pInfo</span><span class="pun">];</span><span class="pln">

</span><span class="kwd">enum</span><span class="pln"> dInfo
</span><span class="pun">{</span><span class="pln">
	DLG_LSPD</span><span class="pun">,</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Создаем паблик с телом:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">public</span><span class="pln"> </span><span>OnPlayerStateChange</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> newstate</span><span class="pun">,</span><span class="pln"> oldstate</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">new</span><span class="pln">
	    carid </span><span class="pun">=</span><span class="pln"> </span><span>GetPlayerVehicleID</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">

	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">newstate </span><span class="pun">==</span><span class="pln"> PLAYER_STATE_DRIVER</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">carid </span><span class="pun">&gt;=</span><span class="pln"> lspd_car</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> carid </span><span class="pun">&lt;=</span><span class="pln"> lspd_car</span><span class="pun">[</span><span class="lit">26</span><span class="pun">])</span><span class="pln">
	    </span><span class="pun">{</span><span class="pln">
	        </span><span class="kwd">if</span><span class="pun">(</span><span>PlayerInfo</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">][</span><span class="pln">pMember</span><span class="pun">]</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="pun">}</span><span class="com">// PlayerInfo - меняем на свое</span><span class="pln">
	        </span><span class="kwd">else</span><span class="pln">
	        </span><span class="pun">{</span><span class="pln">
	            </span><span>RemovePlayerFromVehicle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	            SCM</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> COLOR_GREY</span><span class="pun">,</span><span class="pln"> </span><span class="pun">!</span><span class="str">"Транспорт принадлежит Депортаменту г. Лос-Сантос!"</span><span class="pun">);</span><span class="pln">
	        </span><span class="pun">}</span><span class="pln">
	    </span><span class="pun">}</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Потом находим паблик OnDialogOnDialogResponse, и в тело кидаем этот код:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">public</span><span class="pln"> </span><span>OnDialogResponse</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> dialogid</span><span class="pun">,</span><span class="pln"> response</span><span class="pun">,</span><span class="pln"> listitem</span><span class="pun">,</span><span class="pln"> inputtext</span><span class="pun">[])</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">switch</span><span class="pun">(</span><span class="pln">dialogid</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="lit">19</span><span class="pun">:</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
		    </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">response</span><span class="pun">)</span><span class="pln">
		    </span><span class="pun">{</span><span class="pln">
				</span><span class="kwd">switch</span><span class="pun">(</span><span class="pln">listitem</span><span class="pun">)</span><span class="pln">
				</span><span class="pun">{</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">0</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял Deagle со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
						</span><span>GivePlayerWeapon</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">24</span><span class="pun">,</span><span class="pln"> </span><span class="lit">35</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">1</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял ShotGun со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
				        </span><span>GivePlayerWeapon</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">20</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">2</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял MP5 со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
				        </span><span>GivePlayerWeapon</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">29</span><span class="pun">,</span><span class="pln"> </span><span class="lit">60</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">3</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял дубинку со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
				        </span><span>GivePlayerWeapon</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">4</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял сухпаёк со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
				        </span><span>SetPlayerHealth</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">100.0</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				    </span><span class="kwd">case</span><span class="pln"> </span><span class="lit">5</span><span class="pun">:</span><span class="pln">
				    </span><span class="pun">{</span><span class="pln">
				        </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln">
						    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"%s взял бронежилет со склада"</span><span class="pun">;</span><span class="pln">
						</span><span class="kwd">new</span><span class="pln">
						    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">

						format</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">string</span><span class="pun">),</span><span class="pln"> fmt_str</span><span class="pun">,</span><span class="pln"> GN</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">));</span><span class="pln">
						</span><span>ProxDetector</span><span class="pun">(</span><span class="lit">5.0</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">,</span><span class="pln"> string</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">,</span><span class="pln"> COLOR_PURPLE</span><span class="pun">);</span><span class="pln">
				        </span><span>SetPlayerArmour</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">100.0</span><span class="pun">);</span><span class="pln">
				    </span><span class="pun">}</span><span class="pln">
				</span><span class="pun">}</span><span class="pln">
				</span><span>DialogGunLSPD</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
		    </span><span class="pun">}</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Потом в конце мода создаем сток:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">stock </span><span>DialogGunLSPD</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	SPD</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">19</span><span class="pun">,</span><span class="pln"> DSTH</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Оружейный склад"</span><span class="pun">,</span><span class="pln">
	</span><span class="pun">!</span><span class="str">"</span><span class="pln">\
		</span><span class="pun">{</span><span class="pln">FFFFFF</span><span class="pun">}Имя:</span><span class="pln">\t\t</span><span class="pun">Патроны:</span><span class="pln">\
		\n</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span>Deagle</span><span class="pln">\t\t</span><span class="lit">35</span><span class="pln">\
		\n</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span>ShotGun</span><span class="pln">\t\t</span><span class="lit">20</span><span class="pln">\
		\n</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> MP5\t\t</span><span class="lit">60</span><span class="pln">\
		\n</span><span class="lit">4</span><span class="pun">)</span><span class="pln"> </span><span class="pun">Дубинка</span><span class="pln">\
		\n</span><span class="lit">5</span><span class="pun">)</span><span class="pln"> </span><span class="pun">Сухпаёк</span><span class="pln">\
		\n</span><span class="lit">6</span><span class="pun">)</span><span class="pln"> </span><span class="pun">Бронежилет</span><span class="str">", "</span><span class="pun">Выбрать</span><span class="str">", "</span><span class="pun">Отмена</span><span class="pln">\
	</span><span class="str">");</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
stock </span></pre>

<p>
	Потом в паблик OnPlayerPickUp кидаем это:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">public</span><span class="pln"> </span><span>OnPlayerPickUpDynamicPickup</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> pickupid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">anti_flood_pick</span><span class="pun">{</span><span class="pln">playerid</span><span class="pun">}</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
	    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">else</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    anti_flood_pick</span><span class="pun">{</span><span class="pln">playerid</span><span class="pun">}</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
	    </span><span>GetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> pos_pick</span><span class="pun">[</span><span class="lit">0</span><span class="pun">][</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> pos_pick</span><span class="pun">[</span><span class="lit">1</span><span class="pun">][</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> pos_pick</span><span class="pun">[</span><span class="lit">2</span><span class="pun">][</span><span class="pln">playerid</span><span class="pun">]);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">0</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">246.5715</span><span class="pun">,</span><span class="lit">65.2846</span><span class="pun">,</span><span class="lit">1003.6406</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2.3383</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">1</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">246.7730</span><span class="pun">,</span><span class="lit">84.8201</span><span class="pun">,</span><span class="lit">1003.6406</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">179.3500</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">2</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1552.6343</span><span class="pun">,-</span><span class="lit">1675.7346</span><span class="pun">,</span><span class="lit">16.1953</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">86.4747</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">3</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1568.7280</span><span class="pun">,-</span><span class="lit">1693.8474</span><span class="pun">,</span><span class="lit">5.8906</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180.4991</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">4</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">316.5714</span><span class="pun">,-</span><span class="lit">167.7457</span><span class="pun">,</span><span class="lit">999.5938</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.0539</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">5</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
	    </span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1527.6619</span><span class="pun">,-</span><span class="lit">1677.7692</span><span class="pun">,</span><span class="lit">5.8906</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Значения меняем на свои!</span><span class="pln">
		</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">269.1499</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
		</span><span>SetCameraBehindPlayer</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> lspd_pick</span><span class="pun">[</span><span class="lit">6</span><span class="pun">])</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">if</span><span class="pun">(</span><span>PlayerInfo</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">][</span><span class="pln">pMember</span><span class="pun">]</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln">
			</span><span class="kwd">return</span><span class="pln"> SCM</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> COLOR_GREY</span><span class="pun">,</span><span class="pln"> </span><span class="pun">!</span><span class="str">"Вы не состоите в LSPD"</span><span class="pun">);</span><span class="pln">
			
		</span><span>DialogGunLSPD</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Потом перед ранее созданым стоком "stock DialogGunLspd" создаем еще два стока:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">stock </span><span>Pickups</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="com">// LSPD</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1555.5059</span><span class="pun">,-</span><span class="lit">1675.7415</span><span class="pun">,</span><span class="lit">16.1953</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь улица </span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1568.6741</span><span class="pun">,-</span><span class="lit">1689.9702</span><span class="pun">,</span><span class="lit">6.2188</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь гаража улицы</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">246.8043</span><span class="pun">,</span><span class="lit">62.3237</span><span class="pun">,</span><span class="lit">1003.6406</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь в участке</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">3</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">246.4056</span><span class="pun">,</span><span class="lit">88.0078</span><span class="pun">,</span><span class="lit">1003.6406</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь в гараж</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">4</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1524.4835</span><span class="pun">,-</span><span class="lit">1677.8490</span><span class="pun">,</span><span class="lit">6.2188</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь в оружейную</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">5</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">316.3202</span><span class="pun">,-</span><span class="lit">170.2966</span><span class="pun">,</span><span class="lit">999.5938</span><span class="pun">);</span><span class="pln"> </span><span class="com">// дверь из оружейной</span><span class="pln">
	lspd_pick</span><span class="pun">[</span><span class="lit">6</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateDynamicPickup</span><span class="pun">(</span><span class="lit">2061</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">312.1859</span><span class="pun">,-</span><span class="lit">168.7103</span><span class="pun">,</span><span class="lit">999.5938</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Боеприпасы</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
stock </span><span>Cars</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="com">// LSPD</span><span class="pln">
    lspd_car</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4960</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1683.9705</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9966</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln"> </span><span class="com">// координаты изменяем по своему усмотрению</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4961</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1688.1863</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9944</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4960</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1692.1858</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9963</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">3</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4961</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1696.4399</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9965</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">4</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4961</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1700.4475</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6105</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9928</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">5</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1602.4973</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1704.7720</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6111</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9599</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">6</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1591.1188</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8458</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9953</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">7</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1587.0615</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8457</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9914</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">8</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1582.9340</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8418</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9973</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">9</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1578.0387</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8459</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6106</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9960</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">10</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1574.0431</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8464</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6115</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9565</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">11</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1569.6342</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8481</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.5788</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9579</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">12</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1558.3914</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1710.8352</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6231</span><span class="pun">,</span><span class="pln"> </span><span class="lit">359.9962</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">13</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1584.5720</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1672.3798</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6135</span><span class="pun">,</span><span class="pln"> </span><span class="lit">269.9952</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">14</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">596</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1584.5693</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1668.1559</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6123</span><span class="pun">,</span><span class="pln"> </span><span class="lit">269.9404</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">15</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.6881</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1684.3760</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4628</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.8548</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">16</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.6832</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1680.3370</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4628</span><span class="pun">,</span><span class="pln"> </span><span class="lit">90.0000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">17</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.6796</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1676.2489</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4715</span><span class="pun">,</span><span class="pln"> </span><span class="lit">90.0000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">18</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.6934</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1672.1342</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4719</span><span class="pun">,</span><span class="pln"> </span><span class="lit">90.0000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">19</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.7043</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1667.6414</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4657</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.5909</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">20</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">523</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.6930</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1663.1404</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.4719</span><span class="pun">,</span><span class="pln"> </span><span class="lit">90.0000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">21</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">601</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.4475</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1659.0334</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6477</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9272</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">22</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">601</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1545.4456</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1655.0054</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5.6652</span><span class="pun">,</span><span class="pln"> </span><span class="lit">89.9993</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">23</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">427</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1538.1487</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1644.9996</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6.0336</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180.0003</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">24</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">427</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1534.1730</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1644.9996</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6.0335</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180.0002</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">427</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1529.9532</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1644.9991</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6.0335</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180.0003</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
	lspd_car</span><span class="pun">[</span><span class="lit">26</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>AddStaticVehicleEx</span><span class="pun">(</span><span class="lit">497</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1559.2762</span><span class="pun">,-</span><span class="lit">1644.1458</span><span class="pun">,</span><span class="lit">28.5774</span><span class="pun">,</span><span class="lit">90.9602</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">600</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Потом после стока  "DialogGunLSPD" создаем еще два стока:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">stock LoadMaterials()
{
	mysql_query(connect_mysql, "SELECT * FROM `materials`");
	materials[mlspd] = cache_get_field_content_int(0, "LSPD");
}
stock SaveMaterials()
{
    static const
	    fmt_str[] = "UPDATE `materials` SET `LSPD` = '%d'";
	new
	    string[sizeof(fmt_str)+5];

	format(string, sizeof(string), fmt_str, materials[mLSPD]);
	mysql_tquery(connect_mysql, string, false, "", "");
}</span></pre>

<p>
	<strong><u>ВНИМАНИЕ: НЕ ЗАБУДТЕ СОЗДАТЬ В БАЗЕ ДАННЫХ НОВУЮ ТАБЛИЦУ "materials" и внести туда столбец LSPD со значением INT </u></strong>
</p>

<p>
	 
</p>

<p>
	В конце мода создаем команду для проверки материалов:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">CMD:warehouse(playerid)
{
	if(PlayerInfo[playerid][pMember] == 0)
	    return SCM(playerid, COLOR_GREY, !"Вы не уполномочены использовать данную команду!");
	    
	switch(PlayerInfo[playerid][pMember])
	{
	    case 1:
	    {
	        static const
			    fmt_str[] = "Склад LSPD: %d/100000";
			new
			    string[sizeof(fmt_str)+5];

			format(string, sizeof(string), fmt_str, materials[mLSPD]);
			SCM(playerid, COLOR_BLUE, string);
	    }
	}
	return true;
}</span></pre>

<p>
	И в начало мода создаем дефайны цветов чтобы не было ошибок:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="com">#define</span><span class="pln"> COLOR_WHITE 	</span><span class="lit">0xFFFFFFFF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_LIGHTRED 	</span><span class="lit">0xFF463CFF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_GREY      </span><span class="lit">0xA6A69FFF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_GREY_2 	</span><span class="lit">0xC8C8C8C8</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_GREY_3 	</span><span class="lit">0xAAAAAAAA</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_GREY_4 	</span><span class="lit">0x8C8C8C8C</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_RED       </span><span class="lit">0xFF0000FF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_ORANGE    </span><span class="lit">0xDF8600FF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_GREEN     </span><span class="lit">0x2CB816FF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_YELLOW    </span><span class="lit">0xFFFF00FF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_BLUE      </span><span class="lit">0x00BFFFFF</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> COLOR_PURPLE 	</span><span class="lit">0xC2A2DAAA</span></pre>

<p>
	И последнее! 
</p>

<p>
	В  паблик OnPlayerConnect добавляем:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span>GetPlayerName</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> player_name</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> MAX_PLAYER_NAME</span><span class="pun">);</span><span class="pln">
 	</span><span class="kwd">static</span><span class="pln">
	    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"SELECT `ID` FROM `accounts` WHERE `Name` = '%s' LIMIT 1"</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">new</span><span class="pln">
	    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span></pre>

<p>
	А в паблик OnPlayerDisconnect добавляем:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">	</span><span class="kwd">static</span><span class="pln">
	    fmt_str</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"UPDATE `ID` FROM `accounts` WHERE `Name` = '%s' LIMIT 1"</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">new</span><span class="pln">
	    string</span><span class="pun">[</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">fmt_str</span><span class="pun">)+</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span></pre>

<p>
	<strong><u>НЕ ЗАБУДЬТЕ СОЗДАТЬ В БАЗЕ ДАННЫХ ТАБЛИЦУ "accounts" и добавить туда столбцы из enum pInfo, только без первой буквы "p".</u></strong>
</p>

<p>
	 
</p>

<p>
	Если будут ошибки/проблемы обращайтесь!
</p>

<p>
	 
</p>

<p>
	VK: wk.com/martun.mkrt
</p>
]]></description><guid isPermaLink="false">3616</guid><pubDate>Sun, 31 Mar 2019 18:57:32 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x434;&#x432;&#x438;&#x436;&#x443;&#x449;&#x438;&#x445;&#x441;&#x44F; &#x432;&#x43E;&#x440;&#x43E;&#x442;</title><link>https://pawno-rus.com/topic/87-sozdanie-dvizhuschihsya-vorot/</link><description><![CDATA[
<p>
	Доброго времени суток, уважаемый читатель данного поста. Сегодня представлю вам систему движущихся ворот, т.е. они будут открываться и закрываться по команде. 
</p>

<p>
	Думаю, можно начинать. 
</p>

<p>
	Для начала создадим переменную самих ворот, с которыми будем работать. 
</p>

<p>
	Ко всем new:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">new</span><span class="pln"> gate</span><span class="pun">,</span><span class="pln">
    vorotaopen</span><span class="pun">;</span></pre>

<p>
	Теперь следуем в паблик OnGameModeInit. Туда вставляем следующее
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">gate </span><span class="pun">=</span><span class="pln"> </span><span>CreateObject</span><span class="pun">(</span><span class="lit">980</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1798.16</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2951.23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23.5</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln"> 
</span><span class="com">/* Поясняю: gate = - присваиваем переменно gate ид нашего объекта, который и будем двигать. 
	CreateObject - функция создания объекта.
    980 - ид объекта (ворот), можете заменить на свой
    1798.16, 2951.23, 23.5 - координаты X, Y, Z. Заменяете на свои, дал для примера от фонаря. Координаты ЗАКРЫТЫХ ворот
    0, 0, 0 - Положение объекта относительно осей RX, RY, RZ. Проще говоря, выворот объекта. Нули говорят о том, что обьект находится полностью в вертикальном прямом положении. */</span></pre>

<p>
	Далее создаем команду. 
</p>

<p>
	Команда на стандартном командном движке:<br />
	 
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pun">(</span><span class="pln">strcmp</span><span class="pun">(</span><span class="str">"/gates"</span><span class="pun">,</span><span class="pln"> cmdtext</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="com">// собственно создаем команду, пихать в OnPlayerCommandText</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">vorotaopen </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="com">// проверяем, открыты ли ворота. </span><span class="pln">
    </span><span class="pun">{</span><span class="pln"> </span><span class="com">// если открыты</span><span class="pln">
    
        </span><span>MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="lit">1798.16</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2951.23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23.5</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="pln"> </span><span class="com">/* ставим сюда координаты из OnGameModeInit, 3.0 - скорость передвижения ворот */</span><span class="pln">
        vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">else</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
      	</span><span>MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln"> y</span><span class="pun">,</span><span class="pln"> z</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="pln"> </span><span class="com">// берем координаты ОТКРЫТЫХ ворот, 3.0 - скорость передвижения</span><span class="pln">
      	vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="com">//Успешно</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	На zcmd / dc_cmd:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">CMD</span><span class="pun">:</span><span class="pln">gates</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="com">// собственно создаем команду, пихать в OnPlayerCommandText</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">if</span><span class="pun">(!</span><span class="pln">vorotaopen</span><span class="pun">)</span><span class="pln"> </span><span class="com">// проверяем, открыты ли ворота. </span><span class="pln">
    </span><span class="pun">{</span><span class="pln"> </span><span class="com">// если открыты</span><span class="pln">
    
        </span><span>MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="lit">1798.16</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2951.23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23.5</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="pln"> </span><span class="com">/* ставим сюда координаты из OnGameModeInit, 3.0 - скорость передвижения ворот */</span><span class="pln">
        vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
      	</span><span>SendClientMessage</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Ворота закрыты!"</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">else</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
      	</span><span>MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="pln">x</span><span class="pun">,</span><span class="pln"> y</span><span class="pun">,</span><span class="pln"> z</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="pln"> </span><span class="com">// берем координаты ОТКРЫТЫХ ворот, 3.0 - скорость передвижения</span><span class="pln">
      	vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
      	</span><span>SendClientMessage</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Ворота открыты!"</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="com">//Успешно</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	<strong>Автор:</strong> <a contenteditable="false" data-ipshover="" data-ipshover-target="https://pawno-rus.com/profile/10-stibs/?do=hovercard" data-mentionid="10" href="https://pawno-rus.com/profile/10-stibs/" rel="">@stibs</a>
</p>
]]></description><guid isPermaLink="false">87</guid><pubDate>Thu, 27 Jul 2017 18:12:03 +0000</pubDate></item><item><title>[&#x41D;&#x43E;&#x432;&#x438;&#x447;&#x43A;&#x430;&#x43C;] &#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x438;&#x43A;&#x430;&#x43F;&#x430; &#x432;&#x445;&#x43E;&#x434;&#x430;/&#x432;&#x44B;&#x445;&#x43E;&#x434;&#x430;</title><link>https://pawno-rus.com/topic/2953-novichkam-sozdanie-pikapa-vhodavyhoda/</link><description><![CDATA[
<p style="color:rgb(39,42,52);text-align:center;">
	<span style="font-family:Georgia, serif;">Здравствуйте, уважаемые пользователи форума Pawno-rus.</span>
</p>

<p style="color:rgb(39,42,52);text-align:center;">
	<span style="font-family:Georgia, serif;">Видел в уроках тему, заголовок которой гласит следующее: "Создание пикапа". </span>
</p>

<p style="color:rgb(39,42,52);text-align:center;">
	<span style="font-family:Georgia, serif;">Отозвались люди ( в том числе и я ) довольно негативно к данному уроку.</span>
</p>

<p style="color:rgb(39,42,52);text-align:center;">
	<span style="font-family:Georgia, serif;">Я решил сделать идентичную тему, но с созданием пикапов входа/выхода.</span>
</p>

<p style="color:rgb(39,42,52);text-align:center;">
	 
</p>

<p style="color:rgb(39,42,52);text-align:center;">
	<span style="font-family:Georgia, serif;">Ну что начнем уже :-)</span>
</p>

<p>
	<span style="color:#e74c3c;">//Ко всем new</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1978_4" style="">
<span class="kwd">new</span><span class="pln"> bank</span><span class="pun">[</span><span class="lit">2</span><span class="pun">];</span></pre>

<p>
	Идем дальше.
</p>

<p>
	Ищем следующую строку:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1978_6" style="">
<span class="kwd">public</span><span class="pln"> </span><span class="typ">OnGameModeInit</span></pre>

<p>
	<span style="color:#272a34;"> И вставляем после первой скобки следующее</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1978_8" style="">
<span class="pln">bank</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreatePickup</span><span class="pun">(</span><span class="lit">19132</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
bank</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreatePickup</span><span class="pun">(</span><span class="lit">19132</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">);</span></pre>

<p>
	<span style="color:#272a34;">И так давайте разбираться, что к чему</span>
</p>

<p>
	 
</p>

<p>
	bank<span style="color:#272a34;">[0] / </span>bank<span style="color:#272a34;">[1] - Название пикапа, или присваивание переменной функции CreatePickup.</span>
</p>

<p>
	<span style="color:#272a34;">CreatePickup - Соответственно сама функция создания пикапа.</span>
</p>

<p>
	<span style="color:#272a34;">19132- Первый параметр функции или id пикапа. Данный id - Белая стрелка вниз.</span>
</p>

<p>
	<span style="color:#272a34;">23 - Тип пикапа. В данном случае - Взятие пикапа без пропадания.</span>
</p>

<p>
	<span style="color:#272a34;">x,y,z - Координаты нахождения пикапа. ( Дабы их узнать, в игре становимся к месту, где ходите поставить пикап и прописываете команду /save. Ваши координаты будут находится тут: Документы\GTA San Andreas User Files\CR-MP\GenerationC\saveposition ).</span>
</p>

<p>
	<span style="color:#272a34;">0 - Последний параметр функции. ID виртуального мира. По умолчанию - 0.</span>
</p>

<p>
	 
</p>

<p>
	<span style="color:#272a34;">И так почти пол дела сделано.</span>
</p>

<p>
	<span style="color:#272a34;">Теперь идем в:</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1978_10" style="">
<span class="kwd">public</span><span class="pln"> </span><span class="typ">OnPlayerPickUpPickup</span></pre>

<p>
	И после первой скобки вставляем следующий код:
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Код">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1978_12" style="">

<span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> </span><span class="typ">Bank</span><span class="pun">[</span><span class="lit">0</span><span class="pun">])</span><span class="pln"> </span><span class="com">//Телепорт в интерьер</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="typ">SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> </span><span class="typ">Bank</span><span class="pun">[</span><span class="lit">1</span><span class="pun">])</span><span class="pln"> </span><span class="com">//Телепорт во двор</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="typ">SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerVirtualWorld</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">180</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	Разбираемся, друзья.
</p>

<p>
	if... Проверка на то, что игрок встал на пикап.
</p>

<p>
	SetPlayerPos - Установка координат местоположения игрока. (x,y,z - координаты).
</p>

<p>
	SetPlayerFacingAngle - Угол игрока. ( Найдете в saveposition.txt )
</p>

<p>
	SetPlayerVirtualWorld - Виртуальный мир
</p>

<p>
	SetPlayerInterior - ID интерьера. Не трогать!!.
</p>

<p>
	 
</p>

<p>
	На этом все.<br>
	Автор урока - Edgar<br>
	Удачной компиляции без ошибок Вам, друзья B<br>
	P/S Надеюсь меня не будут критиковать :
</p>
]]></description><guid isPermaLink="false">2953</guid><pubDate>Sun, 16 Sep 2018 16:33:39 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x438;&#x43A;&#x430;&#x43F;&#x430; &#x432;&#x445;&#x43E;&#x434;&#x430;/&#x432;&#x44B;&#x445;&#x43E;&#x434;&#x430; #2</title><link>https://pawno-rus.com/topic/1616-sozdanie-pikapa-vhodavyhoda-2/</link><description><![CDATA[
<p>
	Здравствуйте, уважаемые пользователи форума Pawno-rus.
</p>

<p>
	Видел в уроках тему, заголовок которой гласит следующее: "Создание пикапа". 
</p>

<p>
	Отозвались люди ( в том числе и я ) довольно негативно к данному уроку.
</p>

<p>
	Я решил сделать идентичную тему, но с созданием пикапов <strong>входа/выхода.</strong>
</p>

<p>
	 
</p>

<p>
	Начнем-же...
</p>

<p>
	 
</p>

<p>
	Открываем наш мод и добавляем новую переменную. ( global )
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="com">// Ко всем new ( global ).</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> vxod</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span></pre>

<p>
	Возможно, у кого-то возникнет вопрос, зачем создал массив?
</p>

<p>
	Ответ прост. Мы ведь хотим сделать телепорт в интерьер и обратно <img alt=":o" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/ohmy.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/ohmy@2x.png 2x" title=":o" width="20" /></p>

<p>
	 
</p>

<p>
	Продолжим.
</p>

<p>
	Ищем следующую строку:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">public</span><span class="pln"> </span><span>OnGameModeInit</span></pre>

<p>
	Вставляем после первой скобки следующее
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">vxod</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreatePickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
vxod</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreatePickup</span><span class="pun">(</span><span class="lit">1318</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span></pre>

<p>
	Давайте разбираться, что к чему
</p>

<p>
	<strong>vxod[0] / vxod[1]</strong> - Название пикапа, или присваивание переменной функции CreatePickup.
</p>

<p>
	<strong>CreatePickup</strong> - Соответственно сама функция создания пикапа.
</p>

<p>
	<strong>1318</strong> - Первый параметр функции или id пикапа. Данный id - Белая стрелка вниз.
</p>

<p>
	<strong>23</strong> - Тип пикапа. В данном случае - Взятие пикапа без пропадания.
</p>

<p>
	<strong>x,y,z </strong>- Координаты нахождения пикапа. ( Дабы их узнать, в игре становимся к месту, где ходите поставить пикап и прописываете команду /save. Ваши координаты будут находится тут: Документы\GTA San Andreas User Files\CR-MP\GenerationC\saveposition ).
</p>

<p>
	<strong>0</strong> - Последний параметр функции. ID виртуального мира. По умолчанию - 0.
</p>

<p>
	 
</p>

<p>
	Таак-с... Пол дела сделано.
</p>

<p>
	 
</p>

<p>
	Теперь идем в:..
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">public</span><span class="pln"> </span><span>OnPlayerPickUpPickup</span></pre>

<p>
	И после первой скобки вставляем следующий код:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> vxod</span><span class="pun">[</span><span class="lit">0</span><span class="pun">])</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln">x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">);</span><span class="pln">
	</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,УГОЛ);</span><span class="pln">        </span><span class="com">// ТЕЛЕПОРТ В ИНТЕРЬЕР</span><span class="pln">
	</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">pickupid </span><span class="pun">==</span><span class="pln"> vxod</span><span class="pun">[</span><span class="lit">1</span><span class="pun">])</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span>SetPlayerPos</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln">x</span><span class="pun">,</span><span class="pln">y</span><span class="pun">,</span><span class="pln">z</span><span class="pun">);</span><span class="pln">
	</span><span>SetPlayerFacingAngle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,УГОЛ);</span><span class="pln">        </span><span class="com">// ТЕЛЕПОРТ ВО ДВОР ( УЛИЦА )</span><span class="pln">
	</span><span>SetPlayerInterior</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Разбираемся, друзья.
</p>

<p>
	if... Проверка на то, что игрок встал на пикап.
</p>

<p>
	SetPlayerPos - Установка координат местоположения игрока. (xyz - координаты).
</p>

<p>
	SetPlayerFacingAngle - Угол игрока. ( Найдете в saveposition.txt )
</p>

<p>
	SetPlayerInterior - ID интерьера. Не трогать!!.
</p>

<p>
	 
</p>

<p>
	На этом все.
</p>

<p>
	Автор урока - Aurum ( Я самый ).
</p>

<p>
	Удачной компиляции без ошибок Вам, друзья <img alt="B|" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/cool.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/cool@2x.png 2x" title="B|" width="20" /></p>

<p>
	P/S Надеюсь меня не будут критиковать <img alt=":/" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/unsure.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/unsure@2x.png 2x" title=":/" width="20" /></p>
]]></description><guid isPermaLink="false">1616</guid><pubDate>Sat, 18 Nov 2017 13:46:55 +0000</pubDate></item><item><title>&#x426;&#x438;&#x43A;&#x43B;&#x44B;</title><link>https://pawno-rus.com/topic/7435-cikly/</link><description><![CDATA[
<p>
	Привет, форумчане. Сейчас я расскажу вам про циклы в языке <strong><span style="font-family:'Courier New', Courier, monospace;">Pawn</span></strong>.
</p>

<p>
	Цикл <strong><span style="font-family:'Courier New', Courier, monospace;">while</span></strong><span style="font-family:Arial, Helvetica, sans-serif;"> работает таким образом: сначала проверяет условие, потом делает итерацию(код, который мы вписали). Когда условие неверно, цикл оканчивается.</span>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="while(Условие)
{
    Действия;
}

while(Условие)
    Действие;">
<span><span>while</span><span>(Условие)</span></span>
<span><span>{</span></span>
<span><span>    Действия;</span></span>
<span><span>}</span></span>

<span><span>while</span><span>(Условие)</span></span>
<span><span>    Действие;</span></span>
</pre>

<p>
	Цикл <strong><span style="font-family:'Courier New', Courier, monospace;">do</span></strong><span style="font-family:Arial, Helvetica, sans-serif;"> работает таким образом: сначала происходит итерация, потом проверяется условие.</span>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="do
{
    Действия;
}
while(Условие);

do Действие
while(Условие);">
<span><span>do</span></span>
<span><span>{</span></span>
<span><span>    Действия;</span></span>
<span><span>}</span></span>
<span><span>while</span><span>(Условие);</span></span>

<span><span>do</span><span> Действие</span></span>
<span><span>while</span><span>(Условие);</span></span>
</pre>

<p>
	Цикл <font face="Courier New, Courier, monospace"><b>for</b><span style="font-family:Arial, Helvetica, sans-serif;"> работает таким образом: в самом начале он выполняет действие(только один раз), указанное в первом аргументе, проверяет условие, указанное во втором аргументе, делает итерацию, а в конце выполняет действие, указанное в третьем аргументе.</span></font>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="for(Первичное действие; Условие; Конечное действие)
{
    Действия;
}

for(Первичное действие; Условие; Конечное действие)
    Действие;">
<span><span>for</span><span>(Первичное действие; Условие; Конечное действие)</span></span>
<span><span>{</span></span>
<span><span>    Действия;</span></span>
<span><span>}</span></span>

<span><span>for</span><span>(Первичное действие; Условие; Конечное действие)</span></span>
<span><span>    Действие;</span></span>
</pre>

<p>
	<span style="font-family:Arial, Helvetica, sans-serif;">Если указать в качестве условия </span><strong><span style="font-family:'Courier New', Courier, monospace;">true</span></strong><span style="font-family:Arial, Helvetica, sans-serif;">, то цикл будет выполняться вечно. Но этого не стоит делать, так как в этом случае сервер полностью заблокируется и не сможет обрабатывать запросы игроков. Вместо этого лучше использовать таймеры.</span>
</p>

<p>
	 
</p>

<p>
	<span style="font-family:Arial, Helvetica, sans-serif;">Мы можем управлять циклами при помощи двух ключей: </span><strong><span style="font-family:'Courier New', Courier, monospace;">break</span></strong><span style="font-family:Arial, Helvetica, sans-serif;"> и </span><strong><span style="font-family:'Courier New', Courier, monospace;">continue</span></strong><span style="font-family:Arial, Helvetica, sans-serif;">. Также можно манипулировать циклом при помощи изменения условия.</span>
</p>

<p>
	<span style="font-family:Arial, Helvetica, sans-serif;">Ключ </span><strong><span style="font-family:'Courier New', Courier, monospace;">break</span></strong><span style="font-family:Arial, Helvetica, sans-serif;"> позволяет остановить цикл. Ключ </span><strong><span style="font-family:'Courier New', Courier, monospace;">continue</span></strong><span style="font-family:Arial, Helvetica, sans-serif;"> позволяет пропустить итерацию.</span>
</p>

<p>
	 
</p>

<p>
	В спойлере ниже довольно большой пример, думаю суть вы поймёте по комментариям. 
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="#define MAX_MESSAGE 144              // Максимальный размер сообщения
#define ADMIN_PWD_1 &quot;{123654789=-0}&quot; // Пароль для админки первого уровня
#define ADMIN_PWD_2 &quot;}{ee4rggAdmin2&quot; // Пароль для админки второго уровня
#define ADMIN_PWD_3 &quot;pawno-rus.ru$;&quot; // Пароль для админки третего уровня

new PlayersAdmins[MAX_PLAYERS];                            // Массив для хранения статуса админки
new AdmPwds[][] = {ADMIN_PWD_1, ADMIN_PWD_2, ADMIN_PWD_3}; // Список паролей

public OnPlayerText(playerid, text[]) // Паблик, который вызывается когда игрок отправляет сообщение
{
    for(new i; i &lt; sizeof AdmPwds; i++) // Перебор паролей
        if(!strcmp(AdmPwds[i], text)) // Проверяем, совпадает ли текст с паролем
        {
            PlayerAdmins[playerid] = i; // Устанавливаем игроку админ-уровень
            SendClientMessageToAll(-1, &quot;Администратор зашел на сервер!&quot;); // Пишем всем
            return 0; // Выходим из цикла и из паблика, не забываем возвращать 0 чтобы текст не написался
        };
    
    new bool:flag, msg[MAX_MESSAGE], name[MAX_PLAYER_NAME]; // Выделяем память
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); // Узнаем имя игрока
    flag = (text[0] == '#'); // Проверяем, есть ли решетка в начале сообщения
    if(flag) // Если есть решетка
    {
        text[0] = '\1'; // Заменяем решетку на символ-заглушку
        format(msg, MAX_MESSAGE, &quot;Чат #%d &gt;&gt; %s[%d]: %s&quot;, PlayersAdmins[playerid], name, playerid, text);
        // Формат сообщения: &quot;Чат #(уровень админки) &gt;&gt; (имя игрока)[(ид игрока)]: (сообщение)&quot;
        // Пример: &quot;Чат #1 &gt;&gt; Pawno_Rus[65]: Привет&quot;
        for(new i; i &lt; MAX_PLAYERS; i++)                 // Перебор игроков
            if(!IsPlayerConnected(i) &amp;&amp;                  // Если игрок подключен и...
            PlayersAdmins[i] == PlayersAdmins[playerid]) // ...если совпадают уровни админки у обоих игроков...
                SendClientMessage(i, -1, msg);           // ...то пишем ему сообщение
    }
    else // Если нет решетки
    {
        format(msg, MAX_MESSAGE, &quot;Общий чат &gt;&gt; %s[%d]: %s&quot;, name, playerid, text);
        // Формат сообщения: &quot;Общий чат &gt;&gt; (имя игрока)[(ид игрока)]: (сообщение)&quot;
        // Пример: &quot;Общий чат &gt;&gt; Pawno_Rus[65]: Привет&quot;
        SendClientMessageToAll(-1, msg); // Пишем всем сообщение
    }
    return 0; // Не забываем возвращать 0, чтобы сервер не написал сообщение сам
}">

<span><span>#define</span><span> MAX_MESSAGE </span><span>144</span><span>              </span><span>// Максимальный размер сообщения</span></span>
<span><span>#define</span><span> ADMIN_PWD_1 </span><span>"{123654789=-0}"</span><span> </span><span>// Пароль для админки первого уровня</span></span>
<span><span>#define</span><span> ADMIN_PWD_2 </span><span>"}{ee4rggAdmin2"</span><span> </span><span>// Пароль для админки второго уровня</span></span>
<span><span>#define</span><span> ADMIN_PWD_3 </span><span>"pawno-rus.ru$;"</span><span> </span><span>// Пароль для админки третего уровня</span></span>

<span><span>new</span><span> PlayersAdmins[MAX_PLAYERS];                       </span><span>     </span><span>// Массив для хранения статуса админки</span></span>
<span><span>new</span><span> AdmPwds[][] = {ADMIN_PWD_1, ADMIN_PWD_2, </span><span>ADMIN_PWD_3}; </span><span>// Список паролей</span></span>

<span><span>public</span><span> OnPlayerText(playerid, text[]) </span><span>// Паблик, который вызывается когда игрок </span><span>отправляет сообщение</span></span>
<span><span>{</span></span>
<span><span>    </span><span>for</span><span>(</span><span>new</span><span> i; i &lt; </span><span>sizeof</span><span> AdmPwds; i++) </span><span>// Перебор паролей</span></span>
<span><span>        </span><span>if</span><span>(!strcmp(AdmPwds[i], text)) </span><span>// Проверяем, совпадает ли текст с паролем</span></span>
<span><span>        {</span></span>
<span><span>            PlayerAdmins[playerid] = i; </span><span>// Устанавливаем игроку админ-уровень</span></span>
<span><span>            SendClientMessageToAll(-</span><span>1</span><span>, </span><span>"Администратор зашел на сервер!"</span><span>); </span><span>// Пишем всем</span></span>
<span><span>            </span><span>return</span><span> </span><span>0</span><span>; </span><span>// Выходим из цикла и из паблика, не забываем </span><span>возвращать 0 чтобы текст не написался</span></span>
<span><span>        };</span></span>
<span><span>    </span></span>
<span><span>    </span><span>new</span><span> </span><span>bool</span><span>:flag, msg[MAX_MESSAGE], name[MAX_PLAYER_NAME]; </span><span>// Выделяем память</span></span>
<span><span>    GetPlayerName(playerid, name, </span><span>MAX_PLAYER_NAME); </span><span>// Узнаем имя игрока</span></span>
<span><span>    flag = (text[</span><span>0</span><span>] == </span><span>'#'</span><span>); </span><span>// Проверяем, есть ли решетка в начале сообщения</span></span>
<span><span>    </span><span>if</span><span>(flag) </span><span>// Если есть решетка</span></span>
<span><span>    {</span></span>
<span><span>        text[</span><span>0</span><span>] = </span><span>'</span><span>\</span><span>1</span><span>'</span><span>; </span><span>// Заменяем решетку на символ-заглушку</span></span>
<span><span>        format(msg, MAX_MESSAGE, </span><span>"Чат #%d &gt;&gt; %s[%d]: %s"</span><span>, PlayersAdmins[playerid], name, playerid, text);</span></span>
<span><span>        </span><span>// Формат сообщения: "Чат #(уровень админки) &gt;&gt; </span><span>(имя игрока)[(ид игрока)]: (сообщение)"</span></span>
<span><span>        </span><span>// Пример: "Чат #1 &gt;&gt; Pawno_Rus[65]: Привет"</span></span>
<span><span>        </span><span>for</span><span>(</span><span>new</span><span> i; i &lt; MAX_PLAYERS; i++)                 </span><span>// Перебор игроков</span></span>
<span><span>            </span><span>if</span><span>(!IsPlayerConnected(i) &amp;&amp;                  </span><span>// Если игрок подключен и...</span></span>
<span><span>            PlayersAdmins[i] == </span><span>PlayersAdmins[playerid]) </span><span>// ...если совпадают уровни админки у обоих </span><span>игроков...</span></span>
<span><span>                SendClientMessage(i, -</span><span>1</span><span>, msg);           </span><span>// ...то пишем ему сообщение</span></span>
<span><span>    }</span></span>
<span><span>    </span><span>else</span><span> </span><span>// Если нет решетки</span></span>
<span><span>    {</span></span>
<span><span>        format(msg, MAX_MESSAGE, </span><span>"Общий чат &gt;&gt; %s[%d]: %s"</span><span>, name, playerid, text);</span></span>
<span><span>        </span><span>// Формат сообщения: "Общий чат &gt;&gt; (имя </span><span>игрока)[(ид игрока)]: (сообщение)"</span></span>
<span><span>        </span><span>// Пример: "Общий чат &gt;&gt; Pawno_Rus[65]: Привет"</span></span>
<span><span>        SendClientMessageToAll(-</span><span>1</span><span>, msg); </span><span>// Пишем всем сообщение</span></span>
<span><span>    }</span></span>
<span><span>    </span><span>return</span><span> </span><span>0</span><span>; </span><span>// Не забываем возвращать 0, чтобы сервер не </span><span>написал сообщение сам</span></span>
<span><span>}</span></span>
</pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">7435</guid><pubDate>Sat, 02 Sep 2023 20:22:02 +0000</pubDate></item><item><title>&#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x441; Pawno</title><link>https://pawno-rus.com/topic/7452-reshenie-s-pawno/</link><description><![CDATA[
<p style="text-align:center;">
	<span style="font-size:14px;"><strong><span style="color:#000000;"><font face="Courier New, Courier, monospace">В этом уроке я расскажу о простой проблеме</font></span><font color="#f39c12" face="Courier New, Courier, monospace"> </font><span style="color:#c0392b;"><font face="Courier New, Courier, monospace">Failed to set data for ''</font></span></strong></span>
</p>

<p style="text-align:center;">
	<span style="color:#000000;"><span style="font-size:14px;"><strong><font face="Courier New, Courier, monospace">данная ошибка требует от вас Админских прав на её запуск</font></strong></span></span>
</p>

<p style="text-align:center;">
	<span style="font-size:14px;"><strong><span style="color:#000000;"><font face="Courier New, Courier, monospace">и как от неё избавиться если вы новичок в</font></span><font color="#f39c12" face="Courier New, Courier, monospace"> </font><span style="color:#c0392b;"><span style="font-family:'Trebuchet MS', Helvetica, sans-serif;">pawno</span></span><font color="#f39c12" face="Courier New, Courier, monospace"> </font></strong></span>
</p>

<p style="text-align:center;">
	<span style="color:#1abc9c;"><span style="font-size:14px;"><strong>Первый шаг.</strong></span></span>
</p>

<p style="text-align:center;">
	<span style="font-size:14px;"><strong><span style="color:#000000;">Вам нужно зайти в папку со своим</span><span style="color:#c0392b;"> модом(мод)</span></strong></span>
</p>

<p style="text-align:center;">
	<span style="font-size:14px;"><strong><span style="color:#000000;">затем найти папку pawno там будет фаил под названием</span> <span style="color:#c0392b;">settings.ini</span></strong></span>
</p>

<p style="text-align:center;">
	<span style="font-size:14px;"><strong><span style="color:#000000;">ищете строку</span><span style="color:#f39c12;"> </span><span style="color:#c0392b;">FileAssoc=1 затем меняете значение с 1 на 0!</span></strong></span>
</p>

<p style="text-align:center;">
	<font color="#1abc9c"><b>Вот и всё проблема решена!</b></font>
</p>
]]></description><guid isPermaLink="false">7452</guid><pubDate>Sun, 17 Sep 2023 11:04:01 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x441; VS Code &#x43F;&#x440;&#x438; &#x43A;&#x43E;&#x43C;&#x43F;&#x438;&#x43B;&#x44F;&#x446;&#x438;&#x438;. &#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;!</title><link>https://pawno-rus.com/topic/7414-problema-s-vs-code-pri-kompilyacii-reshenie/</link><description><![CDATA[
<p style="text-align:center;">
	Доброго времени суток! 
</p>

<p style="text-align:center;">
	Сегодня я надеюсь что помогу вам. И так начнем!
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong><span style="font-size:16px;">Первая проблема. Vs Code не компилирует.</span></strong>
</p>

<p style="text-align:center;">
	<strong><span style="font-size:16px;"><a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly9pYmIuY28vOHhYWU5mcw==" rel="external nofollow">https://ibb.co/8xXYNfs</a></span></strong>
</p>

<p style="text-align:center;">
	Решение данной проблемы:
</p>

<p style="text-align:center;">
	Скачиваем 
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><strong>PAWN Language for Visual Studio Code</strong></span>
</p>

<p style="text-align:center;">
	и
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><strong>Pawn Tools</strong></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="font-size:16px;"><strong>Вторая проблема. </strong></span><strong>Can't access pawncc. Please check if the path is correct and if you have permissions to execute pawncc.</strong>
</p>

<p style="text-align:center;">
	<b>Решение проблемы:</b>
</p>

<p style="text-align:center;">
	Скачайте и настройте GIT
</p>

<p style="text-align:center;">
	<a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly9naXQtc2NtLmNvbS8=" rel="external nofollow">Скачать GIT</a>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="font-size:16px;"><strong>Третья проблема. </strong></span><strong>Failed to start pawncc: spawn C:\server\pawno ENOENT</strong>
</p>

<p style="text-align:center;">
	Установите VS Code по туториалу: <a href="https://pawno-rus.com/topic/4810-adaptiruem-visual-studio-code-pod-pawn/" rel="">Туториал</a>\
</p>

<p style="text-align:center;">
	 
</p>

<p>
	Автор темы - MrGerst
</p>

<p>
	Платформа - pawno-rus
</p>

<p>
	 
</p>

<p>
	При пересливе указывать автора!
</p>

<p>
	Будет дополняться
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">7414</guid><pubDate>Thu, 24 Aug 2023 07:32:48 +0000</pubDate></item><item><title>&#x410;&#x43A;&#x442;&#x438;&#x432;&#x430;&#x446;&#x438;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x43D;&#x430; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x443;.</title><link>https://pawno-rus.com/topic/2345-aktivaciya-komandy-na-knopku/</link><description><![CDATA[
<p>
	Здровствуйте.
</p>

<p>
	Ну решил, почему бы и нет, может кто не знает...
</p>

<p>
	 
</p>

<p>
	Начнем.
</p>

<p>
	--
</p>

<p>
	Допустим мы хотим активировать команду /menu н<span style="color:#000000;">а</span> кнопку Y ( Как пример ).
</p>

<p>
	 
</p>

<p>
	<strong><span style="color:#c0392b;">P/S Сначала команду напишите, а потом уже используйте данный урок. </span></strong>
</p>

<p>
	 
</p>

<p>
	Идем в <strong><span style="color:#2980b9;">public OnPlayerKeyStateChange</span><span style="color:#000000;">.</span></strong>
</p>

<p>
	Вставляем данный код:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pun">(</span><span class="pln">newkeys </span><span class="pun">&amp;</span><span class="pln"> KEY_YES</span><span class="pun">)</span><span class="pln"> </span><span class="com">// Это проверка на нажатие клавиши Y.</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
  
</span><span class="pun">}</span></pre>

<p>
	<strong><span style="color:#c0392b;">( Если у Вас уже есть мод, то в полне возможно данные строки в нем есть. Не нужно вставлять данный код 2-ой раз )</span></strong>
</p>

<p>
	 
</p>

<p>
	Далее пишем "тело" нашей кнопки. ( Стандартный процессор ):
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pun">(</span><span class="pln">newkeys </span><span class="pun">&amp;</span><span class="pln"> KEY_YES</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
  </span><span>OnPlayerCommandText</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="str">"/menu"</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Вызов команды</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	( dc_cmd ):
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pun">(</span><span class="pln">newkeys </span><span class="pun">&amp;</span><span class="pln"> KEY_YES</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
 cmd_menu</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Вызов команды</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	<span style="color:#c0392b;"><strong>З/Ы ! zcmd если не ошибаюсь, ни чем не отличается от dc_cmd.</strong></span>
</p>

<p>
	--
</p>

<p>
	 
</p>

<p>
	Ну вот кажется и все. Пользуйтесь.
</p>
]]></description><guid isPermaLink="false">2345</guid><pubDate>Sat, 24 Mar 2018 16:31:46 +0000</pubDate></item><item><title>&#x41F;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x430;&#x43C;&#x435;&#x440;&#x44B;</title><link>https://pawno-rus.com/topic/6219-plavnoe-peremeschenie-kamery/</link><description><![CDATA[
<p>
	Всем доброго времени суток, сегодня я хотел бы рассказать вам о плавном перемещении камеры.
</p>

<p>
	Для начала приведу пример: Данную функцию можно использовать для тюннинг-гаражей, и сделать камеру как в оригинальной San Andreas, только плавную.
</p>

<p>
	Есть две команды для этого: <span style="color:#f39c12;"><em>InterpolateCameraPos </em></span><em>и </em><span style="color:#f39c12;"><em>InterpolateCameraLookAt</em></span><em>. Они находятся в инклуде a_players.inc</em>
</p>

<p style="text-align:center;">
	<span style="font-size:18px;"><span style="color:#e74c3c;"><em>InterpolateCameraPos</em></span></span>
</p>

<p>
	<i>Для начала рассмотрим InterpolateCameraPos и её параметры:</i>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="native InterpolateCameraPos(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);">
<span><span>native InterpolateCameraPos(playerid, Float:FromX,</span><span> Float:FromY, Float:FromZ, Float:ToX, Float:ToY, F</span><span>loat:ToZ, time, cut = CAMERA_CUT);</span></span>
</pre>

<p>
	Теперь разберём ей параметры:
</p>

<ul><li>
		plaeyrid - ну тут понятно, ID того игрока, с чьей камерой взаимодействуем.
	</li>
	<li>
		FromX, FromY, FromZ - Начальные координат камеры (откуда будем двигать камеру)
	</li>
	<li>
		ToX, ToY, ToZ - Конечные координаты камеры (куда будем двигать камеру)
	</li>
	<li>
		time - время, за которое камера передвинется с начальной точки до конечной точки. <u><strong>Указывается в миллисекундах.</strong></u>
	</li>
	<li>
		cut - По умолчанию стоит CAMERA_CUT, то есть вырезает анимацию передвижения камеры (просто телепортирует).
	</li>
</ul><p>
	          Второй параметр - CAMERA_MOVE - как раз таки включает анимацию плавной камеры.
</p>

<p>
	          P.S. Я провёл 3 теста: Указывал CAMERA_CUT, CAMERA_MOVE и вообще не указывал cut, но всегда камера была плавная, возможно баг инклуда. 
</p>

<p>
	Теперь перейдём к тесту, вот код, который я использовал:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="InterpolateCameraPos(playerid, 0.0, 0.0, 20.0, 15.0, 15.0, 15.0, 1750);">
<span><span>InterpolateCameraPos(playerid, </span><span>0.0</span><span>, </span><span>0.0</span><span>, </span><span>20.0</span><span>, </span><span>15.0</span><span>, </span><span>15.0</span><span>, </span><span>15.0</span><span>, </span><span>1750</span><span>);</span></span>
</pre>

<p>
	Так как везде один и тот же итог, по этому прикрепляю только одну гифку.
</p>

<p>
	P.S. В статьи нельзя загрузить файл .gif, по этому прикреплю imgur: <a href="https://imgur.com/a/hDIBkUc" rel="external nofollow">*click*</a>
</p>

<p style="text-align:center;">
	<span style="font-size:18px;"><span style="color:#e74c3c;"><em>InterpolateCameraLookAt</em></span></span>
</p>

<p>
	Следующая команда: InterpolateCameraLookAt, так же рассмотрим её параметры:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="native InterpolateCameraLookAt(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);">
<span><span>native InterpolateCameraLookAt(playerid, Float:Fro</span><span>mX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY</span><span>, Float:ToZ, time, cut = CAMERA_CUT);</span></span>
</pre>

<p>
	Все эти данные мы разобрали, НО теперь камера будет не передвигаться между этими координатами, а смотреть за ними от игрока.
</p>

<p>
	P.S. С cut видимо история повторяется, так как я параметр так же не указывал, и анимация была плавная.
</p>

<p>
	Сразу переходим к тесту, код, который я внёс в мод:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="InterpolateCameraLookAt(playerid, 0.0, 0.0, 20.0, 15.0, 15.0, 15.0, 1750);">
<span><span>InterpolateCameraLookAt(playerid, </span><span>0.0</span><span>, </span><span>0.0</span><span>, </span><span>20.0</span><span>, </span><span>15.0</span><span>, </span><span>15.0</span><span>, </span><span>15.0</span><span>, </span><span>1750</span><span>);</span></span>
</pre>

<p>
	По причине бага параметра cut так же прикрепляю только одну гифку, а так же на imgur: <a href="https://imgur.com/a/G7pqNjP" rel="external nofollow">*click*</a>
</p>

<p>
	 
</p>

<p>
	На этом я хотел бы закончить данный урок-обзор об этих двух малоизвестных функциях. Peace вам люди, пока!
</p>
]]></description><guid isPermaLink="false">6219</guid><pubDate>Sun, 20 Mar 2022 18:13:16 +0000</pubDate></item><item><title>&#x426;&#x438;&#x43A;&#x43B; for</title><link>https://pawno-rus.com/topic/6043-cikl-for/</link><description><![CDATA[
<p>
	Всем привет!
</p>

<p>
	Я хотел бы рассказать о такой незаменимой вещи как цикл for. мне кажется что тут ему уделили сало места, просто закинули в тему операторов и уделили ему +-5 строчек.
</p>

<p>
	Поскольку циклы - непростая вещь я хотел бы посветить этому небольшой урок.
</p>

<p>
	Итак, давайте рассмотрим пример самого цикла:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="for(new i; i &lt; MAX_VALUES; i++)
{
    // code ...
}">
<span><span>for</span><span>(</span><span>new</span><span> i; i &lt; MAX_VALUES; i++)</span></span>
<span><span>{</span></span>
<span><span>    </span><span>// code ...</span></span>
<span><span>}</span></span>
</pre>

<p>
	Теперь разберём каждое действие:
</p>

<p>
	1. new i;
</p>

<p>
	    Тут думаю всё понятно, создаётся переменная, так же можно её сразу прировнять к чему-то: for(new i = 10; ...)
</p>

<p>
	2. i &lt; MAX_VALUES
</p>

<p>
	    Тут уже стоит условие выполнения, и пока оно будет верно - цикл будет выполняться, по сути каждый раз цикл проверяет данное условие
</p>

<p>
	    Так же можно поставить другие операторы, но в основном используются &lt; ИЛИ &gt;
</p>

<p>
	3. i++
</p>

<p>
	    Тут уже выполняется действие каждый раз, когда условие верное.
</p>

<p>
	Кстати говоря как только условие перестанет выполняться окончательно (условие перестанет быть верным), то дальше пойдёт ниже написанный код.
</p>

<p>
	<span style="color:#c0392b;"><u><em><strong>ВАЖНО: return закроет цикл досрочно</strong></em></u></span>
</p>

<p>
	То есть:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="for(new i = 0; i &lt; 8; i++)
{
    print(&quot;%d&quot;,i));
}
// В этом случае нам выведет числа от 0-я до 8-и

for(new i = 0; i &lt; 8; i++)
{
    print(&quot;%d&quot;,i));
    return true;
}
// А в этом выведет только 0, по-скольку return завершает цикл после первого его прохождения">
<span><span>for</span><span>(</span><span>new</span><span> i = </span><span>0</span><span>; i &lt; </span><span>8</span><span>; i++)</span></span>
<span><span>{</span></span>
<span><span>    print(</span><span>"%d"</span><span>,i));</span></span>
<span><span>}</span></span>
<span><span>// В этом случае нам выведет числа от 0-я до 8-и</span></span>

<span><span>for</span><span>(</span><span>new</span><span> i = </span><span>0</span><span>; i &lt; </span><span>8</span><span>; i++)</span></span>
<span><span>{</span></span>
<span><span>    print(</span><span>"%d"</span><span>,i));</span></span>
<span><span>    </span><span>return</span><span> </span><span>true</span><span>;</span></span>
<span><span>}</span></span>
<span><span>// А в этом выведет только 0, по-скольку return </span><span>завершает цикл после первого его прохождения</span></span>
</pre>

<p>
	Так же в цикле for можно заимствовать различные из языка C++:
</p>

<p>
	continue - пропуск данного значения.
</p>

<p>
	break - полный выход из цикло (почти идентично return)
</p>

<p>
	Сейчас объясню:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="for(new i = 0; i &lt; 8; i++)
{
    if(i == 5) continue; // если i равна 5-и, то пропускаем
    printf(&quot;%d&quot;,i);
}
// Данный цикл выведет все числа от 0 до 8 КРОМЕ 5

for(new i = 0; i &lt; 8; i++);
{
    if(i == 5) break; // если i равна 5-и, то завершеем
    printf(&quot;%d&quot;,i);
}
// А данный цикл выведет все числа от 0 до 4-х, так как на 5-и мы вышли из цикла">
<span><span>for</span><span>(</span><span>new</span><span> i = </span><span>0</span><span>; i &lt; </span><span>8</span><span>; i++)</span></span>
<span><span>{</span></span>
<span><span>    </span><span>if</span><span>(i == </span><span>5</span><span>) </span><span>continue</span><span>; </span><span>// если i равна 5-и, то пропускаем</span></span>
<span><span>    printf(</span><span>"%d"</span><span>,i);</span></span>
<span><span>}</span></span>
<span><span>// Данный цикл выведет все числа от 0 до 8 КРОМЕ 5</span></span>

<span><span>for</span><span>(</span><span>new</span><span> i = </span><span>0</span><span>; i &lt; </span><span>8</span><span>; i++);</span></span>
<span><span>{</span></span>
<span><span>    </span><span>if</span><span>(i == </span><span>5</span><span>) </span><span>break</span><span>; </span><span>// если i равна 5-и, то завершеем</span></span>
<span><span>    printf(</span><span>"%d"</span><span>,i);</span></span>
<span><span>}</span></span>
<span><span>// А данный цикл выведет все числа от 0 до 4-х, </span><span>так как на 5-и мы вышли из цикла</span></span>
</pre>

<p>
	А теперь главное отличие break от return:
</p>

<p>
	break - просто выкидывает из цикла.
</p>

<p>
	return - выкидывает из цикла и возвращает значение.
</p>

<p>
	К примеру вы пишите stock или public с циклом, который должен вернуть ДА или НЕТ, тот тут уже лучше использовать return true или false, в зависимости от условий и т.д.
</p>

<p>
	И напоследок хочу сказать, что есть 2 вида использования цикла: инкремент и декремент.
</p>

<p>
	Инкремент это перебор значений, последовательно их увеличивая, по сути все разобранные нами примеры сделаны при помощи инкремента.
</p>

<p>
	Декремент же перебирает значения, последовательно их уменьшая, то есть при перечислении игроков проверка будет идти, допустим,  от 1000-го до 0-го ID. пример декремента:
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="for(new i = MAX_PLAYERS; i &gt;= 0; --i)
{
    // code ...
}">
<span><span>for</span><span>(</span><span>new</span><span> i = MAX_PLAYERS; i &gt;= </span><span>0</span><span>; --i)</span></span>
<span><span>{</span></span>
<span><span>    </span><span>// code ...</span></span>
<span><span>}</span></span>
</pre>

<p>
	На этом мне хотелось бы закончить свой урок, если кому помог - пожалуйста, но если же кому не понятно - я помогу подробнее разобраться.
</p>
]]></description><guid isPermaLink="false">6043</guid><pubDate>Tue, 18 Jan 2022 22:17:02 +0000</pubDate></item><item><title>&#x410;&#x434;&#x430;&#x43F;&#x442;&#x438;&#x440;&#x443;&#x435;&#x43C; Visual Studio Code &#x43F;&#x43E;&#x434; Pawn</title><link>https://pawno-rus.com/topic/4810-adaptiruem-visual-studio-code-pod-pawn/</link><description><![CDATA[
<p>
	 
</p>

<p style="text-align:center;">
	<span style="color:#0000ff;">Visual Studio Code</span><span style="color:#1c2837;"><span> </span>- визуальный редактор кода, с красивым дизайном.</span><br style="color:#1c2837;" /><span style="color:#1c2837;">Сегодня мы будем адаптировать эту программу под язык Pawn.</span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong><font color="#1c2837">АВТОР - </font></strong><span style="color:#1e4371;"><span> </span></span><span style="color:#1e4371;"><a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly9wYXduLXdpa2kucnUvaW5kZXgucGhwPy91c2VyLzI5NTU1LXNoaW5yYXRlbnNlaS8=" rel="external nofollow" style="color:#284b72;">shinra.tensei</a> </span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="shinra.tensei">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			Было взято с другого сайта -
		</p>
	</div>
</div>

<p style="text-align:center;">
	Видеоролик по установки Visual Studio Code:
</p>

<p style="text-align:center;">
	<a href="https://pawno-rus.com/go/?url=aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj16TFBDbUZ2NHJKTQ==" rel="external nofollow">Click!</a>
</p>

<p style="text-align:center;">
	Кому-то легко сделать по видеоролику, кому-то читая статью...
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="font-size:14px;">Там наглядно все показано!</span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="font-size:22px;"><b>После обновления VSC некоторые кнопки изменились, в видео показан новый способ кодировки и компилировании..</b></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong><span style="font-size:26px;">Начало</span></strong>
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Для начала, нужно скачать саму программу.<span> </span></span><br style="color:#1c2837;" /><span style="color:#1c2837;">Далее, логично будет ее установить.</span><br style="color:#1c2837;" /><span style="color:#1c2837;">После установки, запускаем программу.</span><br style="color:#1c2837;" /><br style="color:#1c2837;" /><span style="color:#1c2837;">После того, как мы насладились этим прекрасным интерфейсом, следует нажать на этот значок:</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="MLJrfntClk8.jpg" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534214/69ff3/MLJrfntClk8.jpg&amp;key=4b8f120a9cbaa9f3f8358eb7eea1c5ed17425a1686c110f514c396a07cf3082e" /></p>
	</div>
</div>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Открывается такое меню, в котором нам нужно ввести<span> </span></span><span style="color:#ff8c00;">pawn</span><span style="color:#1c2837;"><span> </span>и установить первое расширение в списке.</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="i31xJz7k3Ok.jpg" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/664e5/i31xJz7k3Ok.jpg&amp;key=8eb1a98156ae6861663145daad6c1245aa9517fcaa70a12c6c4582610e7316b8" /></p>
	</div>
</div>

<p style="text-align:center;">
	<span style="color:#1c2837;">Теперь перезапускаем программу, жмем Файл &gt; Открыть папку, и открываем папку с вашим сервером.</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="0i_kT-t6eiY.jpg" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/664f0/0i_kT-t6eiY.jpg&amp;key=c5d08244301724915ec8931dd3d310ec4231f85ee0da0f3aaeebfc3cc2b6de08" /></p>
	</div>
</div>

<p style="text-align:center;">
	<span style="color:#1c2837;">Теперь мы можем открыть наш мод, если виден синтаксис павна, то мы все сделали правильно <img alt=":)" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/smile.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="font-size:26px;"><strong><span style="color:#1c2837;">Компилирование</span></strong></span>
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Зайдем в папку нашего сервера и создадим папку .vscode</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="24Ud_hx2rjU.jpg" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/664ff/24Ud_hx2rjU.jpg&amp;key=d5c046c88c499643a9fe5d640bcc2935beaaa78902f9e69e296b569d0bd19d4d" /></p>

		<p>
			 
		</p>

		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/665c9/JZBGZOGrThk.jpg&amp;key=387ac732c624166e6c00d2638b32aef5511500290f68a8dfb8f9a23053af3d3c" /></p>
	</div>
</div>

<p>
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Теперь нужно настроить компилирование, для этого заходим в Задачи &gt; Настроить задачи.</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/6650d/KY0IdIw6p-I.jpg&amp;key=b2759b5a0bc48c83e9a6bbc40fce50dc3ccff37c250e451ee9b2cc10f3b673fa" /></p>
	</div>
</div>

<p style="text-align:center;">
	<span style="color:#1c2837;">Далее тыкаем все как на скринах ниже:</span>
</p>

<p style="text-align:center;">
	 
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/66514/rJYgIqoz-2k.jpg&amp;key=9cb4111bbfe1ce2b6a1cf58eedb4b246d9cfde8a60bf7b658af768ca24a58b83" /></p>

		<p>
			 
		</p>

		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/6651b/-JfKvXYmqXo.jpg&amp;key=912fb29ec0684b8e988bd055cc13a776cc5835768fc135465212c250401f45d4" /></p>
	</div>
</div>

<p style="text-align:center;">
	<span style="color:#1c2837;">У нас открылся файл<span> </span></span><span style="color:#ff8c00;"><span style="color:#ff8c00;">tasks.json</span></span><br style="color:#1c2837;" /><span style="color:#1c2837;">Содержимое этого файла нужно заменить на следующее и сохранить:</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pun">{</span><span class="pln">
    </span><span class="str">"version"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"2.0.0"</span><span class="pun">,</span><span class="pln">
    </span><span class="str">"tasks"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
      </span><span class="pun">{</span><span class="pln">
        </span><span class="str">"label"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"build-normal"</span><span class="pun">,</span><span class="pln">
        </span><span class="str">"type"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"shell"</span><span class="pun">,</span><span class="pln">
        </span><span class="str">"command"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"${workspaceRoot}/pawno/pawncc.exe"</span><span class="pun">,</span><span class="pln">
        </span><span class="str">"args"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="str">"'${fileBasename}'"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"'-D${fileDirname}'"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"'-;+'"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"'-(+'"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"'-d3'"</span><span class="pun">],</span><span class="pln">
        </span><span class="str">"group"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
          </span><span class="str">"kind"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"build"</span><span class="pun">,</span><span class="pln">
          </span><span class="str">"isDefault"</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
        </span><span class="pun">},</span><span class="pln">
        </span><span class="str">"isBackground"</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln">
        </span><span class="str">"presentation"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
          </span><span class="str">"reveal"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"silent"</span><span class="pun">,</span><span class="pln">
          </span><span class="str">"panel"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"dedicated"</span><span class="pln">
        </span><span class="pun">},</span><span class="pln">
        </span><span class="str">"problemMatcher"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"$pawncc"</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">]</span><span class="pln">
  </span><span class="pun">}</span></pre>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Основная часть закончена, теперь нужно забиндить клавишу F5 под компилирование.</span><br style="color:#1c2837;" /><span style="color:#1c2837;">Для этого переходим в Файл &gt; Параметры &gt; Сочетание клавиш</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/6656e/clcu3UU8yAw.jpg&amp;key=477bae6afd4697def6ed5460789b27eef3110ac8fad32be32d001827a7c4612c" /></p>
	</div>
</div>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Теперь нужно кликнуть по<span> </span></span><span style="color:#696969;">keybindings.json</span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/66579/m49xzn-UYuU.jpg&amp;key=edf051a9bc8b65f4f6ae76be6b9980af1401554adbd4f643d7431de2a0ee3347" /></p>
	</div>
</div>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Откроется полный список биндов, и пустой список справа. Вставляем следующий код в список справа, не забываем сохранить все это.</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pun">[</span><span class="pln">  
    </span><span class="pun">{</span><span class="pln"> </span><span class="str">"key"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"f5"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"command"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"workbench.action.tasks.build"</span><span class="pln"> </span><span class="pun">}</span><span class="pln">  
</span><span class="pun">]</span><span class="pln">  </span></pre>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть!">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/66581/HxsTLzlpUZU.jpg&amp;key=6c6b654db24c637043dfdfbc6db0ed2efd5ceaf13b2e52a038a4719a6b689ce0" /></p>
	</div>
</div>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong><span style="font-size:26px;">Кодировка</span></strong>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Переходим в Файл &gt; Параметры &gt; Параметры</span>
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Вводим в поиск слово 'Кодировка'</span>
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">(если у вас стоит русская локализация на Visual Studio Code)</span>
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">и меняете кодировку на:</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="str">"windows1251"</span></pre>

<p>
	 
</p>

<p style="text-align:center;">
	<span style="font-size:26px;"><strong>Конец</strong></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#1c2837;">Поздравляю, мы все сделали. Теперь мы можем компилировать наш мод нажатием F5.<span> </span></span><img alt=":happy:" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pawn-wiki.ru/public/style_emoticons/default/happy.gif&amp;key=3e70075a8ff225c6e917a64f07b1d72e69ecf35123eabcb3b20305c783c79b44" style="color:#1c2837;" /></p>

<p style="text-align:center;">
	<img alt="Изображение" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://pp.userapi.com/c840534/v840534662/665b8/L20g2RUbTBs.jpg&amp;key=afcdf19bf685f67f0ba71feeb909718c56d810a07b659610517b1fee531acf9c" /></p>
]]></description><guid isPermaLink="false">4810</guid><pubDate>Mon, 01 Jun 2020 20:55:11 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F; &#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x44F; &#x430;&#x43D;&#x442;&#x438;&#x447;&#x438;&#x442;&#x43E;&#x432;. &#x41D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435; &#x430;&#x43D;&#x442;&#x438;&#x447;&#x438;&#x442;&#x430; &#x43D;&#x430; &#x434;&#x435;&#x43D;&#x44C;&#x433;&#x438; &#x434;&#x43B;&#x44F; &#x43D;&#x430;&#x433;&#x43B;&#x44F;&#x434;&#x43D;&#x43E;&#x441;&#x442;&#x438;</title><link>https://pawno-rus.com/topic/2653-princip-napisaniya-antichitov-napisanie-antichita-na-dengi-dlya-naglyadnosti/</link><description><![CDATA[
<p>
	<a href="https://pawno-rus.com/topic/2646-perehvat-funkciy/" rel="">В предыдущем уроке</a> я рассказал о том, как пользоваться перехватом функций. Также сказал, что перехваты функций применяются для того, чтобы можно было изменить поведение конкретной функции. Сегодня постараюсь объяснить принцип создания античита и для примера написать для вас античит на деньги.
</p>

<p>
	 
</p>

<p>
	<strong>Как работает античит?</strong> Рассмотрим такую ситуацию. При помощи запрещенных программных обеспечений Вы изменяете количество денег у своего игрока. Но спустя несколько секунд (а обычно даже секунду) это количество денег возвращается в прежнее состояние. Можно предположить, что существует какой-то таймер с интервалом, например, в секунду, внутри которого идет проверка: соответствует ли количество денег игрока сейчас тем цифрам, что были во время прежней проверки.
</p>

<p>
	 
</p>

<p>
	Итак, мы можем получить деньги игрока в данный момент при помощи функции GetPlayerMoney. А с чем нам сверять полученное количество средств? Следует создать новую переменную, в которую уже стоит заносить количество средств, которое <u>должно быть</u> у игрока. Следовательно, нам нужно перехватить функции, связанные с изменением денег, в которых уже производить изменения в значении переменной.
</p>

<p>
	 
</p>

<p>
	Далее, как я ранее упомянул, следует создать таймер, где уже производить проверку на то, пользуется ли игрок запрещенным программным обеспечением. На этом, в принципе, принцип написания античита завершен. Ровным счетом так же пишутся античиты на здоровье, броню, очки (уровень), телепортацию и многие други. То есть логика везде одинакова.
</p>

<p>
	 
</p>

<p>
	<b>Начинаем писать античит.</b>
</p>

<p>
	Мое мнение таково, что античиты следует выносить в отдельные файлы (инклуды). Для этого предлагаю создать в папке "<strong>include</strong>" новую папку - "<strong>anticheats</strong>". Внутри новой папки создаем файл "<strong>ac_money.inc</strong>". Открываем файл.
</p>

<p>
	 
</p>

<p>
	Прежде всего нам следует задать некое начало нашему файлу, в котором стоит написать проверку на переподключение файла (об этом еще будет урок позже, в данный момент от вас требуется просто скопировать данный мною ниже код):
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_672_7" style="">
<span class="com">#if defined INC_AC_MONEY</span><span class="pln">
	</span><span class="com">#endinput</span><span class="pln">
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> INC_AC_MONEY</span></pre>

<p>
	Далее мы объявим переменные, в которых будем хранить количество денег игрока (сколько у него должно быть) и ID таймера для игрока, чтобы могли удалять его после того, как игрок отключился.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_672_22" style="">
<span class="kwd">static</span><span class="pln">
	gPlayerMoney</span><span class="pun">[</span><span class="pln">MAX_PLAYERS</span><span class="pun">],</span><span class="pln"> </span><span class="com">// количество денег, которое должно быть у игрока</span><span class="pln">
	gPlayerTimer</span><span class="pun">[</span><span class="pln">MAX_PLAYERS</span><span class="pun">];</span><span class="pln"> </span><span class="com">// ID таймера для игрока, в котором будет идти проверка его баланса</span></pre>

<p>
	Теперь приступим к перехватам. Запуск таймера мы начнем в функции OnPlayerConnect (вызывается, когда игрок подключается), а удалять таймер будем в OnPlayerDisconnect.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_672_19" style="">
<span class="kwd">public</span><span class="pln"> </span><span class="typ">OnPlayerConnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="com">// создаем таймер, где будем проверять игрока на пользование читами</span><span class="pln">
	gPlayerTimer</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">SetTimerEx</span><span class="pun">(</span><span class="str">"ac_money_OnPlayerSecondTimer"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1000</span><span class="pun">*</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> </span><span class="str">"i"</span><span class="pun">,</span><span class="pln"> playerid</span><span class="pun">);</span><span class="pln">
	
	</span><span class="com">#if defined ac_money_OnPlayerConnect</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> ac_money_OnPlayerConnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
	</span><span class="com">#else</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
	</span><span class="com">#endif</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">#if defined _ALS_OnPlayerConnect</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">OnPlayerConnect</span><span class="pln">
</span><span class="com">#else</span><span class="pln">
	</span><span class="com">#define</span><span class="pln"> _ALS_OnPlayerConnect
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">OnPlayerConnect</span><span class="pln"> ac_money_OnPlayerConnect
</span><span class="com">#if defined ac_money_OnPlayerConnect</span><span class="pln">
	forward ac_money_OnPlayerConnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
</span><span class="com">#endif</span><span class="pln">

</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">OnPlayerDisconnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> reason</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="typ">KillTimer</span><span class="pun">(</span><span class="pln">ac_timerid</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]);</span><span class="pln"> </span><span class="com">// удалим таймер для этого игрока</span><span class="pln">
	
	</span><span class="com">#if defined ac_money_OnPlayerDisconnect</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> ac_money_OnPlayerDisconnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> reason</span><span class="pun">);</span><span class="pln">
	</span><span class="com">#else</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
	</span><span class="com">#endif</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">#if defined _ALS_OnPlayerDisconnect</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">OnPlayerDisconnect</span><span class="pln">
</span><span class="com">#else</span><span class="pln">
	</span><span class="com">#define</span><span class="pln"> _ALS_OnPlayerDisconnect
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">OnPlayerDisconnect</span><span class="pln"> ac_money_OnPlayerDisconnect
</span><span class="com">#if defined ac_money_OnPlayerDisconnect</span><span class="pln">
	forward ac_money_OnPlayerDisconnect</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
</span><span class="com">#endif</span></pre>

<p>
	Мы перехватили две функции - OnPlayerConnect и OnPlayerDisconnect, в которых будем создавать и удалять таймер для проверки игрока на пользование читами. Далее мы должны перехватить функции изменения денег (ResetPlayerMoney, GivePlayerMoney), чтобы в них происходило изменение значения переменной, где записано количество денежных средств данного игрока:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_672_27" style="">
<span class="pln">stock ac_money_GivePlayerMoney</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> money</span><span class="pun">)</span><span class="pln"> </span><span class="com">// перехватываем функцию GivePlayerMoney</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	gPlayerMoney</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]</span><span class="pln"> </span><span class="pun">+=</span><span class="pln"> money</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="typ">GivePlayerMoney</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> money</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">#if defined _ALS_GivePlayerMoney</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">GivePlayerMoney</span><span class="pln">
</span><span class="com">#else</span><span class="pln">
	</span><span class="com">#define</span><span class="pln"> _ALS_GivePlayerMoney
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">GivePlayerMoney</span><span class="pln"> ac_money_GivePlayerMoney

stock ac_money_ResetPlayerMoney</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln"> </span><span class="com">// перехватим функцию ResetPlayerMoney</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	gPlayerMoney</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="typ">ResetPlayerMoney</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">#if defined _ALS_ResetPlayerMoney</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">ResetPlayerMoney</span><span class="pln">
</span><span class="com">#else</span><span class="pln">
	</span><span class="com">#define</span><span class="pln"> _ALS_ResetPlayerMoney
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">ResetPlayerMoney</span><span class="pln"> ac_money_ResetPlayerMoney</span></pre>

<p>
	Последнее, что мы не сделали - функцию, в которой будем производить проверку: пользуется ли игрок запрещенными программными обеспечениями? Создаем ее (обратите внимание - я создаю функцию с модификатором public потому, что это будет таймер, а все таймеры следует объявлять с модификаторами public).
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_672_15" style="">
<span class="pln">forward ac_money_OnPlayerSecond</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> ac_money_OnPlayerSecond</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="typ">GetPlayerMoney</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> gPlayerMoney</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">])</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> </span><span class="com">// все хорошо, деньги "тогда" и сейчас совпадают</span><span class="pln">
		
	</span><span class="typ">SendClientMessage</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Система расценила Ваши действия как действия читера. Количество средств не совпадает."</span><span class="pun">);</span><span class="pln">
	</span><span class="typ">Kick</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">);</span><span class="pln"> </span><span class="com">// выкинем игрока с сервера за пользование сторонними ПО</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	На этом, вроде бы, все. файл с античитом, который должен был получиться у вас, если Вы следовали согласно данному уроку, я приложу ниже. Спасибо за внимание.
</p>

<p>
	 
</p>

<p>
	Автор данного урока: <a contenteditable="false" data-ipshover="" data-ipshover-target="https://pawno-rus.com/profile/523-jawn/?do=hovercard" data-mentionid="523" href="https://pawno-rus.com/profile/523-jawn/" rel="">@Jawn</a>
</p>

<p>
	<a class="ipsAttachLink" data-fileid="1552" href="https://pawno-rus.com/applications/core/interface/file/attachment.php?id=1552" rel="">AntiCheat money.inc</a>
</p>
]]></description><guid isPermaLink="false">2653</guid><pubDate>Wed, 13 Jun 2018 17:56:41 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x434;&#x432;&#x438;&#x436;&#x443;&#x44E;&#x449;&#x438;&#x435;&#x441;&#x44F; &#x432;&#x43E;&#x440;&#x43E;&#x442;&#x430;?</title><link>https://pawno-rus.com/topic/3899-kak-sozdat-dvizhuyuschiesya-vorota/</link><description><![CDATA[
<p>
	Здравствуйте. Недавно я задался вопросом:
</p>

<p>
	Как двигать ворота, если они заретекстурены. 
</p>

<p>
	Команды брал из другой темы.
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_8900_5" style="">
<span class="com">//==============================================================================</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> gate</span><span class="pun">,</span><span class="pln">
	vorotaopen</span><span class="pun">;</span><span class="com">//дпс</span><span class="pln">
</span><span class="com">//==============================================================================</span><span class="pln">

</span><span class="com">//==============================================================================</span><span class="pln">
gate </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateObject</span><span class="pun">(</span><span class="lit">975</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2579.550048</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">2072.350097</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22.450000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">270.0</span><span class="pun">);</span><span class="com">//дпс</span><span class="pln">
</span><span class="com">//==============================================================================</span><span class="pln">

</span><span class="com">//--------------------------- команды для фракций(начало) ----------------------//дпс</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">strcmp</span><span class="pun">(</span><span class="str">"/gates"</span><span class="pun">,</span><span class="pln"> cmdtext</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="com">// собственно создаем команду, пихать в OnPlayerCommandText</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">vorotaopen </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="com">// проверяем, открыты ли ворота.</span><span class="pln">
	</span><span class="pun">{</span><span class="pln"> </span><span class="com">// если открыты</span><span class="pln">
		</span><span class="typ">MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="lit">2579.550048</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">2072.350097</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22.450000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="com">/* ставим сюда координаты из OnGameModeInit, 3.0 - скорость передвижения ворот */</span><span class="pln">
		vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">else</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="typ">MoveObject</span><span class="pun">(</span><span class="pln">gate</span><span class="pun">,</span><span class="lit">2579.55</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">2063.49</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22.45</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3.0</span><span class="pun">);</span><span class="pln"> </span><span class="com">// берем координаты ОТКРЫТЫХ ворот, 3.0 - скорость передвижения</span><span class="pln">
		vorotaopen </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="com">//Успешно</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--------------------------- команды для фракций(конец) -----------------------</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3899</guid><pubDate>Wed, 10 Jul 2019 06:23:04 +0000</pubDate></item><item><title>&#x418;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x432;&#x441;&#x435;&#x445; 32 &#x441;&#x43B;&#x43E;&#x442;&#x43E;&#x432; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x439;</title><link>https://pawno-rus.com/topic/4638-ispolzovanie-vseh-32-slotov-peremennoy/</link><description><![CDATA[
<p style="text-align:center;">
	<span style="color:#1c2837;"><strong>Использование всех 32 слотов переменной.</strong></span><br><span style="color:#1c2837;"><strong>Автор: SoNik))<span> </span></strong><span style="color:#c0c0c0;">aka<span> </span></span><strong>SoNy</strong></span>
</p>

<p>
	<br><strong style="color:#1c2837;">Общее описание:</strong><br style="color:#1c2837;"><br style="color:#1c2837;"><span style="color:#ffffff;">—</span><span style="color:#1c2837;">Данное готовое решение поможет вам помещать несколько значений в одну переменную.</span>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">new</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">:</span><span class="pln">var1</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">:</span><span class="pln">var2</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">:</span><span class="pln">var3</span><span class="pun">;</span><span class="pln">
</span><span class="com">// и т.д. до 32.</span></pre>

<p>
	<span style="color:#1c2837;">В итоге 32 переменные заняли бы у нас<span> </span></span><strong style="color:#1c2837;">128 байт</strong><span style="color:#1c2837;"><span> </span><span style="font-size:10px;">(4 </span></span><span style="font-size:10px;"><span style="color:#c0c0c0;">байта </span><span style="color:#1c2837;">* 32 </span><span style="color:#c0c0c0;">переменные</span></span><span style="color:#1c2837;"><span style="font-size:10px;">)</span>.</span>
</p>

<p>
	<br style="color:#1c2837;"><br style="color:#1c2837;"><span style="color:#1c2837;">Используя данное готовое решение нам понадобится лишь одна переменная, в итоге<span> </span></span><strong style="color:#1c2837;">124 байта</strong><span style="color:#1c2837;"><span> </span>сэкономлено.</span>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode="new var;">
<span><span class="mtk6">new</span><span class="mtk1"> var;</span></span>
</pre>

<p>
	<br style="color:#1c2837;"><span style="color:#1c2837;">Затратили мы на 32 слота переменной - 4 байта, всего по одному биту на слот.</span><br style="color:#1c2837;"><br style="color:#1c2837;"><span style="color:#c0c0c0;">1 байт = 8 бит</span><br style="color:#1c2837;"><span style="color:#c0c0c0;">4 байт = 32 бит</span><br style="color:#1c2837;"><br style="color:#1c2837;"><span style="color:#1c2837;">Автор данного готового решения предоставляет нам несколько макросов, с помощью которых можно взаимодействовать с нашими слотами.</span>
</p>

<p>
	<br style="color:#1c2837;"><span style="color:#1c2837;">Вы можете изменять значения на<span> </span></span><strong style="color:#1c2837;">1</strong><span style="color:#1c2837;"><span> </span>или<span> </span></span><strong style="color:#1c2837;">0</strong><span style="color:#1c2837;"><span> </span></span><span style="font-size:10px;"><span style="color:#c0c0c0;">(true | false)</span></span><span style="color:#1c2837;"><span> </span>для каждого из слотов, а также узнавать, заполнен ли в данный момент слот.</span><br style="color:#1c2837;"><br style="color:#1c2837;"><strong style="color:#1c2837;">Описание макросов:</strong>
</p>

<ul style="color:#1c2837;">
<li>
		<span style="color:#dda0dd;">variable<span> </span></span>— переменная
	</li>
	<li>
		<span style="color:#dda0dd;">slot</span><span> </span>— слот переменной
	</li>
</ul>
<p>
	 
</p>

<ul style="color:#1c2837;">
<li>
		<strong>setBit_1</strong>(variable, slot);    — устанавливает<span> </span><span style="color:#0000ff;">true</span><span style="font-size:10px;"><span style="color:#c0c0c0;">(1)</span></span><span> </span>в заданный слот
	</li>
	<li>
		<strong>setBit_0</strong>(variable, slot);    — устанавливает<span> </span><span style="color:#0000ff;">false</span><span style="font-size:10px;"><span style="color:#c0c0c0;">(0)</span></span><span> </span>в заданный слот
	</li>
	<li>
		<strong>getBit</strong>(variable, slot);<span> </span><span style="color:#ffffff;">* *<span>   </span></span>— возвращает:<span> </span><span style="color:#0000ff;">true</span><span style="color:#c0c0c0;"><span style="font-size:10px;">(1)</span><span> </span></span>- слот заполнен,<span> </span><span style="color:#0000ff;">false</span><span style="font-size:10px;"><span style="color:#c0c0c0;">(0)</span></span><span> </span>- слот пустой
	</li>
	<li>
		<strong>addBit</strong>(variable);<span> </span><span style="color:#ffffff;">* * *<span>        </span></span>— устанавливает все слоты<span> </span><span style="color:#c0c0c0;">(0..31)<span> </span></span>в<span> </span><span style="color:#0000ff;">true</span><span style="font-size:10px;"><span style="color:#c0c0c0;">(1)</span></span>
	</li>
	<li>
		<strong>delBit</strong>(variable);<span> </span><span style="color:#ffffff;">* * *<span>         </span></span>— устанавливает все слоты<span> </span><span style="color:#c0c0c0;">(0..31)</span><span> </span>в<span> </span><span style="color:#0000ff;">false</span><span style="font-size:10px;"><span style="color:#c0c0c0;">(0)</span></span>
	</li>
</ul>
<p>
	 
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="com">#define</span><span class="pln"> setBit_1</span><span class="pun">(%</span><span class="lit">1</span><span class="pun">,%</span><span class="lit">2</span><span class="pun">)</span><span class="pln">         </span><span class="pun">%</span><span class="lit">1</span><span class="pun">|=(</span><span class="lit">1</span><span class="pun">&lt;&lt;%</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> setBit_0</span><span class="pun">(%</span><span class="lit">1</span><span class="pun">,%</span><span class="lit">2</span><span class="pun">)</span><span class="pln">         </span><span class="pun">%</span><span class="lit">1</span><span class="pun">&amp;=~(</span><span class="lit">1</span><span class="pun">&lt;&lt;%</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> getBit</span><span class="pun">(%</span><span class="lit">1</span><span class="pun">,%</span><span class="lit">2</span><span class="pun">)</span><span class="pln">           </span><span class="pun">((</span><span class="lit">1</span><span class="pun">&lt;&lt;%</span><span class="lit">2</span><span class="pun">)&amp;%</span><span class="lit">1</span><span class="pun">?</span><span class="lit">1</span><span class="pun">:</span><span class="lit">0</span><span class="pun">)</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> addBit</span><span class="pun">(%</span><span class="lit">1</span><span class="pun">)</span><span class="pln">              </span><span class="pun">%</span><span class="lit">1</span><span class="pun">=-</span><span class="lit">1</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> delBit</span><span class="pun">(%</span><span class="lit">1</span><span class="pun">)</span><span class="pln">              </span><span class="pun">%</span><span class="lit">1</span><span class="pun">=</span><span class="lit">0</span></pre>

<p>
	<br style="color:#1c2837;"><strong style="color:#1c2837;">Пример использования:</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="com">#define</span><span class="pln"> SETTING_GLOBAL_CHAT </span><span class="lit">0</span><span class="pln"> </span><span class="com">// минимальный слот.</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> SETTING_GROUP_CHAT </span><span class="lit">15</span><span class="pln"> 
</span><span class="com">#define</span><span class="pln"> SETTING_PLAYER_CHAT </span><span class="lit">31</span><span class="pln"> </span><span class="com">// максимальный слот.</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> pSettings</span><span class="pun">[</span><span class="pln">MAX_PLAYERS</span><span class="pun">];</span><span class="pln">

command</span><span class="pun">.</span><span class="pln">on</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="com">// some code..</span><span class="pln">
    setBit_1</span><span class="pun">(</span><span class="pln">pSettings</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> SETTING_GLOBAL_CHAT</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

command</span><span class="pun">.</span><span class="pln">off</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="com">// some code..</span><span class="pln">
    setBit_0</span><span class="pun">(</span><span class="pln">pSettings</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> SETTING_PLAYER_CHAT</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">getBit</span><span class="pun">(</span><span class="pln">pSettings</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">],</span><span class="pln"> SETTING_GROUP_CHAT</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> </span><span>SendClientMessage</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">"true"</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> </span><span>SendClientMessage</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">"false"</span><span class="pun">);</span><span class="pln">

addBit</span><span class="pun">(</span><span class="pln">pSettings</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]);</span><span class="pln"> </span><span class="com">// заполнение слотов.</span><span class="pln">

</span><span class="com">// some code..</span><span class="pln">

delBit</span><span class="pun">(</span><span class="pln">pSettings</span><span class="pun">[</span><span class="pln">playerid</span><span class="pun">]);</span><span class="pln"> </span><span class="com">// очистка слотов.</span></pre>

<p>
	<br style="color:#1c2837;"><span style="color:#1c2837;">Решение за вами: использовать</span><span style="color:#4169e1;"><span> </span><strong>64</strong></span><span style="color:#1c2837;"><span> </span>переменной типа<span> </span></span><span style="color:#0000ff;">bool<span> </span></span><span style="color:#1c2837;">занимая<span> </span></span><span style="color:#4169e1;"><strong>256</strong></span><span style="color:#1c2837;"><span> </span>байт<span> </span></span><span style="font-size:10px;"><span style="color:#c0c0c0;">(2120 бит)</span></span><span style="color:#1c2837;">, либо</span><br style="color:#1c2837;"><span style="color:#1c2837;">использовать данные макросы имея всё те-же<span> </span></span><strong style="color:#1c2837;"><span style="color:#4169e1;">64</span></strong><span style="color:#1c2837;"><span> </span>слота, а занимая всего<span> </span></span><span style="color:#4169e1;"><strong>8</strong></span><span style="color:#1c2837;"><span> </span>байт<span> </span></span><span style="font-size:10px;"><span style="color:#c0c0c0;">(64 бит)</span></span><span style="color:#1c2837;">.</span>
</p>
]]></description><guid isPermaLink="false">4638</guid><pubDate>Thu, 07 May 2020 00:30:45 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x43C;&#x430;&#x43F;&#x43F;&#x438;&#x43D;&#x433;?</title><link>https://pawno-rus.com/topic/4228-kak-sozdavat-sobstvennyy-mapping/</link><description><![CDATA[
<p>
	Привет, на связи разработчик - Clement Dev <img alt=":)" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/smile.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/smile@2x.png 2x" title=":)" width="20"></p>

<p>
	Сегодня я расскажу как создать свой маппинг! 
</p>

<p>
	Во первых, вам потребуется скачать такую программу как Map Construction CR:MP <span style="background-color:#c0392b;">(программу можете найти в интернете) </span>
</p>

<p>
	Второе действие, после того как вы скачали программу, перекиньте все файлы в удобное вам расположение, "Рабочий стол" или любой диск [ВНИМАНИЕ!] файлы нужно перекидывать все
</p>

<p>
	Третье действие, после того как вы все скачали, открываем файл editor.exе
</p>

<p>
	Четвертое действие, после того как вы открыли файл нажимаете "Load" 
</p>

<p>
	И самое окончательное действие, начинаете мапперить! ID обьектов можете найти в интернете
</p>

<p>
	Знаю, что урок возможно плохой, но это мой первый урок <img alt=":)" data-emoticon="" height="20" src="//storage.yandexcloud.net/pawnorus/emoticons/smile.png" srcset="//storage.yandexcloud.net/pawnorus/emoticons/smile@2x.png 2x" title=":)" width="20"></p>

<p>
	<span style="font-family:'Trebuchet MS', Helvetica, sans-serif;">Не критикуйте </span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Изображения">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<a class="ipsAttachLink ipsAttachLink_image" href="//storage.yandexcloud.net/pawnorus/monthly_2019_12/Screenshot_2.png.518f81236fef184f89f69a89aca72845.png" data-fileid="2477" rel=""><img alt="Screenshot_2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="2477" src="//storage.yandexcloud.net/pawnorus/monthly_2019_12/Screenshot_2.png.518f81236fef184f89f69a89aca72845.png" onError="this.src='https://pawno-rus.ru/uploads/onerror.png'"></a>
		</p>
	</div>
</div>
]]></description><guid isPermaLink="false">4228</guid><pubDate>Fri, 06 Dec 2019 15:43:44 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; NPC-&#x431;&#x43E;&#x442;&#x430; &#x434;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;</title><link>https://pawno-rus.com/topic/38-sozdanie-npc-bota-dlya-servera/</link><description><![CDATA[
<p>
	Добрый день, дорогой читатель! Сегодня мы попробуем научиться делать ботов для crmp, впринципе, это актуально и для samp. 
</p>

<p>
	Начнем. 
</p>

<p>
	Для начала скачайте <strong>все </strong>необходимые файлы. 
</p>

<p>
	А именно: инклуд (a_npc), и скрипт записи маршрута бота (npc_record.pwn and npc_record.amx). 
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		 
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			Как установить скрипт: два файла  (npc_record.pwn and npc_record.amx) киньте в папку filterscripts, потом пропишите в server.cfg:
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span class="pln">filterscripts npc_record</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	<b>ЭТАП 1/3 : ЗАПИСЬ МАРШРУТА</b>
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		 
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			 
		</p>

		<p>
			Далее, садитесь в машину / или пешком начинайте записывать маршрут. 
		</p>

		<p>
			В случае, если маршрут записывается пешком, используйте команду /precord, если в авто используйте команду /vrecord. 
		</p>

		<p>
			После окончания маршрута вводите /screcord и запись движений остановится. 
		</p>

		<p>
			Записанный файл находится по пути: <strong>scriptfiles/namebot.rec </strong>
		</p>

		<p>
			 
		</p>
	</div>
</div>
<p>
<strong>ЭТАП 2/3 : СОЗДАНИЕ СКРИПТА-БОТА</strong></p>
<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		 
	</div>
	

	<div class="ipsSpoiler_contents">
		<p>
			 
		</p>

		<p>
			Теперь файл namebot.rec (из scriptfiles) перемещаем в <strong>npcmodes/recordings</strong>.
		</p>

		<p>
			Там будет лежать запись бота. 
		</p>

		<p>
			Переходим в папку <strong>/npcmodes</strong>.
		</p>

		<p>
			Создаем скрипт (файл .pwn) следующего содержания: 
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span class="com">#define</span><span class="pln"> RECORDING </span><span class="str">"NameNPC"</span><span class="pln"> </span><span class="com">//Имя вашего записанного файла из scriptfiles без расширения</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> RECORDING_TYPE </span><span class="lit">1</span><span class="pln"> </span><span class="com">//1 - если путь записан на машине, 2 - пешком</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;a_npc&gt;</span><span class="pln">
 
main</span><span class="pun">(){}</span><span class="pln">
 
</span><span class="kwd">public</span><span class="pln"> </span><span>OnRecordingPlaybackEnd</span><span class="pun">()</span><span class="pln"> </span><span>StartRecordingPlayback</span><span class="pun">(</span><span class="pln">RECORDING_TYPE</span><span class="pun">,</span><span class="pln"> RECORDING</span><span class="pun">);</span><span class="pln">
</span><span class="com">#if RECORDING_TYPE == 1</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span>OnNPCEnterVehicle</span><span class="pun">(</span><span class="pln">vehicleid</span><span class="pun">,</span><span class="pln"> seatid</span><span class="pun">)</span><span class="pln"> </span><span>StartRecordingPlayback</span><span class="pun">(</span><span class="pln">RECORDING_TYPE</span><span class="pun">,</span><span class="pln"> RECORDING</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span>OnNPCExitVehicle</span><span class="pun">()</span><span class="pln"> </span><span>StopRecordingPlayback</span><span class="pun">();</span><span class="pln">
</span><span class="com">#else</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span>OnNPCSpawn</span><span class="pun">()</span><span class="pln"> </span><span>StartRecordingPlayback</span><span class="pun">(</span><span class="pln">RECORDING_TYPE</span><span class="pun">,</span><span class="pln"> RECORDING</span><span class="pun">);</span><span class="pln"> </span><span class="pun">.</span><span class="pln">
</span><span class="com">#endif</span></pre>

		<p>
			<strong>ВНИМАНИЕ! </strong>Название .pwn скрипта НЕ произвольное. Оно должно быть таким же, как и название записи (.rec файла). 
		</p>

		<p>
			В данном скрипте настройте, согласно указаниям, а после скомпилируйте скрипт (F5).
		</p>

		<p>
			 
		</p>
	</div>
</div>
<p><strong>ЭТАП 3/3 : НАСТРОЙКА NPC В МОДЕ</strong></p>
<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		 
	</div>
	

	<div class="ipsSpoiler_contents">
		<p>
			Ко всем глобальным переменным (new) в моде добавляем:<br>
			 
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span class="kwd">new</span><span class="pln"> </span><span>VehicleNPC</span><span class="pun">;</span><span class="pln"> </span><span class="com">// транспорт, в который будем садить NPC. Проигнорируйте, если запись пешком</span></pre>

		<p>
			Далее отправляемся в OnGameModeInit и добавляем следующий код:
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span>ConnectNPC</span><span class="pun">(</span><span class="str">"имя бота (произовльное)"</span><span class="pun">,</span><span class="str">"название файла из scriptfiles без расширения"</span><span class="pun">);</span><span class="pln">
</span><span>VehicleNPC</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span>CreateVehicle</span><span class="pun">(</span><span class="lit">400</span><span class="pun">,</span><span class="lit">0.0</span><span class="pun">,</span><span class="lit">0.0</span><span class="pun">,</span><span class="lit">5.0</span><span class="pun">,</span><span class="lit">0.0</span><span class="pun">,</span><span class="lit">3</span><span class="pun">,</span><span class="lit">3</span><span class="pun">,</span><span class="lit">5000</span><span class="pun">);</span><span class="pln"> </span><span class="com">// нулевые координаты изменять не нужно, транспорт сам телепортируется к нашему нпс, измените только модель транспорта (по желанию) и цвет транспорта (по желанию)</span></pre>

		<p>
			Далее идем в OnPlayerSpawn, вставляем следующий код (желательно в начало паблика):
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span class="kwd">if</span><span class="pun">(</span><span>IsPlayerNPC</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">))</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">new</span><span class="pln"> npcname</span><span class="pun">[</span><span class="pln">MAX_PLAYER_NAME</span><span class="pun">];</span><span class="pln">
    </span><span>GetPlayerName</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln">npcname</span><span class="pun">,</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">npcname</span><span class="pun">));</span><span class="pln">
    </span><span class="kwd">if</span><span class="pun">(!</span><span class="pln">strcmp</span><span class="pun">(</span><span class="pln">npcname</span><span class="pun">,</span><span class="str">"имя указанное в ConnectNPC"</span><span class="pun">,</span><span class="kwd">true</span><span class="pun">))</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span>PutPlayerInVehicle</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span>VehicleNPC</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln"> </span><span class="com">// сажаем NPC в машину</span><span class="pln">
      	</span><span>SetPlayerColor</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFFFFFF00</span><span class="pun">);</span><span class="pln"> </span><span class="com">// делаем прозрачный цвет NPC</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

		<p>
			Далее, добавляем это в паблики, которые нежелательны для применения к NPC. Например, если он ездит в машине, добавьте там, где тратится бензин. Обязательно добавьте при регистрации, чтобы она ему не мешала и п. Если у вас возникли трудности, пишите в тему, расскажем куда еще добавить:
		</p>

		<pre class="ipsCode prettyprint lang-c prettyprinted">

<span class="kwd">if</span><span class="pun">(</span><span>IsPlayerNPC</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span></pre>
	</div>
</div>

<p>
	Ну и все, npc готов! ВНИМАНИЕ! Если бот подключается, и его, сразу кикает, значит он не может заспавниться в моде. В основном это античит. Рекомендуется и туда добавить проверку, указанную чуть выше.  Автор урока: @steve! Будут проблемы, пишите в тему - поможем. 
</p>
]]></description><guid isPermaLink="false">38</guid><pubDate>Fri, 21 Jul 2017 19:05:36 +0000</pubDate></item><item><title>&#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; 3D &#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x430; &#x434;&#x43B;&#x44F; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x430;</title><link>https://pawno-rus.com/topic/3599-dobavlenie-3d-nomera-dlya-transporta/</link><description><![CDATA[
<p>
	Здравствуйте, уважаемые пользователи форуму PAWNO-RUS.
</p>

<p>
	В этой теме расскажу Вам, как добавить 3D номер на автомобиль, чтобы в дальнейшем для него работала функция "<a href="https://pawno-rus.com/setvehiclenumberplate" title="Ссылка встроена автоматически для предоставления большей информации." rel=""></a><a href="https://pawno-rus.ru/setvehiclenumberplate" title="Ссылка встроена автоматически для предоставления большей информации.">SetVehicleNumberPlate</a>". 
</p>

<p>
	 
</p>

<p>
	Нам понадобится:
</p>

<p>
	TXD Workshop любой версии(5.0 у меня)
</p>

<p>
	Zmodeler(226 build 981 у меня)
</p>

<p>
	 
</p>

<p>
	<strong>1.</strong> Берём любую модель, я буду работать с BMW X6. 
</p>

<p>
	1.1. Создадим для нёё папку, в моём случае "Модель и текстуры", туда переместим dff и txd модели.
</p>

<p>
	1.2. Открываем TXD Workshop &gt; Open txd &gt; указываем наш txd, перед нами откроются текстуры этой модели
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="2dcjv9J.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/2dcjv9J.png&amp;key=5450afcc27caca867f0ac432d24358ddc78b0d6494f6a519eb31749905f249e3" /></p>
	</div>
</div>

<p>
	1.2. Нажимаете кнопку Export &gt; Export all textures to bitmaps &gt; указываете папку, которую создавали ранее, у меня это "Модель и текстуры". Если у вас не появился список с выбором типа текстур, нажмите еще раз на "Export".
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="BsmcLsT.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/BsmcLsT.png&amp;key=f44ad508d9319a34118ce18c4dbd1c054043f26c7cc46a7fb98125411f60ab00" /></p>
	</div>
</div>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<strong>2. </strong>Переходим по пути: папка с игрой/models/generic
</p>

<p>
	2.1. Открываем через TXD Workshop файл "vehicle.txd", в списке ищем "carplate", нажимаем Export, в этот раз, нужно, чтобы открылось сразу окошко с выбором пути или просто, в том окошке выберите "TGA", сохраняем в удобное для вас место, я сохраню на РС, но название должно остаться "carplate", теперь можем закрыть TXD Workshop.
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="b4RUA8B.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/b4RUA8B.png&amp;key=b2c64e53c8d788a1841d5c124ac76e5b39a03f0ee77e5448d854938b81d5b92f" /></p>
	</div>
</div>

<p>
	 
</p>

<p>
	<strong>3. </strong>Открываем ZModeler, дальше нажимаем: Опции &gt; Настройки &gt; Сервисы (жмём на плюсик) &gt; Пути к текстурам. Добавляете путь, по которому сохраняли все текстуры модельки, у меня это папка "Модель и текстуры" , ставите галочку "Использовать", применить и ок.
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="jMXbsKC.png" class="ipsImage" height="524" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/jMXbsKC.png&amp;key=25fe648d751ef713ff088280ee0396f85ad8d19a6fc153712062421fe59c270c" width="1000" /></p>
	</div>
</div>

<p>
	3.1. Добавляем модель авто, для этого: либо Файл &gt; Импортировать, либо листок с синей стрелочкой
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скришот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="yAW6Tir.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/yAW6Tir.png&amp;key=7a4ea50215d121188257b8de83175df0df7c03ab0d94d7b6e4a5662ebaea7d38" /></p>
	</div>
</div>

<p>
	3.1. В окне импорта выбираем нашу модель, в "Параметры GTA SA" "Текстуры" поставьте на "BMP" и нажимайте "Импорт" (если у вас не доступна кнопка импорт, значит модель заблокирована, в интернете есть уроки, как разблокировать)
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="jBhpzSD.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/jBhpzSD.png&amp;key=02335091aa016d0a9ecf0bf5f25b1b43eb648a022889629dc5e172487f2343c0" /></p>
	</div>
</div>

<p>
	3.2. Мы импортировали нашу модель, теперь настроим вид в 1 окне просмотра модели поставим вид "Изометрия", во втором оставим "3D", у меня номера уже в текстуре, я просто наверх наложу карплату, у вас их может вообще не быть, поэтому сначала нужно будет добавить табличку с регионом, а номер можно будет не писать.
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="rYlRiGK.png" class="ipsImage" height="564" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/rYlRiGK.png&amp;key=4b025eb80049f3dd42f3d46237326c895d32787be9d845854d07946a533b6202" width="1000" /></p>
	</div>
</div>

<p>
	3.3. Добавим нашу текстуру, для этого нажимаем на красный шар вверху
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Fb48Zwh.png" class="ipsImage" height="564" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/Fb48Zwh.png&amp;key=9615e5c6a868305ed52def4198d200a96e171f733272f18d0aa90edfe3500400" width="1000" /></p>
	</div>
</div>

<p>
	3.4. В открывшемся окне нажимаем на листок с синим шариком, называем текстуру "carplate" (как и сохраняли из workshop), в цветах ставим везде 255. В "Слои текстур" нажимаем на "...", в открывшемся окне нажимаем "Загрузить", выбираем нашу текстуру и нажимаем "Ок" и еще раз "Ок"
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="nVwmgL0.png" class="ipsImage" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/nVwmgL0.png&amp;key=571bb7f66adf55c1ffca74635d058f0eca0a96b435da5ca17a75408e38ebe5d1" /></p>
	</div>
</div>

<p>
	<strong>4. </strong>Меняем вид на "Спереди", жмём Создать &gt; Поверхность &gt; Сетка и создаём примерный размер номера (потом отредактируем)
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="F4dTDXR.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/F4dTDXR.png&amp;key=e49dd2f9524b4542adad74f6336af58d65b05e27191c7422dfa6fbcb40878af5" /></p>
	</div>
</div>

<p>
	3.1. Ничего не трогая, нажимаем снова на тот красный шарик, выбираем наш материал и жмём "Применить к выделенному" и нажимаем "Ок"
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="GBwk0eX.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/GBwk0eX.png&amp;key=c32e7b44d31947aaf0d776bd3e90bbde0acebc492eb55baaa22367e37360b926" /></p>
	</div>
</div>

<p>
	3.2. Включаем "Режим выделенного" (фон текста станет рыжим) и нажимаем Создать &gt; Копию и нажимаем на наш номер, который мы создали, это для номера сзади, временно выключим копию, чтобы она нам не мешала
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="EQWMRJC.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/EQWMRJC.png&amp;key=d974d1cc5977abb0860e8c7ebd30978460e156b1a1c3eb87911b65813373ef65" /></p>
	</div>
</div>

<p>
	3.3. Выключаем режим выделенного, нажимаем Выделение &gt; Кликом и ПКМ кликаем по нашему номеру (Всё делается в окошке с видом "Спереди", 3D не трогаем!!), он загорится рыжим и мы включаем снова режим выделенного, теперь нажимаем Модификации &gt; Переместить, вверху у нас есть оси по которым перемещаем, включаете их и перемещаете как нужно, так же, рекомендую включить вид "Справа", и смотреть в 3D, как будет спереди выглядеть и справа, чтобы прикрепить ровно
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="YDdU4BJ.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/YDdU4BJ.png&amp;key=83044f4a5c1e934e155d67e671d6a3f65af1e067c0dab18d6f683df68d1b7a8c" /></p>
	</div>
</div>

<p>
	Я уже сделал, на скриншоте можете видеть, что у меня получилось, но, выглядит это не красиво и в игре будет не реалистично, потому что размер не тот, что нужно. Сейчас его изменим.
</p>

<p>
	3.4. Нажимаете Модификации &gt; Масштабировать, для удобства можете включить вид "Спереди" и изменяете точно также, по осям
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="HpI9cBC.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/HpI9cBC.png&amp;key=d0a2df1389dfcbb25488ff3b5f670838b8830afe75a66b7719766430ee057e5e" /></p>
	</div>
</div>

<p>
	В итоге, всё это подровняв, у меня что-то получилось, теперь, давайте закинем наш номер в передний бампер, для этого, нажимаем на плюсик в нашей модели, и пробуем включать и выключать разные детали, пока не доберемся до бампера, у меня он называется "bump_front_dummy", в основном, примерно так он называется во всех моделях. Теперь перетаскиваем наш номер туда, но перед этим, лучше измените название с "Surface", на, например, "carplate" и "carplate2", потому что насколько я знаю, может возникнуть баг, если оставить с таким названием. Переместили, всё, в принципе, у нас передний бампер и номер готов, нам только нужно их объединить
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Скриншот">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="5D1KSjJ.png" src="https://pawno-rus.com/applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/5D1KSjJ.png&amp;key=4ecca39056276fbce18db831334f4dcb35bbadc9e2e845b92a0671848b82bc1b" /></p>
	</div>
</div>

<p>
	 
</p>

<p>
	P. S. На скриншоте "Surface", но я уже изменил, просто забыл.
</p>

<p>
	 
</p>

<p>
	Теперь нам нужно поработать с номером на заднем бампере, работа идентичная, только нужно развернуть. Но это я напишу чуть позже, вероятнее всего завтра, во второй половине дня (потому что только я могу учиться на каникулах).
</p>

<p>
	 
</p>

<p>
	Автор темы: SCRIPTMAN
</p>

<p>
	 
</p>

<p>
	Перед тем, чтобы написать тему, я проверил в игре и это работает.
</p>

<p>
	 
</p>

<p>
	<strong>При копировании на другие порталы указывайте автора</strong>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3599</guid><pubDate>Fri, 29 Mar 2019 21:06:53 +0000</pubDate></item><item><title>extract - dc_cmd , pawn.cmd</title><link>https://pawno-rus.com/topic/3364-extract-dc_cmd-pawncmd/</link><description><![CDATA[
<p style="text-align:center;">
	Пожалуй начнем с того что :<br><span style="color:#c0392b;">Extract </span>- <span style="color:#1abc9c;">это макрос</span>, который может заменить sscanf(), а так же проверяя строку на указанные аргументы.
</p>

<p style="text-align:center;">
	<br>
	 
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Цитата
	</div>

	<div class="ipsQuote_contents">
		<p style="text-align:center;">
			#define extract%0-&gt;%1; EXTRN%1;unformat(_:EXTRZ:EXTRV:EXTRX:%0,##,%1,,); 
		</p>
	</div>
</blockquote>

<p style="text-align:center;">
	<br><span style="font-family:'Franklin Gothic Medium';"><font size="2">Пример </font></span>использования
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode='CMD:ans(playerid, params[]){&#13;
    new&#13;
    string[145], // Вывод сообщения игроку&#13;
    pm_name[MAX_PLAYER_NAME]; // Позже мы узнаем ник Игрока который отправляет сообщения. ( У кого имется name(playerid); GetName(playerid) можете данную строчку удалить. &#13;
    extract params -&gt; new pm_id, string:pm_message[119]; else&#13;
        return SendClientMessage(playerid, -1, "Введите /ans ID игрока | Сообщение");&#13;
  	GetPlayerName(playerid, pm_name , MAX_PLAYER_NAME); // в sizeof - не использую ( - 2 байта с одной.&#13;
  	format(string, sizeof string , "%s: %s", pm_name, pm_message);&#13;
  	return SendClientMessage(pm_id, -1, string);&#13;
}'>
<span><span class="mtk1">CMD:ans(playerid, params[]){</span></span>
<span><span class="mtk1">    </span><span class="mtk6">new</span></span>
<span><span class="mtk1">    string[</span><span class="mtk7">145</span><span class="mtk1">], </span><span class="mtk8">// Вывод сообщения игроку</span></span>
<span><span class="mtk1">    pm_name[MAX_PLAYER_NAME]; </span><span class="mtk8">// Позже мы узнаем ник Игрока который отправляет </span><span class="mtk8">сообщения. ( У кого имется name(playerid); </span><span class="mtk8">GetName(playerid) можете данную строчку удалить. </span></span>
<span><span class="mtk1">    extract params -&gt; </span><span class="mtk6">new</span><span class="mtk1"> pm_id, string:pm_message[</span><span class="mtk7">119</span><span class="mtk1">]; </span><span class="mtk6">else</span></span>
<span><span class="mtk1">        </span><span class="mtk6">return</span><span class="mtk1"> SendClientMessage(playerid, -</span><span class="mtk7">1</span><span class="mtk1">, </span><span class="mtk20">"Введите /ans ID игрока | Сообщение"</span><span class="mtk1">);</span></span>
<span><span class="mtk1">    GetPlayerName(playerid, pm_name , </span><span class="mtk1">MAX_PLAYER_NAME); </span><span class="mtk8">// в sizeof - не использую ( - 2 байта с одной.</span></span>
<span><span class="mtk1">    format(string, </span><span class="mtk6">sizeof</span><span class="mtk1"> string , </span><span class="mtk20">"%s: %s"</span><span class="mtk1">, pm_name, pm_message);</span></span>
<span><span class="mtk1">    </span><span class="mtk6">return</span><span class="mtk1"> SendClientMessage(pm_id, -</span><span class="mtk7">1</span><span class="mtk1">, string);</span></span>
<span><span class="mtk1">}</span></span>
</pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3364</guid><pubDate>Thu, 17 Jan 2019 13:50:02 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x430;&#x43A;&#x442;&#x435;&#x440;&#x430; ( NPC )</title><link>https://pawno-rus.com/topic/3530-sozdanie-aktera-npc/</link><description><![CDATA[
<p>
	<strong>Здравствуйте дорогие друзья, с вами </strong><strong><span style="color:#808080;">#Copyright</span></strong><strong> - в данном мануале я полностью подробно опишу как же сделать актера ( NPC ) на сервере, приступим. </strong>
</p>

<p>
	<strong><span style="color:#808080;">Что нам понадобится:</span></strong>
</p>

<pre class="ipsCode">
- Инклуд a_actors ( Обязательно ).
- Ровные руки.

</pre>

<p>
	<strong><span style="color:#7f8c8d;">1. Первым делом мы приступим к инклудам:</span></strong>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">- Скачиваем инклуд a_actors и кидаем в папку pawno/includes/
- Заходим в PAWNO.exe, выбираем .pwn файл нашего мода, и к инклудам добавляем "#include </span><span class="tag">&lt;a_actors&gt;</span><span class="pln">"
- Компилируем.</span></pre>

<p>
	<strong>Если компиляция произошла успешно, мы переходим к второму пункту.</strong>
</p>

<p>
	<strong><span style="color:#7f8c8d;">2. Добавляем актера на сервере</span></strong>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">- Находим "public OnGameModeInit"
- Вставляем "CreateActor(SKIN,X,Y,Z,Float: Rotation);"
- Компилируем.</span></pre>

<p>
	<strong>Пояснение:</strong>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">- "CreateActor(SKIN,X,Y,Z,Float: Rotation);"
SKIN - ID Скина Актера ( NPC )
X-Y-Z -  Координаты где будет стоять наш актер ( NPC )
Float: Rotation - В какую сторону будет смотреть наш актер ( NPC </span></pre>

<p>
	<strong>Теперь у вас на сервере есть ваш актер ( NPC ), но тут не все, сейчас я вам расскажу как же сделать анимацию нашему актеру ( NPC ), но для этого нам придется немного изменить код, подробнее ниже:</strong>
</p>

<p>
	<strong>Создание переменной</strong>
</p>

<p>
	<strong>- Создаем переменную с вашим названием, у меня будет "new Actors[0];"</strong>
</p>

<p>
	<strong>Пояснение:</strong>
</p>

<pre class="ipsCode">
- Вместо цифры [0] пишем количество актеров ( NPC ) которые привязаны к нашей переменной.

2. Создаем актера с нашей переменной

- Переходим в "public OnGameModeInit"
- Вставляем строчку "Actors[0] = CreateActor(SKIN,X,Y,Z,Float: Rotation);"[/PHP]


</pre>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">- Если у вас к примеру привязаны 3 бота к переменной "new Actors[0]" - Число "0" меняем на 3
- Но в "public OnGameModeInit" счет количества ботов начинается с нуля, т.е первый бот будет вписан так "Actors[0] = CreateActor(SKIN,X,Y,Z,Float: Rotation);", второй так "Actors[1] = CreateActor(SKIN,X,Y,Z,Float: Rotation);", третий "Actors[2] = CreateActor(SKIN,X,Y,Z,Float: Rotation);".

3. После того как мы создали нашего бота с переменной "Actors" - добавляем анимацию

- После "Actors[0] = CreateActor(SKIN,X,Y,Z,Float: Rotation);" внизу вставляем код "ApplyActorAnimation(actorid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time);"</span></pre>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">- actorid - Название переменной который присвоил наш актер ( NPC ) у нас Actors[0], значит вместо "actorid" - пишем "Actors[0]".
- animlib - Название библиотеки нашей анимации
- animname - Название анимации
- Float:fDelta - скорость нашей анимации, стандартная скороть - 4.1
- loop -  Повторение цикла
- lockx - координаты X. Стандарт: "1"
- locky - координаты Y. Стандарт: "1"
- freeze -  Будет ли заморожен наш актер ( NPC ) после анимации.
- time - Сколько времени будет проигрывать анимация у актера ( NPC ), если хотите чтобы анимация повторялась бесконечно - напишите "1"</span></pre>

<p>
	<strong>Вот мы и закончили наш урок по созданию актера - и анимацию для него, какой у нас код получился, вы можете увидеть ниже:</strong>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln"> "CreateActor(17, 126.2921,-167.1122,9.81265,332.31277);"
 "actors[0] = CreateActor(17, 126.2921,-167.1122,9.81265,332.31277);"
 "ApplyActorAnimation(actors[0], "PED", "ROADCROSS_FEMALE", 4.1, 1, 1, 1, 0, 0);"</span></pre>

<p>
	<strong>Автор: Я<br>
	По всем вопросам пишите в тему, спасибо за внимание!</strong>
</p>
]]></description><guid isPermaLink="false">3530</guid><pubDate>Sun, 03 Mar 2019 09:47:00 +0000</pubDate></item><item><title>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x43D;&#x430; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x443;</title><link>https://pawno-rus.com/topic/3533-sozdanie-komandy-na-knopku/</link><description><![CDATA[
<p>
	<strong>Здравствуйте дорогие друзья, это уже мой третий урок - в данном уроке вы сможете делать команду на кнопку, приступим.<br /><br /><span style="color:#7f8c8d;">Что нам понадобится:</span><br /><span style="color:#27ae60;">-</span> Сама команда которая будет активирована по нажатие кнопки</strong>
</p>

<p>
	<strong><span style="color:#27ae60;">-</span> Ровные руки и свободные 10 минут.<br /><br />
	Для того чтобы кнопка активировала нашу команду, мы ищем наш public "<span style="color:#7f8c8d;">public OnPlayerKeyStateChange</span><span style="color:#1c2837;">"<br />
	С корень паблика мы должны будем вставить код:</span></strong><br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if (newkeys == ID)
{
OnPlayerCommandText(playerid,""); 
 }</span></pre>

<p>
	<br /><br /><strong>Пояснение:</strong><br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">//newkeys == ID - заместо слова "ID" мы пишем на ID кнопки которая будет активировать команду ( Список всех ID кнопок будет ниже )
//OnPlayerCommandText - Функция которая вызывает активирование команды после нажатия на кнопку
//(playerid, ""); - В скобка мы пишем команду которая будет активирована после нажатия на кнопку.</span></pre>

<p>
	<br /><br /><strong>Вот и все, наш урок на этом заканчивается, спасибо за внимание.<br />
	Автор: <span style="color:#27ae60;">#CopyRight</span><br />
	Специально для <span style="color:#c0392b;">PAWNO-RUS</span><br /><br /><span style="color:#7f8c8d;">ID's</span></strong><br /><br />
	 
</p>

<div class="ipsSpoiler" data-ipsspoiler="" data-ipsspoiler-option="Открыть">
	<div class="ipsSpoiler_header">
		<span>Спойлер</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<strong><span style="color:#000000;">d = 36 символ = $</span><br style="color:#000000;" /><span style="color:#000000;">id = 37 символ = %</span><br style="color:#000000;" /><span style="color:#000000;">id = 38 символ = &amp;</span><br style="color:#000000;" /><span style="color:#000000;">id = 39 символ = '</span><br style="color:#000000;" /><span style="color:#000000;">id = 40 символ = (</span><br style="color:#000000;" /><span style="color:#000000;">id = 41 символ = )</span><br style="color:#000000;" /><span style="color:#000000;">id = 42 символ = *</span><br style="color:#000000;" /><span style="color:#000000;">id = 43 символ = +</span><br style="color:#000000;" /><span style="color:#000000;">id = 44 символ = ,</span><br style="color:#000000;" /><span style="color:#000000;">id = 45 символ = -</span><br style="color:#000000;" /><span style="color:#000000;">id = 46 символ = .</span><br style="color:#000000;" /><span style="color:#000000;">id = 47 символ = /</span><br style="color:#000000;" /><span style="color:#000000;">id = 48 символ = 0</span><br style="color:#000000;" /><span style="color:#000000;">id = 49 символ = 1</span><br style="color:#000000;" /><span style="color:#000000;">id = 50 символ = 2</span><br style="color:#000000;" /><span style="color:#000000;">id = 51 символ = 3</span><br style="color:#000000;" /><span style="color:#000000;">id = 52 символ = 4</span><br style="color:#000000;" /><span style="color:#000000;">id = 53 символ = 5</span><br style="color:#000000;" /><span style="color:#000000;">id = 54 символ = 6</span><br style="color:#000000;" /><span style="color:#000000;">id = 55 символ = 7</span><br style="color:#000000;" /><span style="color:#000000;">id = 56 символ = 8</span><br style="color:#000000;" /><span style="color:#000000;">id = 57 символ = 9</span><br style="color:#000000;" /><span style="color:#000000;">id = 58 символ = :</span><br style="color:#000000;" /><span style="color:#000000;">id = 59 символ = ;</span><br style="color:#000000;" /><span style="color:#000000;">id = 60 символ = &lt;</span><br style="color:#000000;" /><span style="color:#000000;">id = 61 символ = =</span><br style="color:#000000;" /><span style="color:#000000;">id = 62 символ = &gt;</span><br style="color:#000000;" /><span style="color:#000000;">id = 63 символ = ?</span><br style="color:#000000;" /><span style="color:#000000;">id = 64 символ = @</span><br style="color:#000000;" /><span style="color:#000000;">id = 65 символ = A</span><br style="color:#000000;" /><span style="color:#000000;">id = 66 символ = B</span><br style="color:#000000;" /><span style="color:#000000;">id = 67 символ = C</span><br style="color:#000000;" /><span style="color:#000000;">id = 68 символ = D</span><br style="color:#000000;" /><span style="color:#000000;">id = 69 символ = E</span><br style="color:#000000;" /><span style="color:#000000;">id = 70 символ = F</span><br style="color:#000000;" /><span style="color:#000000;">id = 71 символ = G</span><br style="color:#000000;" /><span style="color:#000000;">id = 72 символ = H</span><br style="color:#000000;" /><span style="color:#000000;">id = 73 символ = I</span><br style="color:#000000;" /><span style="color:#000000;">id = 74 символ = J</span><br style="color:#000000;" /><span style="color:#000000;">id = 75 символ = K</span><br style="color:#000000;" /><span style="color:#000000;">id = 76 символ = L</span><br style="color:#000000;" /><span style="color:#000000;">id = 77 символ = M</span><br style="color:#000000;" /><span style="color:#000000;">id = 78 символ = N</span><br style="color:#000000;" /><span style="color:#000000;">id = 79 символ = O</span><br style="color:#000000;" /><span style="color:#000000;">id = 80 символ = P</span><br style="color:#000000;" /><span style="color:#000000;">id = 81 символ = Q</span><br style="color:#000000;" /><span style="color:#000000;">id = 82 символ = R</span><br style="color:#000000;" /><span style="color:#000000;">id = 83 символ = S</span><br style="color:#000000;" /><span style="color:#000000;">id = 84 символ = T</span><br style="color:#000000;" /><span style="color:#000000;">id = 85 символ = U</span><br style="color:#000000;" /><span style="color:#000000;">id = 86 символ = V</span><br style="color:#000000;" /><span style="color:#000000;">id = 87 символ = W</span><br style="color:#000000;" /><span style="color:#000000;">id = 88 символ = X</span><br style="color:#000000;" /><span style="color:#000000;">id = 89 символ = Y</span><br style="color:#000000;" /><span style="color:#000000;">id = 90 символ = Z</span><br style="color:#000000;" /><span style="color:#000000;">id = 91 символ = [</span><br style="color:#000000;" /><span style="color:#000000;">id = 92 символ = \</span><br style="color:#000000;" /><span style="color:#000000;">id = 93 символ = ]</span><br style="color:#000000;" /><span style="color:#000000;">id = 94 символ = ^</span><br style="color:#000000;" /><span style="color:#000000;">id = 95 символ = _</span><br style="color:#000000;" /><span style="color:#000000;">id = 96 символ = `</span><br style="color:#000000;" /><span style="color:#000000;">id = 97 символ = a</span><br style="color:#000000;" /><span style="color:#000000;">id = 98 символ = b</span><br style="color:#000000;" /><span style="color:#000000;">id = 99 символ = c</span><br style="color:#000000;" /><span style="color:#000000;">id = 100 символ = d</span><br style="color:#000000;" /><span style="color:#000000;">id = 101 символ = e</span><br style="color:#000000;" /><span style="color:#000000;">id = 102 символ = f</span><br style="color:#000000;" /><span style="color:#000000;">id = 103 символ = g</span><br style="color:#000000;" /><span style="color:#000000;">id = 104 символ = h</span><br style="color:#000000;" /><span style="color:#000000;">id = 105 символ = i</span><br style="color:#000000;" /><span style="color:#000000;">id = 106 символ = j</span><br style="color:#000000;" /><span style="color:#000000;">id = 107 символ = k</span><br style="color:#000000;" /><span style="color:#000000;">id = 108 символ = l</span><br style="color:#000000;" /><span style="color:#000000;">id = 109 символ = m</span><br style="color:#000000;" /><span style="color:#000000;">id = 110 символ = n</span><br style="color:#000000;" /><span style="color:#000000;">id = 111 символ = o</span><br style="color:#000000;" /><span style="color:#000000;">id = 112 символ = p</span><br style="color:#000000;" /><span style="color:#000000;">id = 113 символ = q</span><br style="color:#000000;" /><span style="color:#000000;">id = 114 символ = r</span><br style="color:#000000;" /><span style="color:#000000;">id = 115 символ = s</span><br style="color:#000000;" /><span style="color:#000000;">id = 116 символ = t</span><br style="color:#000000;" /><span style="color:#000000;">id = 117 символ = u</span><br style="color:#000000;" /><span style="color:#000000;">id = 118 символ = v</span><br style="color:#000000;" /><span style="color:#000000;">id = 119 символ = w</span><br style="color:#000000;" /><span style="color:#000000;">id = 120 символ = x</span><br style="color:#000000;" /><span style="color:#000000;">id = 121 символ = y</span><br style="color:#000000;" /><span style="color:#000000;">id = 122 символ = z</span><br style="color:#000000;" /><span style="color:#000000;">id = 123 символ = {</span><br style="color:#000000;" /><span style="color:#000000;">id = 124 символ = |</span><br style="color:#000000;" /><span style="color:#000000;">id = 125 символ = }</span><br style="color:#000000;" /><span style="color:#000000;">id = 126 символ = ~</span><br style="color:#000000;" /><span style="color:#000000;">id = 127 символ = </span><br style="color:#000000;" /><span style="color:#000000;">id = 128 символ = Ђ</span><br style="color:#000000;" /><span style="color:#000000;">id = 129 символ = Ѓ</span><br style="color:#000000;" /><span style="color:#000000;">id = 130 символ = ‚</span><br style="color:#000000;" /><span style="color:#000000;">id = 131 символ = ѓ</span><br style="color:#000000;" /><span style="color:#000000;">id = 132 символ = „</span><br style="color:#000000;" /><span style="color:#000000;">id = 133 символ = …</span><br style="color:#000000;" /><span style="color:#000000;">id = 134 символ = †</span><br style="color:#000000;" /><span style="color:#000000;">id = 135 символ = †</span><br style="color:#000000;" /><span style="color:#000000;">id = 136 символ = €</span><br style="color:#000000;" /><span style="color:#000000;">id = 137 символ = ‰</span><br style="color:#000000;" /><span style="color:#000000;">id = 138 символ = Љ</span><br style="color:#000000;" /><span style="color:#000000;">id = 139 символ = ‹</span><br style="color:#000000;" /><span style="color:#000000;">id = 140 символ = Њ</span><br style="color:#000000;" /><span style="color:#000000;">id = 141 символ = Ќ</span><br style="color:#000000;" /><span style="color:#000000;">id = 142 символ = Ћ</span><br style="color:#000000;" /><span style="color:#000000;">id = 143 символ = Џ</span><br style="color:#000000;" /><span style="color:#000000;">id = 144 символ = ђ</span><br style="color:#000000;" /><span style="color:#000000;">id = 145 символ = ‘</span><br style="color:#000000;" /><span style="color:#000000;">id = 146 символ = ’</span><br style="color:#000000;" /><span style="color:#000000;">id = 147 символ = “</span><br style="color:#000000;" /><span style="color:#000000;">id = 148 символ = ”</span><br style="color:#000000;" /><span style="color:#000000;">id = 149 символ = •</span><br style="color:#000000;" /><span style="color:#000000;">id = 150 символ = –</span><br style="color:#000000;" /><span style="color:#000000;">id = 151 символ = —</span><br style="color:#000000;" /><span style="color:#000000;">id = 152 символ = ˜</span><br style="color:#000000;" /><span style="color:#000000;">id = 153 символ = ™</span><br style="color:#000000;" /><span style="color:#000000;">id = 154 символ = љ</span><br style="color:#000000;" /><span style="color:#000000;">id = 155 символ = ›</span><br style="color:#000000;" /><span style="color:#000000;">id = 156 символ = њ</span><br style="color:#000000;" /><span style="color:#000000;">id = 157 символ = ќ</span><br style="color:#000000;" /><span style="color:#000000;">id = 158 символ = ћ</span><br style="color:#000000;" /><span style="color:#000000;">id = 159 символ = џ</span><br style="color:#000000;" /><span style="color:#000000;">id = 160 символ =</span><br style="color:#000000;" /><span style="color:#000000;">id = 161 символ = Ў</span><br style="color:#000000;" /><span style="color:#000000;">id = 162 символ = ў</span><br style="color:#000000;" /><span style="color:#000000;">id = 163 символ = Ј</span><br style="color:#000000;" /><span style="color:#000000;">id = 164 символ = ¤</span><br style="color:#000000;" /><span style="color:#000000;">id = 165 символ = Ґ</span><br style="color:#000000;" /><span style="color:#000000;">id = 166 символ = ¦</span><br style="color:#000000;" /><span style="color:#000000;">id = 167 символ = §</span><br style="color:#000000;" /><span style="color:#000000;">id = 168 символ = Ё</span><br style="color:#000000;" /><span style="color:#000000;">id = 169 символ = ©</span><br style="color:#000000;" /><span style="color:#000000;">id = 170 символ = Є</span><br style="color:#000000;" /><span style="color:#000000;">id = 171 символ = «</span><br style="color:#000000;" /><span style="color:#000000;">id = 172 символ = ¬</span><br style="color:#000000;" /><span style="color:#000000;">id = 173 символ =</span><br style="color:#000000;" /><span style="color:#000000;">id = 174 символ = ®</span><br style="color:#000000;" /><span style="color:#000000;">id = 175 символ = Ї</span><br style="color:#000000;" /><span style="color:#000000;">id = 176 символ = °</span><br style="color:#000000;" /><span style="color:#000000;">id = 177 символ = ±</span><br style="color:#000000;" /><span style="color:#000000;">id = 178 символ = І</span><br style="color:#000000;" /><span style="color:#000000;">id = 179 символ = і</span><br style="color:#000000;" /><span style="color:#000000;">id = 180 символ = ґ</span><br style="color:#000000;" /><span style="color:#000000;">id = 181 символ = µ</span><br style="color:#000000;" /><span style="color:#000000;">id = 182 символ = ¶</span><br style="color:#000000;" /><span style="color:#000000;">id = 183 символ = ·</span><br style="color:#000000;" /><span style="color:#000000;">id = 184 символ = ё</span><br style="color:#000000;" /><span style="color:#000000;">id = 185 символ = №</span><br style="color:#000000;" /><span style="color:#000000;">id = 186 символ = є</span><br style="color:#000000;" /><span style="color:#000000;">id = 187 символ = »</span><br style="color:#000000;" /><span style="color:#000000;">id = 188 символ = ј</span><br style="color:#000000;" /><span style="color:#000000;">id = 189 символ = Ѕ</span><br style="color:#000000;" /><span style="color:#000000;">id = 190 символ = ѕ</span><br style="color:#000000;" /><span style="color:#000000;">id = 191 символ = ї</span><br style="color:#000000;" /><span style="color:#000000;">id = 192 символ = А</span><br style="color:#000000;" /><span style="color:#000000;">id = 193 символ = Б</span><br style="color:#000000;" /><span style="color:#000000;">id = 194 символ = В</span><br style="color:#000000;" /><span style="color:#000000;">id = 195 символ = Г</span><br style="color:#000000;" /><span style="color:#000000;">id = 196 символ = Д</span><br style="color:#000000;" /><span style="color:#000000;">id = 197 символ = Е</span><br style="color:#000000;" /><span style="color:#000000;">id = 198 символ = Ж</span><br style="color:#000000;" /><span style="color:#000000;">id = 199 символ = З</span><br style="color:#000000;" /><span style="color:#000000;">id = 200 символ = И</span><br style="color:#000000;" /><span style="color:#000000;">id = 201 символ = Й</span><br style="color:#000000;" /><span style="color:#000000;">id = 202 символ = К</span><br style="color:#000000;" /><span style="color:#000000;">id = 203 символ = Л</span><br style="color:#000000;" /><span style="color:#000000;">id = 204 символ = М</span><br style="color:#000000;" /><span style="color:#000000;">id = 205 символ = Н</span><br style="color:#000000;" /><span style="color:#000000;">id = 206 символ = О</span><br style="color:#000000;" /><span style="color:#000000;">id = 207 символ = П</span><br style="color:#000000;" /><span style="color:#000000;">id = 208 символ = Р</span><br style="color:#000000;" /><span style="color:#000000;">id = 209 символ = С</span><br style="color:#000000;" /><span style="color:#000000;">id = 210 символ = Т</span><br style="color:#000000;" /><span style="color:#000000;">id = 211 символ = У</span><br style="color:#000000;" /><span style="color:#000000;">id = 212 символ = Ф</span><br style="color:#000000;" /><span style="color:#000000;">id = 213 символ = Х</span><br style="color:#000000;" /><span style="color:#000000;">id = 214 символ = Ц</span><br style="color:#000000;" /><span style="color:#000000;">id = 215 символ = Ч</span><br style="color:#000000;" /><span style="color:#000000;">id = 216 символ = Ш</span><br style="color:#000000;" /><span style="color:#000000;">id = 217 символ = Щ</span><br style="color:#000000;" /><span style="color:#000000;">id = 218 символ = Ъ</span><br style="color:#000000;" /><span style="color:#000000;">id = 219 символ = Ы</span><br style="color:#000000;" /><span style="color:#000000;">id = 220 символ = Ь</span><br style="color:#000000;" /><span style="color:#000000;">id = 221 символ = Э</span><br style="color:#000000;" /><span style="color:#000000;">id = 222 символ = Ю</span><br style="color:#000000;" /><span style="color:#000000;">id = 223 символ = Я</span><br style="color:#000000;" /><span style="color:#000000;">id = 224 символ = а</span><br style="color:#000000;" /><span style="color:#000000;">id = 225 символ = б</span><br style="color:#000000;" /><span style="color:#000000;">id = 226 символ = в</span><br style="color:#000000;" /><span style="color:#000000;">id = 227 символ = г</span><br style="color:#000000;" /><span style="color:#000000;">id = 228 символ = д</span><br style="color:#000000;" /><span style="color:#000000;">id = 229 символ = е</span><br style="color:#000000;" /><span style="color:#000000;">id = 230 символ = ж</span><br style="color:#000000;" /><span style="color:#000000;">id = 231 символ = з</span><br style="color:#000000;" /><span style="color:#000000;">id = 232 символ = и</span><br style="color:#000000;" /><span style="color:#000000;">id = 233 символ = й</span><br style="color:#000000;" /><span style="color:#000000;">id = 234 символ = к</span><br style="color:#000000;" /><span style="color:#000000;">id = 235 символ = л</span><br style="color:#000000;" /><span style="color:#000000;">id = 236 символ = м</span><br style="color:#000000;" /><span style="color:#000000;">id = 237 символ = н</span><br style="color:#000000;" /><span style="color:#000000;">id = 238 символ = о</span><br style="color:#000000;" /><span style="color:#000000;">id = 239 символ = п</span><br style="color:#000000;" /><span style="color:#000000;">id = 240 символ = р</span><br style="color:#000000;" /><span style="color:#000000;">id = 241 символ = с</span><br style="color:#000000;" /><span style="color:#000000;">id = 242 символ = т</span><br style="color:#000000;" /><span style="color:#000000;">id = 243 символ = у</span><br style="color:#000000;" /><span style="color:#000000;">id = 244 символ = ф</span><br style="color:#000000;" /><span style="color:#000000;">id = 245 символ = х</span><br style="color:#000000;" /><span style="color:#000000;">id = 246 символ = ц</span><br style="color:#000000;" /><span style="color:#000000;">id = 247 символ = ч</span><br style="color:#000000;" /><span style="color:#000000;">id = 248 символ = ш</span><br style="color:#000000;" /><span style="color:#000000;">id = 249 символ = щ</span><br style="color:#000000;" /><span style="color:#000000;">id = 250 символ = ъ</span><br style="color:#000000;" /><span style="color:#000000;">id = 251 символ = ы</span><br style="color:#000000;" /><span style="color:#000000;">id = 252 символ = ь</span><br style="color:#000000;" /><span style="color:#000000;">id = 253 символ = э</span><br style="color:#000000;" /><span style="color:#000000;">id = 254 символ = ю</span><br style="color:#000000;" /><span style="color:#000000;">id = 255 символ = я</span></strong>
		</p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3533</guid><pubDate>Mon, 04 Mar 2019 07:19:31 +0000</pubDate></item><item><title>&#x420;&#x435;&#x448;&#x430;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430; &#x431;&#x430;&#x437;&#x44B; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</title><link>https://pawno-rus.com/topic/3532-reshaem-problemu-bolshogo-razmera-bazy-dannyh/</link><description><![CDATA[
<p>
	Привет, уважаемые пользователи.
</p>

<p>
	 
</p>

<p>
	Наверняка у каждого из вас была такая проблема, что размер бд был больше 2 048 кб (2 мб) - такой лимит в Denwer'e, да и вообще, в phpMyAdmin, на большинстве хостингов кстати тоже. Отсюда у нас проблема, как загрузить базу данных, если ёё размер, например, 100 мб (и такое было), можно конечно ее сжать, но в среднем, со 100 мб вы ее сожмётё до 10-20 мб. Именно поэтому я и решил написать этот урок, мы увеличим лимит базы данных. Итак, начнем.
</p>

<p>
	 
</p>

<p>
	<strong>1. </strong>Запускаем Denwer, кто соглашался с добавлением нового диска, те переходят в этот диск, а те, кто нет - ищите папку WebServers (куда Denwer устанавливали) и тоже переходите в эту папку.
</p>

<p>
	<strong>2. </strong>Переходите в папку "usr", дальше "local" и в "php5".
</p>

<p>
	<b>3. </b>В папке "php5" будет файл под названием "php.ini" (Если у вас не показывается тип файла, то включите в параметрах папок), открываете его через текстовый редактор, в моем случае "Notepad++"
</p>

<p>
	<b>4. </b>Нажимаете сочетание клавиш "CTRL + F" или просто "Поиск" и пишите туда: "post_max_size" - это максимальный размер отправляемого файла, если вы до этого ничего не меняли, то у вас будет так: "post_max_size = 2M", допустим, мы хотим увеличить лимит до 20 МБ, то выглядеть это будет так: "post_max_size = 20M" (M - не трогайте). Теперь нужно изменить лимит на загрузку базы данных, ищем строку "upload_max_filesize" - максимальный размер загружаемой базы данных, в стандартном виде она будет выглядеть так: "upload_max_filesize = 2M", чтобы увеличить  лимит, просто пишите нужное число, например до 20 МБ давайте, она примет такой вид "upload_max_filesize = 20M" (M - не трогать). 
</p>

<p>
	Сохраняете, делаете рестарт денвера и всё, лимит увеличен, и ничего не нужно сжимать.
</p>

<p>
	 
</p>

<p>
	<strong>ВНИМАНИЕ:</strong> "post_max_size" и "upload_max_filesize" должны иметь одинаковое значение (в нашем случае 20).
</p>
]]></description><guid isPermaLink="false">3532</guid><pubDate>Sun, 03 Mar 2019 21:20:03 +0000</pubDate></item></channel></rss>
