#============================================================================== # ■ 敵の能力変更 Ver0.7                        By むー #------------------------------------------------------------------------------ #  敵の強さに「味方の強さ」の値を加算します。加算できるパラメータは、 # 最大HP、最大MP、攻撃力、防御力、魔法力、魔法防御、敏捷性、運です。 #============================================================================== module MOO_COPYPARAMETER # 下記のキーワードを<>で囲って敵のメモ欄に記述します。 COPY_AID = "味方複製" PLUS_MHP = "増減MHP" # 最大HP PLUS_MMP = "増減MMP" # 最大MP PLUS_ATK = "増減ATK" # 攻撃力 PLUS_DEF = "増減DEF" # 防御力 PLUS_MAT = "増減MAT" # 魔法力 PLUS_MDF = "増減MDF" # 魔法防御 PLUS_AGI = "増減AGI" # 敏捷性 PLUS_LUK = "増減LUK" # 運 # <味方複製:1> などのようにすると、アクターIDが1のパラメータを敵に加算します。 # <増減MHP:-1> などのようにすると、HPの増減値を指定できます。 # # つまり、敵の8つのパラメータを1にして、増減値を全て-1にすると、 # 元々の1+アクターのパラメータ-1(増減値)になるので、味方のコピーができるわけです。 # ちなみにアクターのパラメータは装備品込みのものになります。 # マイナスになった場合は1にします。 # # アクターの指定をしなければ、単純に増減値のみ計算されます。 # # コメントにしているパラメータ(hit〜exr)も、改造できる人なら可能かも知れません。 # # なお、文字だけで数値が書かれていない場合のエラーチェックはしていません。 end class Game_BattlerBase #-------------------------------------------------------------------------- # ● 各種能力値の略称によるアクセスメソッド #-------------------------------------------------------------------------- def mhp; param(0) + plus_val_memo(0, enemy?, @enemy_id); end # 最大HP Maximum Hit Point def mmp; param(1) + plus_val_memo(1, enemy?, @enemy_id); end # 最大MP Maximum Magic Point def atk; param(2) + plus_val_memo(2, enemy?, @enemy_id); end # 攻撃力 ATtacK power def def; param(3) + plus_val_memo(3, enemy?, @enemy_id); end # 防御力 DEFense power def mat; param(4) + plus_val_memo(4, enemy?, @enemy_id); end # 魔法力 Magic ATtack power def mdf; param(5) + plus_val_memo(5, enemy?, @enemy_id); end # 魔法防御 Magic DeFense power def agi; param(6) + plus_val_memo(6, enemy?, @enemy_id); end # 敏捷性 AGIlity def luk; param(7) + plus_val_memo(7, enemy?, @enemy_id); end # 運 LUcK # def hit; xparam(0); end # 命中率 HIT rate # def eva; xparam(1); end # 回避率 EVAsion rate # def cri; xparam(2); end # 会心率 CRItical rate # def cev; xparam(3); end # 会心回避率 Critical EVasion rate # def mev; xparam(4); end # 魔法回避率 Magic EVasion rate # def mrf; xparam(5); end # 魔法反射率 Magic ReFlection rate # def cnt; xparam(6); end # 反撃率 CouNTer attack rate # def hrg; xparam(7); end # HP再生率 Hp ReGeneration rate # def mrg; xparam(8); end # MP再生率 Mp ReGeneration rate # def trg; xparam(9); end # TP再生率 Tp ReGeneration rate # def tgr; sparam(0); end # 狙われ率 TarGet Rate # def grd; sparam(1); end # 防御効果率 GuaRD effect rate # def rec; sparam(2); end # 回復効果率 RECovery effect rate # def pha; sparam(3); end # 薬の知識 PHArmacology # def mcr; sparam(4); end # MP消費率 Mp Cost Rate # def tcr; sparam(5); end # TPチャージ率 Tp Charge Rate # def pdr; sparam(6); end # 物理ダメージ率 Physical Damage Rate # def mdr; sparam(7); end # 魔法ダメージ率 Magical Damage Rate # def fdr; sparam(8); end # 床ダメージ率 Floor Damage Rate # def exr; sparam(9); end # 経験獲得率 EXperience Rate #-------------------------------------------------------------------------- # ■ エネミーのメモを読んで加算値を取得 #-------------------------------------------------------------------------- def plus_val_memo(para_id, en, en_id) plus_val = 0 if en = true and en_id != nil # メモ欄にあるアクターの値を取得 memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::COPY_AID}[::](\S+)>/)) memo = memo.flatten para_val = 0 if memo != nil and not memo.empty? actid= memo[0].to_i case para_id when 0; para_val = $game_actors[actid].mhp when 1; para_val = $game_actors[actid].mmp when 2; para_val = $game_actors[actid].atk when 3; para_val = $game_actors[actid].def when 4; para_val = $game_actors[actid].mat when 5; para_val = $game_actors[actid].mdf when 6; para_val = $game_actors[actid].agi when 7; para_val = $game_actors[actid].luk end else para_val = 0 end # メモ欄の増減値を取得 memo = nil case para_id when 0; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_MHP}[::](\S+)>/)) when 1; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_MMP}[::](\S+)>/)) when 2; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_ATK}[::](\S+)>/)) when 3; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_DEF}[::](\S+)>/)) when 4; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_MAT}[::](\S+)>/)) when 5; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_MDF}[::](\S+)>/)) when 6; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_AGI}[::](\S+)>/)) when 7; memo = $data_enemies[en_id].note.scan((/<#{MOO_COPYPARAMETER::PLUS_LUK}[::](\S+)>/)) end memo = memo.flatten # 加算値の計算 if memo != nil and not memo.empty? plus_val = memo[0].to_i + para_val else plus_val = para_val end # 最終結果が1未満になる場合は結果が1になるような数値にする plus_val = 1 - param(para_id) if param(para_id) + plus_val < 1 end return plus_val end end