O arquivo Meta: Difference between revisions
 (Correção ortográfica.)  | 
				 (Revisada a tradução...)  | 
				||
| Line 1: | Line 1: | ||
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=  | =Tags=  | ||
XML é um formato de   | O XML é um formato de texto muito usado para representar dados, inclusive pelo MTA. As tags a seguir são todas as possibilidades:   | ||
*'''<info />'''   | *'''<info />''' Representa informações sobre o recurso que podem ser usados de forma opcional, e lidos pela função [[getResourceInfo]], caso necessário:  | ||
** '''author:'''   | ** '''author:''' Quem é o autor desse recurso?  | ||
** '''version:'''   | ** '''version:''' Qual é a versão dele?  | ||
** '''name:'''   | ** '''name:'''' Seu nome  | ||
** '''description:'''   | ** '''description:''' Uma breve descrição  | ||
** '''type:'''   | ** '''type:''' Qual é o tipo do recurso, pode ser um "gamemode", "script", "map", ou "misc".  | ||
*'''<script />''' O código fonte   | * '''<script />''' O código fonte do recurso, os possíveis parâmetros são:  | ||
** '''src:'''   | ** '''src:''' Indica o nome do arquivo  | ||
** '''type:'''   | ** '''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:  | |||
*'''<map />'''   | ** '''src:''' o nome do arquivo .map (pode também ser o diretório, ex: ''maps/nome-do-mapa.map)  | ||
**'''src:'''   | ** '''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)  | |||
**'''download:'''   | **'''maxversion:''' A versão máxima desse recurso (opcional)  | ||
*'''<include />'''   | *'''<config />''' O arquivo de configuração em XML a ser usado pelo recurso:  | ||
**'''resource:'''   | **'''src:''' Seu nome  | ||
**'''minversion:'''   | **'''type:''' Seu tipo: "client" ou "server"  | ||
**'''maxversion:'''   | *'''<export />''' Exporta uma função do seu recurso, para que outros possam usa-la com o [[call]]  | ||
*'''<config />'''   | **'''function:''' O nome da função  | ||
**'''src:'''   | **'''type:''' Diz se será exportado para o lado do cliente ou servidor (valores válidos são: "server" ou "client")  | ||
**'''type:'''   | **'''http:''' Indica se ele pode ser chamado via HTTP ("true" ou "false")  | ||
*'''<export />'''   | |||
**'''function:'''   | |||
**'''type'''   | |||
**'''http:'''   | |||
*'''<html />'''  | *'''<html />'''  | ||
**'''src:'''   | **'''src:''' O nome do arquivo HTTP (pode ser um diretório)  | ||
**'''default:'''   | **'''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   | **'''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>:'''   | *'''<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   | *'''<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   | **'''client:''' A versão mínima do cliente  | ||
**'''server:''' A   | **'''server:''' A versão mínima do servidor  | ||
*'''<aclrequest />'''   | *'''<aclrequest />''' Indica uma lista de permissões do [[Access_Control_List|ACL]] a serem usados pelo recurso.  | ||
{{New items|3.  | {{New items|3.0132|1.3.1 r4141|  | ||
*'''<sync_map_element_data />'''   | *'''<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:'''   | **'''false:''' Desabilita essa transferência para todos os recursos. Isso pode reduzir a demora de download consideravelmente.  | ||
**'''true:'''   | **'''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 ==  | ||
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]" /> <!--   |           <setting name="roundlimit" value="[6]" /> <!-- duração da partida em minutos -->  | ||
	 <setting name="teamdamage" value="[1]" /> <!-- 0   | 	 <setting name="teamdamage" value="[1]" /> <!-- 0 para desligar a proteção de time e 1 para ligar -->  | ||
	 <setting name="teambalance" value="[1]" /> <!--    | 	 <setting name="teambalance" value="[1]" /> <!--  o limite de diferença entre o número de jogadores dos times -->  | ||
	 <setting name="spazammo" value="[25]" /> <!--   | 	 <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]]  | ||
[[  | [[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.
 
 
- <oop/> OOP - Veja mais informações na página: Classes de Scripts do Cliente
- false: Desabilita o OOP.
 - true: Habilita-o
 
 
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>