XP 簡易メニューコマンド

RPGツクールXPで、簡単にメニューウィンドウを表示させるためのイベントコマンド

を作るスクリプトです。

 Mainセクションよりも上に新しいセクションを作って、以下のスクリプトをそこに入力してください。

# 以下、スクリプト
class Small_Menu
def initialize(stat, x, y, width, commands, disable = -1)
Graphics.freeze
@stat = stat
@small_menu = Window_Command.new(width, commands)
@small_menu.x = x
@small_menu.y = y
@small_menu.back_opacity = 160
@disable = disable
if disable != -1
for number in disable
@small_menu.disable_item(number - 1)
end
end
@break_flag = false
Graphics.transition
loop do
Graphics.update
Input.update
update
if @break_flag == true
break
end
end
Graphics.freeze
@small_menu.dispose
Graphics.transition
end
def update
@small_menu.update
if Input.trigger?(Input::B)
@cansel = false
$game_system.se_play($data_system.cancel_se)
$game_variables[@stat] = 0
@break_flag = true
end
if Input.trigger?(Input::C)
cansel = false
if @disable != -1
for number in @disable
if @small_menu.index == number - 1
cansel = true
end
end
end
if cansel != true
$game_system.se_play($data_system.decision_se)
$game_variables[@stat] = @small_menu.index + 1
@break_flag = true
else
$game_system.se_play($data_system.cancel_se)
end
end
end
end
# 以上、スクリプト

これで完了です。メニューを表示させたいときは。
イベントコマンドのスクリプトで、

Small_Menu.new(id,x,y,width,["A","B","C",...],[1,2,3,...])

という具合に入力してください。少し詳しく説明しますと・・・
id : 選択された項目の行番号を代入する変数の番号(キャンセルのときは、この変数に0が代入されます)
x : メニューウィンドウの左上の画面X座標
y : メニューウィンドウの左上の画面Y座標
width : メニューウィンドウの幅
["A","B","C",...] : 項目として表示させる文字列
[1,2,3,...] : 選択不可にする項目の行番号(省略することができます、省略すると、全ての項目が選択可能になります。)


簡単な使用例を、下に書いておきたいと思います。

Small_Menu.new(1,150,100,200,["メニュー","名前変更","セーブ","終了"])
◆条件分岐:変数[0001:選択結果] == 0
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:変数[0001:選択結果] == 1
 ◆メニュー画面の呼び出し
 ◆
:分岐終了
◆条件分岐:変数[0001:選択結果] == 2
 ◆名前入力の処理:アルシェス,6文字
 ◆
:分岐終了
◆条件分岐:変数[0001:選択結果] == 3
 ◆セーブ画面の呼び出し
 ◆
:分岐終了
◆条件分岐:変数[0001:選択結果] == 4
 ◆タイトル画面に戻す
 ◆
:分岐終了


上のような実行内容の場合、
・メニュー
・名前変更
・セーブ
・終了
という選択肢が表示され、項目を選択すると、それに応じた処理がされるようになるというわけです。