#==============================================================================
# 「アイテム封印」(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