#============================================================================== # 未装備時ステート付与 ver1.10 #------------------------------------------------------------------------------ #[特徴] # アイテムを装備していないとき、ステートを付与する。 # 装備箇所によって指定できます。 # #[使用上の注意] # アイテム装備時に該当のステートを解除するため、 # 付与するステートは未装備時専用で設定してください。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.10 アクターID毎に設定可能に # ステートを2つ以上付与することが可能に # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module NO_EQUIP_STATE # ◆ 付与するステートの設定 ◆ # [武器未装備時, 盾未装備時, 頭未装備時, 身体未装備時, 装飾品未装備時] # 未装備でも付与しない場合は nil # 複数ステートを付与したい場合は [ID, ID, ID] のようにしてください。 # # アクターID => [付与するステートの設定], # 0 => [], は、設定しなかったアクターに適用されます。 ADD_STATE = { 0 => [9, 10, 11, 12, nil], 1 => [[9, 10, 11, 12], 10, 11, 12, nil], 2 => [9, nil, 11, 12, nil], } end end #============================================================================== # ここまで #============================================================================== #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● セットアップ #-------------------------------------------------------------------------- alias kazari_no_equips_setup setup def setup(actor_id) kazari_no_equips_setup(actor_id) equips.each_with_index { |item, index| k_no_equip_add_state(index, (item != nil)) } end #-------------------------------------------------------------------------- # ● 装備の変更 (オブジェクトで指定) #-------------------------------------------------------------------------- alias kazari_no_equips_change_equip change_equip def change_equip(equip_type, item, test = false) kazari_no_equips_change_equip(equip_type, item, test) k_no_equip_add_state(equip_type, (item != nil)) unless test end #-------------------------------------------------------------------------- # ● 装備の破棄 #-------------------------------------------------------------------------- alias kazari_no_equips_discard_equip discard_equip def discard_equip(item) kazari_no_equips_discard_equip(item) for i in 0...armors.size do k_no_equip_add_state(i, false) end end #-------------------------------------------------------------------------- # ● 未装備時、ステートを付与する # equip_type : 装備箇所 # equiped : 装備の有無判定 #-------------------------------------------------------------------------- def k_no_equip_add_state(equip_type, equiped) actor_id = Kazari::NO_EQUIP_STATE::ADD_STATE[@actor_id] ? @actor_id : 0 state_id = Kazari::NO_EQUIP_STATE::ADD_STATE[actor_id][equip_type] return unless state_id unless equiped if state_id.is_a?(Array) for id in state_id do add_state(id) end else add_state(state_id) end else if state_id.is_a?(Array) for id in state_id do remove_state(id) end else remove_state(state_id) end end end end