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

Project1

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

[胡扯] RM各版本(已验证XP-MV)的能力值成长通项公式精确拟合版

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23191
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

跳转到指定楼层
1
发表于 2021-10-9 12:36:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 SailCat 于 2021-10-11 03:16 编辑

10.11更新:公式现在能精确拟合XP-VA所有等级任意取值的曲线,仅在MV上有极个别情况误差正负1

个人拟合版本,花了近一个小时反复验证

已验证:XP、VX、VA、MV
未验证:MZ、2003(有兴趣的可以验证下,估计换汤不换药)

“端点值”设定:1级:x;99级:y,其中1级的值最低为1(MSP为0),99级的值最高为999(MHP MSP为9999)
“成长类型”设定(z):早熟:-10;标准:0;晚熟:10,共21个分项级别设定

成长公式(全能力、各版本通项公式,精确拟合XP-VA各版本HP/SP/STR/AGI/DEX/INT/MAT/MDF/PDF/ATK/LUK各能力1-99各级别的能力值,只要是通过上面的方法设定均可拟合):

f(level) = floor(ceil((level - 1) ^ 2 * (y - x) / 9604) * z / 10 + ceil((level - 1) * (y - x) / 98) * (10 - z) / 10 + x + epsilon)
(最后epsilon为防止舍入时精度丢失所用,一般可为1e-6或1e-9)

该公式有什么用?
没什么用,就是对于做等级破限的插件来说变的异常简单了而已。
顺便,在已有数据库,忘了初始参数的情况下:x = level[1],y = level[99],z = 20 - (level[50]-x)/(y-x) * 40

点评

测舍入的括号具体打在哪里,舍入是往哪个方向搞了我三个小时……一开始往round想想的头都大了,最后发现根本没round,外面floor里面ceil,然后拆系数  发表于 2021-10-11 03:25

评分

参与人数 3星屑 +266 +2 收起 理由
fux2 + 266 有价值的讨论
涅炎 + 1 塞糖
煎蛋流Kira☆ + 1 塞糖

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2021-10-9 14:02:57 | 只看该作者
感觉形式不够优美啊

点评

还是要追求数学之美╮( ̄▽ ̄)╭  发表于 2021-10-11 14:14
确实,而且现在为了精确拟合,改得更丑了  发表于 2021-10-11 03:17
你把(y-x)/98这个实际上是常数的系数去掉再看看?  发表于 2021-10-9 14:50
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7921
在线时间
1049 小时
注册时间
2012-4-3
帖子
1271

开拓者

3
发表于 2021-10-9 14:27:02 手机端发表。 | 只看该作者
感觉对使用默认功能的童鞋还是很有用的。
不过,有破限想法的童鞋,可能早就跳出默认另起炉灶了。

点评

我觉得能够等级破限另起炉灶,基本已经了解了角色属性的源头了,就是def hp、str等等。类似梦幻的退级可以直接的减去属性,返还潜力点。  发表于 2021-10-11 07:17
不过,不懂怎么等级破限的我,大概是用转生(转世重生)比较好。 可能我想说的是转生而不是飞升(退级的话)  发表于 2021-10-11 07:05
应该是我理解的那个吧,大概  发表于 2021-10-11 07:03
你查一下梦幻西游或者神武的飞升设定  发表于 2021-10-11 07:02
退级是甚么?  发表于 2021-10-11 06:58
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23191
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

4
 楼主| 发表于 2021-10-11 03:17:35 | 只看该作者
更新了一个看上去更丑,但和系统值更接近的版本,VA以下版本零误差
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
5
发表于 2021-10-11 06:53:56 | 只看该作者
mv的话,公式好像不是js文件里面已经有了么,只是需要翻出来找

点评

哦,是能力值啊  发表于 2021-10-11 06:58
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

6
发表于 2021-10-11 14:30:55 | 只看该作者
本帖最后由 guoxiaomi 于 2021-10-11 14:44 编辑

简化了一下猫姐的公式:
设:
t = (Lv - Lv.min) / (Lv.max - Lv.min)是当前等级的线性变换,最低等级时t = 0,最高等级时t = 1
a = k * z,k待定。早熟a = -10k,晚熟a = 10k,标准a = 0。
最低等级的数值为V_min,最高等级的数值为V_max,则V = V(V_min, V_max, t, a)需要满足:
1. t = 0时,V = V_min
2. t = 1时,V = V_max
3. a = 0时,V与t呈线性关系,否则与t是二次函数关系:V(t) = a0 + a1 * t + a2 * t * t
根据上述三个条件可以猜测:V = V_min + (V_max - V_min) * t * (1 + a - a * t)

实际上k取任意值,上述3个条件都满足,但从已知的数据能推出k = 1/10
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42414
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

7
发表于 2021-10-11 17:40:34 | 只看该作者
提供一份由RMXP编辑器逆向得出的计算公式(js代码),仅脱离循环,未经过简化
目前看来楼主的算法没什么问题,以下提供验证
(编辑器中成长类型的数值范围是0-20,主楼已经简化)

JAVASCRIPT 代码复制
  1. const calc = function(level, minValue, maxValue, typeValue) {
  2.         const keyValue = (maxValue - minValue) * (level - 1);
  3.         const valueA = Math.ceil(keyValue / 98.0) + minValue;
  4.         const valueB = Math.ceil(keyValue / 98.0 / 98.0);
  5.         return (valueB + minValue) * (typeValue - 10) + (10 - (typeValue - 10)) * valueA / 10.0;
  6. }

点评

逆向编辑器过于醋瞎了  发表于 2021-10-12 02:21
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 11:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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