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

Project1

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

[有事请教] 关于MZ的能力计算公式

[复制链接]

Lv1.梦旅人

梦石
0
星屑
182
在线时间
74 小时
注册时间
2022-10-19
帖子
36
跳转到指定楼层
1
发表于 2022-10-31 14:47:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20星屑
在MZ原版中,按百分比变动能力值的计算方式太简单,就是直接乘;
例如,人物有100的攻击力,一把武器有攻击力+50%的效果,一件盔甲也有攻击力+50%的效果;
那么,按照MZ原版的计算方式,能力值就是:100*150%*150%=225

我想把这种计算方式改为:100*(100%+50%+50%)=200
因为觉得这样更符合人的直观思维,也更好控制数据。

我该怎么做?

最佳答案

查看完整内容

Game_BattlerBase.prototype.traitsPi = function(code, id) { return this.traitsWithId(code, id).reduce((r, trait) => r * trait.value, 1); }; rmmz_objects.js第2830行左右有上述函数,可以看到它是将若干个【1和2之间的数】相乘。 只要将它改成下面的函数,就会变成【把那些数先全部减1,再相加,总和再加1】。 Game_BattlerBase.prototype.traitsPi = function(code, id) { return this.traitsWithId(code, id).re ...

Lv4.逐梦者

梦石
0
星屑
7299
在线时间
475 小时
注册时间
2021-12-4
帖子
514
2
发表于 2022-10-31 14:47:57 | 只看该作者
Game_BattlerBase.prototype.traitsPi = function(code, id) {
    return this.traitsWithId(code, id).reduce((r, trait) => r * trait.value, 1);
};
rmmz_objects.js第2830行左右有上述函数,可以看到它是将若干个【1和2之间的数】相乘。
只要将它改成下面的函数,就会变成【把那些数先全部减1,再相加,总和再加1】。
Game_BattlerBase.prototype.traitsPi = function(code, id) {
    return this.traitsWithId(code, id).reduce((r, trait) => r + trait.value - 1, 1);
};
这样,比如说对于两个1.2,上面的函数会得到1.44,下面的函数会得到1.4。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
182
在线时间
74 小时
注册时间
2022-10-19
帖子
36
3
 楼主| 发表于 2022-10-31 17:43:43 | 只看该作者
小秋橙 发表于 2022-10-31 14:47
Game_BattlerBase.prototype.traitsPi = function(code, id) {
    return this.traitsWithId(code, id).re ...

非常感谢!有效了!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 07:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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