# ▽△▽ XRXSv10. MeLT-VX.OP+. オプション・アイテム図鑑 ▽△▽ # # publish 2010/ 3/13 # update - # #============================================================================== # カスタマイズポイント #============================================================================== module XRXSVMeLTOP Commands.push("アイテム図鑑") Commands.push("武器図鑑") Commands.push("防具図鑑") Works.push(2) Works.push(3) Works.push(4) end #============================================================================== # 図鑑ウィンドウ #============================================================================== class Window_OptionDex < Window_Selectable #-------------------------------------------------------------------------- # オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(272, 76, 272, 272) @skin = Cache.system(XRXSVMeLTOP::WideSkin) @column_max = 1 set_kind(0) end def set_kind(kind) @kind = kind refresh end #-------------------------------------------------------------------------- # リフレッシュ #-------------------------------------------------------------------------- def refresh case @kind when 0 set1 = $data_items set2 = $game_party.playtotal_items when 1 set1 = $data_weapons set2 = $game_party.playtotal_weapons when 2 set1 = $data_armors set2 = $game_party.playtotal_armors end @items = [] for item in set1 if set2.include?(item.id) @items.push(item) else @items.push(nil) end end @items.shift @item_max = @items.size create_contents self.contents.clear for i in 0...@items.size item = @items[i] x = 4 y = (i) * WLH self.contents.draw_text(x, y, 40, WLH, sprintf("%3d:", (i+1))) if item == nil self.contents.draw_text(x + 40 + 24, y, 172, WLH, "---") else draw_item_name(item, x + 40, y, true) end end end #-------------------------------------------------------------------------- # フレーム更新 #-------------------------------------------------------------------------- def update super end #-------------------------------------------------------------------------- # ヘルプテキスト更新 #-------------------------------------------------------------------------- def item return @items[self.index] end def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #============================================================================== # シーン・オプションへの登録 #============================================================================== module XRXSV10OPDex def start super @dex_window = Window_OptionDex.new @dex_window.active = false @dex_window.opacity = 0 @dex_window.contents_opacity = 0 @dex_window.visible = false @help_window = Window_Help.new @help_window.visible = false @dex_window.help_window = @help_window end def terminate super @dex_window.dispose @help_window.dispose end def update_extra if @dex_window.active @dex_window.update @dex_window.opacity += 32 @dex_window.contents_opacity += 32 if Input.trigger?(Input::B) Sound.play_cancel @dex_window.active = false @dex_window.opacity = 0 @dex_window.contents_opacity = 0 @dex_window.index = -1 @dex_window.visible = false @help_window.visible = false @command_window.cancel! end return true end return super end def update_extra_command_decide(work_id) if [2,3,4].include?(work_id) @dex_window.active = true @dex_window.index = 0 @dex_window.set_kind(work_id - 2) @dex_window.visible = true @help_window.visible = true return end super end end class Scene_Option < Scene_Base include XRXSV10OPDex end #============================================================================== # 総獲得アイテム群をオブジェクトで取得 #============================================================================== class Game_Party < Game_Unit def playtotal_objects set = [] for item_id in self.playtotal_items set.push($data_items[item_id]) end for weapon_id in self.playtotal_weapons set.push($data_weapons[weapon_id]) end for armor_id in self.playtotal_armors set.push($data_armors[armor_id]) end return set end end