| 赞 | 72 |
| VIP | |
| 好人卡 | |
| 积分 | 23 |
| 经验 | |
| 最后登录 | 2022-3-9 |
| 在线时间 | 4033 小时 |
…あたしは天
- 梦石
- 0
- 星屑
- 2308
- 在线时间
- 4033 小时
- 注册时间
- 2010-10-4
- 回帖
- 10548
 
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 taroxd 于 2014-7-9 17:32 编辑
[pre lang="ruby" line="1"]
#--------------------------------------------------------------------------
# ● 使用方法:在职业上备注以下内容
# <exp>
# 升级到等级 lv 所需要的总经验值公式
# </exp>
# 可以使用的参数:
# lv: 等级
# basis:基础值
# extra:修正值
# acc_a:增加度 a
# acc_b:增加度 b
#
# 例(默认公式):
# <exp>
# basis*((lv-1)**(0.9+acc_a/250))*
# lv*(lv+1)/(6+lv**2/50/acc_b)+
# (lv-1)*extra
# </exp>
#
# 注意事项:
# 如果需要使用转职功能,则 lv 为 1 时的经验值请不要大于 0 !
#--------------------------------------------------------------------------
class RPG::Class < RPG::BaseItem
include Math
#--------------------------------------------------------------------------
# ● 达到指定等级需要累积的经验值
#--------------------------------------------------------------------------
original_formula = instance_method(:exp_for_level)
define_method :exp_for_level do |level|
@exp_formula ||=
if @note =~ /<exp>\s*(.+)\s*<\/exp>/mi
basis, extra, acc_a, acc_b = @exp_params.map(&:to_f)
eval("->(lv){lv=lv.to_f;(#{$1}).round}")
else
original_formula.bind(self)
end
@exp_formula.(level)
end
end
[/pre] |
|