#============================================================================== # ○得意属性 Ver1.00 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # アクターごとに得意属性を設定することが出来ます。 #============================================================================== module SNF ACTOR_SPECIALTY = [] SPECIALTY_RATE = 125 # 得意属性の武器またはスキルで攻撃した時、 # 最終的な効果量にSPECIALTY_RATE/100倍する。 ACTOR_SPECIALTY[1] = [1,14] # ラルフは格闘と雷が得意 # ACTOR_SPECIALTY[アクターID] = [得意属性ID] end class Game_Battler #-------------------------------------------------------------------------- # ● 通常攻撃によるダメージ計算 # attacker : 攻撃者 # 結果は @hp_damage に代入する。 #-------------------------------------------------------------------------- alias snf_specialty_make_attack_damage_value make_attack_damage_value def make_attack_damage_value(attacker) snf_specialty_make_attack_damage_value(attacker) if attacker.is_a?(Game_Actor) # アクターですか? actor_specialty = SNF::ACTOR_SPECIALTY[attacker.id] actor_specialty = [] if actor_specialty == nil for i in 0..actor_specialty.size specialty = attacker.element_set.include?(actor_specialty[i]) break if specialty # 得意属性が見つかったらループ脱出 end if specialty # 得意属性修正 @hp_damage *= SNF::SPECIALTY_RATE @hp_damage /= 100 end end end #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算 # user : スキルまたはアイテムの使用者 # obj : スキルまたはアイテム # 結果は @hp_damage または @mp_damage に代入する。 #-------------------------------------------------------------------------- alias snf_specialty_make_obj_damage_value make_obj_damage_value def make_obj_damage_value(user, obj) snf_specialty_make_obj_damage_value(user, obj) if user.is_a?(Game_Actor) # アクターですか? actor_specialty = SNF::ACTOR_SPECIALTY[user.id] actor_specialty = [] if actor_specialty == nil for i in 0..actor_specialty.size specialty = obj.element_set.include?(actor_specialty[i]) break if specialty # 得意属性が見つかったらループ脱出 end if specialty # 得意属性修正 if obj.damage_to_mp @mp_damage *= SNF::SPECIALTY_RATE @mp_damage /= 100 else @hp_damage *= SNF::SPECIALTY_RATE @hp_damage /= 100 end end end end end