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

Project1

 找回密码
 注册会员
搜索
查看: 1705|回复: 2

[有事请教] 请问如何改变MV的百分比规则?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4435
在线时间
671 小时
注册时间
2013-1-18
帖子
706
发表于 2022-8-12 09:12:33 | 显示全部楼层 |阅读模式

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

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

x
比如我给一个装备加上了攻击+50%的属性,这个时候,如果我的攻击力是100,穿上这个装备后,攻击力变成150,这没问题。
但是,我在上述的基础上,又穿了一件攻击+50%的装备,这时候系统默认的是在150攻击力的基础上再加50%,也就是150+75=225。
这时候问题来了,我想要的百分比效果是单纯的加法,还是上面的例子,也就是说总体增加了50%+50%的攻击力,那么角色最终的攻击力应该是100+50+50=200
不知道我是否描述清楚了。
因为我设计的装备有很多+百分比的属性,最后发现这样“利滚利”叠加起来,最后的属性远超我的希望值。
希望大佬们能告诉我如何改变MV的这一百分比规则,或者支支招也行。

Lv5.捕梦者

梦石
0
星屑
24047
在线时间
4983 小时
注册时间
2016-3-8
帖子
1613
发表于 2022-8-12 09:44:45 | 显示全部楼层
本帖最后由 alexncf125 于 2022-8-12 10:05 编辑

那我支支招好了...

//这段是原本就有的代码, 其中this.traitsPi是乘法
Game_BattlerBase.prototype.paramRate = function(paramId) {
    return this.traitsPi(Game_BattlerBase.TRAIT_PARAM, paramId);
};

//这段是复制上面那段改的, 其中this.traitsSum是加法
Game_BattlerBase.prototype.paramRateSum = function(paramId) {
    return this.traitsSum(Game_BattlerBase.TRAIT_PARAM, paramId);
};

//这段也是原本就有的代码, 我加了两行console.log
//第一句console.log按你的设定会得出2.25
//第二句console.log按同样的设定会得出3
Game_BattlerBase.prototype.param = function(paramId) {
    var value = this.paramBase(paramId) + this.paramPlus(paramId);
    value *= this.paramRate(paramId) * this.paramBuffRate(paramId);
    console.log(this.paramRate(paramId));
    console.log(this.paramRateSum(paramId));

    var maxValue = this.paramMax(paramId);
    var minValue = this.paramMin(paramId);
    return Math.round(value.clamp(minValue, maxValue));
};
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4435
在线时间
671 小时
注册时间
2013-1-18
帖子
706
 楼主| 发表于 2022-8-12 10:45:14 | 显示全部楼层
alexncf125 发表于 2022-8-12 09:44
那我支支招好了...

//这段是原本就有的代码, 其中this.traitsPi是乘法

感谢大佬指点,但是我按照你的方法修改以后,运行游戏直接是这样。
1.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-28 23:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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