¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79807 mensajes en 11256 argumentos.
Navega con Google Chrome
[DESCARGA]

[XP] Scene_File modificado

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Scene_File modificado

Mensaje por Wecoc el 2014-01-04, 07:31

Es una modificación sencilla (no tengo tiempo de hacer cosas complejas xD) del Scene_File que muestra las ventanas de forma diferente y soporta más partidas así como más detalle de cada una.

Código:
#==============================================================================
# ** Scene_File modificado
#------------------------------------------------------------------------------
#  Autor: Wecoc
# -- No requiere créditos --
#==============================================================================

class Window_SaveFile < Window_Base
  attr_reader   :filename
  
  def initialize(file_index, filename)
    super(160, 64, 480, 480 - 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.rxdata"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp         = file.mtime
      @characters         = Marshal.load(file)
      @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)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
  end

  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    if @file_exist
      for i in 0...@characters.size
        bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
        cw = bitmap.rect.width / 4
        ch = bitmap.rect.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        x = 160 - @characters.size * 32 + i * 100 - cw / 2
        # Gráficos de los héroes
        self.contents.blt(x + 24, 72 - ch, bitmap, src_rect)
        # Nombres de los héroes
        draw_actor_name(@game_party.actors[i], x, 76)
        # Nivel de los héroes
        draw_actor_level(@game_party.actors[i], x, 100)
        # Estado de los héroes
        draw_actor_state(@game_party.actors[i], x, 124)
      end
      
      # Tiempo de juego
      hour = @total_sec / 60 / 60
      min = @total_sec / 60 % 60
      sec = @total_sec % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      self.contents.font.color = normal_color
      self.contents.draw_text(128, 176, 300, 32, time_string, 2)
      
      # Dia y hora de guardado
      self.contents.font.color = normal_color
      time_string = @time_stamp.strftime("%d/%m/%Y %H:%M")
      self.contents.draw_text(128, 200, 300, 32, time_string, 2)
      
      # Dinero
      cx = contents.text_size($data_system.words.gold).width
      self.contents.font.color = normal_color
      self.contents.draw_text(308, 224, 120-cx-2, 32, @game_party.gold.to_s, 2)
      self.contents.font.color = system_color
      self.contents.draw_text(428-cx, 224, cx, 32, $data_system.words.gold, 2)
      
      # Capítulo (variable 1)
      self.contents.font.color = system_color
      self.contents.draw_text(4, 176, 120, 32, "Capítulo")
      self.contents.font.color = normal_color
      self.contents.draw_text(100, 176, 48, 32, @game_variables[1].to_s)
      
      # Nombre del mapa
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 200, 320, 32, @game_map.map_name)
      
      # Definición del mapa
      self.contents.font.color = system_color
      self.contents.draw_text(4, 272, 320, 32, "Definición del mapa")
      self.contents.font.italic = true
      self.contents.font.color = normal_color
      self.contents.font.size -= 2
      for i in 0...@game_map.map_def.size
        self.contents.draw_text(4, 300 + 24*i, 480, 32, @game_map.map_def[i])
      end
      self.contents.font.italic = false
      self.contents.font.size += 2
    end
  end
end

class Game_Map
 attr_reader   :map_id  
  def map_name
    @mpn = load_data("Data/MapInfos.rxdata")
   return @mpn[@map_id].name
  end
  def map_def
    case @map_id
    when 1
      # Ejemplo
      return ["'Ay pija devota y pía, brújula que del cojón",
              "marcas la dulce sazón, calentura y polladura",
              "que solo el catre enfría...'"]
    else
      return [""]
    end
  end
end

class Scene_File
  
  FILE_SIZE = 12   # Número de partidas
  
  def main
    @help_window = Window_Help.new
    @help_window.set_text(@help_text)
    
    command_text = "Archivo "
    command_array = []
    for i in 0...FILE_SIZE
      command_array.push("#{command_text + (i+1).to_s}")
    end
    @command_window = Window_Command.new(160, command_array)
    @command_window.y = 64
    @command_window.height = 480 - 64
    @file_index = $game_temp.last_file_index
    @command_window.index = @file_index
    
    @savefile_windows = []
    for i in 0...FILE_SIZE
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
      @savefile_windows[i].visible = false
    end
    
    @savefile_windows[@file_index].visible = true
    
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    @command_window.dispose
    for i in @savefile_windows
      i.dispose
    end
  end

  def update
    @help_window.update
    @command_window.update
    for i in 0...@savefile_windows.size
      @savefile_windows[i].visible = (i == @file_index)
    end
    
    if Input.trigger?(Input::C)
      on_decision(make_filename(@file_index))
      $game_temp.last_file_index = @file_index
      return
    end

    if Input.trigger?(Input::B)
      on_cancel
      return
    end

    if Input.repeat?(Input::DOWN)
      if Input.trigger?(Input::DOWN) or @file_index < (FILE_SIZE-1)
        $game_system.se_play($data_system.cursor_se)
        @file_index = (@file_index + 1) % FILE_SIZE
        return
      end
    end
    if Input.repeat?(Input::UP)
      if Input.trigger?(Input::UP) or @file_index > 0
        $game_system.se_play($data_system.cursor_se)
        @file_index = (@file_index + (FILE_SIZE-1)) % FILE_SIZE
        return
      end
    end
  end
end

Si buscáis la siguiente línea:
FILE_SIZE = 12

Allí podéis cambiar ese  por el número de archivos que queráis (creo que el límite son 99)

Una screen de ejemplo de cómo se ve


Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por BlazeCrimson el 2014-01-05, 05:18

Buen aporte, la verdad es que me gustó.
Si no te importa me gustaría utilizarlo en una versión un pelin modificada para DC.



Un saludo  gcool


Última edición por BlazeCrimson el 2014-01-05, 22:09, editado 1 vez

_________________
Image and video hosting by TinyPic

BlazeCrimson
Analista
Analista

0/3

Créditos 609

Gracias : 92

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Wecoc el 2014-01-05, 09:52

Blaze escribió:Si no te importa me gustaría utilizarlo en una versión un pelin modificada en DC.

Claro, ya puse lo de la distribución en la ventana de forma que fuera fácil modificarlo expresamente por eso xD Recuerda que por defecto la variable "Capítulo" es la 1 pero lo puedes cambiar donde pone @game_variables[1].to_s por otro número.

Recuerda también que las variables pueden tener otros valores a parte de números, así que si quieres que salga el nombre del capítulo en vez del número a la hora de asignar la variable puedes poner eso en llamar script: $game_variables[1] = "nombre"

Me alegra que te haya gustado :)

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Yuuki123 el 2015-11-22, 21:34

¿Cómo es que le pongo definición al mapa?

Yuuki123
Iniciado
Iniciado

0/3

Créditos 6

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Wecoc el 2015-11-22, 21:41

No entiendo del todo la pregunta. ¿Te refieres a cómo ponerle definición al mapa? ¿O quieres quitar esa opción?

Para lo primero, busca en el script ésta parte:

Código:
  def map_def
    case @map_id
    when 1
      # Ejemplo
      return ["'Ay pija devota y pía, brújula que del cojón",
              "marcas la dulce sazón, calentura y polladura",
              "que solo el catre enfría...'"]
    else
      return [""]
    end

Como ves pone when 1
y debajo return[(LÍNEAS)]
Solo tienes que cambiar el texto ahí para definir el texto de cada mapa. Ese 1 es la ID de mapa, si vas a propiedades de mapa verás cual es su ID.
Para que más de un mapa tenga la misma descripción puedes usar when 1, 2, 3 (etc)

Ejemplo:

Código:
  def map_def
    case @map_id
    when 1, 2, 3, 5
      return ["Pradera"]
    when 4
      return ["Bosque"]
    when 6
      return ["Casa de Alexis"]
    else
      return [""]
    end

Si lo que quieres es quitar la descripción busca ésta parte:

Código:
      # Definición del mapa
      self.contents.font.color = system_color
      self.contents.draw_text(4, 272, 320, 32, "Definición del mapa")
      self.contents.font.italic = true
      self.contents.font.color = normal_color
      self.contents.font.size -= 2
      for i in 0...@game_map.map_def.size
        self.contents.draw_text(4, 300 + 24*i, 480, 32, @game_map.map_def[i])
      end

y la borras

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por kyonides-arkanthos el 2015-11-23, 00:48

En realidad sí creo necesario que les permitas configurar cuál variable será la que guarde el valor del capítulo actual para no forzar a los desarrolladores a redistribuir las variables asignadas a los diferentes usos que les hayan dado.

kyonides-arkanthos
Principiante
Principiante

0/3

Créditos 397

Gracias : 54

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Wecoc el 2015-11-23, 15:09

La ID de variable para el capítulo solo se usa en ésta línea:

Código:
self.contents.draw_text(100, 176, 48, 32, @game_variables[1].to_s)

Así que solo con cambiar ese 1 por cualquier otro valor o borrar esa parte en caso de no querer capítulo hay suficiente.

Es cierto que hubiera podido definir en una global la ID como he hecho en varios otros scripts, pero en éste caso concreto lo dejé así para que toda la configuración del contenido quedara allí mismo, dentro del def refresh de la ventana. Puse comentarios para que todo sea lo suficientemente intuitivo. No creo que sea un script tan complejo ni largo como para tener que definirle un módulo con globales, lo que por otra parte supondría desestructurarlo.

Por otra parte si alguien quiere que le modifique el script para que la información se visualice de forma distinta que me lo pida, no tengo ninguna objeción en echaros una mano con esas cosas.

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Yuuki123 el 2015-12-23, 16:02

¡Gracias! :3 En realidad me refería a ponerle algún texto.
Me explico.
Guardaste en el mapa 1 (Ejemplo)
Y en la escena de guardado sale definición del mapa y te explica algo del mapa :3

Yuuki123
Iniciado
Iniciado

0/3

Créditos 6

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Scene_File modificado

Mensaje por Contenido patrocinado Hoy a las 05:03


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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