<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x442;&#x435;&#x43C;</title><link>https://pawno-rus.com/forum/70-poleznye-funkcii/</link><description>&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x442;&#x435;&#x43C;</description><language>ru</language><item><title>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43D;&#x430; &#x41C;&#x43E;&#x434; &#x41F;&#x430;&#x43A;</title><link>https://pawno-rus.com/topic/5439-proverka-na-mod-pak/</link><description><![CDATA[
<pre style="color:#272a34;">
Автор данного скрипта: Паленов Василий
Нужна помощь в настройке скрипта? Обращайтесь:
Присвоивать работу себе строго ЗАПРЕЩЕНО!
Дата создания скрипта/информации: 07.04.2021

</pre>

<pre class="ipsCode ipsCodeSubmitted" codelang="cpp" plaincode='#include &lt;a_samp&gt;&#13;
&#13;
#define COLOR_ERROR 0xFF0000FF//Красный - цвет, можете сменить&#13;
&#13;
public OnPlayerCommandText(playerid, cmdtext[]){&#13;
	SendClientMessage(playerid, COLOR_ERROR, "Проверка на пакет модификаций...");&#13;
	if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена&#13;
	{&#13;
		new packhash[64]; //Создадим массив, в котором будет находится этот хэш&#13;
		strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash&#13;
		if(strcmp(packhash, "hash", false))//Сюда вставляете хеш, который нашли.&#13;
		{&#13;
			SetTimerEx("NoPack",3000,false,"i",playerid);//Вызываем паблик, а точнее, текст, который в данном паблике.&#13;
		}&#13;
		return true;&#13;
	}&#13;
	return true;&#13;
}&#13;
&#13;
forward NoPack(playerid);&#13;
public NoPack(playerid)&#13;
{&#13;
	SendClientMessage(playerid, COLOR_ERROR, "У вас не установлен пакет модификаций. Скачайте у нас в группе: {FFFF00vk.com/russ_pawn_help");//Текст, который будет выводиться.&#13;
	Kick(playerid); // Кикает игрока&#13;
	return true;&#13;
}'>
<span><span class="mtk6">#include</span><span class="mtk1"> </span><span class="mtk6">&lt;</span><span class="mtk20">a_samp</span><span class="mtk6">&gt;</span></span>

<span><span class="mtk6">#define</span><span class="mtk1"> COLOR_ERROR </span><span class="mtk16">0xFF0000FF</span><span class="mtk8">//Красный - цвет, можете сменить</span></span>

<span><span class="mtk6">public</span><span class="mtk1"> OnPlayerCommandText(playerid, cmdtext[]){</span></span>
<span><span class="mtk1">    SendClientMessage(playerid, COLOR_ERROR, </span><span class="mtk20">"Проверка на пакет модификаций..."</span><span class="mtk1">);</span></span>
<span><span class="mtk1">    </span><span class="mtk6">if</span><span class="mtk1">(strfind(cmdtext, </span><span class="mtk20">"$response get_custom_hash"</span><span class="mtk1">, </span><span class="mtk6">true</span><span class="mtk1">) != -</span><span class="mtk7">1</span><span class="mtk1">) </span><span class="mtk8">//Если ответ получен и искомая строка найдена</span></span>
<span><span class="mtk1">    {</span></span>
<span><span class="mtk1">        </span><span class="mtk6">new</span><span class="mtk1"> packhash[</span><span class="mtk7">64</span><span class="mtk1">]; </span><span class="mtk8">//Создадим массив, в котором будет находится этот </span><span class="mtk8">хэш</span></span>
<span><span class="mtk1">        strmid(packhash, cmdtext, </span><span class="mtk7">26</span><span class="mtk1">, strlen(cmdtext)); </span><span class="mtk8">//Разделяем строку cmdtext и результат разделения </span><span class="mtk8">- искомый хэш - запишем в массив packhash</span></span>
<span><span class="mtk1">        </span><span class="mtk6">if</span><span class="mtk1">(strcmp(packhash, </span><span class="mtk20">"hash"</span><span class="mtk1">, </span><span class="mtk6">false</span><span class="mtk1">))</span><span class="mtk8">//Сюда вставляете хеш, который нашли.</span></span>
<span><span class="mtk1">        {</span></span>
<span><span class="mtk1">            SetTimerEx(</span><span class="mtk20">"NoPack"</span><span class="mtk1">,</span><span class="mtk7">3000</span><span class="mtk1">,</span><span class="mtk6">false</span><span class="mtk1">,</span><span class="mtk20">"i"</span><span class="mtk1">,playerid);</span><span class="mtk8">//Вызываем паблик, а точнее, текст, который в </span><span class="mtk8">данном паблике.</span></span>
<span><span class="mtk1">        }</span></span>
<span><span class="mtk1">        </span><span class="mtk6">return</span><span class="mtk1"> </span><span class="mtk6">true</span><span class="mtk1">;</span></span>
<span><span class="mtk1">    }</span></span>
<span><span class="mtk1">    </span><span class="mtk6">return</span><span class="mtk1"> </span><span class="mtk6">true</span><span class="mtk1">;</span></span>
<span><span class="mtk1">}</span></span>

<span><span class="mtk1">forward NoPack(playerid);</span></span>
<span><span class="mtk6">public</span><span class="mtk1"> NoPack(playerid)</span></span>
<span><span class="mtk1">{</span></span>
<span><span class="mtk1">    SendClientMessage(playerid, COLOR_ERROR, </span><span class="mtk20">"У вас не установлен пакет модификаций. Скачайте у </span><span class="mtk20">нас в группе: {FFFF00vk.com/russ_pawn_help"</span><span class="mtk1">);</span><span class="mtk8">//Текст, который будет выводиться.</span></span>
<span><span class="mtk1">    Kick(playerid); </span><span class="mtk8">// Кикает игрока</span></span>
<span><span class="mtk1">    </span><span class="mtk6">return</span><span class="mtk1"> </span><span class="mtk6">true</span><span class="mtk1">;</span></span>
<span><span class="mtk1">}</span></span>
</pre>

<pre style="color:#272a34;">

 </pre>
]]></description><guid isPermaLink="false">5439</guid><pubDate>Wed, 07 Apr 2021 05:41:42 +0000</pubDate></item><item><title>&#x41F;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x440;&#x43E;&#x442; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43E;&#x43B;&#x435;&#x441;&#x430;</title><link>https://pawno-rus.com/topic/2625-perevorot-transporta-na-kolesa/</link><description><![CDATA[
<p>
	<strong>1. Описание функции.</strong>
</p>

<p>
	Данная функция возвращает транспортное средство на колеса, если оно было перевернуто.
</p>

<p>
	 
</p>

<p>
	<strong>2. Код функции.</strong>
</p>

<pre class="ipsCode ipsCodeSubmitted" codelang="plaintext" plaincode="stock FlipVehicle(vehicleid) {&#13;
	new Float:angle, zAngle;&#13;
	result = GetVehicleZAngle(vehicleid, zAngle);&#13;
	if(!result)&#13;
		return 0;&#13;
	&#13;
	SetVehicleZAngle(vehicleid, angle);&#13;
	return 1;&#13;
}">
<span><span class="mtk1">stock FlipVehicle(vehicleid) {</span></span>
<span><span class="mtk1">    new Float:angle, zAngle;</span></span>
<span><span class="mtk1">    result = GetVehicleZAngle(vehicleid, zAngle);</span></span>
<span><span class="mtk1">    if(!result)</span></span>
<span><span class="mtk1">        return 0;</span></span>
<span><span class="mtk1">    </span></span>
<span><span class="mtk1">    SetVehicleZAngle(vehicleid, angle);</span></span>
<span><span class="mtk1">    return 1;</span></span>
<span><span class="mtk1">}</span></span>
</pre>

<p>
	 
</p>

<p>
	<strong>3. Возвращаемые значения.</strong>
</p>

<p>
	Функция FlipVehicle имеет два возвращаемых значения:
</p>

<ul>
<li>
		<strong>0 </strong>- указанный транспорт не существует;
	</li>
	<li>
		<strong>1</strong> - указанный транспорт успешно возвращен на колеса (независимо от того, был ли он перевернут)
	</li>
</ul>
<p>
	 
</p>

<p>
	<strong>4.</strong> <strong>Пример использования функции.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_6659_10" style="">
<span class="kwd">if</span><span class="pun">(</span><span class="typ">FlipVehicle</span><span class="pun">(</span><span class="pln">vehicleid</span><span class="pun">))</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Транспортное средство успешно перевернуто на колеса."</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Транспортное средство не существует на сервере."</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2625</guid><pubDate>Sun, 10 Jun 2018 21:17:44 +0000</pubDate></item><item><title>&#x41C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x447;&#x438;&#x441;&#x43B;&#x430;</title><link>https://pawno-rus.com/topic/2626-modul-chisla/</link><description><![CDATA[
<p>
	<strong>1. Описание макроса.</strong>
</p>

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

<p>
	 
</p>

<p>
	<strong>2. Исходный код макроса.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_9154_4" style="">
<span class="com">#if defined abs</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> abs
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> abs</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="pln"> </span><span class="pun">&lt;</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="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></pre>

<p>
	<strong>3. Пример использования макроса.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1890_4" style="">
<span class="kwd">new</span><span class="pln"> a </span><span class="pun">=</span><span class="pln"> random</span><span class="pun">(</span><span class="lit">100</span><span class="pun">)-</span><span class="lit">90</span><span class="pun">;</span><span class="pln"> </span><span class="com">// значение переменной может быть отрицательным и положительным</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"Исходное число: %d. Модуль числа: %d."</span><span class="pun">,</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> abs</span><span class="pun">(</span><span class="pln">a</span><span class="pun">));</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2626</guid><pubDate>Sun, 10 Jun 2018 21:30:16 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x432; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x435;</title><link>https://pawno-rus.com/topic/2633-proverit-chislo-v-diapazone/</link><description><![CDATA[
<p>
	<strong>1. Описание макроса.</strong>
</p>

<p>
	Данный макрос проверяет, находится ли число в указанном диапазоне от <strong>min</strong> до <strong>max</strong>.
</p>

<p>
	 
</p>

<p>
	<strong>2. Код макроса.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_4646_4" style="">
<span class="com">#if defined IsNumberInRange</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">IsNumberInRange</span><span class="pln">
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">IsNumberInRange</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="lit">2</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">1</span><span class="pun">+</span><span class="pln">cellmin</span><span class="pun">))</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="pun">(%</span><span class="lit">2</span><span class="pun">-(%</span><span class="lit">1</span><span class="pun">+</span><span class="pln">cellmin</span><span class="pun">)))</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_4646_6" style="">
<span class="kwd">new</span><span class="pln">
	a </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln">
	b </span><span class="pun">=</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln">
	c </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">;</span><span class="pln">
	
</span><span class="kwd">if</span><span class="pun">(</span><span class="typ">IsNumberInRange</span><span class="pun">(</span><span class="pln">b</span><span class="pun">,</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> c</span><span class="pun">))</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"b &gt;= a и b &lt;= c"</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"b не принадлежит промежутку [a;c]"</span><span class="pun">);</span></pre>

<p>
	Данный макрос равносилен следующему коду:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_4646_8" style="">
<span class="kwd">new</span><span class="pln">
	a </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln">
	b </span><span class="pun">=</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln">
	c </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">;</span><span class="pln">
	
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">b </span><span class="pun">&gt;=</span><span class="pln"> a </span><span class="pun">&amp;&amp;</span><span class="pln"> b </span><span class="pun">&lt;=</span><span class="pln"> c</span><span class="pun">)</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"b принадлежит промежутку [a;c]"</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"b не принадлежит промежутку [a;c]"</span><span class="pun">);</span></pre>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2633</guid><pubDate>Sun, 10 Jun 2018 22:00:26 +0000</pubDate></item><item><title>&#x41F;&#x43E;&#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x445;</title><link>https://pawno-rus.com/topic/2629-pomenyat-znacheniya-peremennyh/</link><description><![CDATA[
<p>
	<strong>1. Описание функции.</strong>
</p>

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

<p>
	 
</p>

<p>
	<strong>2. Код функции.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_9604_4" style="">
<span class="pln">stock swap</span><span class="pun">(&amp;</span><span class="pln">value1</span><span class="pun">,</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">value2</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="com">#emit lref.s.pri value1</span><span class="pln">
	</span><span class="com">#emit lref.s.alt value2</span><span class="pln">
	</span><span class="com">#emit sref.s.pri value2</span><span class="pln">
	</span><span class="com">#emit sref.s.alt value1</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Возвращаемые значения.</strong>
</p>

<p>
	Функция swap не имеет возвращаемых значений.
</p>

<p>
	 
</p>

<p>
	<strong>4. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_9604_6" style="">
<span class="kwd">new</span><span class="pln">
	a </span><span class="pun">=</span><span class="pln"> </span><span class="lit">8</span><span class="pun">,</span><span class="pln">
	b </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pun">;</span><span class="pln">
	
swap</span><span class="pun">(</span><span class="pln">a</span><span class="pun">,</span><span class="pln"> b</span><span class="pun">);</span><span class="pln"> </span><span class="com">// теперь a = 10, b = 8</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2629</guid><pubDate>Sun, 10 Jun 2018 21:43:56 +0000</pubDate></item><item><title>&#x412;&#x43E;&#x437;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x432; &#x441;&#x442;&#x435;&#x43F;&#x435;&#x43D;&#x44C;</title><link>https://pawno-rus.com/topic/2627-vozvedenie-chisla-v-stepen/</link><description><![CDATA[
<p>
	<strong>1. Описание макроса.</strong>
</p>

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

<p>
	 
</p>

<p>
	<strong>2. Код макросов.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2748_4" style="">
<span class="com">#if defined int_power</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> int_power
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> int_power</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">\
	floatround</span><span class="pun">(</span><span class="pln">floatpower</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">#if defined float_power</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> float_power
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> float_power floatpower</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Пример использования макросов.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2748_6" style="">
<span class="kwd">new</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> b</span><span class="pun">,</span><span class="pln"> power</span><span class="pun">;</span><span class="pln">

a </span><span class="pun">=</span><span class="pln"> random</span><span class="pun">(</span><span class="lit">100</span><span class="pun">);</span><span class="pln">
b </span><span class="pun">=</span><span class="pln"> </span><span class="typ">float</span><span class="pun">(</span><span class="pln">random</span><span class="pun">(</span><span class="lit">100</span><span class="pun">));</span><span class="pln">
power </span><span class="pun">=</span><span class="pln"> random</span><span class="pun">(</span><span class="lit">3</span><span class="pun">);</span><span class="pln">

printf</span><span class="pun">(</span><span class="str">"Число %d в степени %d равно %d."</span><span class="pun">,</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> power</span><span class="pun">,</span><span class="pln"> int_power</span><span class="pun">(</span><span class="pln">a</span><span class="pun">,</span><span class="pln"> power</span><span class="pun">));</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"Число %f в степени %d равно %f."</span><span class="pun">,</span><span class="pln"> b</span><span class="pun">,</span><span class="pln"> power</span><span class="pun">,</span><span class="pln"> float_power</span><span class="pun">(</span><span class="pln">b</span><span class="pun">,</span><span class="pln"> power</span><span class="pun">));</span></pre>

<p>
	<strong>4. Примечания по содержимому данной темы.</strong>
</p>

<p>
	Разработчиками библиотеки <strong>float.inc</strong> предусмотрена возможность возводить вещественные (дробные) числа в степень. Соответственно, для этого существует стандартная функция - <strong>floatpower</strong>. Поэтому использование макроса float_power вовсе необязательно. Он создан исключительно с целью "подгона" стилей функций возведения чисел в степень.
</p>
]]></description><guid isPermaLink="false">2627</guid><pubDate>Sun, 10 Jun 2018 21:37:48 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x440;&#x435;&#x434;&#x441;&#x442;&#x432;&#x430; &#x432; &#x440;&#x430;&#x434;&#x438;&#x443;&#x441;&#x435;</title><link>https://pawno-rus.com/topic/2619-proverka-nahozhdeniya-transportnogo-sredstva-v-radiuse/</link><description><![CDATA[
<p>
	<strong>1. Описание макроса.</strong>
</p>

<p>
	Данный макрос позволяет проверить, находится ли указанное транспортное средство в заданном радиусе. Это позволяет создать некий аналог функции IsPlayerInRangeOfPoint, синтаксис которых схож. Также Вы сможете обойтись без ручного написания лишних математических операций для проверки транспортного средства в заданном радиусе.
</p>

<p>
	 
</p>

<p>
	<strong>2. Код макроса.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2786_4" style="">
<span class="com">#if defined IsVehicleInRangeOfPoint</span><span class="pln">
	</span><span class="com">#undef</span><span class="pln"> </span><span class="typ">IsVehicleInRangeOfPoint</span><span class="pln">
</span><span class="com">#endif</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> </span><span class="typ">IsVehicleInRangeOfPoint</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="lit">2</span><span class="pun">,%</span><span class="lit">3</span><span class="pun">,%</span><span class="lit">4</span><span class="pun">)</span><span class="pln">\
	</span><span class="pun">(%</span><span class="lit">1</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="typ">GetVehicleDistanceFromPoint</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">2</span><span class="pun">,</span><span class="pln"> </span><span class="pun">%</span><span class="lit">3</span><span class="pun">,</span><span class="pln"> </span><span class="pun">%</span><span class="lit">4</span><span class="pun">))</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2786_7" style="">
<span class="kwd">if</span><span class="pun">(</span><span class="typ">IsVehicleInRangeOfPoint</span><span class="pun">(</span><span class="pln">vehicleid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">20.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">0.0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.0</span><span class="pun">))</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Транспорт находится в радиусе 20.0 от начальных координат."</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Транспорт не находится в радиусе 20.0 от начальных координат."</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2619</guid><pubDate>Sun, 10 Jun 2018 20:29:02 +0000</pubDate></item><item><title>&#x41F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438;</title><link>https://pawno-rus.com/topic/2606-perezapis-soderzhimogo-stroki/</link><description><![CDATA[
<p>
	<strong>1. Описание функции.</strong>
</p>

<p>
	Данная функция позволяет перезаписать содержимое строки. В чем ее относительное преимущество? Перезаписать содержимое строки можно ровным счетом также и через функцию format. Однако, она работает несколько медленнее, нежели strcat. Вся идея заключается в том, чтобы сначала очистить содержимое переменной, куда мы будем записывать свой текст, и лишь только потом записать его при помощи прикрепления нашего текста к чистой строке.
</p>

<p>
	 
</p>

<p>
	<strong>2. Код функции.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="pln">stock strcpy</span><span class="pun">(</span><span class="pln">dest</span><span class="pun">[],</span><span class="pln"> source</span><span class="pun">[],</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> size </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">sizeof</span><span class="pun">(</span><span class="pln">dest</span><span class="pun">))</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	dest</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"> EOS</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> strcat</span><span class="pun">(</span><span class="pln">dest</span><span class="pun">,</span><span class="pln"> source</span><span class="pun">,</span><span class="pln"> size</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Возвращаемые значения.</strong>
</p>

<p>
	Функция strcpy возвращает то же значение, что и strcat для данной ситуации. Соответственно, результатом работы функции strcpy будет длина текста, который мы помещаем в переменную dest.
</p>

<p>
	 
</p>

<p>
	<strong>4. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">new</span><span class="pln"> string</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"начало"</span><span class="pun">;</span><span class="pln">
printf</span><span class="pun">(</span><span class="pln">string</span><span class="pun">);</span><span class="pln">
strcpy</span><span class="pun">(</span><span class="pln">string</span><span class="pun">,</span><span class="pln"> </span><span class="str">"конец"</span><span class="pun">);</span><span class="pln">
printf</span><span class="pun">(</span><span class="pln">string</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2606</guid><pubDate>Sat, 09 Jun 2018 22:42:48 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x43D;&#x430; &#x43F;&#x443;&#x441;&#x442;&#x43E;&#x442;&#x443;</title><link>https://pawno-rus.com/topic/2605-proverka-stroki-na-pustotu/</link><description><![CDATA[
<p>
	<strong>1. Описание макроса.</strong>
</p>

<p>
	Данный макрос позволяет проверить, есть ли символы в указанной строке. Благодаря тому, что проверка идет исключительно при помощи стандартных проверок, системе не приходиться обращаться к нативной функции <strong>strlen</strong> в случае, если данная строка пустая. Поэтому рекомендуется проверять длину сначала при помощи данного макроса, затем через функцию strlen.
</p>

<p>
	 
</p>

<p>
	<strong>2. Код макроса</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3307_4" style="">
<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></pre>

<p>
	 
</p>

<p>
	<strong>3. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3307_6" style="">
<span class="kwd">new</span><span class="pln"> string</span><span class="pun">[</span><span class="lit">20</span><span class="pun">];</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">isnull</span><span class="pun">(</span><span class="pln">string</span><span class="pun">))</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"В переменную string ничего не записано"</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"В переменной string содержится какой-то текст"</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2605</guid><pubDate>Sat, 09 Jun 2018 22:27:54 +0000</pubDate></item><item><title>&#x418;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x44F; &#x43E; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435; "&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;"</title><link>https://pawno-rus.com/topic/2604-informaciya-o-razdele-poleznye-funkcii/</link><description><![CDATA[
<p>
	С сегодняшнего дня на форуме появился новый раздел - "Полезные функции". В данном разделе мы планируем публиковать функции и макросы, которые в большей или меньшей степени могут упростить Вашу жизнь. Для публикации функции или макроса необходимо создать новую тему, в названии которой указать суть разработки, а в описании, помимо приложения кода, следует добавить и пример использования.
</p>

<p>
	 
</p>

<p>
	Надеюсь, здесь Вы найдете много интересного <img alt=":)" data-emoticon="true" 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>
]]></description><guid isPermaLink="false">2604</guid><pubDate>Sat, 09 Jun 2018 22:13:49 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x433;&#x440;&#x43E;&#x43A;&#x430; &#x432; &#x43A;&#x432;&#x430;&#x434;&#x440;&#x430;&#x442;&#x435;</title><link>https://pawno-rus.com/topic/2230-proverka-nahozhdeniya-igroka-v-kvadrate/</link><description><![CDATA[
<p>
	<strong>1. Описание функции.</strong>
</p>

<p>
	Данная функция проверяет, находится ли игрок в определенном квадрате. Для того, чтобы правильно задать координаты квадрата, следует получить его четыре координаты: две координаты, находящиеся в левом нижнем углу и две координаты, находящиеся в правом верхнем углу. То есть по диагонали.
</p>

<p>
	 
</p>

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

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="Координаты квадрата.png" class="ipsImage ipsImage_thumbnailed" data-fileid="1546" data-unique="9terkuhn3" onerror="this.src='https://pawno-rus.ru/uploads/onerror.png'" src="//storage.yandexcloud.net/pawnorus/monthly_2018_06/5b1d90d0b5ecc_.png.7050822b2e93304c9d73a714a6f09c3e.png" onError="this.src='https://pawno-rus.ru/uploads/onerror.png'"></p>
	</div>
</div>

<p>
	 
</p>

<p>
	<strong>2. Код функции.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1598_7" style="">
<span class="pln">stock </span><span class="typ">IsPlayerInBox</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Float</span><span class="pun">:</span><span class="pln">min_x</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Float</span><span class="pun">:</span><span class="pln">min_y</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Float</span><span class="pun">:</span><span class="pln">max_x</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Float</span><span class="pun">:</span><span class="pln">max_y</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 class="typ">Float</span><span class="pun">:</span><span class="pln">x</span><span class="pun">,</span><span class="typ">Float</span><span class="pun">:</span><span class="pln">y</span><span class="pun">,</span><span class="typ">Float</span><span class="pun">:</span><span class="pln">z</span><span class="pun">;</span><span class="pln">
	</span><span class="typ">GetPlayerPos</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="kwd">return</span><span class="pln"> </span><span class="pun">((</span><span class="pln">min_x </span><span class="pun">&lt;=</span><span class="pln"> x </span><span class="pun">&lt;=</span><span class="pln"> max_x</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="pln">min_y </span><span class="pun">&lt;=</span><span class="pln"> y </span><span class="pun">&lt;=</span><span class="pln"> max_y</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>

<p>
	<strong>3. Возвращаемые значения.</strong>
</p>

<p>
	Данная функция возвращает одно из следующих значений:
</p>

<ul>
<li>
		<strong>0</strong> - игрок находится за пределами указанного квадрата;
	</li>
	<li>
		<strong>1</strong> - игрок находится в пределах указанного квадрата.
	</li>
</ul>
<p>
	 
</p>

<p>
	<strong>4. Пример использования.</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1598_9" style="">
<span class="kwd">static</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> </span><span class="typ">Float</span><span class="pun">:</span><span class="pln">jail_zone</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="lit">322.671722</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1436.344726</span><span class="pun">,</span><span class="pln"> </span><span class="com">// min_x, min_y</span><span class="pln">
	</span><span class="pun">-</span><span class="lit">154.671722</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1308.344726</span><span class="pln"> </span><span class="com">// max_x, max_y</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">IsPlayerInBox</span><span class="pun">(</span><span class="pln">playerid</span><span class="pun">,</span><span class="pln"> jail_zone</span><span class="pun">[</span><span class="lit">0</span><span class="pun">],</span><span class="pln"> jail_zone</span><span class="pun">[</span><span class="lit">1</span><span class="pun">],</span><span class="pln"> jail_zone</span><span class="pun">[</span><span class="lit">2</span><span class="pun">],</span><span class="pln"> jail_zone</span><span class="pun">[</span><span class="lit">3</span><span class="pun">]))</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Игрок находится в указанном квадрате."</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Игрок находится за пределами указанного квадрата."</span><span class="pun">);</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">2230</guid><pubDate>Sat, 24 Feb 2018 05:13:11 +0000</pubDate></item></channel></rss>
