赞 | 46 |
VIP | 271 |
好人卡 | 233 |
积分 | 94 |
经验 | 181865 |
最后登录 | 2024-9-17 |
在线时间 | 2748 小时 |
Lv4.逐梦者 「Pemercyia」 泱 银 Urhurrenna
- 梦石
- 0
- 星屑
- 9397
- 在线时间
- 2748 小时
- 注册时间
- 2008-9-5
- 帖子
- 3543
|
本帖最后由 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
复制代码
|
|