127 lines
5.5 KiB
Ruby
127 lines
5.5 KiB
Ruby
#==============================================================================
|
||
# 「アイテム封印」(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
|