RU/Meta.xml: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(one thing left to finish :))
Line 1: Line 1:
Этот файл является одним из самых важных в МТА - в нём содержатся инструкции для интерпретатора какие файлы использовать. Так же, можно выводить чтение из скрипта в meta.xml, что позволяет задавать переменные в параметре '''<settings>''' и изменять их по ходу через админ-панель
Файл ''meta.xml'' представляет MTA набор метаданных, таких как название ресурса, включенные в него скрипты и какие файлы предварительно кэшировать для отправки клиенту, это лишь часть. В нем также объявляются "элементы" для дальнейшей работы с ними. Он написан в XML, который базируется на HTML, и является родителем XHTML.


Примечание: Вы можете опробывать простой генератор meta.xml, созданный 50p: [http://forum.mtasa.com/viewtopic.php?f=91&t=22247 Ссылка]
=Тэги=
XML - текстовый формат данных, широко используемый для представления данных. MTA использует базирующийся на XML язык для описания метаданных ресурсов с использованием тегов ниже:


==Используемые теги==
*'''<info />''' Информация об этом ресурсе, возможные для включения параметры (любые произвольные параметры могут быть использованы и прочитаны с помощью [[getResourceInfo]]):
Тэги в .xml такие же, как в . html. Файл meta.xml имеет множество тэгов, необходимых и опциональных. У них есть свои атрибуты.
** '''author:''' Автор данного ресурса
Язык XML не умеет формировать тэги, он служит как простой способ хранения данных. Интерпретацией тэгов занимаются скрипты, то есть '''вы можете определять новые тэги в XML'''. Однако, MTA определяет несколько тэгов самостоятельно, они приведены ниже:
** '''version:''' Версия ресурса
 
** '''name:''' Название ресурса
*'''<info />''' Информация о ресурсе (карта это, или скрипт, кто автор, какое описание)[[getResourceInfo]]):
** '''description:''' Краткое описание ресурса
** '''author:''' Автор
** '''type:''' Тип ресурса, может быть "gamemode" (игровой режим, мод), "script" (сценарий, скрипт), "map" (карта) или "misc" (разное).
** '''version:''' Версия
*'''<script />''' Исходный код ресурса, возможные параметры:
** '''name:''' Название
** '''src:''' Название файла с исходным кодом (скрипта)
** '''description:''' Описание
** '''type:''' Тип исходного кода: "client" или "server"
** '''type:''' Тип ресурса, может быть "gamemode", "script", "map" or "misc".
<!--
*'''<script />''' Скрипт ресурса
** '''protected:''' Для клиентских скриптов, должен ли данный скрипт сохраняться на жестком диске клиента или нет: "true" (да) или "false" (нет). Заметка: [http://bugs.mtasa.com/view.php?id=6831 это может работать нестабильно].
** '''src:''' Имя файла скрипта (с расширением)
-->
** '''type:''' Тип скрипта: "Client" или "Server"
*'''<map />''' Карта для мода, возможные параметры:
*'''<map />''' Карта для режима игры
**'''src:''' название .map-файла (может быть в т.ч. и путь, напр. "maps/filename.map")
**'''src:''' .map имя файла (Может лежать в других папках. Например: "maps/filename.map") (писать с расширением)
**'''dimension:''' Измерение, в котором карта будет загружена (опционально)
**'''dimension:''' Объём, в котором карта будет загружена (по желанию)
*'''<file />''' Клинтский файл. В основном, это картинки, .txd, .col, .dff или .xml файлы. Они будут скачаны клиентами при старте ресурса (или при заходе)
*'''<file />''' Файл на стороне клиента. Как правило, эти образы. txd, .col, .dff или .xml файлы. Они будут скачаны с сервера на клиент
**'''src:''' название клиентского файла (может быть в т.ч. и путь, напр. "images/image.png")
**'''src:''' Файл на стороне клиента (Может лежать в других папках. Например: "image/image.png")
**'''download:''' Должен ли файл быть послан клиенту автоматичсеки или нет (опционально). По умолчанию "true", использование "no" или "false" будет значить, что файл не будет послан при старте ресурса, но сможет быть задействован позже через [[downloadFile]] (с версии 1.4)
*'''<include />''' Включать ресурс, когда он ресурс будет использоваться (Учтите, что при включении несуществующего ресурса скрипт не запустится)
*'''<include />''' Включение других ресурсов, которые будет использовать данный ресурс
**'''resource:''' Имя ресурса, которое вы хотите использовать для этого ресурса
**'''resource:''' Название ресурса, который вы хотите чтоб стартовал с данным ресурсом
**'''minversion:''' Минимальная версия ресурса (не обязательно)
**'''minversion:''' Минимальная версия, которая должна быть у '''ресурса''' (опционально)
**'''maxversion:''' Максимальная версия ресурса(не обязательно)
**'''maxversion:''' Максимальная версия, которая должна быть у '''ресурса''' (опционально)
*'''<config />''' Файл конфигураций (.XML) возможные параметры:
*'''<config />''' Конфигурационный файл (.xml), к которому будет иметь доступ ресурс, допустимые параметры:
**'''src:''' Имя конфигурационного файла
**'''src:''' Название конфигурационного файла
**'''type:''' Тип файла конфигурации: "Client" или "Server"
**'''type:''' Тип конфигурационного файла: "client" или "server"
*'''<export />''' Тег экспорта функций, для последующего вызова этой функции. Подробнее о вызове: [[call]]
*'''<export />''' Это экспортирует функции из данного ресурса, чтобы другие ресурсы могли ими пользоваться через [[call]]
**'''function:''' Имя функции
**'''function:''' Название функции
**'''type''' Тип Экспорта (''client'' или ''server'')
**'''type''' Является ли экспортированная функция серверной или клиентской (допустимые значения: "server" и "client")
**'''http:''' Может ли функция быть вызвана через HTTP (true/false)
**'''http:''' Может ли функция быть вызвана через HTTP (true/false)
*'''<html />'''
*'''<html />'''
**'''src:''' Имя HTTP файла (Может быть путь. Например: files/file.png)
**'''src:''' Название HTTP-файла (может быть и путем)
**'''default:''' HTML-файл, который отображается по умолчанию при посещении /resourceName/ на сервере. Только один HTML-файл может быть по умолчанию, остальные игнорируются. (true/false)
**'''default:''' Является ли html-файл тем, который будет показан по умолчанию при заходе в /имяРесурса/ на сервере. Только один html может быть по умолчанию, все остальные игнорируются. (true/false)
**'''raw:''' HTML-файл не обрабатывается интерпретатором LUA, может рассматриваться как двоичные данные. Должен использоваться для двоичных файлов (В основном изображения) (true/false)
**'''raw:''' Html-файл не анализируется LUA-интерпретатором и рассматривается как двоичные данные. Обязательно должно использоваться для двоичных файлов (в основном картинок) (true/false)
*'''<settings> <setting name="" value=""/> </settings>:''' Большенство режимов игры используют этот Тег для задавания переменных. В будущем, эти переменные могут быть прочитаны из админ-панели и записаны прямо во время выполнения скрипта.
*'''<settings> <setting name="" value=""/> </settings>:''' Большинство модов использует [[settings system]], чтобы позволить администраторам серверов настраивать его по их желанию. Например, вы можете установить время раунда, а затем воспользоваться [[get]] и [[set]] для получения или изменения значений соответственно.
*'''<min_mta_version />''' Минимальная требуемая версия для правильной работы данного ресурса. При авторинге ресурсов, обычно минимальная версия должна быть установлена на в данный момент зарелиженную версию MTA:SA (на данный момент это "{{Current Version|full}}").
**'''client:''' Минимальная версия клиента
**'''server:''' Минимальная версия сервера
*'''<aclrequest />''' Лист [[Access_Control_List|ACL]]-прав, которые понадобятся ресурсу.
{{New items|3.0139|1.3.1 r4141|
*'''<sync_map_element_data>false</sync_map_element_data>''' Adding this to the meta.xml of the gamemode and it will make the "map download" a fraction of the size.
}}


== Пример ==
== Пример ==
Вот пример мета, в котором используются часть тегов
Вот и пример meta-файла, использующего некоторые из упомянутых тегов:
<syntaxhighlight lang="lua" lang="xml"><meta>
{{#tag:code |
<meta>
     <info author="Slothman" type="gamemode" name="Stealth" />
     <info author="Slothman" type="gamemode" name="Stealth" />
     <config src="help.xml" type="client"/>
     <config src="help.xml" type="client"/>
    <min_mta_version client="{{Current Version|full}}" server="{{Current Version|full}}" />


     <script src="stealthmain_server.lua" />
     <script src="stealthmain_server.lua" />
Line 52: Line 62:
     <script src="noisebar.lua" type="client"/>
     <script src="noisebar.lua" type="client"/>
     <script src="spycam.lua" type="client"/>
     <script src="spycam.lua" type="client"/>
    <script src="riemann_z_demonstration.lua" type="client"/>


     <file src="riot_shield.txd" />
     <file src="riot_shield.txd" />
     <file src="riot_shield.dff" />
     <file src="riot_shield.dff" />
     <file src="riot_shield.col" />
     <file src="riot_shield.col" />
     <file src="armor.png" />
     <file src="armor.png" download="true"/>
     <file src="camera.png" />
     <file src="camera.png" download="false"/>
     <file src="cloak.png" />
     <file src="cloak.png" />
     <file src="goggles.png" />
     <file src="goggles.png" />
Line 69: Line 80:


     <settings>
     <settings>
         <setting name="roundlimit" value="[6]" /> <!-- Длинна раунда в минутах -->
         <setting name="roundlimit" value="[6]" /> <!-- длина раунда в минутах -->
<setting name="teamdamage" value="[1]" /> <!-- 0 для выключения командного убивания, 1 для включения -->
<setting name="teamdamage" value="[1]" /> <!-- 0 для выключения командной защиты, 1 для включения -->
<setting name="teambalance" value="[1]" /> <!-- Предел разницы количества игроков между командами -->
<setting name="teambalance" value="[1]" /> <!-- максимум разницы игроков между командами -->
<setting name="spazammo" value="[25]" /> <!-- Сумма боеприпасов -->
<setting name="spazammo" value="[25]" /> <!-- количество патронов -->
<setting name="m4ammo" value="[100]" />
<setting name="m4ammo" value="[100]" />
<setting name="shotgunammo" value="[25]" />
<setting name="shotgunammo" value="[25]" />
Line 88: Line 99:
<setting name="molatovammo" value="[4]" />
<setting name="molatovammo" value="[4]" />
     </settings>
     </settings>
</meta></syntaxhighlight>
 
    <aclrequest>
<right name="function.startResource" access="true" />
<right name="function.stopResource" access="true" />
<right name="function.setPlayerMuted" access="true" />
    </aclrequest>
 
</meta>
|lang="xml"}}
[[Category:Scripting Concepts]]
[[Category:Scripting Concepts]]
[[Category:Incomplete]]
[[cs:Meta.xml]]
[[cs:Meta.xml]]
[[en:Meta.xml]]
[[es:Sobre el archivo "meta.xml"]]
[[es:Sobre el archivo "meta.xml"]]
[[pl:Meta.xml]]
[[pl:Meta.xml]]
[[en:Meta.xml]]

Revision as of 10:25, 16 June 2012

Файл 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"
  • <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 Является ли экспортированная функция серверной или клиентской (допустимые значения: "server" и "client")
    • 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.6.0").
    • client: Минимальная версия клиента
    • server: Минимальная версия сервера
  • <aclrequest /> Лист ACL-прав, которые понадобятся ресурсу.
  • <sync_map_element_data>false</sync_map_element_data> Adding this to the meta.xml of the gamemode and it will make the "map download" a fraction of the size.

Пример

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

   <info author="Slothman" type="gamemode" name="Stealth" />
   <config src="help.xml" type="client"/>
   <min_mta_version client="1.6.0" server="1.6.0" />
   <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"/>
   <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>