RU/Meta.xml

From Multi Theft Auto: Wiki

Файл meta.xml представляет MTA набор метаданных, таких как название ресурса, включенные в него скрипты и какие файлы предварительно кэшировать для отправки клиенту, это лишь часть. В нем также объявляются "элементы" для дальнейшей работы с ними. Он написан в XML, который базируется на HTML, и является родителем XHTML.

Тэги

XML - текстовый формат данных, широко используемый для представления данных. MTA использует базирующийся на XML язык для описания метаданных ресурсов с использованием тегов ниже:

  • <info /> Информация об этом ресурсе, возможные для включения параметры (любые произвольные параметры могут быть использованы и прочитаны с помощью getResourceInfo):
    • author: Автор данного ресурса
    • version: Версия ресурса
    • name: Название ресурса
    • description: Краткое описание ресурса
    • type: Тип ресурса, может быть "gamemode" (игровой режим, мод), "script" (сценарий, скрипт), "map" (карта) или "misc" (разное).
  • <script /> Исходный код ресурса, возможные параметры:
    • src: Название файла с исходным кодом (скрипта)
    • type: Тип исходного кода: "client", "server" или "shared"
    • validate: Если установлено значение "false", то актуальность скрипта проверяться не будет.
    • cache: Кеширование для клиентского скрипта, если установлено "false", то скрипт не будет сохраняться на диске клиента.
  • <map /> Карта для мода, возможные параметры:
    • src: название .map-файла (может быть в т.ч. и путь, напр. "maps/filename.map")
    • dimension: Измерение, в котором карта будет загружена (опционально)
  • <file /> Клиентский файл. В основном, это картинки, .txd, .col, .dff или .xml файлы. Они будут скачаны клиентами при старте ресурса (или при заходе)
    • src: название клиентского файла (может быть в т.ч. и путь, напр. "images/image.png")
    • download: Должен ли файл быть послан клиенту автоматически или нет (опционально). По умолчанию "true", использование "no" или "false" будет значить, что файл не будет послан при старте ресурса, но сможет быть задействован позже через downloadFile (с версии 1.4)
  • <include /> Включение других ресурсов, которые будет использовать данный ресурс
    • resource: Название ресурса, который вы хотите чтоб стартовал с данным ресурсом
    • minversion: Минимальная версия, которая должна быть у ресурса (опционально)
    • maxversion: Максимальная версия, которая должна быть у ресурса (опционально)
  • <config /> Конфигурационный файл (.xml), к которому будет иметь доступ ресурс, допустимые параметры:
    • src: Название конфигурационного файла
    • type: Тип конфигурационного файла: "client" или "server"
  • <export /> Это экспортирует функции из данного ресурса, чтобы другие ресурсы могли ими пользоваться через call
    • function: Название функции
    • type Является ли экспортированная функция серверной или клиентской (допустимые значения: "client", "server" и "shared")
    • http: Может ли функция быть вызвана через HTTP (true/false)
  • <html />
    • src: Название HTTP-файла (может быть и путем)
    • default: Является ли html-файл тем, который будет показан по умолчанию при заходе в /имяРесурса/ на сервере. Только один html может быть по умолчанию, все остальные игнорируются. (true/false)
    • raw: Html-файл не анализируется Lua-интерпретатором и рассматривается как двоичные данные. Обязательно должно использоваться для двоичных файлов (в основном картинок) (true/false)
  • <settings> <setting name="" value=""/> </settings>: Большинство модов использует settings system, чтобы позволить администраторам серверов настраивать его по их желанию. Например, вы можете установить время раунда, а затем воспользоваться get и set для получения или изменения значений соответственно.
  • <min_mta_version /> Минимальная требуемая версия для правильной работы данного ресурса. При авторинге ресурсов, обычно минимальная версия должна быть установлена на в данный момент зарелиженную версию MTA:SA (на данный момент это "1.5.7").
    • client: Минимальная версия клиента
    • server: Минимальная версия сервера
  • <aclrequest /> Лист ACL-прав, которые понадобятся ресурсу.
  • <sync_map_element_data /> Контролирует, пересылаются ли данные элементов карты, такие как "PosX" и "DoubleSided" клиенту. Эти данные зачастую не требуются большинству модов или ресурсов. (Но следует отметить значимое исключения - map editor). При установке параметра в meta.xml мода, настройка применится ко всем картам, загруженным данным ресурсом.
    • false: Отключить пересылку данных элементов карты. Это может значительно уменьшить время закачки карты.
    • true: Включить пересылку данных элементов карты (по умолчанию).

Пример

Вот и пример meta-файла, использующего некоторые из упомянутых тегов:

<meta>
    <info author="Slothman" type="gamemode" name="Stealth" />
    <config src="help.xml" type="client"/>
    <min_mta_version client="1.5.7" server="1.5.7" />

    <script src="stealthmain_server.lua" />
    <script src="noiseblip.lua" />
    <script src="mission_timer.lua" />
    <script src="gadgets_server.lua" />
    <script src="gadgets_client.lua" type="client"/>
    <script src="stealthmain_client.lua" type="client"/>
    <script src="noisebar.lua" type="client"/>
    <script src="spycam.lua" type="client"/>
    <script src="riemann_z_demonstration.lua" type="client" cache="false"/>

    <file src="riot_shield.txd" />
    <file src="riot_shield.dff" />
    <file src="riot_shield.col" />
    <file src="armor.png" download="true"/>
    <file src="camera.png" download="false"/>
    <file src="cloak.png" />
    <file src="goggles.png" />
    <file src="mine.png" />
    <file src="radar.png" />
    <file src="shield.png" />

    <include resource="scoreboard" />
    <include resource="killmessages" />
    <include resource="maplimits" />

    <settings>
         <setting name="roundlimit" value="[6]" /> 
	 <setting name="teamdamage" value="[1]" /> 
	 <setting name="teambalance" value="[1]" /> 
	 <setting name="spazammo" value="[25]" /> 
	 <setting name="m4ammo" value="[100]" />
	 <setting name="shotgunammo" value="[25]" />
	 <setting name="sniperammo" value="[20]" />
	 <setting name="ak47ammo" value="[120]" />
	 <setting name="rifleammo" value="[40]" />
	 <setting name="deserteagleammo" value="[45]" />
	 <setting name="pistolammo" value="[132]" />
	 <setting name="uziammo" value="[150]" />
	 <setting name="tec9ammo" value="[150]" />
	 <setting name="silencedammo" value="[65]" />
	 <setting name="grenadeammo" value="[4]" />
	 <setting name="satchelammo" value="[4]" />
	 <setting name="teargasammo" value="[4]" />
	 <setting name="molatovammo" value="[4]" />
     </settings>

     <aclrequest>
	 <right name="function.startResource" access="true" />
	 <right name="function.stopResource" access="true" />
	 <right name="function.setPlayerMuted" access="true" />
     </aclrequest>

</meta>