HU/Resources
A resource-k az MTA kulcsfontosságú részei. A resource az tulajdonképpen egy mappa, vagy egy zip fájl, mely fájl gyűjteményeket tartalmaz - tartalmazza a script fájlokat, plusz a meta fájlt, mely meghatározza, hogy a resource miként legyen betöltve. A resource részben egy operációs rendszeren futó programnak felel meg - ami elindítható, és leállítható, és egyszerre több resource is futhat. Érdemes azonban emlékezni arra, hogy az operációs rendszerektől eltérően egy resource nem képes egyszerre több feladatot is elláítni.
Terminology
- Resource - Egy zip fájl vagy mappa, mely tartalmazza a meta.xml fájlt és számos resource elemet. Ezek a server könyvtáron belül a mods/deathmatch/resources mappába találhatóak.
- Resource item - A resource-ban lévő fájl, jelenleg ez lehet egy map, script, kép, stb.
The Meta File
See main article Meta.xml for details
A Meta fájl minden resource magja. Ez pontosan leírja, hogy milyen fájlokat kell használni a resource-ban, és hogy hogyan. Az alábbiakban egy példát találunk, amely minden lehetséges opcióra kiterjed, a meta fájl tartalmazhat annyi ilyen címkét, amennyire csak szüksége van:
<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>
Míg egy CTF map meta.xml fájlja így néz ki:
<meta> <include resource="ctf" /> <map src="myuberl33tctfmap.map" /> <info author="Tom" instructions="this is uber l33t !!!!!1111111" type="map" /> </meta>
Script/type, Config/type és File/type paraméterek meghatározzák, hogy a script/resource az a cliensnek legyen-e küldve, vagy sem, alapértelmezetten a "server"-nek küldi.
Az include tag megadja egy resource-nak, hogy előbb induljon el, mint egy másik resource. Más szóval, ha egy resource függ egy másiktól resource-től, akkor itt megadhatja, hogy a másik resource induljon el előbb.
Minden resourcenak saját virtuális gépe van (VM). Ez tartalmazza a resource összes script-jét. Ez azt jelenti, hogy a változókat nem lehet megosztani egy másik resource-val. A legjobb módja annak, hogy más resource-kkal tudjon kommunkálni, használja az export tagot, és exportáljon function-t. Ez lehetővé teszi más resource-nak, hogy meghívja ezt a function-t a call scripting function használatával.
A cliens-nek küldött scriptek akkor indulnak el, amikor az összes scriptet letöltötte.
A script-ek képesek a saját resource mappájuk olvasására, és írására is az xmlCreateFile és a fileCreate függvények segítségével. Más resourcekat is olvashatnak és írhatnak, de rendelkezniük kell ACL hozzáféréssel.
Minden resourcet csak egyszer lehet letölteni, ezt a server fogja biztosítani. Ha egy resource többször szerepel, akkor ugyanaz a példa lesz használva minden resource-nál ami tartalmazza.
File storage
A resource fájlokat tárolhatja zip-ben vagy mappában egyaránt. Ezek itt találhatóak:
server/mods/deathmatch/resources/ (ha telepítette a server-t a client-el)
vagy
mods/deathmatch/resources/ (dedikált szerver telepítésekhez)
Minden resource tartalmazhat zip fájlt, könyvtárat vagy mindkettőt. Mindkettő létezése esetén a könyvtár elsőbbséget élvez a zip fájlal szemben, ezeket a fájlokat könyvtárba tehetjük, felülírjuk a fájlokat a zip fájlban. Ez engedélyezi a könyvtárak használatát mapok és scriptek tesztelésére, fejlsztésére, míg a zip fájlok a vég felhasználásra.
Other things to note
- Resource names can't have dots in.
- If the resource does any file saving, the file names used should not be listed in the meta.xml
- Files listed in the meta.xml should be considered read only by your scripts. Do not modify them with xmlSaveFile, FileSave etc.
- When making a zip file of your resource, do not include save files. If your resource uses save files, they must be created by your resource when needed.
- When making a zip file of your resource, only include files that are listed in the meta.xml. Do not include 'example' save files, otherwise bad things will happen.
- We recommend avoiding spaces and exotic characters from resources names.
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: