IT/Meta.xml

From Multi Theft Auto: Wiki

Il file meta.xml è uno dei file più importanti che tutte le risorse/gamemode/mappe possono caricare. I nomi dei file che i tuoi script (risorse) andranno scritti nel file meta.xml. Ad esempio se vuoi mostrare una immagine sullo schermo del client, il client ha prima bisogno di scaricare l'immagine. Per dire al server che vuoi usare un'immagine nello script dovrai inserire il nome del file immagine nel meta.xml.

Se vuoi impostare delle opzioni nello script come variabili dovrai usare il tag

<settings>

.

Nota: Puoi trovare un semplice generatore di meta.xml creato da 50p qui.

Possibili tag

I tag nell'XML sono molto simili a quelli dell'HTML. Il file meta.xml ha diverse coppie di file che possono essere o meno obbligatori. Alcuni tag hanno degli attributi.

  • <info /> Informazioni sulla risorsa attuale, tra i parametri troviamo (è possibile anche creare dei parametri personalizzati, leggibili tramite getResourceInfo):
    • author: L'autore della risorsa.
    • version: La versione attuale della risorsa.
    • name: Il nome della risorsa.
    • description: Una breve descrizione della risorsa.
    • type: Il tipo di risorsa, che può essere "gamemode", "script" o "map".
  • <script /> Il codice sorgente della risorsa, tra i cui parametri abbiamo:
    • src: Il nome del file del sorgente.
    • type: Il tipo di sorgente: "client" o "server".
  • <map /> Le mappe della gamemode, tra i cui parametri troviamo:
    • src: Il nome o il percorso del file .map (es: "mappe/nomefile.map")
  • <file /> I file client-side. In genere si tratta di file texture (.txd), collision shapes (.col), immagini o modelli 3D (.dff). Questi file verranno scaricati automaticamente dal client.
    • src: Nome o il percorso del file client-side (es: "immagini/immagine.png")
  • <include /> Risorse da includere in quella attuale.
    • resource: Nome della risorsa da avviare insieme a quella attuale.
  • <config /> Un file di configurazione (.xml) a cui la risorsa può accedere, tra i parametri troviamo:
    • src: Nome del file di configurazione.
    • type: Tipo del file di configurazione: "client" o "server".
  • <export /> Le funzioni che la risorsa esporterà, cosicché le altre risorse possano chiamarle con call.
    • function: Il nome della funzione.
    • http: Se la funzione può essere chiamata via HTTP (true/false).
  • <html />
    • src: Il nome del file HTML (può anche essere un percorso).
    • default: Se il file HTML viene mostrato di default quando si va in remoto su
      /resourceName/
      . Un solo file HTML può essere default, gli altri vengono ignorati (true/false).
    • raw: Se il file HTML non deve essere processato dall'interprete LUA, e viene trattato come dati binari. Deve essere usato per file binari (in genere immagini) (true/false).
  • <settings> </settings>

Esempio

Questo è un esempio di file XML che utilizza alcuni dei tag sopra descritti:

<meta>
    <info author="Pinco" type="gamemode" name="Stealth" />
    <config src="help.xml" type="client"/>

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

    <file src="riot_shield.txd" />
    <file src="riot_shield.dff" />
    <file src="riot_shield.col" />
    <file src="armor.png" />
    <file src="camera.png" />
    <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]" /> <!-- lunghezza dei round in minuti -->
	 <setting name="teamdamage" value="[1]" /> <!-- 0 per il fuoco amico abilitato, 1 per il fuoco amico disattivato -->
	 <setting name="teambalance" value="[1]" /> <!--  differenza massima di giocatori tra un team e l'altro -->
	 <setting name="spazammo" value="[25]" /> <!-- quantità di munizioni -->
	 <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>
</meta>