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

[VX ACE] Ajuda com Tela de Save !

Iniciado por dragolipe2, 04/12/2021 às 22:40

04/12/2021 às 22:40 Última edição: 07/12/2021 às 10:50 por dragolipe2
Bom dia/tarde/noite galera !!!

Então venho editando a tela de save do meu jogo, mexendo nos scripts da window_savefile e tem dado certo, mas como sou bem leigo logo fiquei empacado com isso aqui :

Spoiler
[close]

Eu descobri que essa parte é uma mensagem do modulo "vocab" que é chamada na Scene_Save e Load, o problema é que eu queria ter mais controle sobre essa mensagem, queria subir ela alguns pixels e trocar a cor da fonte e o tamanho tmb. Tentei mexer na Window_SaveFile, Scene_Save e Load mas não consegui encontrar de jeito nenhum uma forma de editar essa mensagem :T.T:
Se alguém puder me salvar dessa vez, eu agradeceria mt !

Estou utilizando apenas um script de autosave, que tbm mostra as faces ao invés dos sprites dos personagens, mas eu não acho que ele interfira em alguma coisa, mas por via das duvidas vou deixar ele aqui :

Spoiler
#Basic Autosave v1.1 and Enhanced Save [Simple] 1.0
#----------#
# Características: Salva automaticamente para o primeiro slot toda vez que o mapa muda. 
# Não pode ficar mais simples do que isso !
# Vem com a opção de renomear o primeiro slot para o que você quiser.
#
# Uso : Coloque e Jogue.
#
#----------#
#-- Script de: V.M ou D.T e Levi Stepp 
#
#-- Perguntas ou comentários podem ser:
#   Mandem para o email: sumptuaryspade@live.ca
#   Fornecido no Facebook: http://www.facebook.com/DaimoniousTailsGames
#   Todos os meus outros scripts e projetos podem ser encontrados aqui: http://daimonioustails.weebly.com/
#
#-- Gratuito para usar em qualquer projeto com crédito concedido, doações são  
# sempre bem-vindas !
#-- Use a Script Call = DataManager.save_game(0) / Para salvar o jogo manualmente 

#-- Define se deve renomear o primeiro arquivo para denotar salvamento automático 
# e como nomeá-lo
NAME_AUTOSAVE_FILE = true

# Nome do Arquivo Auto-Save
AUTOSAVE_FILE_NAME = "Autosave"

# Salvar Automaticamente ao trocar de mapa ?
AUTOSAVE_ON_MAP = false

# Salvar Automaticamente depois das batalhas ?
AUTOSAVE_AFTER_BATTLE = false

# Desejar desativar script, deixe a opção como "false" para ativa-lo deixe "true"
$auto_save = true
 
#==============================================================================
# * Game_Party
#==============================================================================
class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # * Face Graphics
  #--------------------------------------------------------------------------
  def faces_for_savefile
    battle_members.collect do |actor|
      [actor.face_name, actor.face_index]
    end
  end
end

#==============================================================================
# * DataManager
#==============================================================================
class << DataManager
  #--------------------------------------------------------------------------
  # * Create Save Header
  #--------------------------------------------------------------------------
  alias make_save_header_faces make_save_header
  def make_save_header
    header = make_save_header_faces
    header[:faces]    = $game_party.faces_for_savefile
    header[:map_name] = $game_map.display_name
    header
  end
end

class Scene_Map
  alias auto_post_transfer post_transfer
  def post_transfer
    auto_post_transfer
    return unless AUTOSAVE_ON_MAP
    if Module.const_defined?(:Game_Options)
      DataManager.save_game(0) if $game_options.auto_save
    else
      DataManager.save_game(0) if $auto_save
    end
  end
end
 
module BattleManager
  def self.battle_end(result)
    @phase = nil
    @event_proc.call(result) if @event_proc
    $game_party.on_battle_end
    $game_troop.on_battle_end
    SceneManager.exit if $BTEST
    return unless AUTOSAVE_AFTER_BATTLE
    if Module.const_defined?(:Game_Options)
      DataManager.save_game(0) if $game_options.auto_save
    else
      DataManager.save_game(0) if $auto_save
    end
  end
end
 
class Window_SaveFile
  alias auto_refresh refresh
  def refresh
    if NAME_AUTOSAVE_FILE
      contents.clear
      contents.font.name = "Prototype"
      contents.font.size = 19
      change_color(Color.new(233, 187, 73, 255))
      if @file_index == 0
        name = AUTOSAVE_FILE_NAME
      else
        name = Vocab::File + " #{@file_index}"
      end
      draw_text(4, 0, 200, line_height, name)
      @name_width = text_size(name).width
      draw_party_faces(100, (contents_height - 96) / 2)
      change_color(normal_color)
      contents.font.size = 20
      draw_map_name(0, contents_height - line_height)
      contents.font.name = "Eurotype"
      contents.font.size = 17
      draw_playtime(0, contents_height - line_height, contents.width - 4, 2)
    else
      auto_refresh
    end
  end
      #--------------------------------------------------------------------------
  # ● Draw Party Faceset
  #--------------------------------------------------------------------------
  def draw_party_faces(x, y)
    header = DataManager.load_header(@file_index)
    return unless header && header[:faces]
    header[:faces].each_with_index do |data, i|
      draw_face(data[0], data[1], x + i * 96, y)
    end
  end
  #--------------------------------------------------------------------------
  # ● Draw Map Name
  #--------------------------------------------------------------------------
  def draw_map_name(x, y, align=0)
    header = DataManager.load_header(@file_index)
    return unless header && header[:map_name]
    name = header[:map_name]
    draw_text(x, y, contents.width, line_height, name, align)
  end
end
[close]



"Não se pode chegar à alvorada, a não ser pelo caminho da escuridão"

Ué, mas o script aí só muda a janela de save. Onde está o código com as outras modificações da cena?  :sera:


06/12/2021 às 17:07 #2 Última edição: 06/12/2021 às 19:56 por dragolipe2
Eae Gabriel !!!

Sorry, acho que não expliquei direitinho, estou usando só dois scripts ... Além do primeiro script, estou usando tbm esse pequeno trecho aqui para colocar uma imagem de background na tela de save :
Spoiler
class Scene_File < Scene_MenuBase
   def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = Cache.system("Menu_Salvar")
    @background_sprite.z = -10
  end
end
[close]

Spoiler
[close]

Quanto ao resto estou editando as windows e scenes padrões do maker msm, diminui o tamanho da janela de save e coloquei ela um pouco mais para baixo, através da Window_SaveFile:
Spoiler
def initialize(height, index)
    super(70, index * height + 3, 500, height) #640 Width
    self.opacity = 0
    @file_index = index
    refresh
    @selected = false
  end
[close]

Depois retirei a opacidade das janelas e ai ficou assim, essas coisas mais simples eu consigo fazer, agora a única coisa que eu não consegui editar é aquela mensagem que eu circulei na imagem, eu sei que elas são do modulo vocab e são chamadas na Scene_Save e Load:
Spoiler
class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # * Aquisição do texto da janela de ajuda
  #--------------------------------------------------------------------------
  def help_window_text
    Vocab::SaveMessage
  end
[close]

Mas, como eu não manjo quase nada de programação, n consigo encontrar uma forma de alterar sua posição, fonte, tamanho, cor e etc  :ded:


"Não se pode chegar à alvorada, a não ser pelo caminho da escuridão"

Não foram só essas modificações que foram feitas. O que você está querendo mudar é a Window_Help da cena, que já foi totalmente modificada (levando em conta que o posicionamento e estilo dela já foram totalmente alterados).

Citarqueria subir ela alguns pixels e trocar a cor da fonte e o tamanho
Levando em conta que já fez várias alterações na janela, também deve ser capaz de fazer isso tranquilamente. Para subir alguns pixels basta mudar o posicionamento dela, assim como já fez para que ela estivesse onde está. Para trocar a cor da fonte, procure no código situações onde isso acontece (como por exemplo onde se escreve o texto de HP - há uma alteração na cor quando o HP do ator está baixo), então replique isso  nesta janela, o mesmo para o tamanho.


07/12/2021 às 10:49 #4 Última edição: 07/12/2021 às 11:01 por dragolipe2
Então, realmente eu tinha retirado a opacidade da window_help e tinha me esquecido :derp: Tinha retirado a opacidade dela aqui na Scene_File :
  def create_help_window
    @help_window = Window_Help.new(1)
    @help_window.set_text(help_window_text)    
    @help_window.opacity = 0; 
  end


Além disso, eu só mexi no vocab e coloquei o texto bem pra frente e ficou daquele jeito no canto :
# Frases de salvar/carregar
  SaveMessage     = "                                                                                                           Deseja salvar qual arquivo ?"
  LoadMessage     = "                                                                                                         Deseja carregar qual arquivo ?"
  File            = "Arquivo"


Mas foram so essas coisinhas, tanto que voltei a opacidade e a window_help esta praticamente a padrão que já vem no Maker :
Spoiler
[close]

Depois tentei e n consegui mudar o texto ou colocar a window help um pouco mais para cima, entretanto achei outra forma de fazer oque eu queria fiz duas imagens já com o texto no canto superior direito e editei a scene_save e load:
class Scene_Save < Scene_File
     def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = Cache.system("Menu_Salvar Save")
    @background_sprite.z = -10
    end


class Scene_Load < Scene_File
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = Cache.system("Menu_Salvar Load")
    @background_sprite.z = -10
  end


Ai funcionou e obrigado Gabriel pela ajuda !
Spoiler
[close]



"Não se pode chegar à alvorada, a não ser pelo caminho da escuridão"