-
Notifications
You must be signed in to change notification settings - Fork 0
Components
Este documento detalla los componentes fundamentales que definen las capacidades y el estado de una PartyEntity: Stats, Slots y States. Todos estos componentes se definen como plantillas en archivos JSON y luego se instancian dentro de cada entidad.
Las estadísticas son las propiedades numéricas que definen los atributos de una entidad, como su vida, fuerza o velocidad. Cada estadística se define una sola vez en un archivo JSON con "type": "Stats".
{
"type": "Stats",
"EN": {
"max_value": 9999,
"event_on_level_up": "EVT_Stat_HP_LevelUp"
},
"FUERZA": {
"max_value": 255,
"is_standalone_level": false,
"event_on_level_up": "EVT_Stat_Generic_LevelUp"
}
}
| Propiedad | Tipo | Descripción |
|---|---|---|
| num_type | String | El tipo de valor que maneja ("real" o "percent"). Por defecto es "real". |
| max_value / min_value | Real | Los límites absolutos que puede alcanzar el valor de la estadística. |
| is_standalone_level | Bool | Si es true, la estadística sube de nivel de forma independiente al nivel de la entidad. |
| iterator | Struct | Configuración de un MallIterator para stats que cambian con el tiempo (ej: regeneración). |
| event_* | String | Llaves que apuntan a funciones GML para definir el comportamiento de la estadística (ver la Referencia de Eventos de Systemall). |
Los slots definen los "espacios" donde una entidad puede equipar objetos, como armas, armaduras o accesorios. Se definen en un archivo JSON con "type": "Slots".
{
"type": "Slots",
"SLOT_ARMA": {
"max_items": 1,
"permited": ["WEAPON", "ITEM_DAGA_BASICA"]
},
"SLOT_ACCESORIO": {
"max_items": 2,
"permited": ["ACCESSORY"]
}
}
| Propiedad | Tipo | Descripción |
|---|---|---|
| max_items | Real | El número máximo de objetos que se pueden equipar en este slot. |
| is_disabled | Bool | Si es true, el slot está desactivado por defecto. |
| depends_on_slot | String | La llave de otro slot del que este depende para estar activo. |
| permited | Array | Una lista de llaves de tipos de objeto (ej: "WEAPON") o objetos específicos (ej: "ITEM_DAGA_BASICA") que se pueden equipar. Si el array está vacío, se aceptan todos los objetos. |
| event_* | String | Llaves que apuntan a funciones GML para definir el comportamiento del slot. (ver la Referencia de Eventos de Systemall). |
Los estados definen los efectos alterados, tanto positivos (buffs) como negativos (debuffs), que puede sufrir una entidad. Se definen en un archivo JSON con "type": "States".
{
"type": "States",
"STATE_ACELERADO": {
"state_type": "BUFF",
"priority": 20,
"stats": {
"VELOCIDAD%": 50
},
"prevents_states": ["STATE_RALENTIZADO"]
},
"STATE_PETRIFICADO": {
"state_type": "AILMENT",
"priority": 100,
"restricts_action": true
}
}
| Propiedad | Tipo | Descripción |
|---|---|---|
| state_type | String | La categoría del estado (ej: "BUFF", "DEBUFF", "AILMENT"). |
| priority | Real | Un valor numérico para resolver conflictos. Estados de mayor prioridad pueden prevenir o eliminar a los de menor prioridad. |
| clears_states | Array | Una lista de otros estados que este estado elimina al ser aplicado. |
| prevents_states | Array | Una lista de estados que no se pueden aplicar mientras este esté activo. |
| restricts_action | Bool | Si es true, la entidad no puede ejecutar comandos mientras el estado esté activo. |
| stats | Struct | Define los modificadores de estadísticas pasivos que el estado aplica mientras está activo, usando la sintaxis de sufijo (FUERZA+, DEFENSA%). |
| iterator | Struct | Configuración de un MallIterator para controlar la duración del estado. |
| event_* | String | Llaves que apuntan a funciones GML para definir el comportamiento del estado. (ver la Referencia de Eventos de Systemall). |
- Referencia de Eventos de Systemall: Una lista detallada de todos los eventos disponibles, sus parámetros y su contexto de ejecución.
- Ejemplos de Componentes Systemall (JSON): Una guía de referencia rápida con ejemplos para cada tipo de archivo de datos.