ES/Resources: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(MUCHOS errores corregidos.)
 
(Cambios en la redacción, cambio en el nombre del contributor que soy yo)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Los recursos son una parte clave de la MTA. Un recurso es básicamente un archivo de carpetas o zip que contiene una colección de archivos - incluso archivos de comandos, además de una meta ''archivo que describe cómo el recurso debe ser cargado. Un recurso puede ser visto como parte equivalente a un programa que se ejecuta en un sistema operativo - que puede ser iniciado y detenido, y múltiples recursos se pueden ejecutar al mismo tiempo. Vale la pena recordar, sin embargo, que a diferencia de los programas en un sistema operativo, no hay multitarea entre los recursos.''
Los '''resources''' son parte clave de MTA. Un resource es básicamente una carpeta o archivo ''.zip'' (carpeta comprimida) que contiene una colección de archivos de script ''.lua'', además de un archivo ''meta.xml'' que describe cómo el resource debe ser cargado. Un resource puede ser comparado con un programa que se ejecuta en un sistema operativo; se puede iniciar y detener, y se pueden ejecutar varios de ellos al mismo tiempo. Eso sí, cada resource sólo puede poseer una instancia ejecutándose al mismo tiempo.
 
Usualmente, un resource tendrá 2 tipos de archivo: aquellos a cargar del lado del servidor, y aquellos que un cliente recibirá (descargará) al conectarse al servidor, y ejecutará una vez completadas sus descargas. En este ámbito, podemos distinguir que los usuarios siempre recibirán archivos de medios, tales como imágenes y música, y aquellos scripts que sean marcados como "scripts de cliente", incluidos dentro de un resource.  Es importante entender que los usuarios podrán ver el código fuente de dichos scripts de cliente, así como no podrán ver aquello que se indique sea del lado del servidor.


== Terminología ==
== Terminología ==


*''Resource'' - Un archivo zip o carpeta que contiene un archivo meta.xml y una serie de elementos de recursos. Estos se colocan en la carpeta "%Archivos de Programa%/%MTA San Andreas%/server/mods/ deathmatch/resources/''.
*'''Resource''' - Un archivo ''.zip'' o carpeta que contiene un archivo '''meta.xml''' y una serie de archivos. Estos se colocan en la carpeta de instalación de MTA San Andreas, en "MTA San Andreas/server/mods/deathmatch/resources/''.


*''Archivo'' - Un archivo contenido dentro de un recurso,esto puede ser un mapa, musica, imágenes, etc
*'''Item de resource''' - Un archivo contenido dentro de un resource. Puede ser un mapa, un archivo de música, una imagen, un script, etc.


== El Archivo Meta ==
== El archivo meta.xml ==


El archivo de Meta es el núcleo de cada recurso. En él se describe exactamente los archivos que el recurso debe utilizar y cómo. El siguiente es un ejemplo que cubre todas las opciones que hay, los archivos de metadatos puede tener tantas o tan pocas de estas etiquetas como tú quieras:  
El archivo ''meta.xml'' es el núcleo de cada resource. En él se describe exactamente los archivos que el resource debe utilizar y cómo debe hacerlo. El siguiente es un ejemplo que cubre todas las opciones que hay:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<meta>
<meta>
     <info author="eAi" description="Ejemplo basico de Script" version="4"/>
    <!-- Información del resource; opcional, pero un buen estándar a incluir siempre -->
     <info author="eAi" description="Ejemplo básico de script" version="4" name="Resource completo" />


    <!-- Dependencias: si un resource indicado con <include> no se puede iniciar o no se encuentra, éste tampoco se podrá iniciar -->
     <include resource="radarblips"/>
     <include resource="radarblips"/>
     <include resource="markermanagement" />
     <include resource="markermanagement" />


    <!-- Scripts: aquellos que lleven el atributo type="client" son considerados "del lado cliente" -->
     <script src="ctf.lua" />
     <script src="ctf.lua" />
     <script src="flag.lua" />
     <script src="flag.lua" />
     <script src="ctf_client.lua" type="client" />
     <script src="ctf_client.lua" type="client" />


    <!-- Archivos de medios -->
     <file src="model.dff" />
     <file src="model.dff" />
     <file src="quitbutton.png" />
     <file src="quitbutton.png" />
     <file src="killed.png"  />
     <file src="texture.txd"  />
 
     <html src="test.htm" default="true"/>
     <html src="test.htm" default="true"/>
     <html src="logo.png" raw="true" />
     <html src="logo.png" raw="true" />


    <!-- Funciones exportadas: para usarlas en scripts fuera de este resource -->
    <!-- Un buen uso de las dependencias permite la correcta implementación de esta característica -->
     <export function="multiply" http="true" />
     <export function="multiply" http="true" />
     <export function="getPlayerList" />
     <export function="getPlayerList" />
     <export function="getElementOwner" type="client"/>
     <export function="getElementOwner" type="client"/>


    <!-- Archivos de configuración, usables por los scripts -->
     <config src="vehicle-list.xml" type="client" />
     <config src="vehicle-list.xml" type="client" />
     <config src="markerconfig.xml" type="server"  />
     <config src="markerconfig.xml" type="server"  />


    <!-- Mapas -->
     <map src="somestuff.map" dimension="99" />
     <map src="somestuff.map" dimension="99" />
</meta>
</meta>
</syntaxhighlight>
</syntaxhighlight>


Si bien un mapa CTF puede tener un meta.xml que se parece a:
 
Mientras que un mapa de CTF, por ejemplo, puede tener un meta.xml parecido a esto:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<meta>
<meta>
Line 50: Line 60:
</syntaxhighlight>
</syntaxhighlight>


Los scripts se envían a los clientes para que se inicien tan pronto como hayan sido descargados.


Nótese que en cada nodo del archivo meta, aparecen 2 atributos: "Script / File / Config" y "Type". Éstos especifican si el script/resource necesita enviar los datos al cliente, o (por defecto) al servidor.
Los scripts son capaces que se pueden leer y escribir en su propia carpeta de resources con funciones tales como [[xmlCreateFile]] y [[fileCreate]]. También pueden leer y escribir dentro de otros resources, pero debe tener permisos de [[Access_Control_List | ACL]].


Las etiquetas incluyen especificaciones como recursos que se deben iniciar antes de un resource que se ha iniciado. 
Por ejemplo, si su resource tiene dependencia a otro, puede incluirlo en meta.xml para que el resource al que el suyo depende, se inicie primero.


Cada recurso tiene su propia máquina virtual (VM). Este contiene todos los scripts en el recurso. Esto significa que las variables no se comparten con otros recursos. La mejor manera de comunicarte con otros recursos es mediante la exportación''''etiquetas y exportación de una función. Por Esto hara Que Otros scritp Hagan la Fucion [[llamada]] Otros Haciendo funcionar.
Los scripts se envían a los clientes para que se inicien tan pronto como hayan sido descargados.
Los scripts son capaces de leer y escribir en su carpeta de recursos propios con funciones tales como [[xmlCreateFile]] y [[fileCreate]]. También pueden leer y escribir a otros recursos, pero debe tener permiso del [[Access_Control_List | ACL]].
Cada recurso sólo puede ser cargado una vez, en el servidor que sea. Si un recurso se incluye más de una vez, la misma instancia serán utilizados por cada recurso que incluye.


== Archivos almacenados ==
== Archivos almacenados ==
Los archivos ''Resources'' pueden ser almacenados en un .zip o un directorio. Se encuentra en:
Los archivos ''Resources'' pueden ser almacenados en un .zip o un directorio. Se encuentran en:
 
server/mods/deathmatch/resources/ (Si tienes el server instalado con el cliente)


o
MTA San Andreas/server/mods/deathmatch/resources/


mods/deathmatch/resources/ (para server dedicados)
Dentro de la carpeta "resources" hay un grupo de carpetas que usan paréntesis cerrados [ y ]. Éstas carpetas no son tomadas en cuenta como resources, sino que se aplican como "categorías". Puedes crear subcarpetas que usen este sistema, sin ningún problema.


Cada recurso puede tener un archivo zip, un directorio o ambos. En el caso de los dos existentes, el directorio tiene precedencia sobre el archivo zip, ya que este tipo de archivos se pueden colocar en el directorio a pasar por encima de los archivos en el archivo zip. Esto permite a los directorios que se utilizará para las pruebas y el desarrollo de mapas / scripts mientras que los archivos zip utilizados por los usuarios finales.
Cada resource puede ser un archivo ZIP, un directorio o ambos. En el último caso, el directorio tiene preferencia sobre el archivo ZIP, así, los archivos pueden ser puestos en directorios para pasar por encima de los archivos dentro del archivo ZIP. Esto permite que los directorios sean usados para pruebas y desarrollo de mapas/scripts y los archivos ZIP sean usados por los usuarios finales.


==Otras cosas a notar==
==Otras cosas a notar==
*Los nombres de los resources no pueden contener puntos.
*Los nombres de los resources no pueden contener puntos, espacios o caracteres raros como "?", "$" o "%".
*Si el recurso es cualquier almacenamiento de archivos, los nombres de archivo utilizados no deben aparecer en el archivo meta.xml
*Si el resource guarda algún archivo, éstos no deben aparecer en el archivo ''meta.xml''.
*Los archivos mostrados en meta.xml sólo deberían ser leídos por tus scripts. No los modifiques con [[xmlSaveFile]], [[FileSave]] etc.
*Los archivos mostrados en ''meta.xml'' sólo deberían ser leídos por tus scripts. No los modifiques con [[xmlSaveFile]], [[FileSave]], etc.
*Cuando hagas la versión ZIP de tu resource, no incluyas archivos de guardado. Si tu resource los usa, que los cree cuando sea necesario.
*Cuando hagas la versión ZIP de tu resource, no incluyas archivos de guardado. Si tu resource los usa, que los cree cuando sea necesario.  
*Y cuando hagas la versión ZIP, sólo incluye a los archivos que se muestren en meta.xml. No incluyas "archivos de ejemplo", o cosas malas podrían pasar...
*Y evita usar espacios o caracteres raros en los nombres de tus resources.


==Script functions==
==Véase También==
Actualmente, los resources pueden ser manipulados por medio de scripts. Abajo las funciones correspondientes:
===Funciones===
Actualmente, los resources pueden ser manipulados por medio de scripts. Más abajo se muestran las funciones correspondientes:
{{Resource functions}}
{{Resource functions}}


===Eventos===
Los siguientes eventos también están ligados a los resources:
Los siguientes eventos también están ligados a los resources:
{{Resource_events}}
{{Resource_events}}
Line 97: Line 95:




== Traductores: ==
==Traductores==


*Corregido por The Kid
*Kzman
*F4ST3R
*F4ST3R
*[[User:12g|12g]]

Latest revision as of 15:51, 3 December 2017

Los resources son parte clave de MTA. Un resource es básicamente una carpeta o archivo .zip (carpeta comprimida) que contiene una colección de archivos de script .lua, además de un archivo meta.xml que describe cómo el resource debe ser cargado. Un resource puede ser comparado con un programa que se ejecuta en un sistema operativo; se puede iniciar y detener, y se pueden ejecutar varios de ellos al mismo tiempo. Eso sí, cada resource sólo puede poseer una instancia ejecutándose al mismo tiempo.

Usualmente, un resource tendrá 2 tipos de archivo: aquellos a cargar del lado del servidor, y aquellos que un cliente recibirá (descargará) al conectarse al servidor, y ejecutará una vez completadas sus descargas. En este ámbito, podemos distinguir que los usuarios siempre recibirán archivos de medios, tales como imágenes y música, y aquellos scripts que sean marcados como "scripts de cliente", incluidos dentro de un resource. Es importante entender que los usuarios podrán ver el código fuente de dichos scripts de cliente, así como no podrán ver aquello que se indique sea del lado del servidor.

Terminología

  • Resource - Un archivo .zip o carpeta que contiene un archivo meta.xml y una serie de archivos. Estos se colocan en la carpeta de instalación de MTA San Andreas, en "MTA San Andreas/server/mods/deathmatch/resources/.
  • Item de resource - Un archivo contenido dentro de un resource. Puede ser un mapa, un archivo de música, una imagen, un script, etc.

El archivo meta.xml

El archivo meta.xml es el núcleo de cada resource. En él se describe exactamente los archivos que el resource debe utilizar y cómo debe hacerlo. El siguiente es un ejemplo que cubre todas las opciones que hay:

<meta>
    <!-- Información del resource; opcional, pero un buen estándar a incluir siempre -->
    <info author="eAi" description="Ejemplo básico de script" version="4" name="Resource completo" />

    <!-- Dependencias: si un resource indicado con <include> no se puede iniciar o no se encuentra, éste tampoco se podrá iniciar -->
    <include resource="radarblips"/>
    <include resource="markermanagement" />

    <!-- Scripts: aquellos que lleven el atributo type="client" son considerados "del lado cliente" -->
    <script src="ctf.lua" />
    <script src="flag.lua" />
    <script src="ctf_client.lua" type="client" />

    <!-- Archivos de medios -->
    <file src="model.dff" />
    <file src="quitbutton.png" />
    <file src="texture.txd"  />
    <html src="test.htm" default="true"/>
    <html src="logo.png" raw="true" />

    <!-- Funciones exportadas: para usarlas en scripts fuera de este resource -->
    <!-- Un buen uso de las dependencias permite la correcta implementación de esta característica -->
    <export function="multiply" http="true" />
    <export function="getPlayerList" />
    <export function="getElementOwner" type="client"/>

    <!-- Archivos de configuración, usables por los scripts -->
    <config src="vehicle-list.xml" type="client" />
    <config src="markerconfig.xml" type="server"  />

    <!-- Mapas -->
    <map src="somestuff.map" dimension="99" />
</meta>


Mientras que un mapa de CTF, por ejemplo, puede tener un meta.xml parecido a esto:

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

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

Los scripts se envían a los clientes para que se inicien tan pronto como hayan sido descargados.

Los scripts son capaces que se pueden leer y escribir en su propia carpeta de resources con funciones tales como xmlCreateFile y fileCreate. También pueden leer y escribir dentro de otros resources, pero debe tener permisos de ACL.


Archivos almacenados

Los archivos Resources pueden ser almacenados en un .zip o un directorio. Se encuentran en:

MTA San Andreas/server/mods/deathmatch/resources/

Dentro de la carpeta "resources" hay un grupo de carpetas que usan paréntesis cerrados [ y ]. Éstas carpetas no son tomadas en cuenta como resources, sino que se aplican como "categorías". Puedes crear subcarpetas que usen este sistema, sin ningún problema.

Cada resource puede ser un archivo ZIP, un directorio o ambos. En el último caso, el directorio tiene preferencia sobre el archivo ZIP, así, los archivos pueden ser puestos en directorios para pasar por encima de los archivos dentro del archivo ZIP. Esto permite que los directorios sean usados para pruebas y desarrollo de mapas/scripts y los archivos ZIP sean usados por los usuarios finales.

Otras cosas a notar

  • Los nombres de los resources no pueden contener puntos, espacios o caracteres raros como "?", "$" o "%".
  • Si el resource guarda algún archivo, éstos no deben aparecer en el archivo meta.xml.
  • Los archivos mostrados en meta.xml sólo deberían ser leídos por tus scripts. No los modifiques con xmlSaveFile, FileSave, etc.
  • Cuando hagas la versión ZIP de tu resource, no incluyas archivos de guardado. Si tu resource los usa, que los cree cuando sea necesario.

Véase También

Funciones

Actualmente, los resources pueden ser manipulados por medio de scripts. Más abajo se muestran las funciones correspondientes:



Eventos

Los siguientes eventos también están ligados a los resources:


Traductores

  • Kzman
  • F4ST3R
  • 12g