# ▼▲▼ XRXS38. 属性修正计算数限制 ▼▲▼ built 081012 # by 桜雅 在土 (原作) # Tetra-Z (強化) #============================================================================== # 简介:此脚本会将“系统默认的属性修正”和“战斗特殊效果属性”分开计算; # 插入此脚本后,“战斗特殊效果属性”将“不计算属性有效度”。 #============================================================================== # □ カスタマイズポイント #============================================================================== module XRXS38 # 属性的限制数量 ELEMENTS_NUMBER_LIMIT = 23 # 属性修正的计算方法 # 0 : 最大(默认的计算方法) # 1 : 乘法 # 2 : 平均 # 3 : 最小 ELEMENT_CORRECT_METHOD = 1 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 >XRXS38:: ELEMENTS_NUMBER_LIMIT elements.delete(element_id) end end #无属性的场合返回100 return 100 if elements.size == 0 # case XRXS38::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