Skip to content

Components

Toto (C.A) edited this page Aug 1, 2025 · 2 revisions

Módulo de Componentes: Stats, Slots y States

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.

MallStat (Estadísticas)

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".

Estructura del JSON

{  
    "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"  
    }  
}

Propiedades Clave

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).

MallSlot (Slots de Equipo)

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".

Estructura del JSON

{  
    "type": "Slots",  
    "SLOT_ARMA": {  
        "max_items": 1,  
        "permited": ["WEAPON", "ITEM_DAGA_BASICA"]
    },  
    "SLOT_ACCESORIO": {  
        "max_items": 2,  
        "permited": ["ACCESSORY"]
    }  
}

Propiedades Clave

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).

MallState (Estados)

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".

Estructura del JSON

{  
    "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  
    }
}

Propiedades Clave

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).

Referencias

Clone this wiki locally