#============================================================================== # ■ RGSS3 薬の知識反映スキル Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 通常、特徴:薬の知識はアイテムの使用効果にしか影響を及ぼさず # スキルの使用効果には影響がありませんが # このスクリプトを使用する事で # 指定したスキルの使用効果に対し、薬の知識が影響を及ぼすように出来ます。 # # 内部処理的には、指定したスキルのHP回復・MP回復の使用効果の時に限り # 回復効果量の特徴の部分にて薬の知識の計算も行う形式です。 # この為、回復効果量の処理を大きく変更していたり # 他に転用していたりする場合には不都合が生じる場合がありますので # 使用される場合はご注意ください。 #============================================================================== # スキルのメモ欄に記述。 #------------------------------------------------------------------------------ # <薬の知識反映> # # このスキルは薬の知識によって # 使用効果:HP回復と使用効果:MP回復が増幅されます。 #============================================================================== module PhaInfluenceSkill #スキルに設定する薬の知識反映の設定用キーワードを指定。 Word = "薬の知識反映" #無効化についての処理形式を決定します。 #通常、回復効果量は「rec」から引っ張ってきますが #素材によっては更に上位の「sparam」から #直接引っ張ってくる場合もあるかもしれません。 #その為、負荷を最小限にする代わりに競合回避度の低い形式と #ごく僅かに負荷が増えるかもしれない代わりに競合回避度の高い形式の #2種類を選択出来ます。 #Type = trueで負荷最小&競合回避度弱、 #Type = falseで負荷微増&競合回避度強となります。 Type = true end class Game_BattlerBase if PhaInfluenceSkill::Type #-------------------------------------------------------------------------- # 回復効果量 #-------------------------------------------------------------------------- alias rec_pha_influence_skill rec def rec rec_pha_influence_skill * (@pha_influence_skill_is ? @pha_influence_skill_is : 1.0) end else #-------------------------------------------------------------------------- # 特殊能力値の取得 #-------------------------------------------------------------------------- alias sparam_pha_influence_skill sparam def sparam(sparam_id) sparam_pha_influence_skill(sparam_id) * ((sparam_id == 2 && @pha_influence_skill_is) ? @pha_influence_skill_is : 1.0) end end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # 使用効果[HP 回復] #-------------------------------------------------------------------------- alias item_effect_recover_hp_pha_influence_skill item_effect_recover_hp def item_effect_recover_hp(user, item, effect) @pha_influence_skill_is = user.pha if item.pha_influence_skill_is item_effect_recover_hp_pha_influence_skill(user, item, effect) @pha_influence_skill_is = nil end #-------------------------------------------------------------------------- # 使用効果[MP 回復] #-------------------------------------------------------------------------- alias item_effect_recover_mp_pha_influence_skill item_effect_recover_mp def item_effect_recover_mp(user, item, effect) @pha_influence_skill_is = user.pha if item.pha_influence_skill_is item_effect_recover_mp_pha_influence_skill(user, item, effect) @pha_influence_skill_is = nil end end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # 薬の知識無効フラグ #-------------------------------------------------------------------------- def pha_influence_skill_is false end end class RPG::Skill < RPG::UsableItem #-------------------------------------------------------------------------- # 薬の知識無効フラグ #-------------------------------------------------------------------------- def pha_influence_skill_is (@pha_influence_skill_is ||= /<#{PhaInfluenceSkill::Word}>/ =~ note ? 1 : 0) == 1 end end