#============================================================================== # ■ XP-RGSS-11-opt 熟練度装備制限 [Ver.1.1.0] by Claimh #------------------------------------------------------------------------------ # ・特定の熟練度に達していない武器は装備できないようにします #============================================================================== module SysUpdate ELE_EQ_LIM = [] # 装備制限設定 # ELE_EQ_LIM[武器ID] = [[武器属性ID, 装備可能Lv],・・・] ELE_EQ_LIM[1] = [[SWORD, 2]] # ブロンズソード:剣Lv2以上で装備可能 ELE_EQ_LIM[5] = [[LANCE, 5]] # ブロンズランス:槍Lv5以上で装備可能 end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor #-------------------------------------------------------------------------- # ● 装備可能判定 # item : アイテム #-------------------------------------------------------------------------- alias elelim_equippable? equippable? def equippable?(item) ret = elelim_equippable?(item) # 装備できない return ret unless ret # 武器以外の場合 return ret unless item.is_a?(RPG::Weapon) # 設定なし return ret if SysUpdate::ELE_EQ_LIM[item.id].nil? # 熟練度制限サーチ for eqlim_set in SysUpdate::ELE_EQ_LIM[item.id] attr_id = eqlim_set[0] enable_lv = eqlim_set[1] # 熟練度が規定未満なら装備不可 return false if @attr[attr_id].level < enable_lv end return true # 装備可能 end end #============================================================================== # ■ Scene_Equip #============================================================================== class Scene_Equip #-------------------------------------------------------------------------- # ● フレーム更新 (アイテムウィンドウがアクティブの場合) # 【 装備判定が入ってないのでしょうがなく再定義 】 #-------------------------------------------------------------------------- def update_item # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # ライトウィンドウをアクティブ化 @right_window.active = true @item_window.active = false @item_window.index = -1 return end # C ボタンが押された場合 if Input.trigger?(Input::C) # アイテムウィンドウで現在選択されているデータを取得 item = @item_window.item # 装備する場合 unless item.nil? # 装備可能か? unless @actor.equippable?(item) # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end end # 装備 SE を演奏 $game_system.se_play($data_system.equip_se) # 装備を変更 @actor.equip(@right_window.index, item == nil ? 0 : item.id) # ライトウィンドウをアクティブ化 @right_window.active = true @item_window.active = false @item_window.index = -1 # ライトウィンドウ、アイテムウィンドウの内容を再作成 @right_window.refresh @item_window.refresh return end end end