Project1
标题:
普通能力加成问题(问题已解决)
[打印本页]
作者:
小小西
时间:
2017-10-22 22:48
标题:
普通能力加成问题(问题已解决)
本帖最后由 小小西 于 2017-10-23 19:48 编辑
系统正常加成如下:
基础物理攻击100
附加状态A:
物理攻击100*
200%
物理攻击200
附加状态B:
物理攻击100*
200%
物理攻击400
附加状态C:
物理攻击100*
200%
物理攻击800
我想要这样的效果:
物理攻击100
附加状态A:
物理攻击100*
200%
物理攻击200
附加状态B:
物理攻击100*
200%
物理攻击300
附加状态C:
物理攻击100*
200%
物理攻击400
所有状态效果以基础能力加成。
作者:
cinderelmini
时间:
2017-10-22 23:05
本帖最后由 cinderelmini 于 2017-10-24 12:08 编辑
唔……也许可以把计算时,能力值加成比率求
基
积的地方改成求和,
不知道下边这个处理姿势是不是正确,姑且想到了这个做法。
代码改了一下,现在可以使用特性里的*50%表示减少50%,用120%表示增加20%,两种都有的时候会变成-0.5+0.2=-0.3,
(很纠结的处理方式,现在这个办法是真的特蠢,暂时就先这么着吧
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 计算特性值的总和(指定数据ID)
#--------------------------------------------------------------------------
def features_sum_other(code, id)
value = 1.0
features_with_id(code, id).each do |ft|
ft_v = ft.value
ft_v *= -1 if ft_v < 1.0
ft_v -= 1.0 if ft_v >= 1.0
value += ft_v
end
return value
end
#--------------------------------------------------------------------------
# ● 获取普通能力的变化率
#--------------------------------------------------------------------------
def param_rate_other(param_id)
features_sum_other(FEATURE_PARAM, param_id)
end
#--------------------------------------------------------------------------
# ● 获取普通能力
#--------------------------------------------------------------------------
def param(param_id)
value = param_base(param_id) + param_plus(param_id)
rate = param_rate_other(param_id)
value *= rate
value *= param_buff_rate(param_id)
[[value, param_max(param_id)].min, param_min(param_id)].max.to_i
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1