|
|
| Line 1: |
Line 1: |
| Ресурсы - ключевая часть MTA. По существу, ресурс - папка или zip-врхив, который содержит набор файлов, включающий в себя скриптовые файлы, плюс файл ''meta'', который описывает серверу, как ресурс должен быть загружен. Ресурс можно рассматривать в качестве частичного эквивалента программе, работающей на операционной системе - он может быть запущен и остановлен, и множество ресурсов могут быть запущенными одновременно. Но тем не менее следует помнить, что в отличие от программ на ОС, между ресурсами нет многозадачности.
| |
|
| |
|
| ==Терминология==
| |
| * '''Resource''' - zip-архив или папка, содержащая файл meta.xml и некоторые другие составные части ресурсов. Они помещены в папке ''mods/deathmatch/resources'' в директории сервера.
| |
| * '''Составная часть''' - Файл, содержащийся внутри ресурса, на данный момент это могут быть карты, скрипты, картинки и т.д.
| |
|
| |
| ==Файл Meta==
| |
| ''Для подробностей читайте основную статью [[RU/Meta.xml|Meta.xml]]''
| |
|
| |
| Файл Meta - ядро каждого ресурса. Он в точности описывает, какие файлы должны использоваться в ресурсе и как. Далее следует пример, который покрывает все имеющиеся опции, ваши meta файлы могут иметь этих тегов столько, сколько вам потребуется:
| |
|
| |
| <syntaxhighlight lang="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>
| |
| </syntaxhighlight>
| |
| В то же время карта CTF может обладать meta.xml, выглядящим примерно так:
| |
| <syntaxhighlight lang="xml">
| |
| <meta>
| |
| <include resource="ctf" />
| |
| <map src="myuberl33tctfmap.map" />
| |
|
| |
| <info author="Tom" instructions="this is uber l33t !!!!!1111111" type="map" />
| |
| </meta>
| |
| </syntaxhighlight>
| |
|
| |
|
| |
| Атрибуты Script/type, Config/type и File/type указывают, может ли скрипт/ресурс быть загружен на компьютер клиента, и по умолачнию установлены на "server".
| |
|
| |
| Тэг include указывает на другие ресурсы, которые должны быть запущены перед запуском данного. Другими словами, если ваш ресурс зависит от другого, вы можете указать, чтобы этот другой запускался перед вашим,
| |
|
| |
|
| |
| Каждый ресурс обладает своей виртуальной машиной (VM). Она содержит каждый скрипт ресурса. Это значит, что переменные не являются общими с другими ресурсами. Лучший способ сообщаться с другими ресурсами - использовать тэг ''export'' и экспортировать функцию. Это позволит другим ресурсам ее вызывать с использованием скриптинговой функции [[call]].
| |
|
| |
|
| |
| Скрипты, отправляемые клиенту, стартуют сразу по завершении им закачки всех скриптов.
| |
|
| |
|
| |
| Скрипты имеют права на чтение и запись внутрь папки своего ресурса через функции типа [[xmlCreateFile]] и [[fileCreate]]. Они также имеют права на чтение и запись внутри других ресурсов, но только если имеют на это [[RU/Access_Control_List|ACL]]-доступ.
| |
|
| |
|
| |
| Каждый ресурс может быть загружен только один раз, сервер это проконтролирует. Даже при указании ресурса в качестве include более одного раза, каждый раз будет использована одна и та же его копия.
| |
|
| |
| ==Хранение файлов==
| |
| Файлы ресурса могут храниться либо в zip-архиве, либо в директории. Они располагаются в:
| |
|
| |
| server/mods/deathmatch/resources/ (если ваш сервер установлен вместе с клиентом)
| |
|
| |
| или
| |
|
| |
| mods/deathmatch/resources/ (для выделенных серверов)
| |
|
| |
| Каждый ресурс может являться zip-архивом, директорией, или и тем, и другим. В последнем случае директория будет приорететней zip-архива, так как в нее можно будет поместить файлы, которые перезапишут старые, что позволит тестировать и рарзратывать карты/скрипты "на лету". Такое не было бы возможно при приоритетах, расставленных наоборот. А zip-архивы, в свою очередь, зачастую используются конечными пользователями.
| |
|
| |
| ==Другие примечательные вещи==
| |
| *Названия ресурсов не могут содержать точек.
| |
| *Если ресурс сохраняет какие-нибудь файлы, используемые названия файлов не должны быть указаны в meta.xml
| |
| *Файлы, указанные в meta.xml, должны рассматриваться скриптами только как файлы для чтения. Не редактируйте их через xmlSaveFile, FileSave и т.д.
| |
| *При создании zip-архива вашего ресурса не включайте в него файлы, в которые будет вестись запись. Если ваш ресурс использует такие файлы, они должны быть созданы ресурсом по мере надобности.
| |
| *При создании zip-архива вашего ресурса включайте только те файлы, что описаны в meta.xml. Не включайте 'образцы' файлов, в которые будет вестись запись, это чревато последствиями.
| |
| *Мы рекомендуем избегать пробелов и экзотических символов в названиях ресурсов.
| |
|
| |
| ==Функции скриптинга==
| |
| Система ресурсов может управляться скриптово. Вследствие этого, предоставляются следующие серверные функции скриптинга:
| |
| {{Resource functions}}
| |
|
| |
| Предоставляются также следующие события:
| |
| {{Resource_events}}
| |
|
| |
| [[en:Resources]]
| |
| [[it:Introduzione alle Risorse]]
| |
| [[pt-br:Recursos]]
| |