RU/Resources: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{translate}}
Ресурсы - ключевая часть MTA. По существу, ресурс - папка или zip-врхив, который содержит набор файлов, включающий в себя скриптовые файлы, плюс файл ''meta'', который описывает серверу, как ресурс должен быть загружен. Ресурс можно рассматривать в качестве частичного эквивалента программе, работающей на операционной системе - он может быть запущен и остановлен, и множество ресурсов могут быть запущенными одновременно. Но тем не менее следует помнить, что в отличие от программ на ОС, между ресурсами нет многозадачности.
Resources are a key part of MTA. A resource is essentially a folder or zip file that contains a collection of files - including essential script files, plus a ''meta'' file that describes how the resource should be loaded. A resource can be seen as being partly equivalent to a program running in an operating system - it can be started and stopped, and multiple resources can run at once. Its worth remember though, that unlike programs on an operating system, there is no multi-tasking between resources.


==Terminology==
==Терминология==
* '''Resource''' - A zip file or folder containing a meta.xml file and a number of resource items. These are placed in the ''mods/deathmatch/resources'' folder in the server directory.
* '''Resource''' - zip-архив или папка, содержащая файл meta.xml и некоторые другие составные части ресурсов. Они помещены в папке ''mods/deathmatch/resources'' в директории сервера.
* '''Resource item''' - A file contained within a resource, currently this can be a map, script, images etc.
* '''Составная часть''' - Файл, содержащийся внутри ресурса, на данный момент это могут быть карты, скрипты, картинки и т.д.


==The Meta File==
==Файл Meta==
''See main article [[Meta.xml]] for details''
''Для подробностей читайте основную статью [[RU/Meta.xml|Meta.xml]]''


The Meta file is the core of each the resource. It describes exactly what files in the resource should be used, and how. The following is an example that covers every option there is, your meta files can have as many or as few of these tags as you require:
Файл Meta - ядро каждого ресурса. Он в точности описывает, какие файлы должны использоваться в ресурсе и как. Далее следует пример, который покрывает все имеющиеся опции, ваши meta файлы могут иметь этих тегов столько, сколько вам потребуется:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 39: Line 38:
</meta>
</meta>
</syntaxhighlight>
</syntaxhighlight>
While a CTF map may have a meta.xml that looks like:
В то же время карта CTF может обладать meta.xml, выглядящим примерно так:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<meta>
<meta>
Line 50: Line 49:




Script/type, Config/type and File/type attributes specify if the script/resource should be sent to clients or not, and defaults to "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. Не включайте 'образцы' файлов, в которые будет вестись запись, это чревато последствиями.
  • Мы рекомендуем избегать пробелов и экзотических символов в названиях ресурсов.

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

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



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