# ▼▲▼ 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