O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Save Heros of Mana

Iniciado por LoboShow, 09/03/2013 às 14:01

Save Heros of mana

Compativel com: RMVX
Compatibilidade: ?
Facilidade de uso: ?
Lag gerado: ?

[box class=titlebg]
Para que serve o script
[/box]
Esse script modifica a tela de arquivos do jogo (no caso, onde é feito save/load) deixando-a muito mais bonita usando o estilo de save do jogo Heros of Mana e dividindo a história por capítulos, ou seja, quando chegar a certo ponto do jogo poderá colocar um novo trecho da história ou uma imagem no menu de save atrvés de algumas configurações no script.

Instruções:
Copie e cole o script acima do main. Tenha na pasta Graphics/Parallaxes do seu projeto uma imagem chamada Fundo_Save, na pasta Graphcs/Pictures deverá conter as seguintes imagens: Cap.1, Cap.2, Load_Botão, Logo_Load, Salvar_Logo, Save_Botão e Save_File (é recomendado baixar a demo...). Na linha 39 é possível criar novos capítulos, apenas siga os exemplos dos capítulos anteriores e será fácil criar um novo.

[box class=titlebg]
Imagens
[/box]


[box class=titlebg]
Download
[/box]

[box class=titlebg]
Download
[/box]
==============================================================================#
#                       ::. Save Heroes of Mana                                #
#                             by: Master I                                     #
#==============================================================================#

module Pernalonga
Capitulo = []

#==============================================================================#
# Configurações gerais do Script                                               #
# ID da Variavel, Música, Fontes, Nome do Arquivo, Transição, Tempo,Textos     #
#Save_Show(true = Mostrar False = Ñ Mostrar),Música,Transição,Porecentagem,Local
#------------------------------------------------------------------------------#
Save_Variavel = 1
Save_Musica = "Save"
Save_Fonte = ["HabanoST", 16]
Save_Name = "Pernalonga"
Save_Transition = ["Save",180]
Save_Texto = ["No Data","Local: ","%"]
Save_Show = [true,true,true,true]

#==============================================================================#
# Configurações das pictures                                                   #
#Nome da IMG,Logo[Load,Salvar,POS_X,POS_Y],Botões[Load,Salvar],Fundo[PanX,PanY]#
#------------------------------------------------------------------------------#
Save_Data = "Save_File"
Save_Logo = ["Logo_Load","Salvar_Logo",200,260]#(190,320)
Save_Botão = ["Load_Botão","Save_Botão"]
Save_Fundo = ["Fundo_Save", 0, 0]

#==============================================================================#
# Configurações dos capitulos                                                  #
# Pode ter quantos capitulos quiser só seguir o esquema.                       #
# Capitulo[ID] ["Nome do Capitulo", "Imagem a ser apresentada"                 #
# Para chamar o capitulo é só chamar o script $capitulos = ID.                 #
#------------------------------------------------------------------------------#
Capitulo[0] = ["Capitulo 1: Night Raid", "Cap.1"]
Capitulo[1] = ["Capitulo 2: O Chamado dos escolhidos.", "Cap.2"]
end

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#                           Fim das Configurações
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Pernalonga_Save_Heroes_of_Mana = true
class Window_SaveFile < Window_Base
  include Pernalonga
   
  def initialize(file_index, filename)
    super(0, 230 + file_index % 4 * 55, 544, 90)
    @file_index = file_index
    @filename = filename
    load_gamedata
    @textos = []
    carregar_dados
    refresh
    @selected = false
    self.opacity = 0
end

def carregar_dados
@variavel = []
@nome_mapa = []
@capitulos = []
@dinheiro = []
@imagens = []
$capitulos_imagens =[]

if File.exist?("#{Pernalonga::Save_Name}_1.rvdata")
arquivo = File.open("#{Pernalonga::Save_Name}_1.rvdata","rb")
@variavel[0] = Marshal.load(arquivo)
@nome_mapa[0] = Marshal.load(arquivo)
@capitulos[0] = Marshal.load(arquivo)
$capitulos_imagens[0] = Marshal.load(arquivo)
arquivo.close
end

if File.exist?("#{Pernalonga::Save_Name}_2.rvdata")
file2 = File.open("#{Pernalonga::Save_Name}_2.rvdata","rb")
@variavel[1] = Marshal.load(file2)
@nome_mapa[1] = Marshal.load(file2)
@capitulos[1] = Marshal.load(file2)
$capitulos_imagens[1] = Marshal.load(file2)
file2.close
end

if File.exist?("#{Pernalonga::Save_Name}_3.rvdata")
file3 = File.open("#{Pernalonga::Save_Name}_3.rvdata","rb")
@variavel[2] = Marshal.load(file3)
@nome_mapa[2] = Marshal.load(file3)
@capitulos[2] = Marshal.load(file3)
$capitulos_imagens[2] = Marshal.load(file3)
file3.close
end

if File.exist?("#{Pernalonga::Save_Name}_4.rvdata")
file4 = File.open("#{Pernalonga::Save_Name}_4.rvdata","rb")
@variavel[3] = Marshal.load(file4)
@nome_mapa[3] = Marshal.load(file4)
@capitulos[3] = Marshal.load(file4)
$capitulos_imagens[3] = Marshal.load(file4)
file4.close
 end
end
 
  def refresh
    self.contents.clear
    self.contents.font.name = Save_Fonte[0]
    self.contents.font.size = Save_Fonte[1]
    self.contents.font.color = normal_color
    if @file_exist
    draw_playtime(- 80, 5, contents.width - 4, 2)
    self.contents.draw_text(350, 24, 450, WLH, @variavel[@file_index].to_s + Save_Texto[2]) if Save_Show[2]
    self.contents.draw_text(200, 4, 250, WLH, @capitulos[@file_index].to_s)
    self.contents.draw_text(200, 24, 250, WLH, Save_Texto[1] + @nome_mapa[@file_index].to_s) if Save_Show[3]
else
   self.contents.draw_text(300, 20, 450, WLH, Save_Texto[0])
   end
  end
 
  def update_cursor
    if @selected
      self.cursor_rect.set(0, 0, 0, 0)
    else
      self.cursor_rect.empty
    end
  end
end

#===============================================================================
class Scene_File < Scene_Base
  include Pernalonga
  def initialize(saving, from_title, from_event)
    @saving = saving
    @from_title = from_title
    @from_event = from_event
  end
 
  def perform_transition
    if Save_Show[1]
 Graphics.transition(Save_Transition[1], "Graphics/Transitions/" + Save_Transition[0])
else
  Graphics.transition(10)
  end
end

  alias pernalonga_scene_file_start start
  def start
    super
    pernalonga_scene_file_start
    @help_window.visible = false
    $capitulos == nil ? $capitulos = 0 : nil
    @fundo = Plane.new
    @fundo.bitmap = Cache.parallax(Save_Fundo[0])
    @sprites = []
    desenhar_save_load(190,320)
    desenhar_data(0,300)
    desenhar_pictures
  end
 
  def pre_terminate
    unless @from_title
    Graphics.fadeout(60)
    Graphics.wait(40)
  end
end

  alias pernalonga_scene_file_terminate terminate
  def terminate
    super
    pernalonga_scene_file_terminate
    @fundo.dispose
    for i in 0...@sprites.size
    @bitmap[i].dispose
    @sprites[i].dispose
  end
    @logo.dispose
end

def desenhar_data(x,y)
    @bitmap = []
  for i in 0...4
    @bitmap[i] = Sprite.new
    @bitmap[i].bitmap = Cache.picture(Save_Data)
  end
    @bitmap[0].x = x
    @bitmap[0].y = y
    @bitmap[1].x = x
    @bitmap[1].y = y + 50
    @bitmap[2].x = x + 280
    @bitmap[2].y = y
    @bitmap[3].x = x + 280
    @bitmap[3].y = y + 50
  end

  def desenhar_save_load(x,y)
    @logo = Sprite.new
    for i in 0...4
    @sprites[i] = Sprite.new
    @from_title == true ? @sprites[i].bitmap = Cache.picture(Save_Botão[0]) : @sprites[i].bitmap = Cache.picture(Save_Botão[1])
  @sprites[i].visible = false
end
  @from_title == true ? @logo.bitmap = Cache.picture(Save_Logo[0]) : @logo.bitmap = Cache.picture(Save_Logo[1])
  @logo.x = Save_Logo[2]
  @logo.y = Save_Logo[3]
  @sprites[0].visible = true if File.exist?(@savefile_windows[0].filename)
  @sprites[1].visible = true if File.exist?(@savefile_windows[1].filename)
  @sprites[2].visible = true if File.exist?(@savefile_windows[2].filename)
  @sprites[3].visible = true if File.exist?(@savefile_windows[3].filename)
  @sprites[0].x = x
  @sprites[0].y = y
  @sprites[1].x = x
  @sprites[1].y = y + 50
  @sprites[2].x = x + 280
  @sprites[2].y = y
  @sprites[3].x = x + 280
  @sprites[3].y = y + 50
end
 
  def desenhar_pictures
    @desenhos = []
    for i in 0...$capitulos_imagens.size
      @desenhos[i] = Sprite.new
      @desenhos[i].bitmap = Cache.picture($capitulos_imagens[i].to_s)
      @desenhos[i].visible = false
    end
  end
 
  def update
    super
    @fundo.ox += Save_Fundo[1]
    @fundo.oy += Save_Fundo[2]
  @desenhos[@index] == nil ? nil : @desenhos[@index].visible = true
  case @index
    when 0
      @bitmap[0].opacity = 255
      @bitmap[1].opacity = 150
      @bitmap[2].opacity = 150
      @bitmap[3].opacity = 150
      @desenhos[1]== nil ? nil :  @desenhos[1].visible = false
      @desenhos[2]== nil ? nil :  @desenhos[2].visible = false
      @desenhos[3]== nil ? nil :  @desenhos[3].visible = false
      @desenhos[4]== nil ? nil :  @desenhos[4].visible = false
    when 1
      @bitmap[1].opacity = 255
      @bitmap[0].opacity = 150
      @bitmap[2].opacity = 150
      @bitmap[3].opacity = 150
      @desenhos[0]== nil ? nil :  @desenhos[0].visible = false
      @desenhos[2]== nil ? nil :  @desenhos[2].visible = false
      @desenhos[3]== nil ? nil :  @desenhos[3].visible = false
      @desenhos[4]== nil ? nil :  @desenhos[4].visible = false
    when 2
      @bitmap[2].opacity = 255
      @bitmap[1].opacity = 150
      @bitmap[0].opacity = 150
      @bitmap[3].opacity = 150
      @desenhos[0]== nil ? nil :  @desenhos[0].visible = false
      @desenhos[3]== nil ? nil :  @desenhos[3].visible = false
      @desenhos[1]== nil ? nil :  @desenhos[1].visible = false
      @desenhos[4]== nil ? nil :  @desenhos[4].visible = false
    when 3
      @bitmap[3].opacity = 255
      @bitmap[1].opacity = 150
      @bitmap[2].opacity = 150
      @bitmap[0].opacity = 150
      @desenhos[0]== nil ? nil :  @desenhos[0].visible = false
      @desenhos[2]== nil ? nil :  @desenhos[2].visible = false
      @desenhos[1]== nil ? nil :  @desenhos[1].visible = false
      @desenhos[4]== nil ? nil :  @desenhos[4].visible = false
    end
    update_menu_background
    update_savefile_windows
    save_seleção
  end

def save_seleção
  if Input.trigger?(Input::C)
    determine_savefile
  elsif Input.trigger?(Input::B)
    Sound.play_cancel
      return_scene
  elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::UP)
    Sound.play_cursor
  cursor_baixo_cima
  elsif Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT)
    Sound.play_cursor
    cursor_direita_esquerda
  end
end

    def cursor_baixo_cima
    if @index == 0 or @index == 1
      @index == 1 ? @index = 0 : @index = 1
    elsif @index == 2 or @index == 3
      @index == 3 ? @index = 2 : @index = 3
    end
  end
 
  def cursor_direita_esquerda
  if @index == 0 or @index == 2
    @index == 2 ? @index = 0 : @index = 2
    elsif @index == 3 or @index = 1
      @index == 1 ? @index = 3 : @index = 1
    end
  end
 
  def create_savefile_windows
    @savefile_windows = []
    for i in 0..3
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
    end
    @savefile_windows[0].x = - 200
    @savefile_windows[0].y = 280
    @savefile_windows[1].x = - 200
    @savefile_windows[1].y = 330
    @savefile_windows[2].x = 80
    @savefile_windows[2].y = 280
    @savefile_windows[3].x = 80
    @savefile_windows[3].y = 330
  end
 
 alias pernalonga_scene_file_do_save do_save
 def do_save
    pernalonga_scene_file_do_save
    salvar_arquivo
  end

  def salvar_arquivo
    variavel = []
    nome_mapa = []
    capitulo = []
    imagens = []
    for i in 0..3
    variavel[i] = $game_variables[Save_Variavel]
    nome_mapa[i] = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name
    capitulo[i] = Capitulo[$capitulos][0]
    imagens[i] = Capitulo[$capitulos][1]
    variavel[i].to_i
    nome_mapa[i].to_i
    capitulo[i].to_i
    imagens[i].to_i
    end
    case @index
    when 0
    file = File.open("#{Save_Name}_1.rvdata", "wb")
    Marshal.dump(variavel[0],   file)
    Marshal.dump(nome_mapa[0],  file)
    Marshal.dump(capitulo[0],   file)
    Marshal.dump(imagens[0],    file)
    file.close
    when 1
    file = File.open("#{Save_Name}_2.rvdata", "wb")
    Marshal.dump(variavel[1],   file)
    Marshal.dump(nome_mapa[1],  file)
    Marshal.dump(capitulo[1],   file)
    Marshal.dump(imagens[1],    file)
    file.close
    when 2
    file = File.open("#{Save_Name}_3.rvdata", "wb")
    Marshal.dump(variavel[2],   file)
    Marshal.dump(nome_mapa[2],  file)
    Marshal.dump(capitulo[2],   file)
    Marshal.dump(imagens[2],    file)
    file.close
    when 3
    file = File.open("#{Save_Name}_4.rvdata", "wb")
    Marshal.dump(variavel[3],   file)
    Marshal.dump(nome_mapa[3],  file)
    Marshal.dump(capitulo[3],   file)
    Marshal.dump(imagens[3],    file)
    file.close
 end
end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#                        Fim do Script!
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Master I