########################## 属性有効度の数値を変更 ########################## # # # 属性有効度「A, B, C, D, E, F」それぞれについて、 # # その属性をついた時のダメージ倍率を設定できます。 # # # # また、属性防御の際のダメージ倍率も変更可能になりました。 # # # # ついでなんで、弱点属性を追加することができるようになりました。 # # # # 例えば炎属性が弱点の防具を作りたい場合、 # # 「弱点属性:炎」という名前の属性を作成。 # # 防具の属性防御の所で「弱点属性:炎」にチェックを入れてください。 # # # # この「弱点属性:」の部分は設定で変更可能です。 # ############################################################################ # ここから設定 module Annex # 一番左から属性有効度 A, B, C, D, E, F (%) # デフォルト通りならば[200,150,100,50,0,-100]です Element_Rate = [150,120,100,80,0,-50] # この属性が防御されている場合のダメージ倍率(%) # デフォルトは50 Element_Guard = 50 # この名前の後に追加された属性名が弱点になる WEAKEN_ELEMENT_CODE = "弱点属性:" # 弱点属性の場合以下のダメージ倍率になる(%) Element_Weaken = 200 end # ここまで設定 #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ◎追加:「指定したキーワード+属性ID」の形式の属性のIDを取得 # key : キーワード # id : 属性ID #-------------------------------------------------------------------------- def get_key_with_element_id(key, id) # 属性名取得 name = key + $data_system.elements[id] # それを名前としたIDを取得 target_id = $data_system.elements.index(name) if target_id != nil return target_id end return 0 end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 属性補正値の取得 (再定義) # element_id : 属性 ID #-------------------------------------------------------------------------- def element_rate(element_id) # 全文変更しています。 # 属性有効度に対応する数値を取得 table = Annex::Element_Rate.dup table.unshift(0) # 基本の修正取得 result = table[$data_classes[@class_id].element_ranks[element_id]] # この属性を弱点とする属性IDを確認 weaken_id = get_key_with_element_id(Annex::WEAKEN_ELEMENT_CODE, element_id) # 防具での属性修正 for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] # 属性防御確認 if armor != nil and armor.guard_element_set.include?(element_id) result = result * Annex::Element_Guard / 100 # 弱点確認 elsif armor != nil and armor.guard_element_set.include?(weaken_id) result = result * Annex::Element_Weaken / 100 end end # ステートでの属性修正 for i in @states # 属性防御確認 if $data_states[i].guard_element_set.include?(element_id) result = result * Annex::Element_Guard / 100 # 弱点確認 elsif $data_states[i].guard_element_set.include?(weaken_id) result = result * Annex::Element_Weaken / 100 end end # メソッド終了 return result end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 属性補正値の取得 (再定義) # element_id : 属性 ID #-------------------------------------------------------------------------- def element_rate(element_id) # 全文変更しています。 # 属性有効度に対応する数値を取得 table = Annex::Element_Rate.dup table.unshift(0) # 基本の修正取得 result = table[$data_enemies[@enemy_id].element_ranks[element_id]] # ステートでの属性修正 for i in @states # 属性防御確認 if $data_states[i].guard_element_set.include?(element_id) result = result * Annex::Element_Guard / 100 # 弱点確認 elsif $data_states[i].guard_element_set.include?(weaken_id) result = result * Annex::Element_Weaken / 100 end end # メソッド終了 return result end end