HU/Resources: Difference between revisions
Line 80: | Line 80: | ||
*Ha a resource bármilyen fájl mentést csinál, akkor a a használt fájlneveket nem lehet a meta.xml-ben feltüntetni | *Ha a resource bármilyen fájl mentést csinál, akkor a a használt fájlneveket nem lehet a meta.xml-ben feltüntetni | ||
*A meta.xml fájlban feltüntetett fájlokat csak a scriptek olvashatják. Ne módosítja ezeket az xmlSaveFile, FileSave, stb. használatával. | *A meta.xml fájlban feltüntetett fájlokat csak a scriptek olvashatják. Ne módosítja ezeket az xmlSaveFile, FileSave, stb. használatával. | ||
*Amikor létrehoz egy zip fájlt a resource-ből, | *Amikor létrehoz egy zip fájlt a resource-ből, ne tartalmazzon védett fájlokat. Ha a resource védett fájlokat használ, akkor azokat szükség esetén a resource-nak kell létrehozniat. | ||
*Amikor létrehoz egy zip fájlt a resource-ből, csak a meta,xml.ben feltüntetett fájlokat tartalmazza. Ne tartalmazzon 'example' védett fájlokat, különben rossz dolgok fognak történni. | *Amikor létrehoz egy zip fájlt a resource-ből, csak a meta,xml.ben feltüntetett fájlokat tartalmazza. Ne tartalmazzon 'example' védett fájlokat, különben rossz dolgok fognak történni. | ||
*Javasoljuk, hogy a szóköz és a különleges karakterek használatát kerülje a resource nevekből. | *Javasoljuk, hogy a szóköz és a különleges karakterek használatát kerülje a resource nevekből. |
Revision as of 19:31, 29 October 2018
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.
A Meta fájl
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.
Fájl tárolása
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.
Egyéb megjegyezni való
- Resource névben nem lehetnek pontok.
- Ha a resource bármilyen fájl mentést csinál, akkor a a használt fájlneveket nem lehet a meta.xml-ben feltüntetni
- A meta.xml fájlban feltüntetett fájlokat csak a scriptek olvashatják. Ne módosítja ezeket az xmlSaveFile, FileSave, stb. használatával.
- Amikor létrehoz egy zip fájlt a resource-ből, ne tartalmazzon védett fájlokat. Ha a resource védett fájlokat használ, akkor azokat szükség esetén a resource-nak kell létrehozniat.
- Amikor létrehoz egy zip fájlt a resource-ből, csak a meta,xml.ben feltüntetett fájlokat tartalmazza. Ne tartalmazzon 'example' védett fájlokat, különben rossz dolgok fognak történni.
- Javasoljuk, hogy a szóköz és a különleges karakterek használatát kerülje a resource nevekből.
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: