#============================================================================== # ■ RGSS3 使用時限定変化付与 Ver1.01 by 星潟 #------------------------------------------------------------------------------ # 指定したアイテム・スキル使用時の使用効果として設定されている # ステート付加/能力強化/能力弱体を # 戦闘中のみ、もしくは戦闘中以外に限定します。 # # これにより、戦闘外で使用した場合はHP回復のみ、 # 戦闘中に使用した場合は更に攻撃強化効果が付与される等といった # バリエーションに富んだ性能を設定できるようになります。 #------------------------------------------------------------------------------ # 設定例 # それぞれ、アイテム・スキルのメモ欄に以下のように記入します。 # # <戦闘中限定付与> # このアイテム・スキルは戦闘中のみ # ステート付加/能力強化/能力弱体が有効になります。 # # <戦闘外限定付与> # このアイテム・スキルは戦闘以外でのみ # ステート付加/能力強化/能力弱体が有効になります。 # # Ver1.01 説明文のミスを修正 #============================================================================== module STATE_OC #戦闘中限定の付与適用の場合 WORD1 = "<戦闘中限定付与>" #戦闘以外限定の付与適用の場合 WORD2 = "<戦闘外限定付与>" end class RPG::UsableItem < RPG::BaseItem def state_occasion #既にキャッシュがある場合はそれを返す return @state_occasion if @state_occasion != nil #メモ欄の情報に応じて付与に関する情報を取得 if self.note.include?(STATE_OC::WORD1) @state_occasion = 1 elsif self.note.include?(STATE_OC::WORD2) @state_occasion = 2 else @state_occasion = 0 end #付与に関する情報を取得を返す return @state_occasion end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● 使用効果有効判定 #-------------------------------------------------------------------------- def item_add_data_state_oc(item) #アイテムの付与に関する情報で場合分け case item.state_occasion when 1 #戦闘中限定の場合、戦闘中以外は不発させる。 return false if !SceneManager.scene_is?(Scene_Battle) when 2 #戦闘以外限定の場合、戦闘以外は不発させる。 return false if SceneManager.scene_is?(Scene_Battle) end return true end #-------------------------------------------------------------------------- # ● 使用効果[ステート付加] #-------------------------------------------------------------------------- alias item_effect_add_state_state_oc item_effect_add_state def item_effect_add_state(user, item, effect) #条件に合っているか判定し、合っていない場合は処理を中断する return if !item_add_data_state_oc(item) #元の処理を実行 item_effect_add_state_state_oc(user, item, effect) end #-------------------------------------------------------------------------- # ● 使用効果[能力強化] #-------------------------------------------------------------------------- alias item_effect_add_buff_state_oc item_effect_add_buff def item_effect_add_buff(user, item, effect) #条件に合っているか判定し、合っていない場合は処理を中断する return if !item_add_data_state_oc(item) #元の処理を実行 item_effect_add_buff_state_oc(user, item, effect) end #-------------------------------------------------------------------------- # ● 使用効果[能力弱体] #-------------------------------------------------------------------------- alias item_effect_add_debuff_state_oc item_effect_add_debuff def item_effect_add_debuff(user, item, effect) #条件に合っているか判定し、合っていない場合は処理を中断する return if !item_add_data_state_oc(item) #元の処理を実行 item_effect_add_debuff_state_oc(user, item, effect) end #-------------------------------------------------------------------------- # ● 使用効果のテスト #-------------------------------------------------------------------------- alias item_effect_test_state_oc item_effect_test def item_effect_test(user, item, effect) #ステート付与/能力強化/能力弱体の場合 #条件に合っているか判定し、合っていない場合はfalseを返す case effect.code when EFFECT_ADD_STATE return false if !item_add_data_state_oc(item) when EFFECT_ADD_BUFF return false if !item_add_data_state_oc(item) when EFFECT_ADD_DEBUFF return false if !item_add_data_state_oc(item) end #元の処理を実行 item_effect_test_state_oc(user, item, effect) end end