スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

メニュー画面を改造しよう!

 2008-04-06
先日、パーティ編成のスクリプト完成しました

今回、パーティ編成の画面をメニューから呼び出す機能を付けませんでした。
これは、メニューをいじっている他スクリプトとの競合を避けるためです。
と言っても、私の作ったスクリプトは競合対策を一切行ってないので、
別のところで引っかかるかも知れませんが・・・
メニューは対策のしようがないので。

と、前置きはこの辺にして、メニュー項目に"パーティ編成"の項目を
追加する方法を紹介したいと思います。

まずは、一通りスクリプトと画像の導入を済ませてください。
では、スクリプトエディタを起動します。
"Scene_Menu"のセクションを選択してください。
そこの50行目の"コマンドウィンドウの作成"を編集します。

それぞれ、図1のような処理をしています。
それを図2のように書き直しましょう。

  図1
 SS200804001.png
   図2
  SS200804002.png

書き直したら一度実行して見ましょう。

どうでしたか?見事に項目が追加されていたでしょ?
しかし、これだけでは変な動作をしてしまいます。
次は、その動作を直しましょう。
先ほど編集したところの下に"コマンド選択の更新"とあると思います。
そこで、選択された項目の処理を呼び出しています。
図3
SS200804003.png

図4のように書き直してください。
図4
SS200804004.png

最後に図5図6の箇所を変更すれば完成です。
  図5
 SS200804005.png
   図6
 SS200804006.png


説明らしい説明はしてませんが、指定された箇所を変更すれば、
メニュー画面が書き換わるので、いいッスよね?



上記をまとめるとこんな感じになります。
下記のスクリプトをコピペすれば、同じことです。
説明して意味がないような気もするけど・・・


class Scene_Menu < Scene_Base
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Vocab::game_end
s7 = "パーティ編成"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])
@command_window.index = @menu_index
if $game_party.members.size == 0 # パーティ人数が 0 人の場合
@command_window.draw_item(0, false) # アイテムを無効化
@command_window.draw_item(1, false) # スキルを無効化
@command_window.draw_item(2, false) # 装備を無効化
@command_window.draw_item(3, false) # ステータスを無効化
end
if $game_system.save_disabled # セーブ禁止の場合
@command_window.draw_item(5, false) # セーブを無効化
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # アイテム
$scene = Scene_Item.new
when 1,2,3 # スキル、装備、ステータス
start_actor_selection
when 4 # パーティ編成
start_party_selection
when 5 # セーブ
$scene = Scene_File.new(true, false, false)
when 6 # ゲーム終了
$scene = Scene_End.new
end
end
end
end

class Scene_File < Scene_Base
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(4)
end
end
end

class Scene_End < Scene_Base
def return_scene
$scene = Scene_Menu.new(5)
end
end

※ 上記スクリプトは潰れていると思いますが、ワザとです。コピペしてお使いください。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/46-5f9701f1
≪ トップページへこのページの先頭へ  ≫
カレンダー
04 << 2017/05 >> 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。