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.

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