Cambios

Ir a la navegación Ir a la búsqueda
Creación de la pagina Manifest
{{../../Encabezado}}

Cada mod o paquete de contenido de SMAPI debe tener un archivo <samp>manifest.json</samp> en su carpeta. SMAPI usa esto para identificar y cargar el mod, realizar comprobaciones de actualización, etc. La información del manifiesto también está disponible para cualquier mod en el código (usando <samp>this.ModManifest</samp> para el manifiesto del mod actual, o [[../#Registro de mod|registro de mod]] para los manifests de otros mods).

==Ejemplos básicos==
Este es el formato básico (consulte a continuación los detalles de cada campo):
{| class="wikitable"
|-
! Para un mod SMAPI
! Para un paquete de contenido
|-
| <syntaxhighlight lang="javascript">
{
"Name": "Nombre de su proyecto",
"Author": "su nombre",
"Version": "1.0.0",
"Description": "Una o dos oraciones sobre el mod",
"UniqueID": "Sunombre.SunombredeProyecto",
"EntryDll": "YourDllFileName.dll",
"UpdateKeys": []
}
</syntaxhighlight>
| <syntaxhighlight lang="javascript">
{
"Name": "Nombre de su proyecto",
"Author": "su nombre",
"Version": "1.0.0",
"Description": "Una o dos oraciones sobre el mod",
"UniqueID": "Sunombre.SunombredeProyecto",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
</syntaxhighlight>
|}

==Campos==
===Campos básicos===
Todos los mods deben especificar los siguientes campos.

{| class="wikitable"
|-
! campo
! descripción
|-
| <samp>Name</samp>
| El nombre del mod. SMAPI usa esto en los mensajes, registros y errores del jugador. Ejemplo: <syntaxhighlight lang="javascript">"Name": "LookupAnything"</syntaxhighlight>
|-
| <samp>Author</samp>
| El nombre de la persona que creó el mod. Idealmente, esto debería incluir el nombre de usuario utilizado para publicar mods. Ejemplo: <syntaxhighlight lang="javascript">"Author": "Pathoschild"</syntaxhighlight>
|-
| <samp>Version</samp>
| [http://semver.org/ La versión semántica] del mod. ¡Asegúrate de actualizar esto para cada versión! SMAPI usa esto para comprobaciones de actualización, dependencias de mods y listas negras de compatibilidad (si el mod falla en una versión futura del juego). Ejemplos:
<syntaxhighlight lang="javascript">
"Version": "1.0.0"
</syntaxhighlight>
<syntaxhighlight lang="javascript">
"Version": "1.0.1-beta.2"
</syntaxhighlight>
|-
| <samp>Description</samp>
| Una breve explicación de lo que hace tu mod (una o dos oraciones), que se muestra en el registro de SMAPI. Ejemplo: <syntaxhighlight lang="javascript">"Description": "Ver metadatos sobre cualquier cosa presionando un botón."</syntaxhighlight>
|-
| <samp>UniqueID</samp>
| Un identificador único para tu mod. El formato recomendado es <samp>&lt;tu nombre&gt;.&lt;nombre del mod&gt;</samp>, sin espacios ni caracteres especiales. SMAPI usa esto para Comprobaciones de actualización, dependencias de mods y listas negras de compatibilidad (si el mod falla en una versión futura del juego). Cuando otro mod necesita hacer referencia a este mod, usa la ID única. Ejemplo: <syntaxhighlight lang="javascript">"UniqueID": "Pathoschild.LookupAnything"</syntaxhighlight>
|-
| <samp>EntryDll</samp> '''or''' <samp>ContentPackFor</samp>
| <p>Todos los mods deben especificar ya sea <samp>EntryDll</samp> (para un mod SMAPI) o <samp>ContentPackFor</samp> (para un [[Modding:Content packs|paquete de contenido]]). Estos son mutuamente excluyentes: no puede especificar ambos.</p>

Para un mod SMAPI, <samp>EntryDll</samp> es el nombre de archivo DLL compilado del mod en su carpeta mod. Ejemplo: <syntaxhighlight lang="javascript">"EntryDll": "LookupAnything.dll"</syntaxhighlight>

Para un paquete de contenido, <samp>ContentPackFor</samp> especifica qué mod puede leerlo. El <samp>MinimumVersion</samp> es opcional. Ejemplo:
<syntaxhighlight lang="javascript">
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher",
"MinimumVersion": "1.0.0"
}
</syntaxhighlight>
|}

===Versión mínima de SMAPI===
El campo <samp>MinimumApiVersion</samp> establece la versión mínima de SMAPI necesaria para usar este mod. Si un jugador intenta usar el mod con una versión anterior de SMAPI, verá un mensaje amistoso que dice que necesita actualizar SMAPI. Esto también sirve como proxy para la versión mínima del juego, ya que SMAPI impone una versión mínima del juego. Ejemplo: <syntaxhighlight lang="javascript">"MinimumApiVersion": "3.8.0"</syntaxhighlight>

===Dependencias===
El campo <samp>Dependencies</samp> especifica otros mods necesarios para usar esta mod. Si un jugador intenta usar el mod y las dependencias no están instaladas, el mod no se cargará y verá un mensaje amigable que dice que necesita instalarlos. Por ejemplo:
<syntaxhighlight lang="javascript">
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"MinimumVersion": "3.8.0" // opcional. Si se especifica, las versiones anteriores no cumplirán el requisito.
}
]
</syntaxhighlight>

Puede marcar una dependencia como opcional. Se cargará primero si está instalado; de lo contrario, se ignorará.
<syntaxhighlight lang="javascript">
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"IsRequired": false
}
]
</syntaxhighlight>

===Comprobaciones de actualización===
SMAPI puede detectar nuevas versiones de su mod y alertar al usuario con un enlace a su página de mod. Puede habilitar esto configurando el campo <samp>UpdateKeys</samp> en tu <samp>manifest.json</samp>, que le dice a SMAPI dónde verificar.

Consulte las [[../Comprobaciones de actualización|''comprobaciones de actualización'']] para obtener más información.

===Algo más===
Cualquier otro campo se almacenará en el diccionario del <samp>IManifest.ExtraFields</samp> que está disponible a través del [[../Registro del mod|registro del mod]]. SMAPI ignora los campos adicionales, pero pueden ser útiles para metadatos extendidos destinados a otros mods.

[[en:Modding:Modder Guide/APIs/Manifest]]
[[zh:模组:制作指南/APIs/Manifest]]
836

ediciones

Menú de navegación