O arquivo Meta: Difference between revisions
m (→Tags) |
|||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
O | 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:''' O autor do | ** '''author:''' O autor do recurso | ||
** '''version:''' A versão do | ** '''version:''' A versão do recurso | ||
** '''name:''' O nome do | ** '''name:''' O nome do recurso | ||
** '''description:''' | ** '''description:''' Uma breve descrição do recurso | ||
** '''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:''' O nome do arquivo do | ** '''src:''' O nome do arquivo do código fonte | ||
** '''type:''' O tipo de | ** '''type:''' O tipo de código-fonte: "client", "server" ou "shared". | ||
** '''cache:''' Quando o script é do tipo client, 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:''' | ** '''dimension:''' Dimensão em que o mapa será carregado (opcional) | ||
**'''dimension:''' Dimensão | * '''<File />''' Um arquivo do lado do cliente. Geralmente são imagens, .txd, .col, .dff ou arquivos .xml. Eles vão ser baixado pelos clientes quando o recurso é iniciado (ou quando ele entrar no servidor) | ||
*'''< | ** '''src:''' nome do arquivo do lado do cliente (pode ser outro caminho por exemplo, "images/imagem.png".) | ||
**'''src:''' nome do arquivo | ** '''download:''' Vai ou não ser enviado para o cliente automaticamente(opcional). O padrão é "true". Usando "false" significa que eles não são enviados no início de recursos, mas poderia ser usado posteriormente por DownloadFile (a partir da versão 1.4) | ||
**'''download:''' | *'''<include />''' Inclui os recursos necessários a estarem rodando | ||
*'''<include />''' | **'''resource:''' Nome do recurso que você quer iniciar junto com esse | ||
**'''resource:''' Nome do recurso | **'''minversion:''' A versão mínima desse recurso (opcional) | ||
**'''minversion:''' | **'''maxversion:''' A versão máxima desse recurso (opcional) | ||
**'''maxversion:''' | *'''<config />''' O arquivo de configuração em XML a ser usado pelo recurso: | ||
*'''<config />''' | **'''src:''' Seu nome | ||
**'''src:''' | **'''type:''' Seu tipo: "client" ou "server" | ||
**'''type:''' | *'''<export />''' Exporta uma função do seu recurso, para que outros possam usa-la com o [[call]] | ||
*'''<export />''' | **'''function:''' O nome da função | ||
**'''function:''' | **'''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") | ||
**'''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 [[PT-BR/Sistema_de_Configurações|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. | ||
*'''<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. | |||
*'''<sync_map_element_data />''' | **'''false:''' Desabilita essa transferência para todos os recursos. Isso pode reduzir a demora de download consideravelmente. | ||
**'''false:''' | **'''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. | ||
**'''true:''' | *'''<oop/>''' OOP - Veja mais informações na página: [[OOP]] | ||
**'''false:''' Desabilita o OOP. | |||
**'''true:''' Habilita-o | |||
*'''<download_priority_group/>''' O valor padrão do grupo de prioridade de download do recurso é 0. Se este for definido para um valor maior que 0, então o recurso será baixado e iniciado no cliente antes dos outros recursos. Se defindo para um valor menor que 0, o recurso será baixado e iniciado no cliente depois dos outros recursos. | |||
== Exemplo == | == Exemplo == | ||
Aqui está um exemplo de um arquivo meta usando algumas das tags mencionadas: | |||
{{#tag: | {{#tag:syntaxhighlight | | ||
<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"/> | ||
<download_priority_group>0</download_priority_group> | |||
<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 62: | Line 68: | ||
<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 81: | Line 88: | ||
<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 101: | Line 112: | ||
<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 108: | Line 120: | ||
<right name="function.setPlayerMuted" access="true" /> | <right name="function.setPlayerMuted" access="true" /> | ||
</aclrequest> | </aclrequest> | ||
</meta> | </meta> | ||
|lang="xml"}} | |lang="xml"}} | ||
[[Category:Scripting | [[Category:Conceitos de Scripting]] | ||
[[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]] |
Latest revision as of 23:58, 3 June 2019
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: O autor do recurso
- version: A versão do recurso
- name: O nome do recurso
- description: Uma breve descrição do recurso
- 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: O nome do arquivo do código fonte
- type: O tipo de código-fonte: "client", "server" ou "shared".
- cache: Quando o script é do tipo client, 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)
- dimension: Dimensão em que o mapa será carregado (opcional)
- <File /> Um arquivo do lado do cliente. Geralmente são imagens, .txd, .col, .dff ou arquivos .xml. Eles vão ser baixado pelos clientes quando o recurso é iniciado (ou quando ele entrar no servidor)
- src: nome do arquivo do lado do cliente (pode ser outro caminho por exemplo, "images/imagem.png".)
- download: Vai ou não ser enviado para o cliente automaticamente(opcional). O padrão é "true". Usando "false" significa que eles não são enviados no início de recursos, mas poderia ser usado posteriormente por DownloadFile (a partir da versão 1.4)
- <include /> Inclui os recursos necessários a estarem rodando
- resource: Nome do recurso que você quer iniciar junto com esse
- 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: OOP
- false: Desabilita o OOP.
- true: Habilita-o
- <download_priority_group/> O valor padrão do grupo de prioridade de download do recurso é 0. Se este for definido para um valor maior que 0, então o recurso será baixado e iniciado no cliente antes dos outros recursos. Se defindo para um valor menor que 0, o recurso será baixado e iniciado no cliente depois dos outros recursos.
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"/> <download_priority_group>0</download_priority_group> <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>