设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1415|回复: 0
打印 上一主题 下一主题

自定义经验值公式

[复制链接]

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2014-5-23 20:31:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 taroxd 于 2014-7-9 17:32 编辑

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● 使用方法:在职业上备注以下内容
  3. #    <exp>
  4. #      升级到等级 lv 所需要的总经验值公式
  5. #    </exp>
  6. #    可以使用的参数:
  7. #      lv:    等级
  8. #      basis:基础值
  9. #      extra:修正值
  10. #      acc_a:增加度 a
  11. #      acc_b:增加度 b
  12. #
  13. #    例(默认公式):
  14. #    <exp>
  15. #      basis*((lv-1)**(0.9+acc_a/250))*
  16. #      lv*(lv+1)/(6+lv**2/50/acc_b)+
  17. #      (lv-1)*extra
  18. #    </exp>
  19. #
  20. #    注意事项:
  21. #      如果需要使用转职功能,则 lv 为 1 时的经验值请不要大于 0 !
  22. #--------------------------------------------------------------------------
  23.  
  24. class RPG::Class < RPG::BaseItem
  25.   include Math
  26.   #--------------------------------------------------------------------------
  27.   # ● 达到指定等级需要累积的经验值
  28.   #--------------------------------------------------------------------------
  29.   original_formula = instance_method(:exp_for_level)
  30.   define_method :exp_for_level do |level|
  31.     @exp_formula ||=
  32.     if @note =~ /<exp>\s*(.+)\s*<\/exp>/mi
  33.       basis, extra, acc_a, acc_b = @exp_params.map(&:to_f)
  34.       eval("->(lv){lv=lv.to_f;(#{$1}).round}")
  35.     else
  36.       original_formula.bind(self)
  37.     end
  38.     @exp_formula.(level)
  39.   end
  40. end

点评

读取备注栏?不是很懂0W0  发表于 2014-5-24 19:53
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-22 10:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表