#============================================================================== # 「アイテム封印」(ACE) ver1.0 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # アクター毎にアイテムの使用を制限できます。 # 封印は選択不能に、削除は選択肢自体が消えます。 # # 使い方は、データベースのメモ欄に # <アイテム封印> 或いは <アイテム削除> と書きます。 # アクター・クラス・装備品・ステートに設定可能です。 # # また、それとは別にスイッチによって # メニュー画面のアイテムを封印することが可能です。 # 初期設定でスイッチ番号を設定して下さい。 # #============================================================================== #◇初期設定 module Nana #ONの時にメニュー画面のアイテムを封印するスイッチ番号(0だと常に封印しない) SEALED_ITEM_SW = 0 end #============================================================================== # ■ RPG::BaseItem #------------------------------------------------------------------------------ # アクター・装備・ステートなどを総括して扱うデータクラス。 #============================================================================== class RPG::BaseItem #-------------------------------------------------------------------------- # ● アイテム削除 #-------------------------------------------------------------------------- def deleted_item? @note.include?("<アイテム削除>") end #-------------------------------------------------------------------------- # ● アイテム封印 #-------------------------------------------------------------------------- def sealed_item? @note.include?("<アイテム封印>") end end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors) # の内部で使用され、Game_Party クラス($game_party)からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● アイテム削除 #-------------------------------------------------------------------------- def deleted_item? self.actor.deleted_item? || self.class.deleted_item? || self.equips.any? do |equip| next unless equip equip.deleted_item? end || self.states.any? do |state| next unless state state.deleted_item? end end #-------------------------------------------------------------------------- # ● アイテム封印 #-------------------------------------------------------------------------- def sealed_item? self.actor.sealed_item? || self.class.sealed_item? || self.equips.any? do |equip| next unless equip equip.sealed_item? end || self.states.any? do |state| next unless state state.sealed_item? end end end #============================================================================== # ■ Window_ActorCommand #------------------------------------------------------------------------------ # バトル画面で、アクターの行動を選択するウィンドウです。 #============================================================================== class Window_ActorCommand < Window_Command #-------------------------------------------------------------------------- # ● アイテムコマンドをリストに追加 #-------------------------------------------------------------------------- def add_item_command add_command(Vocab::item, :item, !@actor.sealed_item?) unless @actor.deleted_item? end end #============================================================================== # ■ Window_MenuCommand #------------------------------------------------------------------------------ # メニュー画面で表示するコマンドウィンドウです。 #============================================================================== class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # ● 主要コマンドをリストに追加 #-------------------------------------------------------------------------- def add_main_commands add_command(Vocab::item, :item, main_commands_enabled && !$game_switches[Nana::SEALED_ITEM_SW]) add_command(Vocab::skill, :skill, main_commands_enabled) add_command(Vocab::equip, :equip, main_commands_enabled) add_command(Vocab::status, :status, main_commands_enabled) end end