#============================================================================== # ■ RGSS2 被弾時MP増減ステートVer1.00 by 星潟 #------------------------------------------------------------------------------ # HPダメージを1以上受けた際にMPを増減させるステートを作成します。 # 固定値での増減、最大MPに対しての割合での増減、現在MPに対しての割合での増減、 # ダメージに対しての割合での増減の4種類から選択する事ができます。 # ステートメモ欄に以下のように書き込む事で効果を得られます。 # 数字は適宜変更してご利用ください。 # # 例1 # <被弾時MP固定増減:50> # MPが50回復します。 # # 例2 # <被弾時MP固定増減:-30> # MPが30減少します。 # # 例3 # <被弾時最大MP割合増減:40> # MPが最大MPの40%分回復します。 # # 例4 # <被弾時最大MP割合増減:-20> # MPが最大MPの20%分減少します。 # # 例5 # <被弾時現在MP割合増減:70> # MPが現在MPの70%分回復します。 # # 例6 # <被弾時現在MP割合増減:-80> # MPが現在MPの80%分減少します。 # # 例7 # <被ダメージMP割合増減:10> # MPが被ダメージの10%分回復します。 # # 例8 # <被ダメージMP割合増減:-60> # MPが被ダメージの60%分減少します。 # #============================================================================== module DAM_MAG_P #設定用ワードを設定します。 #被弾時MP固定増減 WORD1 = "被弾時MP固定増減" #被弾時最大MP割合増減 WORD2 = "被弾時最大MP割合増減" #被弾時現在MP割合増減 WORD3 = "被弾時現在MP割合増減" #被ダメージMP割合増減 WORD4 = "被ダメージMP割合増減" end class Game_Battler #-------------------------------------------------------------------------- # ● ダメージの反映処理内に被弾時MP増減ステート処理を追加 #-------------------------------------------------------------------------- alias execute_damage_mpd execute_damage def execute_damage(user) if @hp_damage > 0 dam_mag_plus end execute_damage_mpd(user) end #-------------------------------------------------------------------------- # ● 被弾時MP増減ステート処理 #-------------------------------------------------------------------------- def dam_mag_plus for i in @states #被弾時MP固定増減処理 memo = $data_states[i].note.scan(/<#{DAM_MAG_P::WORD1}:(\S+)>/) memo = memo.flatten if memo != nil and not memo.empty? @mp_damage -= memo[0].to_i end #被弾時MP割合増減処理 memo = $data_states[i].note.scan(/<#{DAM_MAG_P::WORD2}:(\S+)>/) memo = memo.flatten if memo != nil and not memo.empty? data = self.maxmp data *= memo[0].to_i data /= 100 @mp_damage -= data end #被弾時MP割合増減処理 memo = $data_states[i].note.scan(/<#{DAM_MAG_P::WORD3}:(\S+)>/) memo = memo.flatten if memo != nil and not memo.empty? data = self.mp data *= memo[0].to_i data /= 100 @mp_damage -= data end #被ダメージMP割合増減処理 memo = $data_states[i].note.scan(/<#{DAM_MAG_P::WORD4}:(\S+)>/) memo = memo.flatten if memo != nil and not memo.empty? data = @hp_damage data *= memo[0].to_i data /= 100 @mp_damage -= data end end end end