¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RPG Maker VX] Character Data V. 2.0 el Mar Sep 27, 2011 8:17 pm

MidnightMoon

avatar
Actualizado XD

Descripcion:
Character Data, muestra biografias de tus personajes jugables y NPC. Teniendo cupo virtualmente para n personajes. Aunque actualmente no he probado mas de 20 (son 10 por pagina).
  • Muestra Face, Battler, y/o character solo con unpequeño cambio de variable.
  • Puedes poner hasta n datos; claro hasta que se llegue a un punto donde su visualizacion parezca limitada.
  • Paginas de 10 Personajes, pudiendo tener n paginas.
  • Tambien se pueden definir el titulo de la ventana.
  • Al inicio la lista estara vacia, se pueden añadir y eliminar registros con los comandos:
    $character_file.add_file(id)
    $character_file.remove_file(id)
    Donde el id es el id con el que se da de alta los datos en el modulo.
  • Se pueden configurar personajes de la base de datos, y de este extrae su nombre, su battler ysu character.


Instrucciones:
  • Llenar los datos, la explicacion para llenar los datos viene dentro del script.
  • Seguir las instrucciones del script para los Battlers, Characters y Faces
  • Realmenta el llenado de los datos es un poco complicado por lo cual pegare el script entero con ejemplo y de igual manera subire una demo.
  • Se llama con el siguiente script: $scene = Scene_CharacterData.new
  • Para Definir a donde quieren que regrese cuando canceles ir a la linea 632 y cambiar Scene_Map.new por lo que se requiera como, por ejemplo: Scene_Menu.new(2)


Registro de Cambios:
Version 2.0
  • Quitado el uso de interruptores y sustituido por llamadas a script que abren o quitan el acceso a ver un dato. Evitando que se usen interruptores que luego tienden a ser muy valiosos.
  • De esta manera no se podra implementar en partidas guardadas, pero ya en las que se vaya creando si servira correctamente.

Version 1.2
  • Principal Cambio forma de añadir datos, resulta mas practica y entendible (aunque un poco mas extensa de codigo) y tambien evita poner informacion inecesario cuando no se reuqiere (como los name = "" en los ue ya traen id).
  • Poder omitir el campo de interruptor aun cuando este encendida la validacion, haciendo esto quiere decir que el personaje no depende del interruptor y se muestra siempre.
  • En el script viene el mismo ejemplo de los pasados pero conel nuevoformato de llenado de datos, y un poco mas de explicacion n_n

Version 1.1
  • Añadido poder activar/desactivar la opcion para que tome en cuenta interruptores o no, con solo la siguiente opcion DataISwitchActive = false


Script:
Código:

#======================================================================#
#  Character Data V. 2.0                                              #
#  ****** By Midnight Moon                                ******      #
# Descripcion: Script que permite mostrar los datos de los personajes,
#  asi como de los NPC en formato agenda.
#======================================================================#
module ConfigCharacterData
#======================================================================#
=begin
  Comandos:
    $character_file.add_file(id)
      Añade los datos de un personaje para poderlos ver.
      Donde el id es la clave con la que se dio de alta en el modulo.
      Ejemplo:
        $character_file.add_file(1)
        $character_file.add_file("Danao")
   
    $character_file.remove_file(id)
      Borra los datos de un personaje.
      Donde el id es la clave con la que se dio de alta en el modulo.
      Ejemplo:
        $character_file.remove_file(4)
        $character_file.remove_file("Mary")
=end
#======================================================================#
# Texto que se muestra como el titulo de la pantalla
DataITitulo = "Character Data"
# Texto que se muestra cuando no se ha seleccionado ningun personaje
DataIText = "Seleccione un personaje para ver su Biografia."
# Aqui se configuran los label de los datos. Para mejor Visualizacion
# no se recomienda que sean muchos datos.
# En Cualquier caso la Info se muestra hasta abajo.
DataILabelName = ["Name"]
DataILabel = ["Age", "Class", "Race", "City", "Other"]
# Configuramos Opciones, de mostrar imagen. En caso de que sea un Personaje jugable
# no es necesario meter ni Face ni Character.
DataIShowFace = true
DataIShowBattler = true
DataIShowCharacter = true

=begin
  Aqui se configuran los datos, de cada Personaje.
  La configuracion de un dato es la siguiente:
  [Clave] => {
    [Datos definidos por el usuario],
    "Info" => [Cadenas_de_texto_separadas_por_coma],
    "Face" => ["[Nombre_Face]", [Index_en_el_Face_set]]
    "Battler" => "[Nombre_del_battler]",
    "Character" => ["[Nombre_del_Character]", [Index_en_el_Character_Set]]
  }
 
  Clave: Se pondra el ID del personaje en la base, o en caso de ser un NPC
    se pondra su nombre.
  Face y Character: Solo se pondran en caso de ser un NPC, en caso de ser un
    personaje de la base se obtendran los definidos en esta.
 
  Los datos definidos por el usuario deben de tener una etiqueta igual a las definidas
    en DataILabel.
  La Info de personaje, para que sea multilinea, escribir un texto hasta que abarque
    hasta el punto requerido, cerrar el texto poner , y escribir otra linea.
=end
DataIPlayer = {
  1 => {
    # Etiquetas Definidas por el usuario
    "Age" => "18",
    "Class" => "Guerrero",
    "Race" => "Humano",
    "City" => "Ibarath",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Alexis es un guerrero noble que luchara",
      "para proteger a todos sus amigos y ",
      "familia. Odia la maldad."
    ],
    "Battler" => "Assassin"
  },
  "Marco" => {
    # Etiquetas Definidas por el usuario
    "Age" => "24",
    "Class" => "Mago",
    "Race" => "Humano",
    "City" => "Asgard",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Fuerte Guerrero que lucha por la paz."
    ],
    "Face" => ["People4", 0],
    "Battler" => "Soldier",
    "Character" => ["People4", 0]
  },
  "Danao" => {
    # Etiquetas Definidas por el usuario
    "Age" => "15",
    "Class" => "Chaman",
    "Race" => "Humano",
    "City" => "Monte Olimpo",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Tiene un Gran corazon y una valentia sin igual."
    ],
    "Face" => ["People4", 2],
    "Battler" => "Soldier",
    "Character" => ["People4", 2]
  },
  8 => {
    # Etiquetas Definidas por el usuario
    "Age" => "43",
    "Class" => "Monje",
    "Race" => "Humano",
    "City" => "Ibarath",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  "Cristobal" => {
    # Etiquetas Definidas por el usuario
    "Age" => "24",
    "Class" => "Picaro",
    "Race" => "Humano",
    "City" => "Asgard",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Face" => ["People4", 7],
    "Battler" => "Soldier",
    "Character" => ["People4", 7]
  },
  "Kari" => {
    # Etiquetas Definidas por el usuario
    "Age" => "18",
    "Class" => "Guerrero",
    "Race" => "Humano",
    "City" => "Monte Olimpo",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Face" => ["People4", 1],
    "Battler" => "Soldier",
    "Character" => ["People4", 1]
  },
  "Dante" => {
    # Etiquetas Definidas por el usuario
    "Age" => "24",
    "Class" => "Mago",
    "Race" => "Humano",
    "City" => "Ibarath",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Face" => ["People4", 6],
    "Battler" => "Soldier",
    "Character" => ["People4", 6]
  },
  2 => {
    # Etiquetas Definidas por el usuario
    "Age" => "15",
    "Class" => "Chaman",
    "Race" => "Humano",
    "City" => "Asgard",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  3 => {
    # Etiquetas Definidas por el usuario
    "Age" => "43",
    "Class" => "Monje",
    "Race" => "Humano",
    "City" => "Monte Olimpo",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  4 => {
    # Etiquetas Definidas por el usuario
    "Age" => "24",
    "Class" => "Guerrero",
    "Race" => "Humano",
    "City" => "Ibarath",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  "Mary" => {
    # Etiquetas Definidas por el usuario
    "Age" => "18",
    "Class" => "Mago",
    "Race" => "Humano",
    "City" => "Asgard",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Face" => ["People4", 3],
    "Battler" => "Soldier",
    "Character" => ["People4", 3]
  },
  7 => {
    # Etiquetas Definidas por el usuario
    "Age" => "24",
    "Class" => "Chaman",
    "Race" => "Humano",
    "City" => "Monte Olimpo",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  6 => {
    # Etiquetas Definidas por el usuario
    "Age" => "15",
    "Class" => "Monje",
    "Race" => "Humano",
    "City" => "Ibarath",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  },
  5 => {
    # Etiquetas Definidas por el usuario
    "Age" => "43",
    "Class" => "Picaro",
    "Race" => "Humano",
    "City" => "Asgard",
    "Other" => "Nada que Comentar",
    # Fin de etiquetas definidas por el usuario
    "Info" => [
      "Informacion Desconocida."
    ],
    "Battler" => "Assassin"
  }
}
#======================================================================#
end
#======================================================================#
#==============================================================================
# ** Character_File
#------------------------------------------------------------------------------
#==============================================================================
class Character_File
  include ConfigCharacterData
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :data
  attr_reader :temp
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @data = Array.new
    @temp = Array.new
  end
  #--------------------------------------------------------------------------
  # * Add_File
  #    index : index
  #--------------------------------------------------------------------------
  def add_file(index)
    unless DataIPlayer[index].nil?
      @data.push(index)  unless @data.include?(index)
    end
  end
  #--------------------------------------------------------------------------
  # * Remove_File
  #    index : index
  #--------------------------------------------------------------------------
  def remove_file(index)
    @data.delete(index) if DataIPlayer.include?(index)
  end
  #--------------------------------------------------------------------------
  # * Build_Data
  #--------------------------------------------------------------------------
  def build_data
    @temp = @data
  end
  #--------------------------------------------------------------------------
  # * Destroy_Data
  #--------------------------------------------------------------------------
  def destroy_data
    @temp = nil
    @temp = Array.new
  end
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This class is for all in-game windows.
#==============================================================================
class Window_Base < Window
  include ConfigCharacterData
 
  def I_draw_actor_face(index, x, y)
    if index.is_a?(Integer)
      actor = Game_Actor.new(index)
      bitmap = Cache.face(actor.face_name)
      rect = Rect.new(0, 0, 96, 96)
      size = 96
      rect.x = actor.face_index % 4 * 96 + (96 - size) / 2
      rect.y = actor.face_index / 4 * 96 + (96 - size) / 2
      rect.width = size
      rect.height = size
      self.contents.blt(x, y, bitmap, rect)
      bitmap.dispose
    else
      unless DataIPlayer[index]["Face"].nil? || DataIPlayer[index]["Face"][0] == ""
        bitmap = Cache.face(DataIPlayer[index]["Face"][0])
        face_index = (DataIPlayer[index]["Face"][1].nil?) ? 1 : DataIPlayer[index]["Face"][1]
        rect = Rect.new(0, 0, 96, 96)
        size = 96
        rect.x = face_index % 4 * 96 + (96 - size) / 2
        rect.y = face_index / 4 * 96 + (96 - size) / 2
        rect.width = size
        rect.height = size
        self.contents.blt(x, y, bitmap, rect)
        bitmap.dispose
      end
    end
  end
  def I_draw_actor_battler(index)
    unless DataIPlayer[index]["Battler"].nil? || DataIPlayer[index]["Battler"] == ""
      battler = Cache.battler(DataIPlayer[index]["Battler"], 0)
      fw = battler.width
      fh = battler.height
      x = 384-32 - fw
      y = 352-32 - fh
      src_rect = Rect.new(0, 0, fw, fh)
      self.contents.blt(x, y, battler, src_rect)
    end
  end
  def I_draw_actor_graphic(index, x, y)
    if index.is_a?(Integer)
      actor = Game_Actor.new(index)
      bitmap = Cache.character(actor.character_name)
      sign = actor.character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = actor.character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
    else
      unless DataIPlayer[index]["Character"].nil? || DataIPlayer[index]["Character"][0] == ""
        bitmap = Cache.character(DataIPlayer[index]["Character"][0])
        n = (DataIPlayer[index]["Character"][1].nil?) ? 1 : DataIPlayer[index]["Character"][1]
        sign = DataIPlayer[index]["Character"][0][/^[\!\$]./]
        if sign != nil and sign.include?('$')
          cw = bitmap.width / 3
          ch = bitmap.height / 4
        else
          cw = bitmap.width / 12
          ch = bitmap.height / 8
        end
        src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
        self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
      end
    end
  end
end
#==============================================================================
# ** Window_Status0
#==============================================================================
class Window_Status0 < Window_Base
  def initialize
    super(0, 0, 544, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    w = self.contents.text_size(ConfigCharacterData::DataITitulo.split("\n")[0]).width
    x = (544 - w - 48) / 2
    self.contents.draw_text(x, 0, 200, 32, ConfigCharacterData::DataITitulo)
  end
end
#==============================================================================
# ** Window_Status1
#==============================================================================
class Window_Status1 < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize
    super(0, 351, 160, 65)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    texto = $scene.actual.to_s + "/" + $scene.total.to_s
    w = self.contents.text_size(texto).width
    x = (128 / 2) - (w / 2)
    self.contents.draw_text(x, 0, 50, 32, texto)
  end
end
#==============================================================================
# ** Window_Status2
#==============================================================================
class Window_Status2 < Window_Base
  include ConfigCharacterData
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(index)
    @index = index
    super(160, 64, 384, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @index == -1
      self.contents.font.color = system_color
      w = self.contents.text_size(DataIText).width
      y = (self.height / 2) - 32
      self.contents.draw_text(0, y, self.width - 32, 32, DataIText, 1)
    else
      # En caso de existir,construimos el objeto actor.
      if @index.is_a?(Integer)
        actor = Game_Actor.new(@index)
      end
      # Obtenemos los Datos.
      nombre = (@index.is_a?(Integer)) ? actor.name : @index
     
      # Escribimos los Elementos.
      self.contents.font.color = system_color
      self.contents.font.size = 30
      self.contents.draw_text(4, 4, self.contents.text_size(nombre).width, 32, nombre)
      if DataIShowFace
        I_draw_actor_face (@index, 4, 36)
      end
      if DataIShowBattler
        I_draw_actor_battler (@index)
      end
      if DataIShowCharacter
        I_draw_actor_graphic (@index, 320, 50)
      end
     
      i = 0
      for s in DataILabel
        self.contents.font.size = 18
        label = s + ":"
        valor = DataIPlayer[@index][s]
        self.contents.font.color = system_color
        if DataIShowFace
          if i < 4
            self.contents.draw_text(4 + 120, 40 + (i * 24), 300, 32, label)
          else
            self.contents.draw_text(4, 40 + (i * 24), 300, 32, label)
          end
        else
          self.contents.draw_text(4, 40 + (i * 24), 300, 32, label)
        end
        self.contents.font.color = normal_color
        if DataIShowFace
          if i < 4
            self.contents.draw_text(4 + 120 + 60, 40 + (i * 24), 300, 32, valor)
          else
            self.contents.draw_text(4 + 60, 40 + (i * 24), 300, 32, valor)
          end
        else
          self.contents.draw_text(4 + 60, 40 + (i * 24), 300, 32, valor)
        end
        i += 1
      end
      self.contents.font.color = normal_color
      self.contents.font.size = 18
      i = 0
      for s in DataIPlayer[@index]["Info"]
        self.contents.draw_text(4, 198 + (32 * i), self.contents.text_size(s).width, 32, s)
        i += 1
      end
    end
  end
end
#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================
class Window_Command0 < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    width    : window width
  #    commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(commands, spacing = 32)
    super(0, 64, 160, 416-65-64, spacing)
    @item_max = (commands[1].size == 0) ? 1 : commands[1].size
    @commands = commands[1]
    @ids = commands[0]
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #    index : item number
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    text = (@commands[index].nil?) ? "" : @commands[index]
    self.contents.draw_text(rect, text)
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #    index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end
#==============================================================================
# ** Scene_CharacterData
#==============================================================================
class Scene_CharacterData
  include ConfigCharacterData
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :actual
  attr_accessor :total
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    @page = 0
    @actual = @page + 1
    i = 0
    valor = ($character_file.data.size.to_f / 10.to_f).ceil
    @total = (valor == 0) ? 1 : valor
    valor = nil
    $character_file.build_data
    @datos = return_options
    @command_window0 = Window_Command0.new(@datos)
    @status_window0 = Window_Status0.new
    @status_window1 = Window_Status1.new
    @status_window2 = Window_Status2.new(-1)
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    $character_file.destroy_data
    @status_window0.dispose
    @status_window1.dispose
    @status_window2.dispose
    @command_window0.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    @command_window0.update
    if @command_window0.active
      update_command
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_command
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::RIGHT)
      if @actual == @total
        return
      else
        @page += 1
        @actual += 1
        @command_window0.dispose
        @status_window1.dispose
        @datos = return_options
        @command_window0 = Window_Command0.new(@datos)
        @status_window1 = Window_Status1.new
      end
    end
    if Input.trigger?(Input::LEFT)
      if @actual == 1
        return
      else
        @page -= 1
        @actual -= 1
        @command_window0.dispose
        @status_window1.dispose
        @datos = return_options
        @command_window0 = Window_Command0.new(@datos)
        @status_window1 = Window_Status1.new
      end
    end
    if Input.trigger?(Input::C)
      if @datos[0][@command_window0.index] != nil
        @status_window2.dispose
        @status_window2 = Window_Status2.new(@datos[0][@command_window0.index])
        Sound.play_decision
        return
      else
        Sound.play_buzzer
        return
      end
    end
  end
  # Clase que devuelve los nombres para el menu segun la pagina.
  def return_options
      arreglo = [[],[]]
      i = 0
      j = 0
      for s in $character_file.temp
        if (@page * 10) <= j
          arreglo[0][i] = s
          if s.is_a?(Integer)
            actor = Game_Actor.new(s)
            arreglo[1][i] = actor.name
          else
            arreglo[1][i] = s
          end
          i += 1
        end
        j += 1
        if i >= 10
          break
        end
      end
      return arreglo
  end
end
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================
class Scene_Title
  alias midnightmoon_filecharacter_main main
  def main
    $character_file = Character_File.new
    midnightmoon_filecharacter_main
  end
  alias midnightmoon_filecharacter_command command_new_game
  def command_new_game
    $character_file = Character_File.new
    midnightmoon_filecharacter_command
  end
end
#==============================================================================
# ■ Scene_File
#------------------------------------------------------------------------------
#  This is a superclass for the save screen and load screen.
#==============================================================================
class Scene_File
  alias midnightmoon_write_data write_save_data
  def write_save_data(file)
    midnightmoon_write_data(file)
    Marshal.dump($character_file, file)
  end
  alias midnightmoon_read_data read_save_data
  def read_save_data(file)
    midnightmoon_read_data(file)
    $character_file = Marshal.load(file)
  end
end

Imagenes:
Spoiler:






Demo:
V 2.0 - mediafire.com ?txz664714gg1dj6
SAYONARA

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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