メニュー画面に項目を追加したいです

SLT_R03
記事: 12
登録日時: 2021年9月02日(木) 14:41

メニュー画面に項目を追加したいです

投稿記事by SLT_R03 » 2023年3月07日(火) 00:57

メニュー画面に項目を追加したいです。
使用ソフトはVX Aceです。
メニュー画面に(たとえば)「ジャンプ」という項目を追加し、その「ジャンプ」を選択した時にコモンイベント1番を実行するよう設定する…といった事をしたいのですが、スクリプトエディタでどのように記述・変更したらいいですか?

備考
・ツクールの新規プロジェクトを作成し、その初期状態からスタートした状態で、上記の設定をする場合の質問です。
・そのため、何もプラグインは導入していない状態とします。
・また、スクリプトエディタの既存の項目も何も変更していません。
・私はRGSS3についてまだほとんど何も理解できていません。ご了承ください

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

Re: メニュー画面に項目を追加したいです

投稿記事by 名無し蛙 » 2023年3月07日(火) 02:46

まずヘルプに記載されているスクリプト入門は全て読みましたか?
それが前提知識になるんですけど
①Window_MenuCommandに項目を追加する
②追加した項目のハンドラにメソッドを結びつける
の二点で実装出来ると思います。

①はメニューウィンドウには元からユーザ定義用のコマンドを追加する為の余白があるのでそこに追加します。
競合対策にaliasで元の処理を退避させる事も忘れずに

コード: 全て選択

class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # ○ 独自コマンドの追加用
  #--------------------------------------------------------------------------
  alias :_old_add_original_commands :add_original_commands
  def add_original_commands
    _old_add_original_commands
    add_command("ジャンプ", :jump)
  end
end

②はまずコマンド「ジャンプ」が決定された時に実行されるメソッドを定義し
コマンドウィンドウの作成をする時にハンドラに紐づける感じですね。
$game_temp.reserve_common_event(コモンイベントID)でコモンイベント起動予約する事が可能です。
「予約」であって即座にコモンイベントが実行される訳ではないのですが、
メニューシーン内でコモンイベントを実行しようと思うと
インタプリタを新たに用意しなければいけないので少し面倒ですね。

コード: 全て選択

class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ○ コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  alias :_old_create_command_window :create_command_window
  def create_command_window
    _old_create_command_window
    @command_window.set_handler(:jump,    method(:command_jump))
  end
  #--------------------------------------------------------------------------
  # ● コマンド「ジャンプ」
  #--------------------------------------------------------------------------
  def command_jump
    $game_temp.reserve_common_event(1)
    return_scene
  end
end

質問が明確であれば回答しますけど、
詳しい挙動に関しては検索したり適当に処理を追加/削除しながら調べてください。
SLT_R03
記事: 12
登録日時: 2021年9月02日(木) 14:41

Re: メニュー画面に項目を追加したいです

投稿記事by SLT_R03 » 2023年3月07日(火) 18:47

>名無し蛙様

ありがとうございます。無事に望んでいた通りの設定ができました。
RGSS3についてまだ勉強中の身なので適切な質問のしかたも分かっていない状態ですが、また今後質問することがあれば是非よろしくおねがいします。

“VX / Ace:質問” へ戻る