¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Varios videotutoriales de grafismo
por Wecoc Hoy a las 16:50

» Pokémon Light Adventures [DEMO]
por BruMaster7 @Maker@ Hoy a las 15:14

» [Ayuda] Autolazaro
por alex1633 Hoy a las 11:37

» Necesito ayuda de alquien que entienda de scripting
por Filipter Hoy a las 08:34

» Saludos a todos
por sanchez1994 Ayer a las 23:30

» RPG maker FES (3DS)
por drakem Ayer a las 21:24

» De vuelta!
por drakem Ayer a las 20:22

» Mercado y existencias
por alex1633 Ayer a las 20:17

» Me ofrezco como compositor serio
por RoryGRojas Ayer a las 17:12

» [RMXP] New Items Display
por AsFzKakarotto Ayer a las 02:35

Afiliados
Estadísticas
Tenemos 3916 miembros registrados.
El último usuario registrado es vihdettzo.

Nuestros miembros han publicado un total de 83349 mensajes en 11854 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

avatar
Wecoc
Administrador
Administrador



Créditos 8983

Gracias : 442

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
avatar
BlazeCrimson
Analista
Analista

0/3

Créditos 1110

Gracias : 107

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 :)
avatar
Wecoc
Administrador
Administrador



Créditos 8983

Gracias : 442

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?
avatar
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
avatar
Wecoc
Administrador
Administrador



Créditos 8983

Gracias : 442

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.
avatar
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.
avatar
Wecoc
Administrador
Administrador



Créditos 8983

Gracias : 442

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
avatar
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


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.