RU/Meta.xml: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(18 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{{translate}}
Файл ''meta.xml'' представляет MTA набор метаданных, таких как название ресурса, включенные в него скрипты и какие файлы предварительно кэшировать для отправки клиенту, это лишь часть. В нем также объявляются "элементы" для дальнейшей работы с ними. Он написан в XML, который базируется на HTML, и является родителем XHTML.
Этот файл имеет очень важное содержание, которое позволяет загрузить ресурс/режим/карту. Вам нужно указать имена файлов, которые ваш скрипт/режим e (resource) будет использовать в файле '''meta.xml'''. Если вы хотите отображать изображение на экране клиента, клиент должен сначала загрузить его. Чтобы сервер знал, что вы хотите использовать изображение, нужно прописать имя файла в 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 />''' Информация о данном ресурсе, possible parameters include (any arbitrary parameters can be used and read using [[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 />''' Source code for this resource, possible parameters are:
** '''cache:''' Кеширование для клиентского скрипта, если установлено "false", то скрипт не будет сохраняться на диске клиента.
** '''src:''' The file name of the source code
<!--
** '''type:''' The type of source code: "client" or "server"
** '''protected:''' Для клиентских скриптов, должен ли данный скрипт сохраняться на жестком диске клиента или нет: "true" (да) или "false" (нет). Заметка: [http://bugs.mtasa.com/view.php?id=6831 это может работать нестабильно].
*'''<map />''' The map for a gamemode, possible parameters are:
-->
**'''src:''' .map file name (can be path too eg. "maps/filename.map")
*'''<map />''' Карта для мода, возможные параметры:
**'''dimension:''' Dimension in which the map will be loaded (optional)
**'''src:''' название .map-файла (может быть в т.ч. и путь, напр. "maps/filename.map")
*'''<file />''' A client-side file. Generally these are images, .txd, .col, .dff or .xml files. They'll be downloaded by clients when the resources is started (or on join)
**'''dimension:''' Измерение, в котором карта будет загружена (опционально)
**'''src:''' client-side file name (can be path too eg. "images/image.png")
*'''<file />''' Клиентский файл. В основном, это картинки, .txd, .col, .dff или .xml файлы. Они будут скачаны клиентами при старте ресурса (или при заходе)
*'''<include />''' Include resources that this resource will use
**'''src:''' название клиентского файла (может быть в т.ч. и путь, напр. "images/image.png")
**'''resource:''' Resource name that you want to start with this resource
**'''download:''' Должен ли файл быть послан клиенту автоматически или нет (опционально). По умолчанию "true", использование "no" или "false" будет значить, что файл не будет послан при старте ресурса, но сможет быть задействован позже через [[downloadFile]] (с версии 1.4)
**'''minversion:''' Minimum version that '''resource''' needs to be (optional)
*'''<include />''' Включение других ресурсов, которые будет использовать данный ресурс
**'''maxversion:''' Maximum version that '''resource''' needs to be (optional)
**'''resource:''' Название ресурса, который вы хотите чтоб стартовал с данным ресурсом
*'''<config />''' Config file (.xml) can be accessed by resource, possible parameters are:
**'''minversion:''' Минимальная версия, которая должна быть у '''ресурса''' (опционально)
**'''src:''' The file name of the config file
**'''maxversion:''' Максимальная версия, которая должна быть у '''ресурса''' (опционально)
**'''type:''' The type of the config file: "client" or "server"
*'''<config />''' Конфигурационный файл (.xml), к которому будет иметь доступ ресурс, допустимые параметры:
*'''<export />''' This exports functions from this resource, so other resources can use them with [[call]]
**'''src:''' Название конфигурационного файла
**'''function:''' The function name
**'''type:''' Тип конфигурационного файла: "client" или "server"
**'''type''' Whether function is exported server-side or client-side (valid values are: "server" and "client")
*'''<export />''' Это экспортирует функции из данного ресурса, чтобы другие ресурсы могли ими пользоваться через [[call]]
**'''http:''' Can the function be called via HTTP (true/false)
**'''function:''' Название функции
**'''type''' Является ли экспортированная функция серверной или клиентской (допустимые значения: "client", "server" и "shared")
**'''http:''' Может ли функция быть вызвана через HTTP (true/false)
*'''<html />'''
*'''<html />'''
**'''src:''' The filename for the HTTP file (can be a path)
**'''src:''' Название HTTP-файла (может быть и путем)
**'''default:''' The html file is one that is shown by default when visiting /resourceName/ on the server. Only one html can be default, the rest are ignored. (true/false)
**'''default:''' Является ли html-файл тем, который будет показан по умолчанию при заходе в /имяРесурса/ на сервере. Только один html может быть по умолчанию, все остальные игнорируются. (true/false)
**'''raw:''' The html file is not parsed by the LUA interpreter and is treated as binary data. Must be used for binary files (images mainly) (true/false)
**'''raw:''' Html-файл не анализируется Lua-интерпретатором и рассматривается как двоичные данные. Обязательно должно использоваться для двоичных файлов (в основном картинок) (true/false)
*'''<settings> <setting name="" value=""/> </settings>:''' Most gamemodes use [[settings system]] to let server admins to configure it how they like. For instance you could set round time and then use [[get]] and [[set]] to get the value or change it, respectively.
*'''<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:''' Включить пересылку данных элементов карты (по умолчанию).
}}


== Example ==
== Пример ==
Heres an example of a meta file using some of the tags mentioned:
Вот и пример 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]" /> <!-- round length in minutes -->
         <setting name="roundlimit" value="[6]" /> <!-- длина раунда в минутах -->
<setting name="teamdamage" value="[1]" /> <!-- 0 for team protection off, 1 for team protection on -->
<setting name="teamdamage" value="[1]" /> <!-- 0 для выключения командной защиты, 1 для включения -->
<setting name="teambalance" value="[1]" /> <!--  difference limit of amount of players between teams -->
<setting name="teambalance" value="[1]" /> <!--  максимум разницы игроков между командами -->
<setting name="spazammo" value="[25]" /> <!-- ammo amounts -->
<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>