【解決済み】戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

masa13
記事: 14
登録日時: 2021年2月28日(日) 20:20

【解決済み】戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

投稿記事by masa13 » 2021年2月28日(日) 20:39

はじめて使いますがよろしくおねがいします。
戦闘中と普段の会話などの文字サイズをそれぞれ分けたいのですが
(会話シーンの時は文字が大きいDQみたいな感じです)
戦闘開始と勝利後の文字サイズはデフォルトの文字サイズにひっぱられるためそこだけがどうしても変更できません。
スクリプトのbattle_start関連などでフォントサイズの変更を試みてていろいろ試したのですがエラーがでてしまい
思うようにいきません。
こういったことは可能ですか?

バトルに関してはmo-to氏のVX風バトルログ+とA1氏のA1 Scriptsを使用しています。
最後に編集したユーザー masa13 on 2021年3月01日(月) 12:56 [ 編集 1 回目 ]

名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: 戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

投稿記事by 名無し蛙 » 2021年3月01日(月) 01:12

どうもこんにちは
「スライムが出現!」みたいなメッセージ表示部分の事ですかね
Window_Base.reset_font_settingsがネックになっているようですね
軽く考えて思い浮かぶ方法は二つ。継承を使うか拡張を使うか
どっちでも良い気がしますね

case1.継承を使う方法

コード: 全て選択

class Window_BattleMessage < Window_Message
  #--------------------------------------------------------------------------
  # ● フォント設定のリセット
  #--------------------------------------------------------------------------
  def reset_font_settings
    change_color(normal_color)
    contents.font.size = 16 #
    contents.font.bold = false
    contents.font.italic = false
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ○ メッセージウィンドウの作成
  #--------------------------------------------------------------------------
  def create_message_window
    @message_window = Window_BattleMessage.new
  end
end


case2.拡張を使う方法

コード: 全て選択

module MessageBattleEx
  #--------------------------------------------------------------------------
  # ● フォント設定のリセット
  #--------------------------------------------------------------------------
  def reset_font_settings
    change_color(normal_color)
    contents.font.size = 16 #
    contents.font.bold = false
    contents.font.italic = false
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ○ メッセージウィンドウの作成
  #--------------------------------------------------------------------------
  alias :_old_create_message_window :create_message_window
  def create_message_window
    _old_create_message_window
    @message_window.extend MessageBattleEx
  end
end
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

投稿記事by TOMO » 2021年3月01日(月) 02:02

名無し蛙さんの以外だと、これでも可能だと思います

コード: 全て選択

class Window_Message
  #--------------------------------------------------------------------------
  # ● フォント設定のリセット
  #--------------------------------------------------------------------------
  alias in_battle_reset_font_settings reset_font_settings
  def reset_font_settings
    if $game_party && $game_party.in_battle
      change_color(normal_color)
      contents.font.size = 16
      contents.font.bold = false
      contents.font.italic = false
    else
      in_battle_reset_font_settings
    end
  end
end

あと、名無し蛙さんのcase1はmo-to様ので使えないかも
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: 戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

投稿記事by 名無し蛙 » 2021年3月01日(月) 06:04

ああ、訂正どうも。完全に競合スクリプトの確認を怠っていましたよ
既にアプローチが被ってるなら継承による上書きはするべきではありませんね
またextendによるアプローチもVX風バトルログ+の下に配置すれば問題ないですが、上だと不都合があります
利用者にある程度のメンテナンススキルが無いと使用は控えた方が良いかもしれません
masa13
記事: 14
登録日時: 2021年2月28日(日) 20:20

Re: 戦闘開始・終了とイベントの文章の表示の文字サイズの変更(VXACE)

投稿記事by masa13 » 2021年3月01日(月) 12:56

名無し蛙さん、TOMOさん、コードはどちらをつかっても再現できました。
すぐに返信がきて助かりました。

これは今回の質問と直接関係はないのですが、バトルログの文字内だけを小さく調整出来ていると思ってたのですが
通常のフォントサイズ変更で小さくしていて会話等に使う部分をwindow_Message内の通常文字の処理の部分で
フォントサイズ変更をしていたことが後でわかりました。
(質問前見直していたのですが、年単位で長く追加していたため見落としてました)
このままでは無理だとわかったので提供してもらったコードを参考に調整していますが悪くない感じです。

今回はありがとうございました。
解決済みとさせていただきます。

“VX / Ace:質問” へ戻る