IT/Introduzione alle Risorse: Difference between revisions
(New page: {{IT/MainP}} Category:25% Category:IT/Concetti di scripting Le '''risorse''' sono una parte chiave di MTA. Essenzialmente una riosra è una cartella o un archivio zip contenente de...) |
ALexMiller (talk | contribs) |
||
Line 8: | Line 8: | ||
* '''Resource item''': Un file contenuto in una risorsa, possono essere script LUA, mappe, immagini eccetera. | * '''Resource item''': Un file contenuto in una risorsa, possono essere script LUA, mappe, immagini eccetera. | ||
==The Meta File== | ==The Meta File== | ||
'' | ''Guarda l'articolo principale [[Meta.xml]] per dettagli'' | ||
Il file Meta è il nucleo di ogni risorsa. Descrive esattamente quali files verranno usati nella risorsa, e come. Il seguente è un esempio che comprende ogni opzione che il tuo meta file può contenere e che ti potrebbero servire: | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Line 50: | Line 50: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Gli attributi Script/type, Config/type e File/type specificato se lo script/la risorsa deve essere inviato al client o no, e il default è "server". | |||
Il tag include specifica le altre risorse che devono essere eseguite prima che questa risorsa sia avviata. In altre parole, se la tua risorsa depende da un'altra, puoi includere quest'ultima cosicchè l'altra risorse sia avviata prima. | |||
Ogni riosrsa ha la propria macchina virtuale [ (VM ) Virtual Machine in inglese ]. Questa contiene ogni script nella risorsa. Questo significa che le variabili non sono condivise con altre risorse. Il miglior modo per comunicare con le altre risorse è usando il tag ''export'' ed esportando una funzione. Questo abiliterà le altre risorse a far partire questa funzione usando la funzione [[call]]. | |||
Gli script inviati ai client sono avviati non appena tutti gli script sono stati scaricati. | |||
Gli script possono leggere e scrivere alle prorie cartelle delle risorse con funzioni come [[xmlCreateFile]] e [[fileCreate]]. | |||
Possono anche leggere e scrivere alle altre risorse, ma deve avere l'accesso da [[Access_Control_List[ACL]]]. | |||
Ogni risorsa può essere solo caricata una volta, il server se ne accerterà. Se una risorsa è inclusa più di una volta, la stessa istanza sarà usata da ogni risorsa che la include. | |||
==File storage== | ==File storage== |
Revision as of 22:43, 21 June 2009
Le risorse sono una parte chiave di MTA. Essenzialmente una riosra è una cartella o un archivio zip contenente dei file - tra cui gli script essenziali ed un file meta che descrive al server come la risorsa dev'essere caricata. Una risorsa può essere vista come un programma in un sistema operativo - può essere avviata e fermata, e più risorse possono essere avviate in contemporanea.
Terminologia
- Resource: Un archivio zip o una cartella contenente un file meta.xml e un certo numero di altri file (resource items). Questa va posizionata nella cartella
<SERVER>/mods/deathmatch/resources
di MTA. - Resource item: Un file contenuto in una risorsa, possono essere script LUA, mappe, immagini eccetera.
The Meta File
Guarda l'articolo principale Meta.xml per dettagli
Il file Meta è il nucleo di ogni risorsa. Descrive esattamente quali files verranno usati nella risorsa, e come. Il seguente è un esempio che comprende ogni opzione che il tuo meta file può contenere e che ti potrebbero servire:
<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>
While a CTF map may have a meta.xml that looks like:
<meta> <include resource="ctf" /> <map src="myuberl33tctfmap.map" /> <info author="Tom" instructions="this is uber l33t !!!!!1111111" type="map" /> </meta>
Gli attributi Script/type, Config/type e File/type specificato se lo script/la risorsa deve essere inviato al client o no, e il default è "server".
Il tag include specifica le altre risorse che devono essere eseguite prima che questa risorsa sia avviata. In altre parole, se la tua risorsa depende da un'altra, puoi includere quest'ultima cosicchè l'altra risorse sia avviata prima.
Ogni riosrsa ha la propria macchina virtuale [ (VM ) Virtual Machine in inglese ]. Questa contiene ogni script nella risorsa. Questo significa che le variabili non sono condivise con altre risorse. Il miglior modo per comunicare con le altre risorse è usando il tag export ed esportando una funzione. Questo abiliterà le altre risorse a far partire questa funzione usando la funzione call.
Gli script inviati ai client sono avviati non appena tutti gli script sono stati scaricati.
Gli script possono leggere e scrivere alle prorie cartelle delle risorse con funzioni come xmlCreateFile e fileCreate. Possono anche leggere e scrivere alle altre risorse, ma deve avere l'accesso da [[Access_Control_List[ACL]]].
Ogni risorsa può essere solo caricata una volta, il server se ne accerterà. Se una risorsa è inclusa più di una volta, la stessa istanza sarà usata da ogni risorsa che la include.
File storage
Resource files can either be stored in a zip or a directory. This is located in:
mods/deathmatch/resources/
Each resource can have a zip file, a directory or both. In the case of both existing, the directory has precedence over the zip file, as such files can be placed in the directory to over-ride the files in the zip file. This allows directories to be used for testing and developing of maps/scripts while zip files used by end-users.
Script functions
The resource system can be manipulated by script. As such, the following Serverside scripting functions are provided:
- abortRemoteRequest
- call
- fetchRemote
- getResourceConfig
- getResourceDynamicElementRoot
- getResourceExportedFunctions
- getResourceFromName
- getResourceName
- getResourceRootElement
- getResourceState
- getThisResource
- getRemoteRequests
- getRemoteRequestInfo
The following events are also provided: