O arquivo Meta
O arquivo meta.xml apresenta com o MTA um conjunto de metodados, como o nome dos recursos, incluindo os scripts, e também os arquivos para precache para enviar aos clientes entre outras coisas. É também a extensão de alguns "elementos". É escrito em XML, que é baseado em HTML e é o pai do XHTML.
Tags
XML é um formato de dados textuais que são amplamente utilizados para a apresentação dos dados. O MTA ussa uma linguagem baseada em XML para descrever os metodados de recursos, utilizando os tags a baixo.
- <info /> É o conjunto de informações do próprio recuso, os parâmetros possíveis incluem (quaisquer parâmetros arbitrários podem ser utilizados e lidos usando getResourceInfo ):
- author: O autor do recursos
- version: A versão do recursos
- name: O nome do recuros
- description: Pequena descrição do recurso
- type: Tipo de recurso, que pode ser "gamemode", "script", "map" ou "misc".
- <script /> O código fonte para este recurso, os parâmetros possíveis são:
- src: O nome do arquivo do script
- type: O tipo de script : "cliente" ou "servidor"
- <map /> O mapa de um modo de jogo, os parâmetros possíveis são:
- src: O nome do arquivo map (pode ser por exemplo. "maps/filename.map")
- dimension: Dimensão na qual o mapa será carregado (opcional)
- <file /> Arquivo do lado Client-Side. Geralmente são imagens, .txd, .col, .dff ou .xml arquivos. Eles serão baixados pelos clients quando o recurso ser iniciado (ou entrar)
- src: nome do arquivo client-side (pode ser por exemplo. "images/image.png")
- download: Enviar automaticamente para o client.(opcional). O padrão é "true" usar "no" ou "false" significa que não não enviados quando inicia o recurso, mas poderia ser utilizado posteriormente por downloadFile (a partir da versão 1.4)
- <include /> Inclusão de outro recurso para iniciar automaticamente ao iniciar este recursos
- resource: Nome do recurso ira iniciar automaticamente com este recurso
- minversion: Versão minima que o recurso precisa (opcional)
- maxversion: Versão máxima que o recurso precisa (opcional)
- <config /> Arquivo de Configuração (.xml) pode ser acessado pelo recurso, os parâmetros possíveis são:
- src: Nome do arquivo do script
- type: O tipo de script : "cliente" ou "servidor"
- <export /> Isto vai exportar uma função deste resource, para chamar a função através de outro resource você pode usar call
- function: Nome da função
- type Tipo de exportação da função, server-side ou client-side (valores válidos são: "servidor" e "cliente")
- http: A função pode ser chamada via HTTP (true/false)
- <html />
- src: Nome para o arquivo HTTP (pode ser um caminho)
- default: O arquivo HTML é aquele que é mostrado por padrão quando visita / nomeDoRecurso / no servidor. Apenas um html pode ser padrão, o resto é ignorado. (true / false)
- raw: O arquivo HTML não é analisado pelo intérprete LUA e são tratados como dados binários. Deve ser usado para arquivos binários (principalmente imagens) (true / false)
- <settings> <setting name="" value=""/> </settings>: A maioria dos 'gamemodes' usam settings system para permitir que administradores de servidores para configurem como eles desejarem. Por exemplo, você pode definir a qualquer momento usando get e set ara obter o valor ou alterá-lo, respectivamente.
- <min_mta_version /> Versão requisitos mínimos para este recurso para funcionar corretamente. Quando o meta é criado,a versão mínima geralmente deve ser definida para a versão atual de lançamento do MTA: SA "1.6.0").
- client: A verção minima do Client
- server: A verção minima do Server
- <aclrequest /> A lista ACL direitos deste recurso irá precisar.
- <sync_map_element_data /> Controle de mapas element data, tais como "PosX" e "DoubleSided" são transferidos para o cliente. Este dado normalmente não é exigido pela maioria dos gamemodes ou recursos. (Uma exceção notável é o editor). Quando configurado em um modo de jogo meta.xml, a definição será aplicada a todos os mapas carregados por esse recurso.
- false: Desativar a transferência de dados de elementos do mapa. Isso pode reduzir o tempo de download de mapas consideravelmente.
- true: Permitir a transferência de dados de elemento do mapa (default).
Exemplo
Está aqui um exemplo de um arquivo meta usando algumas das marcas mencionadas:
<meta>
<info author="Slothman" type="gamemode" name="Stealth" />
<config src="help.xml" type="client"/>
<min_mta_version client="1.6.0" server="1.6.0" />
<sync_map_element_data>false</sync_map_element_data>
<script src="stealthmain_server.lua" />
<script src="noiseblip.lua" />
<script src="mission_timer.lua" />
<script src="gadgets_server.lua" />
<script src="gadgets_client.lua" type="client"/>
<script src="stealthmain_client.lua" type="client"/>
<script src="noisebar.lua" type="client"/>
<script src="spycam.lua" type="client"/>
<script src="riemann_z_demonstration.lua" type="client"/>
<file src="riot_shield.txd" />
<file src="riot_shield.dff" />
<file src="riot_shield.col" />
<file src="armor.png" download="true"/>
<file src="camera.png" download="false"/>
<file src="cloak.png" />
<file src="goggles.png" />
<file src="mine.png" />
<file src="radar.png" />
<file src="shield.png" />
<include resource="scoreboard" />
<include resource="killmessages" />
<include resource="maplimits" />
<settings>
<setting name="roundlimit" value="[6]" />
<setting name="teamdamage" value="[1]" />
<setting name="teambalance" value="[1]" />
<setting name="spazammo" value="[25]" />
<setting name="m4ammo" value="[100]" />
<setting name="shotgunammo" value="[25]" />
<setting name="sniperammo" value="[20]" />
<setting name="ak47ammo" value="[120]" />
<setting name="rifleammo" value="[40]" />
<setting name="deserteagleammo" value="[45]" />
<setting name="pistolammo" value="[132]" />
<setting name="uziammo" value="[150]" />
<setting name="tec9ammo" value="[150]" />
<setting name="silencedammo" value="[65]" />
<setting name="grenadeammo" value="[4]" />
<setting name="satchelammo" value="[4]" />
<setting name="teargasammo" value="[4]" />
<setting name="molatovammo" value="[4]" />
</settings>
<aclrequest>
<right name="function.startResource" access="true" />
<right name="function.stopResource" access="true" />
<right name="function.setPlayerMuted" access="true" />
</aclrequest>
</meta>