#============================================================================== # □ アイテムソート定義 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20111215 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["アイテムソート定義"] = true if $rgsslab["アイテムソート定義"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Item_Sort #-------------------------------------------------------------------------- # ○ モードの初期値 # ソートを行うモードの初期設定を行います。 # # 0 : デフォルト # データベースのIDに沿った # 並べ方になります。 # (つまり、何も変更されません) # # モード指定外の場合も、これが適用されます。 # ---------------------------------------------------------------------- # 1 : ユーザーソート # IDS_ITEM・IDS_WEAPON・IDS_ARMORの設定に沿った # 並べ方になります。 # ---------------------------------------------------------------------- # 2 : あいうえお順 # あいうえお順にソートされますが # 漢字に関しては保障できません。 #-------------------------------------------------------------------------- MODE = 1 #-------------------------------------------------------------------------- # ○ ユーザーソートのカスタマイズ【MODE 1】 # 記述方法: # ・IDS_ITEM(アイテム) # アイテムID => ソート番号, # # ・IDS_WEAPON(武器) # 武器ID => ソート番号, # # ・IDS_ARMOR(防具) # 防具ID => ソート番号, # (最後の設定のみ、後ろのカンマを省略する事ができます) # # ソート番号と言うのは、その値の順に並べる時に # 扱われる整理番号で、ゲームの情報には # 一切触れる事のない情報です。 # # IDS_ITEM、IDS_WEAPON、IDS_ARMORのソート番号は # 共用されて扱われますが、カテゴリ別に表示されている為 # アイテム・武器・防具で同じソート番号を使っていても問題はありません。 # # しかし、同じカテゴリ内でソート番号が被ってしまうと # 後に書かれたソート番号を優先とされてしまい # 先に書かれたソート番号のアイテムが描画されなくなりますので # 同じカテゴリ内でのソート番号は絶対に被らせないで下さい。 # # ここのリストに記述していないアイテム群については # ソートされた後ろに、アイテム・武器・防具の順に # IDの順序で追加される形となります。 # # そうしたくない場合は、全てのアイテム群にソート番号を # 設定して下さい。 #-------------------------------------------------------------------------- # アイテム IDS_ITEM = { 1 => 1, } # 武器 IDS_WEAPON = { 1 => 1, } # 防具 IDS_ARMOR = { 1 => 1, } end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Item_Sort [module] #============================================================================== module RGSSLAB::Item_Sort #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "アイテムソート定義" VERSION = 1 RELEASE = 20111215 end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab054 #-------------------------------------------------------------------------- # ● オブジェクト初期化(エイリアス) #-------------------------------------------------------------------------- alias item_sort_initialize initialize def initialize item_sort_initialize @rgsslab054 = RgssLab_054.new end end #============================================================================== # □ RgssLab_054 [class] #============================================================================== class RgssLab_054 #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_054 = RGSSLAB::Item_Sort #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :item_sort #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @item_sort = RGSSLAB_054::MODE end end #============================================================================== # ■ Window_ItemList [class] #============================================================================== class Window_ItemList < Window_Selectable #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_054 = RGSSLAB::Item_Sort #-------------------------------------------------------------------------- # ● アイテムリストの作成 [再定義] #-------------------------------------------------------------------------- def make_item_list @data = $game_party.all_items.select {|item| include?(item) } @data.push(nil) if include?(nil) sorting_process end #-------------------------------------------------------------------------- # ○ ソート開始 #-------------------------------------------------------------------------- def sorting_process case $game_system.rgsslab054.item_sort when 1 ; sorting_process_user_sort when 2 ; sorting_process_aiueo_sort end end #-------------------------------------------------------------------------- # ○ ソート開始:ユーザーソート #-------------------------------------------------------------------------- def sorting_process_user_sort item_space = [] default = [] for i in @data case i when RPG::Item unless RGSSLAB_054::IDS_ITEM[i.id] == nil item_space[RGSSLAB_054::IDS_ITEM[i.id]] = i else default.push(i) end when RPG::Weapon unless RGSSLAB_054::IDS_WEAPON[i.id] == nil item_space[RGSSLAB_054::IDS_WEAPON[i.id]] = i else default.push(i) end when RPG::Armor unless RGSSLAB_054::IDS_ARMOR[i.id] == nil item_space[RGSSLAB_054::IDS_ARMOR[i.id]] = i else default.push(i) end end end item_space.compact! @data = item_space + default end #-------------------------------------------------------------------------- # ○ ソート開始:あいうえお #-------------------------------------------------------------------------- def sorting_process_aiueo_sort @data.sort! {|a, b| a.name <=> b.name } end end end