Ciclo de vida de cue#
El estado MD pertenece al juego guardado. Una señal completa no necesita ejecutarse de nuevo después de cargar, por lo que el código añadido sólo a un antiguo Init puede no inicializar nuevos campos en un guardado existente. Separe el primer inicio de la migración a una nueva versión de datos.
Un nuevo campo#
El ejemplo pertenece al contexto que posee su configuración. Inicializa una versión del esquema que falta, crea una tabla de ajustes que falta y adelanta la versión. No instala un gestor de carga; llámelo desde su ruta de inicialización/migración real y utilice el espacio de nombres de la variable correcta.
<do_if value="not $SchemaVersion?">
<set_value name="$SchemaVersion" exact="0" />
</do_if>
<do_if value="$SchemaVersion lt 1">
<do_if value="not $Settings?">
<set_value name="$Settings" exact="table[]" />
</do_if>
<set_value name="$SchemaVersion" exact="1" />
</do_if>Preservar las opciones del jugador#
Escribir por defecto sólo para los campos que faltan. No reinicie la configuración, los objetos creados o el progreso de la misión en cada carga. Compruebe la existencia del objeto antes de utilizar las referencias almacenadas.
Verificar una actualización de mod#
Crear un ahorro con la versión de datos anterior, cargarlo con la nueva extensión, verificar que los valores antiguos sobreviven y nuevos campos aparecen, guardar y reiniciar completamente X4, y luego leer de nuevo el resultado. La inicialización no debe crear un segundo objeto. Para los cambios de propiedad de la nave, probar una nueva y una nave existente por separado: aplicación de parámetro y estado de daño puede tener diferentes ciclos de vida.