<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gallardo994</id>
	<title>Multi Theft Auto: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gallardo994"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/Gallardo994"/>
	<updated>2026-06-19T20:04:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/Meta.xml&amp;diff=29245</id>
		<title>RU/Meta.xml</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/Meta.xml&amp;diff=29245"/>
		<updated>2012-01-30T18:56:28Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: Переведено Gallardo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Этот файл является одним из самых важных в МТА - в нём содержатся инструкции для интерпретатора какие файлы использовать. Так же, можно выводить чтение из скрипта в meta.xml, что позволяет задавать переменные в параметре '''&amp;lt;settings&amp;gt;''' и изменять их по ходу через админ-панель&lt;br /&gt;
&lt;br /&gt;
Примечание: Вы можете опробывать простой генератор meta.xml, созданный 50p: [http://forum.mtasa.com/viewtopic.php?f=91&amp;amp;t=22247 Ссылка]&lt;br /&gt;
&lt;br /&gt;
==Используемые теги==&lt;br /&gt;
Тэги в .xml такие же, как в . html. Файл meta.xml имеет множество тэгов, необходимых и опциональных. У них есть свои атрибуты.&lt;br /&gt;
Язык XML не умеет формировать тэги, он служит как простой способ хранения данных. Интерпретацией тэгов занимаются скрипты, то есть '''вы можете определять новые тэги в XML'''. Однако, MTA определяет несколько тэгов самостоятельно, они приведены ниже:&lt;br /&gt;
&lt;br /&gt;
*'''&amp;lt;info /&amp;gt;''' Информация о ресурсе (карта это, или скрипт, кто автор, какое описание)[[getResourceInfo]]):&lt;br /&gt;
** '''author:''' Автор&lt;br /&gt;
** '''version:''' Версия&lt;br /&gt;
** '''name:''' Название&lt;br /&gt;
** '''description:''' Описание&lt;br /&gt;
** '''type:''' Тип ресурса, может быть &amp;quot;gamemode&amp;quot;, &amp;quot;script&amp;quot;, &amp;quot;map&amp;quot; or &amp;quot;misc&amp;quot;.&lt;br /&gt;
*'''&amp;lt;script /&amp;gt;''' Скрипт ресурса&lt;br /&gt;
** '''src:''' Имя файла скрипта (с расширением)&lt;br /&gt;
** '''type:''' Тип скрипта: &amp;quot;Client&amp;quot; или &amp;quot;Server&amp;quot;&lt;br /&gt;
*'''&amp;lt;map /&amp;gt;''' Карта для режима игры&lt;br /&gt;
**'''src:''' .map имя файла (Может лежать в других папках. Например: &amp;quot;maps/filename.map&amp;quot;) (писать с расширением)&lt;br /&gt;
**'''dimension:''' Объём, в котором карта будет загружена (по желанию)&lt;br /&gt;
*'''&amp;lt;file /&amp;gt;''' Файл на стороне клиента. Как правило, эти образы. txd, .col, .dff или .xml файлы. Они будут скачаны с сервера на клиент&lt;br /&gt;
**'''src:''' Файл на стороне клиента (Может лежать в других папках. Например: &amp;quot;image/image.png&amp;quot;)&lt;br /&gt;
*'''&amp;lt;include /&amp;gt;''' Включать ресурс, когда он ресурс будет использоваться (Учтите, что при включении несуществующего ресурса скрипт не запустится)&lt;br /&gt;
**'''resource:''' Имя ресурса, которое вы хотите использовать для этого ресурса&lt;br /&gt;
**'''minversion:''' Минимальная версия ресурса (не обязательно)&lt;br /&gt;
**'''maxversion:''' Максимальная версия ресурса(не обязательно)&lt;br /&gt;
*'''&amp;lt;config /&amp;gt;''' Файл конфигураций (.XML) возможные параметры:&lt;br /&gt;
**'''src:''' Имя конфигурационного файла&lt;br /&gt;
**'''type:''' Тип файла конфигурации: &amp;quot;Client&amp;quot; или &amp;quot;Server&amp;quot;&lt;br /&gt;
*'''&amp;lt;export /&amp;gt;''' Тег экспорта функций, для последующего вызова этой функции. Подробнее о вызове: [[call]]&lt;br /&gt;
**'''function:''' Имя функции&lt;br /&gt;
**'''type''' Тип Экспорта (''client'' или ''server'')&lt;br /&gt;
**'''http:''' Может ли функция быть вызвана через HTTP (true/false)&lt;br /&gt;
*'''&amp;lt;html /&amp;gt;'''&lt;br /&gt;
**'''src:''' Имя HTTP файла (Может быть путь. Например: files/file.png)&lt;br /&gt;
**'''default:''' HTML-файл, который отображается по умолчанию при посещении /resourceName/ на сервере. Только один HTML-файл может быть по умолчанию, остальные игнорируются. (true/false)&lt;br /&gt;
**'''raw:''' HTML-файл не обрабатывается интерпретатором LUA, может рассматриваться как двоичные данные. Должен использоваться для двоичных файлов (В основном изображения) (true/false)&lt;br /&gt;
*'''&amp;lt;settings&amp;gt; &amp;lt;setting name=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt; &amp;lt;/settings&amp;gt;:''' Большенство режимов игры используют этот Тег для задавания переменных. В будущем, эти переменные могут быть прочитаны из админ-панели и записаны прямо во время выполнения скрипта.&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
Вот пример мета, в котором используются часть тегов&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;Slothman&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;Stealth&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;config src=&amp;quot;help.xml&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script src=&amp;quot;stealthmain_server.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;noiseblip.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;mission_timer.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;gadgets_server.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;gadgets_client.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;stealthmain_client.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;noisebar.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;spycam.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.txd&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.dff&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.col&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;armor.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;camera.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;cloak.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;goggles.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;mine.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;radar.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;shield.png&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;scoreboard&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;killmessages&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;maplimits&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;settings&amp;gt;&lt;br /&gt;
         &amp;lt;setting name=&amp;quot;roundlimit&amp;quot; value=&amp;quot;[6]&amp;quot; /&amp;gt; &amp;lt;!-- Длинна раунда в минутах --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teamdamage&amp;quot; value=&amp;quot;[1]&amp;quot; /&amp;gt; &amp;lt;!-- 0 для выключения командного убивания, 1 для включения --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teambalance&amp;quot; value=&amp;quot;[1]&amp;quot; /&amp;gt; &amp;lt;!-- Предел разницы количества игроков между командами --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;spazammo&amp;quot; value=&amp;quot;[25]&amp;quot; /&amp;gt; &amp;lt;!-- Сумма боеприпасов --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;m4ammo&amp;quot; value=&amp;quot;[100]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;shotgunammo&amp;quot; value=&amp;quot;[25]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;sniperammo&amp;quot; value=&amp;quot;[20]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;ak47ammo&amp;quot; value=&amp;quot;[120]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;rifleammo&amp;quot; value=&amp;quot;[40]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;deserteagleammo&amp;quot; value=&amp;quot;[45]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;pistolammo&amp;quot; value=&amp;quot;[132]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;uziammo&amp;quot; value=&amp;quot;[150]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;tec9ammo&amp;quot; value=&amp;quot;[150]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;silencedammo&amp;quot; value=&amp;quot;[65]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;grenadeammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;satchelammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teargasammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;molatovammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Scripting Concepts]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
[[en:Meta.xml]]&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/Meta.xml&amp;diff=29244</id>
		<title>RU/Meta.xml</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/Meta.xml&amp;diff=29244"/>
		<updated>2012-01-30T18:56:16Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: Переведено Gallardo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{translate}}&lt;br /&gt;
Этот файл является одним из самых важных в МТА - в нём содержатся инструкции для интерпретатора какие файлы использовать. Так же, можно выводить чтение из скрипта в meta.xml, что позволяет задавать переменные в параметре '''&amp;lt;settings&amp;gt;''' и изменять их по ходу через админ-панель&lt;br /&gt;
&lt;br /&gt;
Примечание: Вы можете опробывать простой генератор meta.xml, созданный 50p: [http://forum.mtasa.com/viewtopic.php?f=91&amp;amp;t=22247 Ссылка]&lt;br /&gt;
&lt;br /&gt;
==Используемые теги==&lt;br /&gt;
Тэги в .xml такие же, как в . html. Файл meta.xml имеет множество тэгов, необходимых и опциональных. У них есть свои атрибуты.&lt;br /&gt;
Язык XML не умеет формировать тэги, он служит как простой способ хранения данных. Интерпретацией тэгов занимаются скрипты, то есть '''вы можете определять новые тэги в XML'''. Однако, MTA определяет несколько тэгов самостоятельно, они приведены ниже:&lt;br /&gt;
&lt;br /&gt;
*'''&amp;lt;info /&amp;gt;''' Информация о ресурсе (карта это, или скрипт, кто автор, какое описание)[[getResourceInfo]]):&lt;br /&gt;
** '''author:''' Автор&lt;br /&gt;
** '''version:''' Версия&lt;br /&gt;
** '''name:''' Название&lt;br /&gt;
** '''description:''' Описание&lt;br /&gt;
** '''type:''' Тип ресурса, может быть &amp;quot;gamemode&amp;quot;, &amp;quot;script&amp;quot;, &amp;quot;map&amp;quot; or &amp;quot;misc&amp;quot;.&lt;br /&gt;
*'''&amp;lt;script /&amp;gt;''' Скрипт ресурса&lt;br /&gt;
** '''src:''' Имя файла скрипта (с расширением)&lt;br /&gt;
** '''type:''' Тип скрипта: &amp;quot;Client&amp;quot; или &amp;quot;Server&amp;quot;&lt;br /&gt;
*'''&amp;lt;map /&amp;gt;''' Карта для режима игры&lt;br /&gt;
**'''src:''' .map имя файла (Может лежать в других папках. Например: &amp;quot;maps/filename.map&amp;quot;) (писать с расширением)&lt;br /&gt;
**'''dimension:''' Объём, в котором карта будет загружена (по желанию)&lt;br /&gt;
*'''&amp;lt;file /&amp;gt;''' Файл на стороне клиента. Как правило, эти образы. txd, .col, .dff или .xml файлы. Они будут скачаны с сервера на клиент&lt;br /&gt;
**'''src:''' Файл на стороне клиента (Может лежать в других папках. Например: &amp;quot;image/image.png&amp;quot;)&lt;br /&gt;
*'''&amp;lt;include /&amp;gt;''' Включать ресурс, когда он ресурс будет использоваться (Учтите, что при включении несуществующего ресурса скрипт не запустится)&lt;br /&gt;
**'''resource:''' Имя ресурса, которое вы хотите использовать для этого ресурса&lt;br /&gt;
**'''minversion:''' Минимальная версия ресурса (не обязательно)&lt;br /&gt;
**'''maxversion:''' Максимальная версия ресурса(не обязательно)&lt;br /&gt;
*'''&amp;lt;config /&amp;gt;''' Файл конфигураций (.XML) возможные параметры:&lt;br /&gt;
**'''src:''' Имя конфигурационного файла&lt;br /&gt;
**'''type:''' Тип файла конфигурации: &amp;quot;Client&amp;quot; или &amp;quot;Server&amp;quot;&lt;br /&gt;
*'''&amp;lt;export /&amp;gt;''' Тег экспорта функций, для последующего вызова этой функции. Подробнее о вызове: [[call]]&lt;br /&gt;
**'''function:''' Имя функции&lt;br /&gt;
**'''type''' Тип Экспорта (''client'' или ''server'')&lt;br /&gt;
**'''http:''' Может ли функция быть вызвана через HTTP (true/false)&lt;br /&gt;
*'''&amp;lt;html /&amp;gt;'''&lt;br /&gt;
**'''src:''' Имя HTTP файла (Может быть путь. Например: files/file.png)&lt;br /&gt;
**'''default:''' HTML-файл, который отображается по умолчанию при посещении /resourceName/ на сервере. Только один HTML-файл может быть по умолчанию, остальные игнорируются. (true/false)&lt;br /&gt;
**'''raw:''' HTML-файл не обрабатывается интерпретатором LUA, может рассматриваться как двоичные данные. Должен использоваться для двоичных файлов (В основном изображения) (true/false)&lt;br /&gt;
*'''&amp;lt;settings&amp;gt; &amp;lt;setting name=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt; &amp;lt;/settings&amp;gt;:''' Большенство режимов игры используют этот Тег для задавания переменных. В будущем, эти переменные могут быть прочитаны из админ-панели и записаны прямо во время выполнения скрипта.&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
Вот пример мета, в котором используются часть тегов&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;Slothman&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;Stealth&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;config src=&amp;quot;help.xml&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script src=&amp;quot;stealthmain_server.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;noiseblip.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;mission_timer.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;gadgets_server.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;gadgets_client.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;stealthmain_client.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;noisebar.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;spycam.lua&amp;quot; type=&amp;quot;client&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.txd&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.dff&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;riot_shield.col&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;armor.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;camera.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;cloak.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;goggles.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;mine.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;radar.png&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;shield.png&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;scoreboard&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;killmessages&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;include resource=&amp;quot;maplimits&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;settings&amp;gt;&lt;br /&gt;
         &amp;lt;setting name=&amp;quot;roundlimit&amp;quot; value=&amp;quot;[6]&amp;quot; /&amp;gt; &amp;lt;!-- Длинна раунда в минутах --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teamdamage&amp;quot; value=&amp;quot;[1]&amp;quot; /&amp;gt; &amp;lt;!-- 0 для выключения командного убивания, 1 для включения --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teambalance&amp;quot; value=&amp;quot;[1]&amp;quot; /&amp;gt; &amp;lt;!-- Предел разницы количества игроков между командами --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;spazammo&amp;quot; value=&amp;quot;[25]&amp;quot; /&amp;gt; &amp;lt;!-- Сумма боеприпасов --&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;m4ammo&amp;quot; value=&amp;quot;[100]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;shotgunammo&amp;quot; value=&amp;quot;[25]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;sniperammo&amp;quot; value=&amp;quot;[20]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;ak47ammo&amp;quot; value=&amp;quot;[120]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;rifleammo&amp;quot; value=&amp;quot;[40]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;deserteagleammo&amp;quot; value=&amp;quot;[45]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;pistolammo&amp;quot; value=&amp;quot;[132]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;uziammo&amp;quot; value=&amp;quot;[150]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;tec9ammo&amp;quot; value=&amp;quot;[150]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;silencedammo&amp;quot; value=&amp;quot;[65]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;grenadeammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;satchelammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;teargasammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
	 &amp;lt;setting name=&amp;quot;molatovammo&amp;quot; value=&amp;quot;[4]&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Scripting Concepts]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
[[en:Meta.xml]]&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3&amp;diff=29243</id>
		<title>Введение в скриптинг</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3&amp;diff=29243"/>
		<updated>2012-01-30T18:45:57Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ресурсы являются ключевой частью MTA. Ресурс - это папка или zip архив, содержащий набор файлов, а также мета файл, описывающий серверу, как нужно загружать ресурс и из каких файлов он состоит. Ресурс играет практически ту же роль, что и программа в операционной системе - он может быть запущен и остановлен, а также могут быть запущены несколько ресурсов одновременно. Всё, что выполняется с помощью сценариев находится в ресурсах, что реализовано в сценариях: игровые режимы, игровые карты или что-либо ещё - все это ресурсы.&lt;br /&gt;
&lt;br /&gt;
'''Вам будет проще начать писать сценарии на языке Lua, если вы будете использовать специализированный Lua-редактор такой как [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] или [http://luaedit.luaforge.net/ LuaEdit]. Для дистрибутивов GNU/Linux возможно использовать встроенный по умолчанию (в большую часть ОС) Gedit''' &lt;br /&gt;
&lt;br /&gt;
==Создание простого сценария==&lt;br /&gt;
Для начала давайте сделаем так, чтобы по команде игрока &amp;quot;createvehicle&amp;quot; рядом с игроком создавалась машина.&lt;br /&gt;
&lt;br /&gt;
===Подготовка===&lt;br /&gt;
Как описывалось выше, ресурс является папкой или zip архивом, поэтому для начала мы должны создать папку. Название папки является названием ресурса. Это название используется для запуска или прекращения выполнения ресурса и для обращения к ресурсу в сценариях. В нашем примере, папку необходимо назвать ''commands''. &lt;br /&gt;
&lt;br /&gt;
Каждому ресурсу необходим файл ''meta.xml''. В нашем случае, мы хотим создать сценарий, который обеспечит пользователю выполнение нескольких простых команд, поэтому нам необходимо сообщить серверу о необходимости загрузки файла сценария, в нашем случае таким файлом сценария пусть будет ''script.lua''.&lt;br /&gt;
Содержимое файла ''meta.xml'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
  &amp;lt;info author=&amp;quot;YourName&amp;quot; description=&amp;quot;A few simple commands&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;script.lua&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам необходимо создать файл ''script.lua'', о котором упоминалось выше, в той же самой директории, где расположен файл ''meta.xml''. В результате содержимое папки ''commands'' должно быть таким:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/commands/meta.xml&lt;br /&gt;
/commands/script.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Написание сценария===&lt;br /&gt;
Начнем с содержимого файла ''script.lua''. Как описывалось выше, нам необходимо обеспечить команду, которая будет создавать машину рядом с игроком. Для начала нам необходимо создать функцию, которую мы будем вызывать, и обработчик команды, который позволит игроку вводить и выполнять команду в окне консоли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- создание функции, вызываемой обработчиком команды, с аргументами: thePlayer, command, vehicleModel&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- код сценария для создания машины&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- создание обработчика команды&lt;br /&gt;
addCommandHandler(&amp;quot;createvehicle&amp;quot;, createVehicleForPlayer)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Обратите внимание: Имена функций в коде примеров являются ссылками на wiki-статьи, описывающие функции в документации.''&lt;br /&gt;
&lt;br /&gt;
====О обработчиках команд====&lt;br /&gt;
Первым аргументом [[addCommandHandler]] название команды, введенной игроком, второй аргумент - функция, которая будет вызвана, в нашем случае это ''createVehicleForPlayer''.&lt;br /&gt;
&lt;br /&gt;
Если вы уже знакомы с написанием сценариев, то вам наверняка приходилось вызывать функции следующего вида:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
functionName(argument1, argument2, argument3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким способом мы вызываем функцию [[addCommandHandler]], а затем функцию ''createVehicleForPlayer''. Она, конечно же, может быть вызвана этим же способом отдельно. Но для нее мы используем обработчик команды, который вызывает ее в пожожей манере, но только внутри.&lt;br /&gt;
&lt;br /&gt;
Например: Какой-нибудь игрок в процессе игры введет в окно консоли команду &amp;quot;createvehicle 468&amp;quot; для создания машины Sanchez, обработчик команды вызовет функцию createVehicleForPlayer , так же, как '''если бы''' у нас в коде сценария была строка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
createVehiceForPlayer(thePlayer,&amp;quot;createvehicle&amp;quot;,&amp;quot;468&amp;quot;) -- thePlayer это игрок, который ввел команду&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Эта функция имеет несколько параметров: параметр, отвечающий за игрока, который ввел команду, параметр, имеющий в качестве значения введенную команду и параметр, содержащий текст, который следовал после команды, в нашем случае это &amp;quot;468&amp;quot; - идентификатор машины Sanchez. Первые два параметра такие же, как и у остальных обработчиков команд, о которых вы можете прочитать информацию на странице [[addEventHandler]]. Поэтому, вы всегда должны определить, по крайней мере, эти два параметра для использования чего-либо после них (например, для обработки текста, введенного после команды, как в нашем примере - идентификатора модели машины).&lt;br /&gt;
&lt;br /&gt;
''Обратите внимание: Вы можете добавить обработчик команды только ПОСЛЕ того, как вы определили функцию обработчика, иначе она не будет найдена. Порядок размещения функций имеет значение.''&lt;br /&gt;
&lt;br /&gt;
====Написание функции====&lt;br /&gt;
Для того, чтобы написать код созданной функции, нам необходимо продумать детали того, что мы хотим сделать:&lt;br /&gt;
* Получить позицию игроков для того, чтобы знать куда поместить новую машину (допустим, что мы хотим, чтобы она появилась справа от игрока)&lt;br /&gt;
* Вычислить позицию того места, куда необходимо поместить машину (это необходимо для того, чтобы она не появилась на месте игрока)&lt;br /&gt;
* Создать машину&lt;br /&gt;
* Проверить успешность создания машины или вывести сообщение&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы выполнить поставленные задачи, мы должны использовать несколько функций. Чтобы найти подходящую для решения задачи функцию, мы должны посмотреть страницу [[Scripting Functions|Список функций серверного приложения]]. Сначала нам необходима функция для получения позиции игроков. Так как игроки относятся к [[RU/Element|'''элементам''']] (основным классам, описывающим игровые сущности или, проще говоря, игровые объекты), то мы сначала переходим к странице [[Server_Scripting_Functions#Element_functions|'''Element functions''']], где и находим функцию [[getElementPosition]]. Щелкнув по названию функции в списке, мы получаем описание функции. Тут же мы можем посмотреть синтаксис, возвращаемое значение и даже пример ее использования. Синтаксис показывает нам, какие аргументы необходимо передать функции.&lt;br /&gt;
&lt;br /&gt;
функция [[getElementPosition]], имеет следующий синтаксис:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element theElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Три ''float'' перед названием функции - это тип возвращаемого значения. В этом случае, подобное означает, что функция возвращает три числа с плавающей точкой. В круглых скобках, вы можете увидеть аргументы, которые необходимо передать функции. В нашем случае имеется только аргумент типа ''element'', содержащий объект, чью позицию мы хотим получить (в нашем примере это игрок).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
    -- получить позицию и поместить ее в переменные x,y,z&lt;br /&gt;
    -- (local обозначает локальный контекст: переменные существуют только в текущей области действия. В данном случае - в пределах текущей функции)&lt;br /&gt;
    local x,y,z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы хотим гарантировать то, что машина не создастся прямо на игроке, поэтому мы добавляем небольшое значение переменной ''x'', что дает на возможность создать машину правее от игрока.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
    local x,y,z = getElementPosition(thePlayer) -- получить позицию игрока&lt;br /&gt;
    x = x + 5 -- добавить 5 единиц к позиции по оси x&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам необходима другая функция, а именно функция для создания машины. Мы снова начинаем ее поиск в [[Scripting Functions|списке функций серверного приложения]], в этот раз - так как речь идет о машинах - то ищем функцию в разделе [[Scripting_Functions#Vehicle_functions|'''Vehicle functions''']], в котором мы выбираем  [[createVehicle]]. В синтаксисе этой функции, нам необходимо только возвращаемое значение (которое является единственным), типа ''vehicle'', относящееся к ''element''. Это возвращаемое значение указывает на машину, которая только что создана. Также, вы вероятно обратили внимание на то, что некоторые аргументы заключены в квадратные скобки [ ], которые означают, что этот аргумент функции необязателен.&lt;br /&gt;
&lt;br /&gt;
Теперь у нас имеются все аргументы, необходимые для выполнения команды [[createVehicle]] внутри нашей функции: мы вычислили позицию по переменным ''x,y,z'' и знаем идентификатор модели, которую мы хотим создать с помощью команды (&amp;quot;createvehicle 468&amp;quot;) и мы имеем доступ к функции через переменную ''vehicleModel''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
    local x,y,z = getElementPosition(thePlayer) -- получить позицию игрока&lt;br /&gt;
    x = x + 5 -- добавить 5 единиц измерения к координате x позиции игрока&lt;br /&gt;
    -- создать машину и сохранить возвращенный элемент vehicle в переменной ''createdVehicle''&lt;br /&gt;
    local createdVehicle = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Конечно, этот код может быть улучшен многими способами. По крайней мере, нам необходимо добавить проверку на успешное создание машины. На странице [[createVehicle]] мы можем прочитать в разделе '''Returns''' о том, что функция возвращает ''false'' в том случае, если неполучилось создать машину. Поэтому, нам достаточно проверить значение переменной ''createVehicle''.&lt;br /&gt;
&lt;br /&gt;
Теперь у нас имеется полность завершенный сценарий:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
    local x,y,z = getElementPosition(thePlayer) -- получить позицию игрока&lt;br /&gt;
    x = x + 5 -- добавить 5 единиц измерения к координате x позиции игрока&lt;br /&gt;
    local createdVehicle = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
    -- проверка на возврат значения ''false''&lt;br /&gt;
    if (createdVehicle == false) then&lt;br /&gt;
        -- если возвращено ''false'', то необходимо вывести сообщение пользователю в окно чата, но только тому игроку, который создавал машину.&lt;br /&gt;
        outputChatBox(&amp;quot;Failed to create vehicle.&amp;quot;,thePlayer)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;createvehicle&amp;quot;, createVehicleForPlayer)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как вы можете увидеть, в последнем примере кода появилась еще одна функция [[outputChatBox]]. О ней вы можете самостоятельно узнать, посмотрев соответствующую страницу с документацией по этой функции.&lt;br /&gt;
&lt;br /&gt;
==Что вы узнали==&lt;br /&gt;
Теперь вам уже немного известны файлы ресурсов, обработчики команд и принципы поиска функций в документации, но необходимо знать больше. Следующий раздел проведет краткий обзор по некоторым ресурсам, сопровождая при необходимости изложение материала ссылками на соответствующие страницы.&lt;br /&gt;
&lt;br /&gt;
===Сценарии клиентской и серверной стороны===&lt;br /&gt;
Вы возможно уже видели эти или похожие термины (сервер/клиент) на этом wiki-сайте. MTA поддерживает не только сценарии, выполняющиеся на сервере и обеспечивающие выполнение команд(похожих на ту, что была описаны выше) и другие возможности, но и также сценарии, выполняющиеся клиентским приложением MTA, которое игроки используют для соединения с игровым сервером. Причиной этому является тот факт, что некоторые возможности MTA обеспечиваются приложением клиентской стороны (например, графический пользовательский интерфейс). Другие возможности MTA работают лучше на стороне сервера или принципиально не могут быть реализованы на клиентской стороне и поэтому выполняются на стороне сервера.&lt;br /&gt;
&lt;br /&gt;
Многие сценарии, которые вы будете писать (игровые режимы, карты) вероятно будут выполняться на стороне сервера, подобно тому, который был написан выше. Если вам необходимо выполнить что-либо, что нельзя выполнить на стороне сервера, вы вероятно сможете это выполнить на стороне клиента. Например, для сценария клиентской стороны, вы должны создать обычный файл сценария (например, с названием ''client.lua'') и определить его в файле meta.xml, следующим образом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Атрибут ''type'' по умолчанию имеет значение 'server', поэтому вам необходимо определять его значение для сценариев клиентской стороны. После того, как вы выполнили это, сценарий клиентской стороны будет скачиваться на компьютер игрока при его соединении с сервером. Об этом вы можете также прочитать в статье [[Client side scripts|Сценарии клиентской стороны]].&lt;br /&gt;
&lt;br /&gt;
===Более сложные ресурсы===&lt;br /&gt;
Предыдущий раздел кратко показал, как надо добавлять сценарии клиентской стороны в ресурсы, но на самом деле все обстоит немного сложнее. Как упоминалось в самом начале этой страницы, ресурсы могут быть чем угодно. Их цель - определить то, для чего они нужны. Далее приведены наиболее часто используемые ресурсы. Рассмотрим их содержимое, содержимое файла ''meta.xml'' и то, для чего они предназначены:&lt;br /&gt;
&lt;br /&gt;
====Пример 1: Вспомогательный сценарий====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
    /meta.xml&lt;br /&gt;
    /commands.lua&lt;br /&gt;
    /client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;admin commands&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Файл ''commands.lua'' обеспечивает выполнение некоторых команд администратора, например, назначение наказаний провинившимся игрокам, или что-либо другое, что может быть полезным для администрирования сервера&lt;br /&gt;
* Файл ''client.lua'' обеспечивает графический пользовательский интерфейс для легкого выполнения описанных действий&lt;br /&gt;
&lt;br /&gt;
Этот пример ресурса может быть в состоянии выполнения всё время (даже может запускаться автоматически при начале работы сервера), так как он может использоваться в течении всего игрового процесса и изменять игровой процесс, в случае если администратор решит выполнить какое-либо действие.&lt;br /&gt;
&lt;br /&gt;
====Пример 2: Игровой режим ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
    /meta.xml&lt;br /&gt;
    /counterstrike.lua&lt;br /&gt;
    /buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counterstrike remake&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Файл ''counterstrike.lua'' содержит следующие возможности:&lt;br /&gt;
** Позволяет игрокам выбирать команду, за которую они хотят играть и присоединяться к команде&lt;br /&gt;
** Обеспечивает игрокам возможность выбора оружия, цели игры и команды (информация подобного характера может также содержаться в файле игровой карты - об этом будет сказано ниже)&lt;br /&gt;
** Определяет правила игры,например, момент наступления конца раунда, какие действия должны произойти после гибели персонажа игрока.&lt;br /&gt;
** .. и возможно что-либо ещё&lt;br /&gt;
* Файл ''buymenu.lua'' - сценарий клиентской стороны для создания меню покупки оружия.&lt;br /&gt;
&lt;br /&gt;
Этот пример может быть отнесен к игровому режиму потому как он не только связан с процессом игры, но и фактически определяет правила игры. Атрибут ''type'' показывает, что этот пример работает в [[Map manager]], хотя и существует другой ресурс, написанный QA Team для управления игровыми режимами и загрузки игровых карт. Его рекомендуется использовать, потому как ваш игровой решим будет основан на принципах, поддерживаемых им.&lt;br /&gt;
&lt;br /&gt;
Это также означает, что игровой режим вероятно не сможет быть запущен без игровой карты. Игровые режимы должны всегда стремиться настолько использовать общие принципы, насколько это возможно. Далее приведен пример игровой карты.&lt;br /&gt;
&lt;br /&gt;
====Пример 3: Игровая карта====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
    /meta.xml&lt;br /&gt;
    /airport.map&lt;br /&gt;
    /airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counterstrike airport map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Файл ''airport.map'' в XML файле, обеспечивает информацию о игровой карте игровому режиму, которая может включать:&lt;br /&gt;
** Места, где на карте должны появляться игроки, с каким оружием, какие команды имеются&lt;br /&gt;
** Какие цели имеются&lt;br /&gt;
** Погода, время, ограничение времени&lt;br /&gt;
** Возможные машины&lt;br /&gt;
* файл ''airport.lua'' может содержать возможности характерные для конкретной игровой карты, которые в свою очередь могуть включать:&lt;br /&gt;
** Реализацию действий, которые могут произойти после открытия двери, ворот и т.п., взрыва чего-либо.&lt;br /&gt;
** Создание и перемещение некоторых игровых объектов, или управление объектами, создаваемыми в файле .map&lt;br /&gt;
** .. что-либо ещё, что может относиться к конкретной карте&lt;br /&gt;
&lt;br /&gt;
Как вы можете увидеть, значение атрибута ''type'' изменено на 'map', это говорит [[Map manager]] о том, что этот ресурс является игровой картой, а атрибут ''gamemodes'' говорит о том, к каким игровым режимам относится эта игровая карта. В примере игровая карта относится к игровому режиму, описанному в примере выше.&lt;br /&gt;
Для ресурса &amp;quot;игровая карта&amp;quot; может быть написан отдельный сценарий. Конечно, это не является необходимым для всех игровых карт, но в то же время открывает создателям игровых карт широкие возможности для создания своих собственных правил игры в игровом режиме, для которого они создают карту.&lt;br /&gt;
&lt;br /&gt;
Файл ''airport.map'' может иметь следующий вид:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;terrorists&amp;gt;&lt;br /&gt;
        &amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/terrorists&amp;gt;&lt;br /&gt;
    &amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
        &amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;    &lt;br /&gt;
    &amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;    &lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда игровой режим запущен с игровой картой, mapmanager автоматически запускает ресурсы игровой карты и информация, которую они содержат может быть считана ресурсом игрового режима. При изменении игровой карты, выполнение ресурса текущей игровой карты останавливается и запускается выполнение ресурса следующей игровой карты.&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
События являются механизмом MTA сообщать сценариям о том, что произошло. Например, при смерти персонажа игрока, срабатывает событие [[onPlayerWasted]]. В нем выполняются какие-либо действия, которые необходимо выполнить при смерти персонажа игрока, вы можете подготовить что-то подобное для добавления обработчика команды, как показано в [[#Написание_сценария|разделе &amp;quot;Написание сценария&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
В этом примере выводится сообщение, содержащее имя игрока, персонаж которого погиб:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function playerDied(totalAmmo, killer, killerWeapon, bodypart)&lt;br /&gt;
    outputChatBox(getPlayerName(source)..&amp;quot; died!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),playerDied)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вместо отображения необходимых параметров, на страницах документации, посвященных событиям, показано какие параметры передаются в функцию-обработчик, подобно тому как сделано в [[#О_обработчиках_команд|обработчике команды]], только с тем отличием, что используется не команда, а событие. Другим немаловажным аспектом является переменная ''source'', которая имеется в обработчике функций. Она не добавляется в список параметров функции, но тем не менее используется. Она принимает различные значения в зависимости от события. Для событий, относящихся к игроку (как в в примере выше) она принимает значение типа ''player'', которое относится к ''элементам'' (''element'').&lt;br /&gt;
&lt;br /&gt;
==Заключение==&lt;br /&gt;
Теперь вы знаете основные аспекты, использующиеся при написании сценариев в MTA, а также ознакомились с частью документации. [[RU/Main Page|Главная страница]] содержит ссылки на более подробную информацию, учебники и справочники, которые при желании позволят вам более глубже узнать многие вещи о MTA.&lt;br /&gt;
&lt;br /&gt;
[[en:Scripting Introduction]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/setFPSLimit&amp;diff=29242</id>
		<title>RU/setFPSLimit</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/setFPSLimit&amp;diff=29242"/>
		<updated>2012-01-30T18:44:28Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: /* Пример */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server function}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
Для тех, кто не знает что такое FPS (Frames Per Second), рекомендовано зайти на [http://ru.wikipedia.org/wiki/FPS  Эту страницу]&lt;br /&gt;
&lt;br /&gt;
==Синтаксис== &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool setFPSLimit ( int fpsLimit )         &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Требуемые Аргументы=== &lt;br /&gt;
*'''fpsLimit:''' Числовое значение от 1 до 100, которое будет означать лимит FPS. Так же, как вариант, можно убрать лимит вообще - тогда потребуется fpsLimit как ''0'' или ''false''.&lt;br /&gt;
&lt;br /&gt;
===Возвращение===&lt;br /&gt;
Возвращает ''true'' если всё прошло успешно, в ином случае - ''false''&lt;br /&gt;
&lt;br /&gt;
==Пример== &lt;br /&gt;
Этот пример позволяет администраторам ставить новый лимит на FPS при помощи команды ''setfps'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;function fpsFunction( player, command, limit ) -- First define the function&lt;br /&gt;
  if hasObjectPermissionTo ( player, &amp;quot;function.setFPSLimit&amp;quot; ) and limit then -- Если у игрока есть админ-права и если было указано FPS то...&lt;br /&gt;
    setFPSLimit ( limit ) -- Поставить лимит FPS&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
addCommandHandler ( &amp;quot;setfps&amp;quot;, fpsFunction ) -- Присоединяем команду setfps к функции fpsFunction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Рекомендовано к просмотру==&lt;br /&gt;
{{Server functions}}&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/setFPSLimit&amp;diff=29241</id>
		<title>RU/setFPSLimit</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/setFPSLimit&amp;diff=29241"/>
		<updated>2012-01-30T18:43:50Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: Переведено Gallardo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server function}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
Для тех, кто не знает что такое FPS (Frames Per Second), рекомендовано зайти на [http://ru.wikipedia.org/wiki/FPS  Эту страницу]&lt;br /&gt;
&lt;br /&gt;
==Синтаксис== &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool setFPSLimit ( int fpsLimit )         &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Требуемые Аргументы=== &lt;br /&gt;
*'''fpsLimit:''' Числовое значение от 1 до 100, которое будет означать лимит FPS. Так же, как вариант, можно убрать лимит вообще - тогда потребуется fpsLimit как ''0'' или ''false''.&lt;br /&gt;
&lt;br /&gt;
===Возвращение===&lt;br /&gt;
Возвращает ''true'' если всё прошло успешно, в ином случае - ''false''&lt;br /&gt;
&lt;br /&gt;
==Пример== &lt;br /&gt;
Этот пример позволяет администраторам ставить новый лимит на FPS при помощи команды ''setfps'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;function fpsFunction( player, command, limit ) -- First define the function&lt;br /&gt;
  if hasObjectPermissionTo ( player, &amp;quot;function.setFPSLimit&amp;quot; ) and limit then -- Если у игрока есть админ-права и если было указано FPS то...&lt;br /&gt;
    setFPSLimit ( limit ) -- Поставить лимит FPS&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
addCommandHandler ( &amp;quot;setfps&amp;quot;, fpsFunction ) -- Присоединяем команду ''setfps'' к функции 'fpsFunction'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Рекомендовано к просмотру==&lt;br /&gt;
{{Server functions}}&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/takeWeapon&amp;diff=29238</id>
		<title>RU/takeWeapon</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/takeWeapon&amp;diff=29238"/>
		<updated>2012-01-30T18:33:53Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: /* Пример */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server  function}}&lt;br /&gt;
Эта функция отбирает у игрока оружение&lt;br /&gt;
&lt;br /&gt;
==Синтаксис==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;bool takeWeapon ( player thePlayer, int weaponId )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Требуемые Аргументы===&lt;br /&gt;
*'''thePlayer''': Игрок, в виде объекта&lt;br /&gt;
*'''weaponId''': Числовое значение оружия, которое нужно убрать&lt;br /&gt;
&lt;br /&gt;
===Возвращения===&lt;br /&gt;
Возвращает ''true'' если всё прошло успешно, в ином случае - ''false''&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
Этот код забирает у игрока оружие с ID 28 при написании /takeWeapon в чате. Если всё прошло успешно, то в чате увидите сообщение&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function takeMyWeapon(player)&lt;br /&gt;
local ifItIsTrue = takeWeapon(player,28)&lt;br /&gt;
if (ifIsIsTrue == true) then&lt;br /&gt;
outputChatBox(&amp;quot;Successfully took the weapon!&amp;quot;,player,204,255,0)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;takeWeapon&amp;quot;,takeMyWeapon)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Рекомендовано к просмотру==&lt;br /&gt;
{{RU/Weapon functions}}&lt;br /&gt;
[[en:takeWeapon]]&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=RU/takeWeapon&amp;diff=29237</id>
		<title>RU/takeWeapon</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=RU/takeWeapon&amp;diff=29237"/>
		<updated>2012-01-30T18:33:30Z</updated>

		<summary type="html">&lt;p&gt;Gallardo994: Переведено Gallardo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server  function}}&lt;br /&gt;
Эта функция отбирает у игрока оружение&lt;br /&gt;
&lt;br /&gt;
==Синтаксис==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;bool takeWeapon ( player thePlayer, int weaponId )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Требуемые Аргументы===&lt;br /&gt;
*'''thePlayer''': Игрок, в виде объекта&lt;br /&gt;
*'''weaponId''': Числовое значение оружия, которое нужно убрать&lt;br /&gt;
&lt;br /&gt;
===Возвращения===&lt;br /&gt;
Возвращает ''true'' если всё прошло успешно, в ином случае - ''false''&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
This example removes weapon 28 from player ID 1. If successful, it displays a message in the chat box.&lt;br /&gt;
Этот код забирает у игрока оружие с ID 28 при написании /takeWeapon в чате. Если всё прошло успешно, то в чате увидите сообщение&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function takeMyWeapon(player)&lt;br /&gt;
local ifItIsTrue = takeWeapon(player,28)&lt;br /&gt;
if (ifIsIsTrue == true) then&lt;br /&gt;
outputChatBox(&amp;quot;Successfully took the weapon!&amp;quot;,player,204,255,0)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;takeWeapon&amp;quot;,takeMyWeapon)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Рекомендовано к просмотру==&lt;br /&gt;
{{RU/Weapon functions}}&lt;br /&gt;
[[en:takeWeapon]]&lt;/div&gt;</summary>
		<author><name>Gallardo994</name></author>
	</entry>
</feed>