# ▼▲▼ No38. 属性修正・計算数制限 ▼▲▼ # # update 2005/ 2/10 # #============================================================================== # □ カスタマイズポイント #============================================================================== module NO38 # # 属性の制限数 # ELEMENTS_NUMBER_LIMIT = 16 # # 属性修正の計算方法 (0 : 最大(従来), 1 : 乗算, 2 : 平均, 3 : 最小) # ELEMENT_CORRECT_METHOD = 0 end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 属性修正の計算 + 倍率計算式 #-------------------------------------------------------------------------- alias xrxs38_elements_correct elements_correct def elements_correct(element_set) # まず複製する elements = element_set.dup # 属性数の制限をする for element_id in element_set if element_id >NO38::ELEMENTS_NUMBER_LIMIT elements.delete(element_id) end end # 無属性の場合 100 を返す return 100 if elements.size == 0 # case NO38::ELEMENT_CORRECT_METHOD when 0 # 最大 return xrxs38_elements_correct(elements) when 1 # 乗算 result = 100.0 minus_enable = false for i in elements n = self.element_rate(i) minus_enable |= (n < 0) result *= n / 100.0 end result = -1 * result.abs if minus_enable return result.to_i when 2 # 平均 rates = [] result = 0 for i in elements rates.push(self.element_rate(i)) end for rate in rates result += rate end return result / rates.size when 3 # 最小 for i in elements n = self.element_rate(i) result = n if result.nil? or result > n end return result end end end