O arquivo Meta: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Correção ortográfica.)
(Revisada a tradução...)
Line 1: Line 1:
Arquivo ''meta'' trabalha com metodados, este arquivo aqui é utilizamos para a ativação de outros arquivos e algumas definições mais abrangentes.
O ''meta.xml'' é um arquivo de metadados que define ao MTA os conceitos iniciais de um recurso. Exemplos seriam seu nome, os scripts a serem usados e quais devem ser pré-carregados para serem transferidos ao cliente; junto a outros de sua natureza. Ele também transforma arquivos em elementos, a exemplo de sons, imagens e modelos. É escrito em XML, o qual é baseado em HTML e é pai do XHTML.
Utilizamos para a ativação e inicialização, des de scripts a elementos.
 
Este arquivo é escrito sobre a extensão XML.
''obs'': Metadados são dados sobre outros dados. O termo é estranho, mas o próprio nome já diz. No caso do MTA eles seriam metadados descritivos, pois se referem ao conteúdo do jogo.


=Tags=
=Tags=
XML é um formato de dados textuais que são amplamente utilizados para a apresentação dos dados. O MTA usa uma linguagem baseada em XML para descrever os metodados de recursos, utilizando os tags a baixo.
O XML é um formato de texto muito usado para representar dados, inclusive pelo MTA. As tags a seguir são todas as possibilidades:


*'''<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]] ):
*'''<info />''' Representa informações sobre o recurso que podem ser usados de forma opcional, e lidos pela função [[getResourceInfo]], caso necessário:
** '''author:''' O autor do recursos
** '''author:''' Quem é o autor desse recurso?
** '''version:''' A versão do recursos
** '''version:''' Qual é a versão dele?
** '''name:''' O nome do recuros
** '''name:'''' Seu nome
** '''description:''' Pequena descrição do recurso
** '''description:''' Uma breve descrição
** '''type:''' Tipo de recurso, que pode ser "gamemode", "script", "map" ou "misc".
** '''type:''' Qual é o tipo do recurso, pode ser um "gamemode", "script", "map", ou "misc".
*'''<script />''' O código fonte para este recurso, os parâmetros possíveis são:
* '''<script />''' O código fonte do recurso, os possíveis parâmetros são:
** '''src:''' O nome do arquivo do script
** '''src:''' Indica o nome do arquivo
** '''type:''' O tipo de script : "cliente" ou "servidor"
** '''type:''' Indica o tipo do lado: "client", "server" ou "shared"
<!--
** '''cache:''' Quando o script é do tipo cliente, esse atributo diz se o arquivo será salvo ou não no disco rígido dele. O padrão é "true", se for usado o contrário, será apagado quando o recurso parar.
** '''protected:''' Para client-side scripts, se este script deve ou não ser salvos no disco rígido clientes: "true" ou "false". NOTA: [http://bugs.mtasa.com/view.php?id=6831 pode haver um bug relacionado a isto].
** '''validate:''' Se for definido como falso, o MTA não verificará se é compatível
-->
* '''<map />''' Define mapa do gamemode, os possíveis atributos são:
*'''<map />''' O mapa de um modo de jogo, os parâmetros possíveis são:
** '''src:''' o nome do arquivo .map (pode também ser o diretório, ex: ''maps/nome-do-mapa.map)
**'''src:''' O nome do arquivo map (pode ser por exemplo. "maps/filename.map")
** '''download:''' Indicará se poderá ser automaticamente enviado ao cliente ou não (opicional). O padrão é "true", caso contrário significará o não envio do mesmo no início do recurso. Mas poderá ser enviado mais tarde usando [[downloadFile]] (a partir da ver. 1.4 em diante)
**'''dimension:''' Dimensão na qual o mapa será carregado (opcional)
*'''<include />''' Inclui os recursos necessários a estarem rodando
*'''<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)
**'''resource:''' Diz o nome do recurso que queres usar
**'''src:''' nome do arquivo client-side (pode ser por exemplo. "images/image.png")
**'''minversion:''' A versão mínima desse recurso (opcional)
**'''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)
**'''maxversion:''' A versão máxima desse recurso (opcional)
*'''<include />''' Inclusão de outro recurso para iniciar automaticamente ao iniciar este recursos
*'''<config />''' O arquivo de configuração em XML a ser usado pelo recurso:
**'''resource:''' Nome do recurso ira iniciar automaticamente com este recurso
**'''src:''' Seu nome
**'''minversion:''' Versão minima que o '''recurso''' precisa (opcional)
**'''type:''' Seu tipo: "client" ou "server"
**'''maxversion:''' Versão máxima que o '''recurso''' precisa (opcional)
*'''<export />''' Exporta uma função do seu recurso, para que outros possam usa-la com o [[call]]
*'''<config />''' Arquivo de Configuração (.xml) pode ser acessado pelo recurso, os parâmetros possíveis são:
**'''function:''' O nome da função
**'''src:''' Nome do arquivo do script
**'''type:''' Diz se será exportado para o lado do cliente ou servidor (valores válidos são: "server" ou "client")
**'''type:''' O tipo de script : "cliente" ou "servidor"
**'''http:''' Indica se ele pode ser chamado via HTTP ("true" ou "false")
*'''<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 />'''
*'''<html />'''
**'''src:''' Nome para o arquivo HTTP (pode ser um caminho)
**'''src:''' O nome do arquivo HTTP (pode ser um diretório)
**'''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)
**'''default:''' Qual arquivo html a ser mostrado por padrão ao acessar o caminho ''/nome-do-recurso/'' no servidor. Somente um html pode ser definido, os outros são ignorados (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)
**'''raw:''' O arquivo html não é interpretado pelo Lua e assim só passa como um dado binário. Deve ser usado para arquivos binários, como imagens principalmente (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.
*'''<settings> <setting name="" value=""/> </settings>:''' Muitos gamemodes usam o [[settings system|sistema de configurações]] para habilitar administradores do servidor configurá-los como desejarem. Um exemplo seria definir o tempo de duração da partida e usar o [[get]] e [[set]] para manipular o valor responsável por isso.
*'''<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 "{{Current Version|full}}").
*'''<min_mta_version />''' Versão mínima do MTA para o recurso rodar sem problemas. Quando estiver terminando um recurso, a versão mínima deve a mesma da versão do MTA:SA que está usando (a qual no momento é {{Current Version|full}}). Veja o exemplo abaixo.
**'''client:''' A verção minima do Client
**'''client:''' A versão mínima do cliente
**'''server:''' A verção minima do Server
**'''server:''' A versão mínima do servidor
*'''<aclrequest />''' A lista [[Access_Control_List|ACL]] direitos deste recurso irá precisar.
*'''<aclrequest />''' Indica uma lista de permissões do [[Access_Control_List|ACL]] a serem usados pelo recurso.
{{New items|3.0139|1.3.1 r4141|
{{New items|3.0132|1.3.1 r4141|
*'''<sync_map_element_data />''' Controle de mapas [[Element_data|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.
*'''<sync_map_element_data />''' Indica se os dados de elemento como "PosX" e "DoubleSided" são tranferidos para o cliente. Esses geralmente não são necessários por muitos gamemodes ou recursos, exceto ''Map Editor'' e ''Interiors''; caso contrário, não funcionarão. Quando definido no recurso, se aplicará a todos os mapas carregados por ele.
**'''false:''' Desativar a transferência de dados de elementos do mapa. Isso pode reduzir o tempo de download de mapas consideravelmente.
**'''false:''' Desabilita essa transferência para todos os recursos. Isso pode reduzir a demora de download consideravelmente.
**'''true:''' Permitir a transferência de dados de elemento do mapa (default).
**'''true:''' Habilita essa tranferência. Se esses valores forem definidos de forma distinta entre os recursos, o que estiver configurado como "true" terá prioridade e todos os demais transferirão esse mesmo dado.
}}
 
 
{{New items|3.0140|1.4.0 r5313|
*'''<oop/>''' OOP - Veja mais informações na página: [[PT-BR/Classes_de_Scripts_do_Cliente|Classes de Scripts do Cliente]]
**'''false:''' Desabilita o OOP.
**'''true:''' Habilita-o
}}
}}


== Exemplo ==
== Exemplo ==
Está aqui um exemplo de um arquivo meta usando algumas das marcas mencionadas:
Aqui está um exemplo de um arquivo meta usando algumas das tags mencionadas:
{{#tag:code |
{{#tag:code |
<meta>
<meta>
     <info author="Slothman" type="gamemode" name="Stealth" />
     <info author="Slothman" type="gamemode" name="Stealth" />
     <config src="help.xml" type="client"/>
     <config src="help.xml" type="client"/>
     <min_mta_version client="{{Current Version|full}}" server="{{Current Version|full}}" />
     <min_mta_version client="{{Current Version|full}}" server="{{Current Version|full}}" />
     <sync_map_element_data>false</sync_map_element_data>
     <sync_map_element_data>false</sync_map_element_data>


Line 64: Line 69:
     <script src="gadgets_server.lua" />
     <script src="gadgets_server.lua" />
     <script src="gadgets_client.lua" type="client"/>
     <script src="gadgets_client.lua" type="client"/>
     <script src="stealthmain_client.lua" type="client"/>
     <script src="stealthmain_client.lua" type="client" validate="true"/>
     <script src="noisebar.lua" type="client"/>
     <script src="noisebar.lua" type="client"/>
     <script src="spycam.lua" type="client"/>
     <script src="spycam.lua" type="client"/>
     <script src="riemann_z_demonstration.lua" type="client"/>
     <script src="riemann_z_demonstration.lua" type="client" cache="false"/>
    <map src="base.map" dimension="1"/>


     <file src="riot_shield.txd" />
     <file src="riot_shield.txd" />
Line 83: Line 89:
     <include resource="killmessages" />
     <include resource="killmessages" />
     <include resource="maplimits" />
     <include resource="maplimits" />
   
    <export function="exampleExport1" type="server" />
    <export function="exampleExport2" type="client" />
    <export function="exampleExport3" type="shared" />


     <settings>
     <settings>
         <setting name="roundlimit" value="[6]" /> <!-- round length in minutes -->
         <setting name="roundlimit" value="[6]" /> <!-- duração da partida em minutos -->
<setting name="teamdamage" value="[1]" /> <!-- 0 for team protection off, 1 for team protection on -->
<setting name="teamdamage" value="[1]" /> <!-- 0 para desligar a proteção de time e 1 para ligar -->
<setting name="teambalance" value="[1]" /> <!--  difference limit of amount of players between teams -->
<setting name="teambalance" value="[1]" /> <!--  o limite de diferença entre o número de jogadores dos times -->
<setting name="spazammo" value="[25]" /> <!-- ammo amounts -->
<setting name="spazammo" value="[25]" /> <!-- quantidade de munição -->
<setting name="m4ammo" value="[100]" />
<setting name="m4ammo" value="[100]" />
<setting name="shotgunammo" value="[25]" />
<setting name="shotgunammo" value="[25]" />
Line 103: Line 113:
<setting name="teargasammo" value="[4]" />
<setting name="teargasammo" value="[4]" />
<setting name="molatovammo" value="[4]" />
<setting name="molatovammo" value="[4]" />
<setting name="isAllowedToShoot" value="true" />
     </settings>
     </settings>


Line 110: Line 121:
<right name="function.setPlayerMuted" access="true" />
<right name="function.setPlayerMuted" access="true" />
     </aclrequest>
     </aclrequest>
</meta>
</meta>
|lang="xml"}}
|lang="xml"}}
[[Category:Scripting Concepts]]
[[Category:Scripting Concepts]]
[[en:Meta.xml]]
[[cs:Meta.xml]]
[[cs:Meta.xml]]
[[ru:Meta.xml]]
[[de:Meta.xml]]
[[es:Sobre el archivo "meta.xml"]]
[[es:Sobre el archivo "meta.xml"]]
[[it:Meta.xml]]
[[pl:Meta.xml]]
[[pl:Meta.xml]]
[[ru:Meta.xml]]

Revision as of 15:15, 2 July 2014

O meta.xml é um arquivo de metadados que define ao MTA os conceitos iniciais de um recurso. Exemplos seriam seu nome, os scripts a serem usados e quais devem ser pré-carregados para serem transferidos ao cliente; junto a outros de sua natureza. Ele também transforma arquivos em elementos, a exemplo de sons, imagens e modelos. É escrito em XML, o qual é baseado em HTML e é pai do XHTML.

obs: Metadados são dados sobre outros dados. O termo é estranho, mas o próprio nome já diz. No caso do MTA eles seriam metadados descritivos, pois se referem ao conteúdo do jogo.

Tags

O XML é um formato de texto muito usado para representar dados, inclusive pelo MTA. As tags a seguir são todas as possibilidades:

  • <info /> Representa informações sobre o recurso que podem ser usados de forma opcional, e lidos pela função getResourceInfo, caso necessário:
    • author: Quem é o autor desse recurso?
    • version: Qual é a versão dele?
    • name:' Seu nome
    • description: Uma breve descrição
    • type: Qual é o tipo do recurso, pode ser um "gamemode", "script", "map", ou "misc".
  • <script /> O código fonte do recurso, os possíveis parâmetros são:
    • src: Indica o nome do arquivo
    • type: Indica o tipo do lado: "client", "server" ou "shared"
    • cache: Quando o script é do tipo cliente, esse atributo diz se o arquivo será salvo ou não no disco rígido dele. O padrão é "true", se for usado o contrário, será apagado quando o recurso parar.
    • validate: Se for definido como falso, o MTA não verificará se é compatível
  • <map /> Define mapa do gamemode, os possíveis atributos são:
    • src: o nome do arquivo .map (pode também ser o diretório, ex: maps/nome-do-mapa.map)
    • download: Indicará se poderá ser automaticamente enviado ao cliente ou não (opicional). O padrão é "true", caso contrário significará o não envio do mesmo no início do recurso. Mas poderá ser enviado mais tarde usando downloadFile (a partir da ver. 1.4 em diante)
  • <include /> Inclui os recursos necessários a estarem rodando
    • resource: Diz o nome do recurso que queres usar
    • minversion: A versão mínima desse recurso (opcional)
    • maxversion: A versão máxima desse recurso (opcional)
  • <config /> O arquivo de configuração em XML a ser usado pelo recurso:
    • src: Seu nome
    • type: Seu tipo: "client" ou "server"
  • <export /> Exporta uma função do seu recurso, para que outros possam usa-la com o call
    • function: O nome da função
    • type: Diz se será exportado para o lado do cliente ou servidor (valores válidos são: "server" ou "client")
    • http: Indica se ele pode ser chamado via HTTP ("true" ou "false")
  • <html />
    • src: O nome do arquivo HTTP (pode ser um diretório)
    • default: Qual arquivo html a ser mostrado por padrão ao acessar o caminho /nome-do-recurso/ no servidor. Somente um html pode ser definido, os outros são ignorados (true/false)
    • raw: O arquivo html não é interpretado pelo Lua e assim só passa como um dado binário. Deve ser usado para arquivos binários, como imagens principalmente (true/false)
  • <settings> <setting name="" value=""/> </settings>: Muitos gamemodes usam o sistema de configurações para habilitar administradores do servidor configurá-los como desejarem. Um exemplo seria definir o tempo de duração da partida e usar o get e set para manipular o valor responsável por isso.
  • <min_mta_version /> Versão mínima do MTA para o recurso rodar sem problemas. Quando estiver terminando um recurso, a versão mínima deve a mesma da versão do MTA:SA que está usando (a qual no momento é 1.6.0). Veja o exemplo abaixo.
    • client: A versão mínima do cliente
    • server: A versão mínima do servidor
  • <aclrequest /> Indica uma lista de permissões do ACL a serem usados pelo recurso.
  • <sync_map_element_data /> Indica se os dados de elemento como "PosX" e "DoubleSided" são tranferidos para o cliente. Esses geralmente não são necessários por muitos gamemodes ou recursos, exceto Map Editor e Interiors; caso contrário, não funcionarão. Quando definido no recurso, se aplicará a todos os mapas carregados por ele.
    • false: Desabilita essa transferência para todos os recursos. Isso pode reduzir a demora de download consideravelmente.
    • true: Habilita essa tranferência. Se esses valores forem definidos de forma distinta entre os recursos, o que estiver configurado como "true" terá prioridade e todos os demais transferirão esse mesmo dado.


Exemplo

Aqui está um exemplo de um arquivo meta usando algumas das tags 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" validate="true"/>
   <script src="noisebar.lua" type="client"/>
   <script src="spycam.lua" type="client"/>
   <script src="riemann_z_demonstration.lua" type="client" cache="false"/>
   <map src="base.map" dimension="1"/>
   <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" />
   
   <export function="exampleExport1" type="server" />
   <export function="exampleExport2" type="client" />
   <export function="exampleExport3" type="shared" />
   <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]" /> <setting name="isAllowedToShoot" value="true" />

    </settings>
    <aclrequest>

<right name="function.startResource" access="true" /> <right name="function.stopResource" access="true" /> <right name="function.setPlayerMuted" access="true" />

    </aclrequest>

</meta>