sacred-ritual-academy/Scripts/_.46.rb
2025-03-18 19:45:34 -05:00

127 lines
5.5 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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