こんにちは! 主人公パーティーメンバーが装備している武器や防具によって、イベントの内容を変化させたいことってありませんか?
僕は今回、まさに装備している防具で会話の内容を変更するという機能に対応する必要がありました。 対応内容について、メモを書きます
概要
Scene_Equipというプログラムを改修することで、変数に装備アイテムIDを設定することができます。
具体的な修正箇所
- 以下のメソッドを改修を加えます
- command_clear
- on_item_ok
- 最強装備には、対応してません。。
class Scene_Equip < Scene_MenuBase # (中略) #-------------------------------------------------------------------------- # ● コマンド[全て外す] #-------------------------------------------------------------------------- def command_clear Sound.play_equip @actor.clear_equipments # 装備変数をクリア start_index = 100#装備用変数の開始位置。今回は100~104番を利用 end_index = start_index + 4 for i in start_index..end_index $game_variables[i] = 0 end @status_window.refresh @slot_window.refresh @command_window.activate end #-------------------------------------------------------------------------- # ● アイテム[決定] #-------------------------------------------------------------------------- def on_item_ok Sound.play_equip @actor.change_equip(@slot_window.index, @item_window.item) _val_idx = 100+@slot_window.index # 装備変数にアイテム番号をセット if @item_window.item != nil $game_variables[_val_idx] = @item_window.item.id else $game_variables[_val_idx] = 0 end @slot_window.activate @slot_window.refresh @item_window.unselect @item_window.refresh end end
上のコードを適用することによって、下記のような動作が実現できます!
- 装備している場合に、各変数に入る
- 変数100: 武器のアイテムID
- 変数101: 盾のアイテムID
- 変数102: 頭のアイテムID
- 変数103: 身体のアイテムID
- 変数104: 装飾品のアイテムID
- 装備していない場合
- それぞれに0が入る
それでは皆様も楽しいツクールライフを!