Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Cargar y guardar sin escena

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Cargar y guardar sin escena

Mensaje por Wecoc el 2013-09-10, 00:44

Este script lo hice hace tiempo, es muy tonto pero en fin xD Permite cargar y guardar directamente sin pasar por ninguna escena, usando Kernel a lo bestia. Como es obvio en este caso solo hay una ranura, pero para según qué tipo de juego quizá ya os vaya bien xD.

Código:
# Save & Load Edit by Wecoc

module Kernel
  def save_game
    file = File.open("Save1.rxdata", "wb")
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    Marshal.dump(characters, file)
    Marshal.dump(Graphics.frame_count, file)
    $game_system.save_count += 1
    $game_system.magic_number = $data_system.magic_number
    Marshal.dump($game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
    file.close
  end
  def load_game
    $game_temp = Game_Temp.new
    if FileTest.exist?("Save1.rxdata")
      file = File.open("Save1.rxdata", "rb")
      characters = Marshal.load(file)
      Graphics.frame_count = Marshal.load(file)
      $game_system        = Marshal.load(file)
      $game_switches      = Marshal.load(file)
      $game_variables     = Marshal.load(file)
      $game_self_switches = Marshal.load(file)
      $game_screen        = Marshal.load(file)
      $game_actors        = Marshal.load(file)
      $game_party         = Marshal.load(file)
      $game_troop         = Marshal.load(file)
      $game_map           = Marshal.load(file)
      $game_player        = Marshal.load(file)
      if $game_system.magic_number != $data_system.magic_number
        $game_map.setup($game_map.map_id)
        $game_player.center($game_player.x, $game_player.y)
      end
      $game_party.refresh
      file.close
      $game_system.bgm_play($game_system.playing_bgm)
      $game_system.bgs_play($game_system.playing_bgs)
      $game_map.update
      $scene = Scene_Map.new
    end
  end
end

class Scene_Title
  def command_continue
    unless @continue_enabled
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.decision_se)
    load
  end
end

Para guardar poned en el Llamar Script o en cualquier parte del script save_game y para cargar load_game. Puse además al final del script un edit del Scene_Title para que Cargar desde el título funcionara también por defecto. Otras cosas en cambio no están programadas (guardar desde menú o desde el interprete de llamar a guardar) pero si lo necesitáis y no sabéis hacerlo me lo decís.


Última edición por Wecoc el 2018-01-23, 18:30, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12328

Gracias : 660

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por PROmaster el 2013-09-10, 05:40

Muy bueno el script, lo estoy probando en mi juego y va de maravilla.

Por ahora he visto que falla con un script de esos que hace que los miembros de tu grupo te sigan (no sabría decirte el nombre porque no lo pone, pero si quieres te lo paso), al cargar la partida (cuando usas el "load", vamos).

Pero, como ya digo, un gran script.
avatar
PROmaster
Principiante
Principiante

0/3

Créditos 322

Gracias : 0

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por orochii el 2013-09-10, 12:40

Es probable que dé problemas con scripts que guarden cosas, configuraciones o por el estilo, en el archivo guardado, a menos que guarden las cosas dentro del Game_System o parecidos (de hecho no sé qué mañas tenían de hacer clases para guardar 3 cosas xD, yo termino siempre tirándolo todo en Game_System o Game_Party x'D).

Entonces simplemente busca la re/definición del método Scene_Save#write_save_data y Scene_Load#read_save_data. Compara las líneas que dicen Marshal.load/dump, y agrega las que falten en este script.

Salut 8D,
OZZZZZZZZZ
avatar
orochii
Reportero

0/3

Créditos 6984

Gracias : 484

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por zen.sushi el 2019-01-15, 17:47

Espero no estar haciendo necroposting con este mensaje...

Llevo varias horas simplemente para buscar como guardar y cargar con una llamada de script, probando todo tipo de scripts solo por estas funciones.
Este funciona perfecto para lo que quiero, lo único que necesitaría saber es si se podría hacer una llamada a este script que compruebe si ya existe un archivo de guardado para utilizarla en una rama condicional.

Gracias por el script y saludos. ^^'
avatar
zen.sushi
Iniciado
Iniciado

0/3

Créditos 11

Gracias : 4

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por orochii el 2019-01-15, 21:36

No hay un método hecho en el script. Pero puedes usar esto así en la casilla script de un condicional.
Código:
FileTest.exist?("Save1.rxdata")

O si te parece mucho escribir eso, entonces prueba a meter esto al final del script de Wecoc.
Código:
module Kernel
  def check_save
    return FileTest.exist?("Save1.rxdata")
  end
end

Que luego lo escribes así entonces, igual en la casilla script de un condicional: [line]Kernel.check_save[/line]

Es lo mismo, pero supongo queda más bonito.
avatar
orochii
Reportero

0/3

Créditos 6984

Gracias : 484

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por zen.sushi el 2019-01-15, 23:29

Perfecto!

Muchas gracias Orochii. ^^
avatar
zen.sushi
Iniciado
Iniciado

0/3

Créditos 11

Gracias : 4

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cargar y guardar sin escena

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.