# XRXS_MP 2. ۡ ver.2 # by ޾ #============================================================================== # Ŀ͸ Ʈ #============================================================================== module XRXS_MP2_Fixed_Variable # Ī KIND_NAMES = ["", "", ""] # (迭 ġŰ ) KIND_KINDS = [0, 1, 2] end # [0, 1, [20, 21]] 迭 !! # # KIND_KINDS ġ ϶ # 20Ĵ ̳ʽ ǥ⿡ . # [0, -36] κ 0 # #nil : ǰ ǥմϴ.RGSS ⺻ Ͱ . # 0 : ۡ # 1 : ⡹ # 2 :  # 20 :  С # 21 :  Ӹ  # 22 :  ü  # 23 :  ǰ # 31 : ȿ # 32 : ɽãƲ # 33 : ɽã޴ # 34 : ɽã Ұ # 35 : ڸ ̺Ʈ Ǿ ִ ͡ # 36 : 0 # 37 : ĶͰ ǰ ִ ͡ # 38 : ȸ ( HP/SP ȸ 1 Ǿ ִ , Ǵ Ʈ ȭ ̳ʽ ϴ ͡) # 39 : Ӽ ϳ Ǿ ִ . # # Ư ȿ DamageEX ϰ ִ , ȿϰ ˴ϴ. # 11 : ⡹ () ô % ̷ ִ # # #============================================================================== # Window_Item #============================================================================== class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # Ŭ #-------------------------------------------------------------------------- include XRXS_MP2_Fixed_Variable #-------------------------------------------------------------------------- # Ʈ ʱȭ #-------------------------------------------------------------------------- alias xrxs_mp2_initialize initialize def initialize # ȯŲ xrxs_mp2_initialize # ƴ if not $scene.is_a?(Scene_Battle) self.y += 64 self.height -= 64 end # ʱġ @itemkind = KIND_KINDS[0] # refresh end #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- alias xrxs_mp2_refresh refresh def refresh # nil if @itemkind == nil xrxs_mp2_refresh return end # if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # @item_max = data_sdgs(@itemkind) # ׸ 0 ƴϸ Ʈ ۼ, ׸ ȭ if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # Ŀ ε #-------------------------------------------------------------------------- def set_itemkind_index(itemkind_index) @itemkind = KIND_KINDS[itemkind_index] refresh end #-------------------------------------------------------------------------- # ۵ SET DATA & GET SIZE #-------------------------------------------------------------------------- def data_sdgs(itemkind) # @data @data = [] # ڷ if itemkind.is_a?(Numeric) get_data(itemkind, false) # 迭 elsif itemkind.is_a?(Array) for i in 0...itemkind.size get_data(itemkind[i], false) end end # ش return @data.size end #-------------------------------------------------------------------------- # ۵ #-------------------------------------------------------------------------- def get_data(itemkind, refresh = false) case itemkind when 0 # # ߰ set_own_item_data when 1 # ⸦ ߰ set_own_weapon_data when 2 #  ߰ set_own_armor_data when 11 # ô ⸦ ߰ set_own_throw_weapons_data when 20 #  и ߰ set_own_armor_shield_data when 21 #   ߰ set_own_armor_helm_data when 22 #  ü  ߰ set_own_armor_mail_data when 23 #  ǰ ߰ set_own_armor_accessory_data when 31 # : ȿ : set_own_item_noscope_data when 32 # 밡ɽ : Ʋ set_own_item_battleonly_data when 33 # 밡ɽ ޴ ߰ set_own_item_menuonly_data when 34 # 밡ɽ Ұ ߰ set_own_item_unusable_data when 35 # ۣڸ ̺Ʈ Ǿ ִ ͡ ߰ set_own_item_commonevent_data when 36 # ۣ 0 ߰ set_own_item_zeroprice_data when 37 # ۣĶͰ Ǿ ִ ͡ ߰ set_own_item_parameterup_data when 38 # ȸ set_own_item_recovers_data when 39 # ۣӼ ϳ Ǿ ִ ͡ ߰ set_own_item_elements_data when -20 # и last_data = @data.dup @data.clear set_own_armor_shield_data @data = last_data - @data when -21 # ü  last_data = @data.dup @data.clear set_own_armor_helm_data @data = last_data - @data when -22 # ü  last_data = @data.dup @data.clear set_own_armor_mail_data @data = last_data - @data when -23 # ǰ last_data = @data.dup @data.clear set_own_armor_accessory_data @data = last_data - @data when -31 # ۣȿ last_data = @data.dup @data.clear set_own_item_noscope_data @data = last_data - @data when -32 # ۣ ɽãƲ last_data = @data.dup @data.clear set_own_item_battleonly_data @data = last_data - @data when -33 # Aۣ ɽã޴ last_data = @data.dup @data.clear set_own_item_menuonly_data @data = last_data - @data when -34 # ۣ ɽã Ұ last_data = @data.dup @data.clear set_own_item_unusable_data @data = last_data - @data when -35 # Aۣڸ ̺Ʈ Ǿ ִ ͡ last_data = @data.dup @data.clear set_own_item_commonevent_data @data = last_data - @data when -36 # ۣ 0 last_data = @data.dup @data.clear set_own_item_zeroprice_data @data = last_data - @data when -37 # ۣĶͰ Ǿ ִ ͡ last_data = @data.dup @data.clear set_own_item_parameterup_data @data = last_data - @data when -38 # ȸ last_data = @data.dup @data.clear set_own_item_recovers_data @data = last_data - @data when -39 # ۣӼ ϳ Ǿ ִ ͡ last_data = @data.dup @data.clear set_own_item_elements_data @data = last_data - @data else if refresh # ȯŲ xrxs_mp2_refresh else @data = [] end end return end #-------------------------------------------------------------------------- # 1 ̻ @data ش #-------------------------------------------------------------------------- def set_own_item_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end end #-------------------------------------------------------------------------- # 1 ̻ ⸦ @data ش #-------------------------------------------------------------------------- def set_own_weapon_data for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end end #-------------------------------------------------------------------------- # 1 ̻  @data ش #-------------------------------------------------------------------------- def set_own_armor_data for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end #-------------------------------------------------------------------------- # ϰ ִ и @data ش #-------------------------------------------------------------------------- def set_own_armor_shield_data for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 if $data_armors[i].kind == 0 and !@data.include?($data_armors[i]) @data.push($data_armors[i]) end end end end #-------------------------------------------------------------------------- # LĂhFh @data ɕԂ #-------------------------------------------------------------------------- def set_own_armor_helm_data for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 if $data_armors[i].kind == 1 and !@data.include?($data_armors[i]) @data.push($data_armors[i]) end end end end #-------------------------------------------------------------------------- # LĂhFg̖h @data ɕԂ #-------------------------------------------------------------------------- def set_own_armor_mail_data for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 if $data_armors[i].kind == 2 and !@data.include?($data_armors[i]) @data.push($data_armors[i]) end end end end #-------------------------------------------------------------------------- # LĂhFi @data ɕԂ #-------------------------------------------------------------------------- def set_own_armor_accessory_data for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 if $data_armors[i].kind == 3 and !@data.include?($data_armors[i]) @data.push($data_armors[i]) end end end end #-------------------------------------------------------------------------- # LĂuʔ͈́FȂṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_noscope_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].scope == 0 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂugp?Foĝ݁ṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_battleonly_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].occasion == 1 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂugp?Fj?̂݁ṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_menuonly_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].occasion == 2 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂugp?FgpsṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_unusable_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].occasion == 3 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂuRCxgݒ肳ĂṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_commonevent_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].common_event_id > 0 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂuli0ṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_zeroprice_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].price == 0 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂup??ݒ肳ĂṽACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_parameterup_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].parameter_type > 0 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂ񕜃ACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_recovers_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if ($data_items[i].recover_hp_rate > 0 or $data_items[i].recover_hp > 0 or $data_items[i].recover_sp_rate > 0 or $data_items[i].recover_sp > 0 or $data_items[i].minus_state_set.size > 0) and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end #-------------------------------------------------------------------------- # LĂuЂƂ‚łvACe? @data ɕԂ #-------------------------------------------------------------------------- def set_own_item_elements_data for i in 1...$data_items.size if $game_party.item_number(i) > 0 if $data_items[i].element_set.size > 0 and !@data.include?($data_items[i]) @data.push($data_items[i]) end end end end end #============================================================================== # Window_Itemkind #============================================================================== class Window_Itemkind < Window_Selectable #-------------------------------------------------------------------------- # CN?h #-------------------------------------------------------------------------- include XRXS_MP2_Fixed_Variable #-------------------------------------------------------------------------- # IuWFNg #-------------------------------------------------------------------------- def initialize super(0, 64, 640, 64) self.contents = Bitmap.new(width - 32, height - 32) @commands = KIND_NAMES @item_max = KIND_NAMES.size @column_max = KIND_NAMES.size @disabled = [] for i in 0...@item_max @disabled[i] = false end self.active = true self.index = 0 refresh end #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- def disable(index) @disabled[index] = true refresh end #-------------------------------------------------------------------------- # Ă邩H #-------------------------------------------------------------------------- def disabled?(index) return @disabled[index] end #-------------------------------------------------------------------------- # tbV #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...KIND_NAMES.size draw_item(i, (@disabled[i] ? disabled_color : normal_color)) end end #-------------------------------------------------------------------------- # ?ڂ? # index : ?ڔԍ # color : F #-------------------------------------------------------------------------- def draw_item(index, color) self.contents.font.color = color x = 304 + (index - KIND_NAMES.size/2.0) * 600/KIND_NAMES.size rect = Rect.new(x, 0, 600/KIND_NAMES.size, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) self.contents.draw_text(rect, @commands[index], 1) end #-------------------------------------------------------------------------- # J??̋?XV #-------------------------------------------------------------------------- def update_cursor_rect if index != -1 return unless self.active x = 304 + (index - KIND_NAMES.size/2.0) * 600/KIND_NAMES.size self.cursor_rect.set(x, 0, 600/KIND_NAMES.size, 32) update_help end end #-------------------------------------------------------------------------- # wveLXgXV #-------------------------------------------------------------------------- def update_help return if @help_window.nil? @help_window.set_text(KIND_NAMES[self.index] + "̈ꗗ?܂B") end end #============================================================================== # Scene_Item #============================================================================== class Scene_Item #-------------------------------------------------------------------------- # CN?h #-------------------------------------------------------------------------- include XRXS_MP2_Fixed_Variable #-------------------------------------------------------------------------- # C #-------------------------------------------------------------------------- def main # wvEBhEAACe?EBhE쐬 @help_window = Window_Help.new @item_window = Window_Item.new # ރEBhE쐬 @kind_window = Window_Itemkind.new # wvEBhE֘At @item_window.help_window = @help_window @kind_window.help_window = @help_window # ?FbNu 0 ͖̂̂v for i in 0...KIND_NAMES.size @kind_window.disable(i) if @item_window.data_sdgs(KIND_KINDS[i]) == 0 end # ??QbgEBhE쐬 (sŽEANeBuɐݒ) @target_window = Window_Target.new @target_window.visible = false @target_window.active = false @kind_window.active = true @item_window.active = false @item_window.index = -1 # @now_itemkind = nil # gWVs Graphics.transition # C?v loop do # Q??ʂXV Graphics.update # ͏XV Input.update # t??XV update # ʂ؂ւ烋?v𒆒f if $scene != self break end end # gWV? Graphics.freeze # EBhE @help_window.dispose @item_window.dispose @target_window.dispose # EBhE @kind_window.dispose end #-------------------------------------------------------------------------- # t??XV #-------------------------------------------------------------------------- alias xrxs_mp2_update update def update xrxs_mp2_update # J??ʒuύXꂽꍇ if @now_itemkind != @kind_window.index # J??ʒuɂ?ACe?̎ނ𕪂 @item_window.set_itemkind_index(@kind_window.index) @now_itemkind = @kind_window.index end # EBhEXV @kind_window.update # ރEBhEANeBȕꍇ: update_kind Ă if @kind_window.active update_kind return end end #-------------------------------------------------------------------------- # t??XV (ACe?EBhEANeBȕꍇ) #-------------------------------------------------------------------------- alias xrxs_mp2_update_item update_item def update_item # B ??ꂽꍇ if Input.trigger?(Input::B) # LZ SE t $game_system.se_play($data_system.cancel_se) # ރEBhEANeBu @kind_window.active = true @item_window.active = false @item_window.index = -1 Input.update return end xrxs_mp2_update_item end #-------------------------------------------------------------------------- # t??XV (ރEBhEANeBȕꍇ) #-------------------------------------------------------------------------- def update_kind # B ??ꂽꍇ if Input.trigger?(Input::B) # LZ SE t $game_system.se_play($data_system.cancel_se) # j?ʂɐ؂ւ $scene = Scene_Menu.new(0) return end # C ??ꂽꍇ if Input.trigger?(Input::C) # Ăꍇ if @kind_window.disabled?(@kind_window.index) # uU? SE t $game_system.se_play($data_system.buzzer_se) return end # SE t $game_system.se_play($data_system.decision_se) # ACe?EBhEANeBu @item_window.active = true @item_window.index = 0 @kind_window.active = false return end end end