RU/Meta.xml: Difference between revisions

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


Примечание: Вы можете опробывать простой генератор 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" или "shared"
** '''type:''' Тип ресурса, может быть "gamemode", "script", "map" or "misc".
** '''validate:''' Если установлено значение "false", то актуальность скрипта проверяться не будет.
*'''<script />''' Скрипт ресурса
** '''cache:''' Кеширование для клиентского скрипта, если установлено "false", то скрипт не будет сохраняться на диске клиента.
** '''src:''' Имя файла скрипта (с расширением)
<!--
** '''type:''' Тип скрипта: "Client" или "Server"
** '''protected:''' Для клиентских скриптов, должен ли данный скрипт сохраняться на жестком диске клиента или нет: "true" (да) или "false" (нет). Заметка: [http://bugs.mtasa.com/view.php?id=6831 это может работать нестабильно].
*'''<map />''' Карта для режима игры
-->
**'''src:''' .map имя файла (Может лежать в других папках. Например: "maps/filename.map") (писать с расширением)
*'''<map />''' Карта для мода, возможные параметры:
**'''dimension:''' Объём, в котором карта будет загружена (по желанию)
**'''src:''' название .map-файла (может быть в т.ч. и путь, напр. "maps/filename.map")
*'''<file />''' Файл на стороне клиента. Как правило, эти образы. txd, .col, .dff или .xml файлы. Они будут скачаны с сервера на клиент
**'''dimension:''' Измерение, в котором карта будет загружена (опционально)
**'''src:''' Файл на стороне клиента (Может лежать в других папках. Например: "image/image.png")
*'''<file />''' Клиентский файл. В основном, это картинки, .txd, .col, .dff или .xml файлы. Они будут скачаны клиентами при старте ресурса (или при заходе)
*'''<include />''' Включать ресурс, когда он ресурс будет использоваться (Учтите, что при включении несуществующего ресурса скрипт не запустится)
**'''src:''' название клиентского файла (может быть в т.ч. и путь, напр. "images/image.png")
**'''resource:''' Имя ресурса, которое вы хотите использовать для этого ресурса
**'''download:''' Должен ли файл быть послан клиенту автоматически или нет (опционально). По умолчанию "true", использование "no" или "false" будет значить, что файл не будет послан при старте ресурса, но сможет быть задействован позже через [[downloadFile]] (с версии 1.4)
**'''minversion:''' Минимальная версия ресурса (не обязательно)
*'''<include />''' Включение других ресурсов, которые будет использовать данный ресурс
**'''maxversion:''' Максимальная версия ресурса(не обязательно)
**'''resource:''' Название ресурса, который вы хотите чтоб стартовал с данным ресурсом
*'''<config />''' Файл конфигураций (.XML) возможные параметры:
**'''minversion:''' Минимальная версия, которая должна быть у '''ресурса''' (опционально)
**'''src:''' Имя конфигурационного файла
**'''maxversion:''' Максимальная версия, которая должна быть у '''ресурса''' (опционально)
**'''type:''' Тип файла конфигурации: "Client" или "Server"
*'''<config />''' Конфигурационный файл (.xml), к которому будет иметь доступ ресурс, допустимые параметры:
*'''<export />''' Тег экспорта функций, для последующего вызова этой функции. Подробнее о вызове: [[call]]
**'''src:''' Название конфигурационного файла
**'''function:''' Имя функции
**'''type:''' Тип конфигурационного файла: "client" или "server"
**'''type''' Тип Экспорта (''client'' или ''server'')
*'''<export />''' Это экспортирует функции из данного ресурса, чтобы другие ресурсы могли ими пользоваться через [[call]]
**'''function:''' Название функции
**'''type''' Является ли экспортированная функция серверной или клиентской (допустимые значения: "client", "server" и "shared")
**'''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 />''' Контролирует, пересылаются ли [[Element_data|данные элементов]] карты, такие как "PosX" и "DoubleSided" клиенту. Эти данные зачастую не требуются большинству модов или ресурсов. (Но следует отметить значимое исключения - map editor). При установке параметра в meta.xml мода, настройка применится ко всем картам, загруженным данным ресурсом.
**'''false:''' Отключить пересылку данных элементов карты. Это может значительно уменьшить время закачки карты.
**'''true:''' Включить пересылку данных элементов карты (по умолчанию).
}}


== Пример ==
== Пример ==
Вот пример мета, в котором используются часть тегов
Вот и пример meta-файла, использующего некоторые из упомянутых тегов:
<syntaxhighlight lang="lua" lang="xml"><meta>
{{#tag:syntaxhighlight |
<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 53: Line 66:
     <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" cache="false"/>


     <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 70: Line 84:


     <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 89: Line 103:
<setting name="molatovammo" value="[4]" />
<setting name="molatovammo" value="[4]" />
     </settings>
     </settings>
</meta></syntaxhighlight>
 
[[Category:Scripting Concepts]]
    <aclrequest>
[[Category:Incomplete]]
<right name="function.startResource" access="true" />
<right name="function.stopResource" access="true" />
<right name="function.setPlayerMuted" access="true" />
    </aclrequest>
 
</meta>
|lang="xml"}}
[[Category:Понятия скриптинга]]
[[cs:Meta.xml]]
[[de:Meta.xml]]
[[en:Meta.xml]]
[[en:Meta.xml]]
[[es:Sobre el archivo "meta.xml"]]
[[it:Meta.xml]]
[[pl:Meta.xml]]

Revision as of 17:40, 24 September 2016

Файл 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.6.0").
    • 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.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" 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>