RU/Resources: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
 
(6 intermediate revisions by 5 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".


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




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




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




У скриптов есть достум на чтение и запись в каталог ресурса через такие функции, как [[xmlCreateFile]] и [[fileCreate]]. Так же они могут читать/писать в другие ресурсы, но для этого нужны разрешения [[RU/Access_Control_List|ACL]].  
Скрипты имеют права на чтение и запись внутрь папки своего ресурса через функции типа [[xmlCreateFile]] и [[fileCreate]]. Они также имеют права на чтение и запись внутри других ресурсов, но только если имеют на это [[RU/Access_Control_List|ACL]]-доступ.  




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


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


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


or
или


mods/deathmatch/resources/ (for dedicated server installations)
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.
Каждый ресурс может являться zip-архивом, директорией, или и тем, и другим. В последнем случае директория будет приорететней zip-архива, так как в нее можно будет поместить файлы, которые перезапишут старые, что позволит тестировать и рарзрабатывать карты/скрипты "на лету". Такое не было бы возможно при приоритетах, расставленных наоборот. А zip-архивы, в свою очередь, зачастую используются конечными пользователями.


==Script functions==
==Другие примечательные вещи==
The resource system can be manipulated by script. As such, the following Serverside scripting functions are provided:
*Названия ресурсов не могут содержать точек.
*Если ресурс сохраняет какие-нибудь файлы, используемые названия файлов не должны быть указаны в 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]]
[[en:Resources]]
[[it:Introduzione alle Risorse]]
[[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. Не включайте 'образцы' файлов, в которые будет вестись запись, это чревато последствиями.
  • Мы рекомендуем избегать пробелов и экзотических символов в названиях ресурсов.

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

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


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