#============================================================================== # ■ RGSS3 アイテム破棄 Ver1.01 by 星潟 #------------------------------------------------------------------------------ # アイテム欄から、特定の動作を行う事で # 指定したアイテムを破棄する事が出来るようになります。 #------------------------------------------------------------------------------ # aliasを使用している為、なるべく、素材欄の一番下の方に挿入して下さい。 #============================================================================== module ITEM_TRUSH #アイテムを破棄した際のSEを設定します。 #SE名 SE_1 = "Book1" #ボリューム SE_2 = 100 #ピッチ SE_3 = 150 #どのキーと決定キーを同時押しする事で #アイテム破棄を行うかを設定します。 #初期設定では、SHIFT+CTRL+決定キーの同時押しでアイテム破棄を行えます。 #フラグ設定1 FLAG_1 = :SHIFT #フラグ設定2 FLAG_2 = :CTRL #破棄を禁止するアイテムについて #メモ欄に記入する設定用ワードを設定します。 TR_S_M = "<破棄禁止>" #売値0のアイテムを全て破棄可能にするかどうかを設定します。 #trueで破棄可能、falseで破棄不可となります。 #ただし、trueの場合でもメモ欄に設定用ワードを書き込む事で #個別に破棄禁止に設定されたアイテムは破棄できません。 ZERO_P_T = true end class Window_ItemList < Window_Selectable #-------------------------------------------------------------------------- # ● 決定ボタンが押されたときの処理 #-------------------------------------------------------------------------- alias process_ok_trush process_ok unless $! def process_ok if trush_flag call_trush_handler else process_ok_trush end end #-------------------------------------------------------------------------- # ● 破棄操作フラグ判定 #-------------------------------------------------------------------------- def trush_flag #フラグ1確認 if ITEM_TRUSH::FLAG_1 != nil return false unless Input.press?(ITEM_TRUSH::FLAG_1) end #フラグ2確認 if ITEM_TRUSH::FLAG_2 != nil return false unless Input.press?(ITEM_TRUSH::FLAG_2) end return true end #-------------------------------------------------------------------------- # ● 破棄ハンドラの呼び出し #-------------------------------------------------------------------------- def call_trush_handler call_handler(:trush) end end class Scene_Item < Scene_ItemBase #-------------------------------------------------------------------------- # ● アイテムウィンドウの作成 #-------------------------------------------------------------------------- alias create_item_window_trush create_item_window def create_item_window create_item_window_trush @item_window.set_handler(:trush, method(:on_item_trush)) @category_window.item_window = @item_window end #-------------------------------------------------------------------------- # ● アイテム[破棄] #-------------------------------------------------------------------------- def on_item_trush if item == nil or price_judge or item.note.include?(ITEM_TRUSH::TR_S_M) Sound.play_buzzer else RPG::SE.new(ITEM_TRUSH::SE_1,ITEM_TRUSH::SE_2,ITEM_TRUSH::SE_3).play $game_party.gain_item(item, -1) end activate_item_window end def price_judge if ITEM_TRUSH::ZERO_P_T == false return true if item.price == 0 end return false end end