【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい

さじかげん
記事: 2
登録日時: 2021年1月04日(月) 14:03

【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい

投稿記事by さじかげん » 2021年1月04日(月) 14:15

質問,失礼します.

VXACEでバトル中コマンドからスキルを選び,どのスキルを使うか選択する際に,そのスキルカーソルの下に小さなウィンドウを表示し,その中にそのカーソルが合っているスキルの速度補正や,成功率,現在の自分の攻撃力,防御力を表示させようとしているのですが,なかなかうまくいきません.
どのようにスクリプトを書けばよいでしょう?投げるような質問で恐縮ですが,よろしければお願いします.

TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい

投稿記事by TOMO » 2021年1月05日(火) 17:04

「どのようにスクリプトを書けばよいでしょう?」と言うけど、
これはある程度スクリプトを作り慣れてないと無理だと思います


とりあえず作ってみました

コード: 全て選択

class Window_BattleSkillMini < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 120, 16 * 4 + 12 * 2)
    @skill = nil
    contents.font.size = 16
    hide
  end
  #--------------------------------------------------------------------------
  # ● スキルの設定
  #--------------------------------------------------------------------------
  def skill=(skill)
    return if @skill == skill
    @skill = skill
    @skill.nil? ? hide : show
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    if @skill
      actor = BattleManager.actor
      size = contents.font.size
      change_color(system_color)
      draw_text(0, size * 0, contents.width, size, "速度補正:")
      draw_text(0, size * 1, contents.width, size, "成功率:")
      draw_text(0, size * 2, contents.width, size, "#{Vocab::param(2)}:")
      draw_text(0, size * 3, contents.width, size, "#{Vocab::param(3)}:")
      change_color(normal_color)
      draw_text(0, size * 0, contents.width, size, @skill.speed, 2)
      draw_text(0, size * 1, contents.width, size, "#{@skill.success_rate}%", 2)
      draw_text(0, size * 2, contents.width, size, actor.atk, 2)
      draw_text(0, size * 3, contents.width, size, actor.def, 2)
    end
  end
end
class Window_BattleSkill
  attr_accessor   :mini_window
  #--------------------------------------------------------------------------
  # ● カーソルの移動処理
  #--------------------------------------------------------------------------
  alias tomo_mini_info_process_cursor_move process_cursor_move
  def process_cursor_move
    last_index = @index
    tomo_mini_info_process_cursor_move
    set_mini_window if @mini_window && @index != last_index
  end
  #--------------------------------------------------------------------------
  # ● 小ウィンドウの各種設定
  #--------------------------------------------------------------------------
  def set_mini_window
    @mini_window.x = self.x + cursor_rect.x + standard_padding +
    (item_width - @mini_window.width) / 2
    @mini_window.y = self.y + cursor_rect.y + standard_padding + line_height
    @mini_window.skill = index == -1 ? @data[0] : item
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウの表示
  #--------------------------------------------------------------------------
  alias tomo_mini_info_show show
  def show
    if @mini_window
      set_mini_window
      @mini_window.show if !@data.empty?
    end
    tomo_mini_info_show
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウの非表示
  #--------------------------------------------------------------------------
  alias tomo_mini_info_hide hide
  def hide
    @mini_window.hide if @mini_window
    tomo_mini_info_hide
  end
end
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● スキルウィンドウの作成
  #--------------------------------------------------------------------------
  alias tomo_mini_info_create_skill_window create_skill_window
  def create_skill_window
    tomo_mini_info_create_skill_window
    @mini_window = Window_BattleSkillMini.new
    @mini_window.z = @skill_window.z + 1
    @skill_window.mini_window = @mini_window
  end
end
結構適当なので改造して使って下さい
さじかげん
記事: 2
登録日時: 2021年1月04日(月) 14:03

Re: 【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい

投稿記事by さじかげん » 2021年1月05日(火) 21:14

加減が分からず,大掛かりな質問をしてしまい申し訳ありませんでした.
本当にありがとうございます.

“VX / Ace:質問” へ戻る