Hola buenas, estoy haciendo un remake del mítico The Legend of Zelda de NES, es decir el primero en orden de emisión. La cosa es que como sabrán, tiene la opción de jugar hasta tres partidas sin sobreescribir ninguna, pues estoy teniendo varios colores de cabeza con como gestionar tres slots o ranuras.

Gracias por la atención u.u

Buenas,

Digamos que tienes 3 slots, y sabes como guardar la partida, pongamos en un archivo llamado partida.dat (la extensión da igual). Pues simplemente seria darle un nombre al archivo segun el slot;
- slot1.dat
- slot2.dat
- slot3.dat

De esta manera cuando pulses en el slot2, sabrá que tiene que guardar/cargar el slot2.dat

Un saludo

Hola, tenía la misma idea, lo probé y funciona, pero ahora tengo otro problema con lo de la escritura del nombre, ¿qué me recomiendas, es buena idea un arreglo?


#4 Febrero 02, 2020, 01:00:02 AM Ultima modificación: Febrero 02, 2020, 01:01:57 AM por BssString
Hola FernandoNavarro

Simplemente guarda los archivos como "slot1.dat", "slot2.dat" y "slot3.dat". Y dentro del archivo carga una String que contenga el nombre de la partida.
Como son solamente 3 slots, no veo la necesidad de crear algún Array o Data Structure, simplemente crea 3 variables diferentes y repite el código de lectura 3 veces.

Así cuando inicies el juego, primero le asignas al Slot un nombre por defecto, ejemplo "No hay partida guardada" y luego lees el nombre ingame para mostrar en el menu:
[gml]file1_name = "No hay juego guardado"
file2_name = "No hay juego guardado"
file3_name = "No hay juego guardado"
if file_exists("slot1.dat") {
//Abres el archivo con tu código
file1_name  = algún ini_read_string o file_text_read_string o como lo hayas hecho.
//Aquí cierras el archivo
}
//Repite lo mismo con los otros 2.
[/gml]

Si aún no creas ninguna partida en ese slot, entonces puedes dibujar la string por defecto "No hay partida guardada".

Cuando cargues un Slot, guarda el nombre del archivo en alguna variable global, para que puedas tener acceso al nombre del archivo desde cualquier objeto y desde cualquier room, así puedes guardar/cargar sobre el mismo slot en el que estás jugando sin alterar los otros 2.

Ejemplo, si cargas la tercera partida:
[gml]globalvar current_slot; current_slot = "slot3.dat"[/gml]

Así a futuro simplemente llamas a la variable "current_slot" para guardar tu partida

Saludos

Hola.

Gracias BssString, ya me implementé un sistema, sólo verifico si existe o no el archivo con file_exists, si existe y el jugador elige esa partida la carga, si no existe lo crea y ejecuta el """procedimiento""" de nueva partida