RU/Resources: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{translate}}
Ресурсы - ключевая часть MTA. По существу, ресурс - папка или zip-врхив, который содержит набор файлов, включающий в себя скриптовые файлы, плюс файл ''meta'', который описывает серверу, как ресурс должен быть загружен. Ресурс можно рассматривать в качестве частичного эквивалента программе, работающей на операционной системе - он может быть запущен и остановлен, и множество ресурсов могут быть запущенными одновременно. Но тем не менее следует помнить, что в отличие от программ на ОС, между ресурсами нет многозадачности.
Ресурсы - ключевая часть MTA. Ресурс представляет из себя каталог или zip архив, содержащий набор файлов, таких как скрипты, плю ''meta'' файл, описывающий то, как ресурс должен загружаться. Отчасти, ресурс можно рассматривать как эквивалент программе, работающей под управлением операционной системы - он может быть запущен, остановлен, и множество ресурсов может работать одновременно. Несмотря на это важно помнить, что, в отличии от программ, между ресурсами нет многозадачности.


==Терминология==
==Терминология==
* '''Ресурс''' - Zip-архив или каталог, содержащий файл meta.xml и некоторое количество других элементов. Они размещаются в каталоге ''mods/deathmatch/resources'' сервера.
* '''Resource''' - zip-архив или папка, содержащая файл meta.xml и некоторые другие составные части ресурсов. Они помещены в папке ''mods/deathmatch/resources'' в директории сервера.
* '''Элемент ресурса''' - Файл, содержащийся в ресурсе, на данный момент это может быть карта, скрипт, рисунок и т.д.
* '''Составная часть''' - Файл, содержащийся внутри ресурса, на данный момент это могут быть карты, скрипты, картинки и т.д.


==Мета-файл==
==Файл Meta==
''Прочитайте статью [[RU/Meta.xml]] чтобы узнать подробности''
''Для подробностей читайте основную статью [[RU/Meta.xml|Meta.xml]]''


Мета-файл это основа любого ресурса. Он описывает, какие файлы в ресурсе должны использоваться и как. Следующий пример показывает все доступные опции. Ваши мета-файлы могут содержать столько тэгов, сколько вам понадобится:
Файл Meta - ядро каждого ресурса. Он в точности описывает, какие файлы должны использоваться в ресурсе и как. Далее следует пример, который покрывает все имеющиеся опции, ваши meta файлы могут иметь этих тегов столько, сколько вам потребуется:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 39: Line 38:
</meta>
</meta>
</syntaxhighlight>
</syntaxhighlight>
В то же время карта CTF может содержать следующий  meta.xml:
В то же время карта CTF может обладать meta.xml, выглядящим примерно так:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<meta>
<meta>
Line 50: Line 49:




Атрибуты Script/type, Config/type и File/type определяют, должен ли скрипт/ресурс отправляться клиенту, и по умолчанию равны "server".
Атрибуты Script/type, Config/type и File/type указывают, может ли скрипт/ресурс быть загружен на компьютер клиента, и по умолачнию установлены на "server".


The include tag specifies other resources that should be started before this resoucre is started. In other words, if your resource is dependent on another, you can include it so that the other resource is started first,
Тэг include указывает на другие ресурсы, которые должны быть запущены перед запуском данного. Другими словами, если ваш ресурс зависит от другого, вы можете указать, чтобы этот другой запускался перед вашим,




Each resource has its own virtual machine (VM). This contains every script in the resource. This means that variables are not shared with other resources. The best way to communictate with other resources is by using the ''export'' tag and exporting a function. This will enable other resources to fire this function using the [[call]] scripting function.
Каждый ресурс обладает своей виртуальной машиной (VM). Она содержит каждый скрипт ресурса. Это значит, что переменные не являются общими с другими ресурсами. Лучший способ сообщаться с другими ресурсами - использовать тэг ''export'' и экспортировать функцию. Это позволит другим ресурсам ее вызывать с использованием скриптинговой функции [[call]].




Scripts sent to clients are started as soon as all the scripts have been downloaded.
Скрипты, отправляемые клиенту, стартуют сразу по завершении им закачки всех скриптов.




Scripts are able to read and write to their own resource folder with functions such as [[xmlCreateFile]] and [[fileCreate]]. They can also read and write to other resources, but must have [[Access_Control_List|ACL]] access.  
Скрипты имеют права на чтение и запись внутрь папки своего ресурса через функции типа [[xmlCreateFile]] и [[fileCreate]]. Они также имеют права на чтение и запись внутри других ресурсов, но только если имеют на это [[RU/Access_Control_List|ACL]]-доступ.  




Each resource can only be loaded once, the server will ensure this. If a resource is included more than once, the same instance will be used by each resource that includes it.
Каждый ресурс может быть загружен только один раз, сервер это проконтролирует. Даже при указании ресурса в качестве include более одного раза, каждый раз будет использована одна и та же его копия.


==File storage==
==Хранение файлов==
Resource files can either be stored in a zip or a directory. This is located in:
Файлы ресурса могут храниться либо в zip-архиве, либо в директории. Они располагаются в:


mods/deathmatch/resources/
server/mods/deathmatch/resources/ (если ваш сервер установлен вместе с клиентом)


Each resource can have a zip file, a directory or both. In the case of both existing, the directory has precedence over the zip file, as such files can be placed in the directory to over-ride the files in the zip file. This allows directories to be used for testing and developing of maps/scripts while zip files used by end-users.
или


==Script functions==
mods/deathmatch/resources/ (для выделенных серверов)
The resource system can be manipulated by script. As such, the following Serverside scripting functions are provided:
 
Каждый ресурс может являться zip-архивом, директорией, или и тем, и другим. В последнем случае директория будет приорететней zip-архива, так как в нее можно будет поместить файлы, которые перезапишут старые, что позволит тестировать и рарзрабатывать карты/скрипты "на лету". Такое не было бы возможно при приоритетах, расставленных наоборот. А zip-архивы, в свою очередь, зачастую используются конечными пользователями.
 
==Другие примечательные вещи==
*Названия ресурсов не могут содержать точек.
*Если ресурс сохраняет какие-нибудь файлы, используемые названия файлов не должны быть указаны в meta.xml
*Файлы, указанные в meta.xml, должны рассматриваться скриптами только как файлы для чтения. Не редактируйте их через xmlSaveFile, FileSave и т.д.
*При создании zip-архива вашего ресурса не включайте в него файлы, в которые будет вестись запись. Если ваш ресурс использует такие файлы, они должны быть созданы ресурсом по мере надобности.
*При создании zip-архива вашего ресурса включайте только те файлы, что описаны в meta.xml. Не включайте 'образцы' файлов, в которые будет вестись запись, это чревато последствиями.
*Мы рекомендуем избегать пробелов и экзотических символов в названиях ресурсов.
 
==Функции скриптинга==
Система ресурсов может управляться скриптово. Вследствие этого, предоставляются следующие серверные функции скриптинга:
{{Resource functions}}
{{Resource functions}}


The following events are also provided:
Предоставляются также следующие события:
{{Resource_events}}
{{Resource_events}}
[[en:Resources]]
[[it:Introduzione alle Risorse]]
[[pt-br:Recursos]]

Latest revision as of 07:27, 2 April 2018

Ресурсы - ключевая часть MTA. По существу, ресурс - папка или zip-врхив, который содержит набор файлов, включающий в себя скриптовые файлы, плюс файл meta, который описывает серверу, как ресурс должен быть загружен. Ресурс можно рассматривать в качестве частичного эквивалента программе, работающей на операционной системе - он может быть запущен и остановлен, и множество ресурсов могут быть запущенными одновременно. Но тем не менее следует помнить, что в отличие от программ на ОС, между ресурсами нет многозадачности.

Терминология

  • Resource - zip-архив или папка, содержащая файл meta.xml и некоторые другие составные части ресурсов. Они помещены в папке mods/deathmatch/resources в директории сервера.
  • Составная часть - Файл, содержащийся внутри ресурса, на данный момент это могут быть карты, скрипты, картинки и т.д.

Файл Meta

Для подробностей читайте основную статью Meta.xml

Файл Meta - ядро каждого ресурса. Он в точности описывает, какие файлы должны использоваться в ресурсе и как. Далее следует пример, который покрывает все имеющиеся опции, ваши meta файлы могут иметь этих тегов столько, сколько вам потребуется:

<meta>
    <info author="eAi" description="This is a basic CTF script" version="4"/>

    <include resource="radarblips"/>
    <include resource="markermanagement" />

    <script src="ctf.lua" />
    <script src="flag.lua" />
    <script src="ctf_client.lua" type="client" />

    <file src="model.dff" />
    <file src="quitbutton.png" />
    <file src="killed.png"  />

    <html src="test.htm" default="true"/>
    <html src="logo.png" raw="true" />

    <export function="multiply" http="true" />
    <export function="getPlayerList" />
    <export function="getElementOwner" type="client"/>

    <config src="vehicle-list.xml" type="client" />
    <config src="markerconfig.xml" type="server"  />

    <map src="somestuff.map" dimension="99" />
</meta>

В то же время карта CTF может обладать meta.xml, выглядящим примерно так:

<meta>
    <include resource="ctf" />
    <map src="myuberl33tctfmap.map" />

    <info author="Tom" instructions="this is uber l33t !!!!!1111111" type="map" />
</meta>


Атрибуты Script/type, Config/type и File/type указывают, может ли скрипт/ресурс быть загружен на компьютер клиента, и по умолачнию установлены на "server".

Тэг include указывает на другие ресурсы, которые должны быть запущены перед запуском данного. Другими словами, если ваш ресурс зависит от другого, вы можете указать, чтобы этот другой запускался перед вашим,


Каждый ресурс обладает своей виртуальной машиной (VM). Она содержит каждый скрипт ресурса. Это значит, что переменные не являются общими с другими ресурсами. Лучший способ сообщаться с другими ресурсами - использовать тэг export и экспортировать функцию. Это позволит другим ресурсам ее вызывать с использованием скриптинговой функции call.


Скрипты, отправляемые клиенту, стартуют сразу по завершении им закачки всех скриптов.


Скрипты имеют права на чтение и запись внутрь папки своего ресурса через функции типа xmlCreateFile и fileCreate. Они также имеют права на чтение и запись внутри других ресурсов, но только если имеют на это ACL-доступ.


Каждый ресурс может быть загружен только один раз, сервер это проконтролирует. Даже при указании ресурса в качестве include более одного раза, каждый раз будет использована одна и та же его копия.

Хранение файлов

Файлы ресурса могут храниться либо в zip-архиве, либо в директории. Они располагаются в:

server/mods/deathmatch/resources/ (если ваш сервер установлен вместе с клиентом)

или

mods/deathmatch/resources/ (для выделенных серверов)

Каждый ресурс может являться zip-архивом, директорией, или и тем, и другим. В последнем случае директория будет приорететней zip-архива, так как в нее можно будет поместить файлы, которые перезапишут старые, что позволит тестировать и рарзрабатывать карты/скрипты "на лету". Такое не было бы возможно при приоритетах, расставленных наоборот. А zip-архивы, в свою очередь, зачастую используются конечными пользователями.

Другие примечательные вещи

  • Названия ресурсов не могут содержать точек.
  • Если ресурс сохраняет какие-нибудь файлы, используемые названия файлов не должны быть указаны в meta.xml
  • Файлы, указанные в meta.xml, должны рассматриваться скриптами только как файлы для чтения. Не редактируйте их через xmlSaveFile, FileSave и т.д.
  • При создании zip-архива вашего ресурса не включайте в него файлы, в которые будет вестись запись. Если ваш ресурс использует такие файлы, они должны быть созданы ресурсом по мере надобности.
  • При создании zip-архива вашего ресурса включайте только те файлы, что описаны в meta.xml. Не включайте 'образцы' файлов, в которые будет вестись запись, это чревато последствиями.
  • Мы рекомендуем избегать пробелов и экзотических символов в названиях ресурсов.

Функции скриптинга

Система ресурсов может управляться скриптово. Вследствие этого, предоставляются следующие серверные функции скриптинга:



Предоставляются также следующие события: