Fórum RPG Maker Brasil  
Voltar   Fórum RPG Maker Brasil Ruby Game Scripting System Scripts
Responder
 
Opções do Tópico Exibição
  #1 (permalink)  
Antigo 06-05-2008, 03:39
Avatar de randalbr
Caçador de aventuras.
Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 395
Reputação: 47
randalbr está se destacando por aqui
Enviar mensagem via MSN para randalbr
[RMVX] Neo Save System 1.0

Introdução:

Script para turbinar o seu sistema de gravação de jogo.

Requerimentos:

Screenshot.dll colocada a disposição no demo e a download em separado.

Características
  • - Infinitos save slots, você pode escolher o numero máximo
  • - VocÊ pode usar uma imagem para o background (fundo) da cena
  • - Você pode escolher o nome do arquivo, e a pasta para guarda-los
  • - Escolha para mostrar apenas o que deseja mostrar
  • - Texto editável para mostrar as informações desejadas
  • - Inclui screenshot para cada jogo salvo, você pode escolher o tipo de imagem.
  • - Remove o texto se você não quer o nome do mapa (ex. tags para script especial)
  • - Escolha o mapa que você não quer mostrar o nome
  • - Inclui confirmação de salvamento antes de gravar encima do jogo antigo
  • - Controle de opacidade para os menus e para o fundo.

Screenshots









Como usar

Copie e cole o script acima do "principal" ou "main", na parte de add-on / Materials no seu VX. Depois copie a screenshot.dll a mesma pasta onde está o arquivo game.exe

Demo

Demo testado e traduzido e novamente testado. Não deu nenhum erro comigo.

O script foi testado, traduzido e testado novamente. não deu nenhum erro novamente.

Script

Pessoalmente, não gosto deste sistema de colar um script grande diretamente no post, mas ele está disponivel nos sabores DEMO e Arquivo de texto (encodação Unicode!).

Créditos:
Woratana, que gentilmente autorizou a tradução e distribuição de seu script.
Forum RPG RPG Revolution, de onde saiu a versão original em inglês.
Thaiware RPG Maker Community, o grupo que apoia Woratana
RPG Maker Brasil, por se lembrar de dar os créditos a quem merece.

Observações da tradução:

Nada do script foi mexido, apenas mudei alguns termos do diálogo do script para português do Brasil, assim como os comentários. Se aparecer alguma mensagem em inglês no seu jogo, é que ela não corresponde a versão traduzida do RPG Maker VX.

Para fins de compatibilidade, eu inclui as dll's do RPG Maker americano para não causar bugs inesperados no momento de rodar a demo.

A versão da demo é a versão Inglesa traduzida. Basta copiar o script e a DLL nos lugares certos que não haverá problema.

Você chama o menu de gravação através do menu "salvar" na tela de status dos personagens.

A primeira Screenshot foi tirada da demo original, mas eu testei aqui e não vi problemas em rodar.

Nota importante:

Em alguns computadores com o sistema operacional diferente do XP (windows 98, Windows 2000, Windows ME e Windows Vista) o arquivo screenshot.dll pode não funcionar. Se alguém que não use o Windows XP puder rodar a demo e salvar, fechar o jogo e depois carregar o jogo salvo e dizer se deu ou não problema, eu ficaria grato. Valeu.
Imagens Anexadas
Tipo de Arquivo: jpg 2nss9ki.jpg (51.6 KB, 12 visitas)
Arquivos Anexos
Tipo de Arquivo: zip Neo Save System.zip (3.41 MB, 995 visitas)
Tipo de Arquivo: txt Neo Save System.txt (38.8 KB, 433 visitas)
Tipo de Arquivo: zip screenshot.zip (53.4 KB, 334 visitas)

Última edição por Atoa; 07-10-2008 às 01:54.
Responder com Quote
  #2 (permalink)  
Antigo 06-05-2008, 04:46
Avatar de Tenshi Sama
Hikari Animes
Pontos: 19,277, Nível: 20 Pontos: 19,277, Nível: 20 Pontos: 19,277, Nível: 20
Atividade: 20% Atividade: 20% Atividade: 20%
 
Data de Entrada: Mar 2008
Posts: 804
Reputação: 76
Tenshi Sama é bem famoso nesta comunidade
Enviar mensagem via MSN para Tenshi Sama
Re: Neo Save System 1.0

Muito Show este script. Parabéns pelo post.
__________________
Visite o meu fórum de discussão e download de anime, manga, visual novel, light novel, eroge e cultura japonesa
Responder com Quote
  #3 (permalink)  
Antigo 06-05-2008, 04:56
Avatar de randalbr
Caçador de aventuras.
Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 395
Reputação: 47
randalbr está se destacando por aqui
Enviar mensagem via MSN para randalbr
Re: Neo Save System 1.0

Obrigado. Eu traduzi na hora da folga do trabalho. O script é tão bonito que acho que vou adicionar no meu jogo. Ele parece ser 10! Gostei muito dele. :)
Responder com Quote
  #4 (permalink)  
Antigo 06-05-2008, 20:22
Avatar de Kabesao
| Um pouco ausente |
Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 333
Reputação: 70
Kabesao é bem famoso nesta comunidade
Enviar mensagem via MSN para Kabesao Enviar mensagem via Yahoo para Kabesao
Re: Neo Save System 1.0

quando eu salvo a imagem da screnshot fica preta,
(na demo e no jogo)
:(
Responder com Quote
  #5 (permalink)  
Antigo 06-05-2008, 20:32
Avatar de randalbr
Caçador de aventuras.
Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 395
Reputação: 47
randalbr está se destacando por aqui
Enviar mensagem via MSN para randalbr
Re: Neo Save System 1.0

Poderia me dar mais informações? Você disse que não funcionou, mas eu gostaria de ter mais informações para saber o que deu errado. Se for um bug, eu aviso o autor (já que eu traduzi apenas os comentários).

1) Você colocou a screenshot.dll na mesma pasta que o game.exe ? (no caso de usar o script).

2) A imagem da área da screenshot ficou preta?

A menos que você tenha mexido no script, o nome do arquivo padrão é temp.png que fica no mesmo diretório do game.exe

3) O script aprensentou alguma mensagem de erro ou algum outro problema, fora este?

4) Qual versão do windows que você usa?

- Editado -

Eu li os tópicos sobre o Neo Save system, e parece que a DLL que é responsável pelo salvamento das screenshots funciona bem no XP, mas em algumas outras versões do windows não funciona, deixando um espaço em preto na área do screenshot.

Se você não estiver usando Windows XP, acho que encontrei o problema. O autor Woratana está providenciando (na medida do possivel, quando puder) uma dll mais compativel com outros windows, e assim que sair eu coloco aqui.

Se você ainda utiliza o XP, então eu precisaria de outras informações para localizar o problema no seu lado do micro.

Última edição por randalbr; 06-05-2008 às 20:43.
Responder com Quote
  #6 (permalink)  
Antigo 06-05-2008, 20:43
Avatar de Kabesao
| Um pouco ausente |
Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 333
Reputação: 70
Kabesao é bem famoso nesta comunidade
Enviar mensagem via MSN para Kabesao Enviar mensagem via Yahoo para Kabesao
Re: Neo Save System 1.0

1)R=Sim

2)R=Sim

Apenas alterei os campos que dava para alterar.

3)R=Não
Responder com Quote
  #7 (permalink)  
Antigo 06-05-2008, 20:45
Avatar de randalbr
Caçador de aventuras.
Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 395
Reputação: 47
randalbr está se destacando por aqui
Enviar mensagem via MSN para randalbr
Re: Neo Save System 1.0

Citação:
Postado originalmente por kabesao10 Ver Posts
1)R=Sim

2)R=Sim

Apenas alterei os campos que dava para alterar.

3)R=Não
Poderia ser mais especifico? Comparando o script traduzido que coloquei a disposição e a sua versão alterada, talvez você encontre o erro que causou o bug.

Outro detalhe... Ao reportar um bug, me diga a versão do seu windows e a do seu RPG Maker VX (se é em português, japonês ou em inglês). isto agiliza na hora de procurar bugs e apresentar o relatório de problemas ao autor. :)
Responder com Quote
  #8 (permalink)  
Antigo 06-05-2008, 21:08
Avatar de Kaos
Let's Rock!
Pontos: 8,651, Nível: 13 Pontos: 8,651, Nível: 13 Pontos: 8,651, Nível: 13
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Mar 2008
Posts: 255
Reputação: 54
Kaos é bem famoso nesta comunidade
Re: Neo Save System 1.0

cara vlw mesmo eu queria um Save diferente do padrão, o normal é muito feio ^^
__________________
RMZine, bem-vindo ao futuro!
Responder com Quote
  #9 (permalink)  
Antigo 06-05-2008, 21:23
Avatar de Kabesao
| Um pouco ausente |
Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10 Pontos: 5,176, Nível: 10
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 333
Reputação: 70
Kabesao é bem famoso nesta comunidade
Enviar mensagem via MSN para Kabesao Enviar mensagem via Yahoo para Kabesao
Re: Neo Save System 1.0

Bem, vo bota o script ai:
Código:
#===============================================================
# ● [VX] ◦ Neo Save System with Unlimited save slots ◦ □
#--------------------------------------------------------------
# ◦ by Woratana - Tradução RPG Maker Brasil - Randal Br
# ◦ Thaiware RPG Maker Community
# ◦ Released on: 04/05/2008
# ◦ Version: 1.0 - 
#  Pegue mais informações desta tradução em www.rpgmakerbrasil.com
#--------------------------------------------------------------
# ◦ Creditos: - Andreas21 e Cybersam pelo Screenshot Script
# - RPG Revolution por hospedar o arquivo de DLL de screenshot.
#--------------------------------------------------------------
# ◦ Requirementos: screenshot.dll de Andreas21.
# You pode fazer o download do arquivo em:
# http://www.rpgrevolution.com/users/woratana/DLL_file/
# Alternativamente, pegue em http://www.rpgmakerbrasil.com
# Coloque na pasta de proejtos. (pasta onde está o arquivo Game.exe)
#--------------------------------------------------------------
# ◦ Caracteristicas:
# - Infinitos save slots, você pode escolher o numero máximo
# - VocÊ pode usar uma imagem para o background (fundo) da cena
# - Você pode escolher o nome do arquivo, e a pasta para guarda-los
# - Escolha para mostrar apenas o que deseja mostrar
# - Texto editável para mostrar as informações desejadas
# - Inclui screenshot para cada jogo salvo, você pode escolher o tipo de imagem.
# - Remove o texto se você não quer o nome do mapa (ex. tags para script especial)
# - Escolha o mapa que você não quer mostrar o nome
# - Inclui confirmação de salvamento antes de gravar encima do jogo antigo
#=================================================================

module Wora_NSS
  #==========================================================================
  # * START NEO SAVE SYSTEM - SETUP - Configuração
  #--------------------------------------------------------------------------
  NSS_WINDOW_OPACITY = 255 # Opacidade (Baixo 0 - 255 Alto)
  # Você pode mudar para 0 no caso de usar uma imagem como fundo
  NSS_IMAGE_BG = '' # Nome da imagem de fundo, tem que estar na pasta Picture.
  # use '' para não ter nenhum fundo
  NSS_IMAGE_BG_OPACITY = 255 # Opacity da imagem de fundo
  
  MAX_SAVE_SLOT = 20 # Numero máximo de slots para gravação.
  SLOT_NAME = 'Salve {id}'
  # Nome do slot (Mostra o nome na lista de slots), use {id} para slot ID
  SAVE_FILE_NAME = 'Saveslot{id}.rvdata'
  # Nome do arquivo de gravação (save), você pode alterar o tipo de arquivo de .rvdata para outro
  # use {id} para save slot ID
  SAVE_PATH = 'Salve/' # Caminho para a pasta de gravação, ex. 'Save/' ou '' (da pasta do jogo)
  
  SAVED_SLOT_ICON = 133 # Icone de Index para jogo salvo (gravado)
  EMPTY_SLOT_ICON = 141 # Icone Index para slot vazio
  
  IMAGE_FILETYPE = '.png' # Tipo de imagem para o screenshot
  # '.bmp', ou '.jpg', ou '.png'
  
  EMPTY_SLOT_TEXT = 'Vazio' # Texto para mostrar um slot vazio
  
  DRAW_GOLD = true # Mostra a quantidade de dinheiro
  DRAW_PLAYTIME = true # Mostra o tempo de jogo
  DRAW_LOCATION = true # Mostra a localização
  DRAW_FACE = true # Mostra a face do personagem
  DRAW_LEVEL = true # Mostra o nivel do personagem
  DRAW_NAME = true # Mostra o nome do personagem
  
  PLAYTIME_TEXT = 'Tempo de jogo: '
  GOLD_TEXT = 'GP: '
  LOCATION_TEXT = 'Local: '
  LV_TEXT = 'Level: '
  
  MAP_NAME_TEXT_SUB = %w{}
  # Texto que você quer remover do nome do mapa,
  # ex. %w{[LN] [DA]} vai remover '[LN]' e '[DA]' do nome do mapa
  MAP_NO_NAME_LIST = [] # ID do nome do mapa que não quer mostrar, ex [1,2,3]
  MAP_NO_NAME_NAME = '???' # O que irá usar para chamar o seu mapa sem nome da lista
  
  MAP_BORDER = Color.new(0,0,0,200) # Mapa (Screenshot) Borda colorida(R,G,B,Opacity)
  FACE_BORDER = Color.new(0,0,0,200) # Borda colorida do rosto
  
  ## SAVE CONFIRMATION WINDOW ##
  SFC_Text_Confirm = 'Substituir' # Texto para confirmar a gravação do jogo
  SFC_Text_Cancel = 'Cancelar' # Texto para cancelar a gravação do jogo
  SFC_Window_Width = 200 # tamanho da tela de confirmação
  SFC_Window_X_Offset = 0 # Mover tela de confirmação horizontalmente
  SFC_Window_Y_Offset = 0 # Mover tela de confirmação verticalmente
  #----------------------------------------------------------------------
  # END NEO SAVE SYSTEM - SETUP - NÃO MEXA APARTIR DAQUI, SE NÃO SOUBER!
  #=========================================================================

  #-------------------------------------------------------------
  # Screenshot V2 by Andreas21 and Cybersam
  #-------------------------------------------------------------
  @screen = Win32API.new 'screenshot', 'Screenshot', %w(l l l l p l l), ''
  @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  @findwindow = Win32API.new 'user32', 'FindWindowA', %w(p p), 'l' 
  module_function
  def self.shot(file_name)
    case IMAGE_FILETYPE
    when '.bmp'; typid = 0
    when '.jpg'; typid = 1
    when '.png'; typid = 2
    end
    # Get Screenshot - Pegar screenshot
    filename = file_name + IMAGE_FILETYPE
    @screen.call(0, 0, Graphics.width, Graphics.height, filename, self.handel,
    typid)
  end
  def self.handel
    game_name = "\0" * 256
    @readini.call('Game','Title','',game_name,255,".\\Game.ini")
    game_name.delete!("\0")
    return @findwindow.call('RGSS Player',game_name)
  end
end

class Scene_File < Scene_Base
  include Wora_NSS
  attr_reader :window_slotdetail
  #--------------------------------------------------------------------------
  # * Start processing - Inicar Processo
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    if NSS_IMAGE_BG != ''
      @bg = Sprite.new
      @bg.bitmap = Cache.picture(NSS_IMAGE_BG)
      @bg.opacity = NSS_IMAGE_BG_OPACITY
    end
    @help_window = Window_Help.new
    command = []
    (1..MAX_SAVE_SLOT).each do |i|
      command << SLOT_NAME.clone.gsub!(/\{ID\}/i) { i.to_s }
    end
    @window_slotdetail = Window_NSS_SlotDetail.new
    @window_slotlist = Window_SlotList.new(160, command)
    @window_slotlist.y = @help_window.height
    @window_slotlist.height = Graphics.height - @help_window.height
    @help_window.opacity = NSS_WINDOW_OPACITY
    @window_slotdetail.opacity = @window_slotlist.opacity = NSS_WINDOW_OPACITY
    
    # Create Folder for Save file - Criar pasta para jogo salvo
  if SAVE_PATH != ''
    Dir.mkdir(SAVE_PATH) if !FileTest.directory?(SAVE_PATH)
  end
    if @saving
      @index = $game_temp.last_file_index
      @help_window.set_text(Vocab::SaveMessage)
    else
      @index = self.latest_file_index
      @help_window.set_text(Vocab::LoadMessage)
      (1..MAX_SAVE_SLOT).each do |i|
        @window_slotlist.draw_item(i-1, false) if !@window_slotdetail.file_exist?(i)
      end
    end
    @window_slotlist.index = @index
    # Draw Information - Mostrar Informação
    @last_slot_index = @window_slotlist.index
    @window_slotdetail.draw_data(@last_slot_index + 1)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    unless @bg.nil?
      @bg.bitmap.dispose
      @bg.dispose
    end
    @window_slotlist.dispose
    @window_slotdetail.dispose
    @help_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update - Atualziação de Frame
  #--------------------------------------------------------------------------
  def update
    super
    if !@confirm_window.nil?
      @confirm_window.update
      if Input.trigger?(Input::C)
        if @confirm_window.index == 0
          determine_savefile
          @confirm_window.dispose
          @confirm_window = nil
        else
          Sound.play_cancel
          @confirm_window.dispose
          @confirm_window = nil
        end
      elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @confirm_window.dispose
      @confirm_window = nil
      end
    else
      update_menu_background
      @window_slotlist.update
      if @window_slotlist.index != @last_slot_index
        @last_slot_index = @window_slotlist.index
        @window_slotdetail.draw_data(@last_slot_index + 1)
      end
      @help_window.update
      update_savefile_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Update Save File Selection - Atualizar seleção de jogo gravado
  #--------------------------------------------------------------------------
  def update_savefile_selection
    if Input.trigger?(Input::C)
      if @saving and @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_decision
        text1 = SFC_Text_Confirm
        text2 = SFC_Text_Cancel
        @confirm_window = Window_Command.new(SFC_Window_Width,[text1,text2])
        @confirm_window.x = ((544 - @confirm_window.width) / 2) + SFC_Window_X_Offset
        @confirm_window.y = ((416 - @confirm_window.height) / 2) + SFC_Window_Y_Offset
      else
        determine_savefile
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Save - Executar gravação de jogo
  #--------------------------------------------------------------------------
  def do_save
    File.rename(SAVE_PATH + 'temp' + IMAGE_FILETYPE,
    make_filename(@last_slot_index).gsub(/\..*$/){ '_ss' } + IMAGE_FILETYPE)
    file = File.open(make_filename(@last_slot_index), "wb")
    write_save_data(file)
    file.close
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Execute Load - Executar carregamento de jogo salvo
  #--------------------------------------------------------------------------
  def do_load
    file = File.open(make_filename(@last_slot_index), "rb")
    read_save_data(file)
    file.close
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
    @last_bgm.play
    @last_bgs.play
  end
  #--------------------------------------------------------------------------
  # * Confirm Save File - Confirmar Gravação
  #--------------------------------------------------------------------------
  def determine_savefile
    if @saving
      Sound.play_save
      do_save
    else
      if @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_load
        do_load
      else
        Sound.play_buzzer
        return
      end
    end
    $game_temp.last_file_index = @last_slot_index
  end
  #--------------------------------------------------------------------------
  # * Create Filename - Criar arquivo
  #     file_index : save file index (0-3) - Index de jogo salvo (0-3)
  #--------------------------------------------------------------------------
  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index + 1).to_s }
  end
  #--------------------------------------------------------------------------
  # * Select File With Newest Timestamp - Selecione arquivo para nova faixa de tempo
  #--------------------------------------------------------------------------
  def latest_file_index
    latest_index = 0
    latest_time = Time.at(0)
    (1..MAX_SAVE_SLOT).each do |i|
      file_name = make_filename(i - 1)
      next if !@window_slotdetail.file_exist?(i)
      file_time = File.mtime(file_name)
      if file_time > latest_time
        latest_time = file_time
        latest_index = i - 1
      end
    end
    return latest_index
  end
end

class Window_SlotList < Window_Command
  #--------------------------------------------------------------------------
  # * Mostrar Item
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    icon_index = 0
    self.contents.clear_rect(rect)
    if $scene.window_slotdetail.file_exist?(index + 1)
      icon_index = Wora_NSS::SAVED_SLOT_ICON
    else
      icon_index = Wora_NSS::EMPTY_SLOT_ICON
    end
    if !icon_index.nil?
      rect.x -= 4
      draw_icon(icon_index, rect.x, rect.y, enabled) # Draw Icon
      rect.x += 26
      rect.width -= 20
    end
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
  end
  
  def cursor_down(wrap = false)
    if @index < @item_max - 1 or wrap
      @index = (@index + 1) % @item_max
    end
  end

  def cursor_up(wrap = false)
    if @index > 0 or wrap
      @index = (@index - 1 + @item_max) % @item_max
    end
  end
end

class Window_NSS_SlotDetail < Window_Base
  include Wora_NSS
  def initialize
    super(160, 56, 384, 360)
    @data = []
    @exist_list = []
    @bitmap_list = {}
    @map_name = []
  end

  def draw_data(slot_id)
    contents.clear # 352, 328
    load_save_data(slot_id) if @data[slot_id].nil?
    if @exist_list[slot_id]
      save_data = @data[slot_id]
      # Mostrar Screenshot~
      contents.fill_rect(0,30,352,160, MAP_BORDER)
      if save_data['ss']
        bitmap = get_bitmap(save_data['ss_path'])
        rect = Rect.new((Graphics.width-348)/2,(Graphics.height-156)/2,348,156)
        contents.blt(2,32,bitmap,rect)
      end
    if DRAW_GOLD
      # Mostrar Ouro (gold)
      gold_textsize = contents.text_size(save_data['gamepar'].gold).width
      goldt_textsize = contents.text_size(GOLD_TEXT).width
      contents.font.color = system_color
      contents.draw_text(0, 0, goldt_textsize, WLH, GOLD_TEXT)
      contents.draw_text(goldt_textsize + gold_textsize,0,200,WLH, Vocab::gold)
      contents.font.color = normal_color
      contents.draw_text(goldt_textsize, 0, gold_textsize, WLH, save_data['gamepar'].gold)
    end
    if DRAW_PLAYTIME
      # Mostrar Tempo de jogo
      hour = save_data['total_sec'] / 60 / 60
      min = save_data['total_sec'] / 60 % 60
      sec = save_data['total_sec'] % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      pt_textsize = contents.text_size(PLAYTIME_TEXT).width
      ts_textsize = contents.text_size(time_string).width
      contents.font.color = system_color
      contents.draw_text(contents.width - ts_textsize - pt_textsize, 0,
      pt_textsize, WLH, PLAYTIME_TEXT)
      contents.font.color = normal_color
      contents.draw_text(0, 0, contents.width, WLH, time_string, 2)
    end
    if DRAW_LOCATION
      # Mostrar Localização
      lc_textsize = contents.text_size(LOCATION_TEXT).width
      mn_textsize = contents.text_size(save_data['map_name']).width
      contents.font.color = system_color
      contents.draw_text(0, 190, contents.width,
      WLH, LOCATION_TEXT)
      contents.font.color = normal_color
      contents.draw_text(lc_textsize, 190, contents.width, WLH,
      save_data['map_name'])
    end
      # Mostrar FACE & Nivel & Nome
      save_data['gamepar'].members.each_index do |i|
        actor = save_data['gamepar'].members[i]
        face_x_base = (i*80) + (i*8)
        face_y_base = 216
        lvn_y_plus = 10
        lv_textsize = contents.text_size(actor.level).width
        lvt_textsize = contents.text_size(LV_TEXT).width
      if DRAW_FACE
        # Draw Face
        contents.fill_rect(face_x_base, face_y_base, 84, 84, FACE_BORDER)
        draw_face(actor.face_name, actor.face_index, face_x_base + 2,
        face_y_base + 2, 80)
      end
      if DRAW_LEVEL
        # Draw Level
        contents.font.color = system_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize - lvt_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lvt_textsize, WLH, LV_TEXT)
        contents.font.color = normal_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lv_textsize, WLH, actor.level)
      end
      if DRAW_NAME
        # Draw Name
        contents.draw_text(face_x_base, face_y_base + 2 + 80 + lvn_y_plus - 6, 84,
        WLH, actor.name, 1)
      end
      end
    else
      contents.draw_text(0,0, contents.width, contents.height - WLH, EMPTY_SLOT_TEXT, 1)
    end
  end
  
  def load_save_data(slot_id)
    file_name = make_filename(slot_id)
    if file_exist?(slot_id) or FileTest.exist?(file_name)
      @exist_list[slot_id] = true
      @data[slot_id] = {}
      # Start load data
      file = File.open(file_name, "r")
      @data[slot_id]['time'] = file.mtime
      @data[slot_id]['char'] = Marshal.load(file)
      @data[slot_id]['frame'] = Marshal.load(file)
      @data[slot_id]['last_bgm'] = Marshal.load(file)
      @data[slot_id]['last_bgs'] = Marshal.load(file)
      @data[slot_id]['gamesys'] = Marshal.load(file)
      @data[slot_id]['gamemes'] = Marshal.load(file)
      @data[slot_id]['gameswi'] = Marshal.load(file)
      @data[slot_id]['gamevar'] = Marshal.load(file)
      @data[slot_id]['gameselfvar'] = Marshal.load(file)
      @data[slot_id]['gameactor'] = Marshal.load(file)
      @data[slot_id]['gamepar'] = Marshal.load(file)
      @data[slot_id]['gametro'] = Marshal.load(file)
      @data[slot_id]['gamemap'] = Marshal.load(file)
      @data[slot_id]['total_sec'] = @data[slot_id]['frame'] / Graphics.frame_rate
      @data[slot_id]['ss_path'] = file_name.gsub(/\..*$/){'_ss'} + IMAGE_FILETYPE
      @data[slot_id]['ss'] = FileTest.exist?(@data[slot_id]['ss_path'])
      @data[slot_id]['map_name'] = get_mapname(@data[slot_id]['gamemap'].map_id)
      file.close
    else
      @exist_list[slot_id] = false
      @data[slot_id] = -1
    end
  end

  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index).to_s }
  end
  
  def file_exist?(slot_id)
    return @exist_list[slot_id] if !@exist_list[slot_id].nil?
    @exist_list[slot_id] = FileTest.exist?(make_filename(slot_id))
    return @exist_list[slot_id]
  end

  def get_mapname(map_id)
    if @map_data.nil?
      @map_data = load_data("Data/MapInfos.rvdata")
    end
    if @map_name[map_id].nil?
      if MAP_NO_NAME_LIST.include?(map_id)
        @map_name[map_id] = MAP_NO_NAME_NAME
      else
        @map_name[map_id] = @map_data[map_id].name
        MAP_NAME_TEXT_SUB.each_index do |i|
          @map_name[map_id].sub!(MAP_NAME_TEXT_SUB[i], '')
        end
      end
    end
    return @map_name[map_id]
  end
  
  def get_bitmap(path)
    if !@bitmap_list.include?(path)
      @bitmap_list[path] = Bitmap.new(path)
    end
    return @bitmap_list[path]
  end
  
  def dispose
    @bitmap_list.each {|i| i[1].dispose }
    super
  end
end

class Scene_Title < Scene_Base
  def check_continue
    file_name = Wora_NSS::SAVE_PATH + Wora_NSS::SAVE_FILE_NAME.gsub(/\{ID\}/i) { '*' }
    @continue_enabled = (Dir.glob(file_name).size > 0)
  end
end

class Scene_Map < Scene_Base
  alias wora_nss_scemap_ter terminate
  def terminate
    Wora_NSS.shot(Wora_NSS::SAVE_PATH + 'temp')
    wora_nss_scemap_ter
  end
end
#======================================================================
# END - NEO SAVE SYSTEM by Woratana
# Traduzido para português por Randal Br - Rpg Make Brasil
#======================================================================
Só mexi nas configurações principais,
xD
Não sei qual é o erro,
meu RPG Maker é portugues,
mais foi baixado aqui no fórum,
pra mim ver o script,
tive de copiar os arquivos para um novo projeto, mais foi como estava na pasta real,
pois ocorreu um erro dizendo que a versão usada no jogo era antiga, eu fiz como a "Ajuda" falo mais num deu nada.
Responder com Quote
  #10 (permalink)  
Antigo 06-05-2008, 21:37
Avatar de randalbr
Caçador de aventuras.
Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9 Pontos: 3,670, Nível: 9
Atividade: 0% Atividade: 0% Atividade: 0%
 
Data de Entrada: Apr 2008
Posts: 395
Reputação: 47
randalbr está se destacando por aqui
Enviar mensagem via MSN para randalbr
Re: Neo Save System 1.0

Vou ler com calma depois os scripts e comparar, mas se mexeu apenas nas configurações principais como opacidade ou fundo, acho que nã oera para ter dado errado.

Sobre ser o "erro da versão antiga", acho que o bug pode ser causado pela incompatibilidade entra as versões do demo, a do meu RMVX em inglês e a sua do RMVX em português. Eu envio sempre as dll's extras com o demo para ajudar neste rolo da compatibilidade.

Eu acredito que você está usando a RMVX 1.01 em português. Acho que a 1.02 já está disponivel. Atualize-se se for este o caso.

Para evitar que o erro se repita, coloque estas dll's no diretório do game.exe do seu jogo e do seu RMVX se o seu programa é 1.01... Talvez funcione.

Estou aguardando que os outros usuários do fórum peguem a demo e testem. Se o erro se repetir, então estará claro que o erro é na minha tradução ou causado pelo meu VX gringo.
Arquivos Anexos
Tipo de Arquivo: zip DLLs Americanas.zip (1.64 MB, 24 visitas)

Última edição por randalbr; 06-05-2008 às 21:43.
Responder com Quote
Responder


Opções do Tópico
Exibição

Ir para...


Horários baseados na GMT -2. Agora são 18:35.

Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.