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

Project1

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

[RMVA发布] 【不就是玩数学么】自定义经验值公式!

[复制链接]

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

跳转到指定楼层
1
发表于 2014-7-7 11:24:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 taroxd 于 2014-7-10 05:44 编辑

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. #  注意事项:请尽量保证 lv 为 1 时,所需经验不要大于 0
  21. #--------------------------------------------------------------------------
  22.  
  23. class RPG::Class < RPG::BaseItem
  24.   include Math
  25.   #--------------------------------------------------------------------------
  26.   # ● 达到指定等级需要累积的经验值
  27.   #--------------------------------------------------------------------------
  28.   original_formula = instance_method(:exp_for_level)
  29.   define_method :exp_for_level do |level|
  30.     @exp_formula ||=
  31.     if @note =~ /<exp>\s*(.+)\s*<\/exp>/mi
  32.       basis, extra, acc_a, acc_b = @exp_params.map(&:to_f)
  33.       eval("->(lv){lv=lv.to_f;(#{$1}).round}")
  34.     else
  35.       original_formula.bind(self)
  36.     end
  37.     @exp_formula.(level)
  38.   end
  39. end
  40.  
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   # ● 等级最小值
  44.   #--------------------------------------------------------------------------
  45.   def min_level; 1; end
  46.   def min_level?; @level <= min_level; end
  47.   #--------------------------------------------------------------------------
  48.   # ● 经验值变化
  49.   #--------------------------------------------------------------------------
  50.   def change_exp(exp, show)
  51.     @exp[@class_id] = [exp, 0].max
  52.     last_level = @level
  53.     last_skills = skills
  54.     level_up   while !max_level? && self.exp >= next_level_exp
  55.     level_down while !min_level? && self.exp <  current_level_exp
  56.     display_level_up(skills - last_skills) if show && @level > last_level
  57.     refresh
  58.   end
  59. end

评分

参与人数 3星屑 +30 收起 理由
david_ng223 + 20 塞糖
1091160905 + 9 凑整
3106345123 + 1 塞糖

查看全部评分

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
724
在线时间
918 小时
注册时间
2010-11-13
帖子
1023
6
发表于 2020-6-6 15:25:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

5
 楼主| 发表于 2014-7-10 05:43:55 | 只看该作者
本帖最后由 taroxd 于 2014-7-10 06:45 编辑
m328759997 发表于 2014-7-9 23:32
版主大大 这个公式好难啊。  研究一天了 都弄不了。。。
我自己设了一个公式,算下来假设为1000
但是这1000 ...


注释里写得很清楚,是“升级到等级 lv 所需要的总经验值公式”

自己去用你的数学知识去求和吧……

总之,我的标题就告诉你,这玩意儿是要数学的……

你看看默认的那个蛋疼的公式就知道了。

点评

这个蛋疼的公式还不是最蛋疼的。。 最蛋疼的是不用这个公式算出来的经验值不是 “升级到LV所需要的总经验值“ 而是现在已有经验值。。  发表于 2014-7-10 14:00
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
852
在线时间
231 小时
注册时间
2013-10-30
帖子
159
4
发表于 2014-7-9 23:32:49 | 只看该作者
版主大大 这个公式好难啊。  研究一天了 都弄不了。。。
我自己设了一个公式,算下来假设为1000
但是这1000不是升级所需经验。。居然是现在已有经验,,顿时我蛋疼菊紧啊。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12840
在线时间
1458 小时
注册时间
2012-7-24
帖子
1302
3
发表于 2014-7-9 09:01:25 | 只看该作者
说好的数项级数呢

欢迎大家加我
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
2
发表于 2014-7-7 23:00:06 | 只看该作者
说好的微积分呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-23 18:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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