PT-BR/Recursos

From Multi Theft Auto: Wiki
Revision as of 13:38, 2 July 2014 by Cristiano Cardoso (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Recursos são uma parte essencial do MTA, nada mais que uma pasta ou um arquivo zip contendo arquivos definidos por outro chamado meta.xml. Em outras palavras, o meta só tem a função de alegar a existência desses arquivos e eles só serão carregados se estiverem lá. Um recurso também pode ser visto como um programa de computador rodando em um SO - pode ser iniciado, parado e vários deles rodando ao mesmo tempo. Porém, não há a possibilidade de haver uma espécie de multi-tarefa entre eles.


Definições

  • Recurso (Resource, em Inglês) - Um arquivo zip ou pasta contendo um meta.xml e demais arquivos. Eles estão localizados na pasta ../server/mods/deathmath/resources.
  • Componente do Recurso - É um arquivo pertencente ao recurso; por enquanto isso pode ser um mapa, script, imagens e etc.

O arquivo meta

O arquivo meta é como se fosse a alma de cada recurso. Ele descreve exatamente quais arquivos contidos no recurso devem ser usados, e como. Abaixo, há um exemplo contendo todas as possíveis maneiras de utilização de tags. Lembrando que você pode usar quantas delas for preciso. Para mais informações sobre o meta, veja o artigo principal.

<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>

Um mapa de CTF também pode ter um meta.xml, como a seguir:

<meta>
    <include resource="ctf" />
    <map src="myuberl33tctfmap.map" />

    <info author="Tom" instructions="this is uber l33t !!!!!1111111" type="map" />
</meta>


Script/type, Config/type and File/type são atributos específicos indicando se os arquivos devem ser enviados ao cliente ou não. O padrão sempre será "server".

A tag include indica a obrigatoriedade de um recurso específico já estar rodando antes desse. Isso porque provavelmente ele depende do outro para realizar suas atividades.

Cada recurso contém sua própria máquina virtual (VM) e ela abriga todos scripts do recurso. Isso significa que as variáveis não são compartilhadas entre recursos. Todavia, se for usado a tag export é possível definir uma função específica a todos recursos. Feito isso, é só usar a call para executar esta função.

Scripts são enviados aos clientes assim que todos estiverem carregados.

Scripts são capazes de ler e escrever em seu respectivo recurso ao usar as funções xmlCreateFile e fileCreate. Eles também podem fazer isto em outros, mas precisarão de uma autorização no ACL.

Cada recurso só pode ser carregado uma vez; o servidor irá se certificar disso. Se ele estiver incluído em mais de um recurso, o mesmo ego será usado por todos que o incluíram.

Sistema de arquivos

Os arquivos dos recursos podem estar armazenados dentro de um zip ou pasta. Eles estão localizados em: ../server/mods/deathmatch/resources/ (claro, se foi instalado o servidor junto ao cliente)

ou

../mods/deathmatch/resources/ (para servidores dedicados)


Cada recurso pode ter um arquivo zip, diretório ou ambos. Se for o último caso, o diretório pode se sobre sair ao zip, ou seja, arquivos podem ser colocados na pasta para substituir os dentro do zip. Isso pode ser usado como uma espécie de pasta-teste para desenvolvimento de mapas/scripts, enquanto os arquivos comprimidos serão usados por usuários finais.

Outras coisas importantes

  • Recursos não podem ter pontos em seu nome
  • Se um recurso fizer alterações em algum arquivo, não o declare no meta.xml
  • Os arquivos declarados no meta.xml são considerados somente-leitura. Não os modifique com xmlSaveFile, FileSave e cia.
  • Quando estiver fazendo um arquivo zip para seu recurso:
    • Não inclua arquivos que serão usados pelo usuário. Crie-os com seu script quando for necessário
    • Só coloque arquivos listados no meta.xml, caso contrário, coisas ruins vão acontecer. (É, eles serão apagados)
  • É recomendado evitar espaços ou caracters especiais nos nomes dos recursos


Funções de Script

O sistema que rege os recursos pode ser manipulado por um script. Desta forma, funções do servidor farão o papel:


E aqui estão os eventos: