RU/Resources: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 52: | Line 52: | ||
Атрибуты Script/type, Config/type и File/type определяют, должен ли скрипт/ресурс отправляться клиенту, и по умолчанию равны "server". | Атрибуты Script/type, Config/type и File/type определяют, должен ли скрипт/ресурс отправляться клиенту, и по умолчанию равны "server". | ||
Тэг include указывает какие ресурсы должны быть запущены перед запуском данного ресурса. Другими словами, если ваш ресурс зависит от других, вы можете подключить их так, чтобы они стартовали первыми. | |||
Каждый ресурс работает в собственной виртуальной машине (VM). В ней работает каждый скрипт ресурса. Это значит, что переменные не разделяются с другими ресурсами. Наилучший способ взаимодействовать с другими ресурсами - использовать тэг ''export'' для экспортирования функции. Это позволит другим ресурсам выполнять функцию используя вызов функции [[call]]. | |||
Скрипты, отправляемые клиенту, запускаются сразу по завершении скачивания. | |||
У скриптов есть достум на чтение и запись в каталог ресурса через такие функции, как [[xmlCreateFile]] и [[fileCreate]]. Так же они могут читать/писать в другие ресурсы, но для этого нужны разрешения [[RU/Access_Control_List|ACL]]. | |||
Каждый ресурс может быть запущен только 1 раз, за этим следит сервер. Если ресурс подключен более одного раза, для всех ресурсов, подключивших его, будет использоваться одна копия. | |||
== | ==Файловые хранилища== | ||
Resource files can either be stored in a zip or a directory. This is located in: | Resource files can either be stored in a zip or a directory. This is located in: | ||
Revision as of 10:09, 23 June 2009
Ресурсы - ключевая часть MTA. Ресурс представляет из себя каталог или zip архив, содержащий набор файлов, таких как скрипты, плю meta файл, описывающий то, как ресурс должен загружаться. Отчасти, ресурс можно рассматривать как эквивалент программе, работающей под управлением операционной системы - он может быть запущен, остановлен, и множество ресурсов может работать одновременно. Несмотря на это важно помнить, что, в отличии от программ, между ресурсами нет многозадачности.
Терминология
- Ресурс - Zip-архив или каталог, содержащий файл meta.xml и некоторое количество других элементов. Они размещаются в каталоге mods/deathmatch/resources сервера.
- Элемент ресурса - Файл, содержащийся в ресурсе, на данный момент это может быть карта, скрипт, рисунок и т.д.
Мета-файл
Прочитайте статью RU/Meta.xml чтобы узнать подробности
Мета-файл это основа любого ресурса. Он описывает, какие файлы в ресурсе должны использоваться и как. Следующий пример показывает все доступные опции. Ваши мета-файлы могут содержать столько тэгов, сколько вам понадобится:
<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.
Каждый ресурс может быть запущен только 1 раз, за этим следит сервер. Если ресурс подключен более одного раза, для всех ресурсов, подключивших его, будет использоваться одна копия.
Файловые хранилища
Resource files can either be stored in a zip or a directory. This is located in:
server/mods/deathmatch/resources/ (for MTASA clients)
or
mods/deathmatch/resources/ (for dedicated server installations)
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
The resource system can be manipulated by script. As such, the following Serverside scripting functions are provided:
- abortRemoteRequest
- call
- fetchRemote
- getResourceConfig
- getResourceDynamicElementRoot
- getResourceExportedFunctions
- getResourceFromName
- getResourceName
- getResourceRootElement
- getResourceState
- getThisResource
- getRemoteRequests
- getRemoteRequestInfo
The following events are also provided: