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

Project1

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

[有事请教] 为了游戏平衡所以想要弄清楚mv中的原有的伤害判定和伤害...

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
跳转到指定楼层
1
发表于 2021-4-30 05:05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
即暴击率与暴击闪避的判定公式,命中率与物理闪避与魔法闪避的判定公式,
暴击率的伤害公式这些,
还有其他的(反击和反射率),
最好连他们的判定的顺序和程序里的判断方法都发一下。
有哪位大佬知道的,我不懂代码,所以不太搞得清。
但是为了游戏平衡,现在又很需要弄懂(敏捷和幸运这两个坑比属性我是放弃了)。
帮帮忙吧

最佳答案

查看完整内容

50星屑有点少 暴击率与暴击闪避的判定公式 Game_Action.prototype.itemCri = function(target) { //允许暴击时, itemCri 返回 使用者的暴击率*(1-目标的暴击闪避) //没允许暴击时, itemCri 返回 0 return this.item().damage.critical ? this.subject().cri * (1 - target.cev) : 0; }; //随机数小于 itemCri 时, 发生暴击 result.critical = (Math.random() < this.itemCri(target)); 暴击[s]率[/s]的伤害公 ...

Lv5.捕梦者

梦石
0
星屑
26643
在线时间
5404 小时
注册时间
2016-3-8
帖子
1660
2
发表于 2021-4-30 05:05:41 | 只看该作者
本帖最后由 alexncf125 于 2021-4-30 14:20 编辑

50星屑有点少

暴击率与暴击闪避的判定公式

Game_Action.prototype.itemCri = function(target) {
//允许暴击时, itemCri 返回 使用者的暴击率*(1-目标的暴击闪避)
//没允许暴击时, itemCri 返回 0
    return this.item().damage.critical ? this.subject().cri * (1 - target.cev) : 0;
};

//随机数小于 itemCri 时, 发生暴击
result.critical = (Math.random() < this.itemCri(target));



暴击的伤害公式

Game_Action.prototype.applyCritical = function(damage) {
//发生暴击时, 伤害*3
    return damage * 3;
};



命中率与物理闪避与魔法闪避的判定公式

Game_Action.prototype.itemHit = function(target) {
//当技能的命中类型为物理攻击, 则 itemHit 返回 技能的成功率*0.01*使用者的命中率
    if (this.isPhysical()) {
        return this.item().successRate * 0.01 * this.subject().hit;
//当技能的命中类型为必中/魔法攻击, 则 itemHit 返回 技能的成功率*0.01
    } else {
        return this.item().successRate * 0.01;
    }
};

Game_Action.prototype.itemEva = function(target) {
//当技能的命中类型为物理攻击, 则 itemEva 返回 目标的闪避
    if (this.isPhysical()) {
        return target.eva;
//当技能的命中类型为魔法攻击, 则 itemEva 返回 目标的魔法闪避
    } else if (this.isMagical()) {
        return target.mev;
//当技能的命中类型为必中, 则 itemEva 返回 0
    } else {
        return 0;
    }
};

    result.used = this.testApply(target);
//随机数大于等于 itemHit 时, 使用者没命中
    result.missed = (result.used && Math.random() >= this.itemHit(target));
//随机数小于 itemEva 时, 目标有闪避
    result.evaded = (!result.missed && Math.random() < this.itemEva(target));

使用者有命中+目标没闪避 时, 即表示命中了
Game_ActionResult.prototype.isHit = function() {
    return this.used && !this.missed && !this.evaded;
};



反击(率)和(魔法)反射率

Game_Action.prototype.itemCnt = function(target) {
//当技能的命中类型为物理攻击 且 目标可以行动, 则 itemCnt 返回 目标的反击率, 否则返回 0
    if (this.isPhysical() && target.canMove()) {
        return target.cnt;
    } else {
        return 0;
    }
};

Game_Action.prototype.itemMrf = function(target) {
//当技能的命中类型为魔法攻击, 则 itemMrf 返回 目标的魔法反射率, 否则返回 0
    if (this.isMagical()) {
        return target.mrf;
    } else {
        return 0;
    }
};

BattleManager.invokeAction = function(subject, target) {
    this._logWindow.push('pushBaseLine');
//随机数小于 itemCnt 时, 发生反击
    if (Math.random() < this._action.itemCnt(target)) {
        this.invokeCounterAttack(subject, target);
//随机数小于 itemMrf 时, 发生魔法反射
    } else if (Math.random() < this._action.itemMrf(target)) {
        this.invokeMagicReflection(subject, target);
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
3
 楼主| 发表于 2021-4-30 13:53:35 | 只看该作者
alexncf125 发表于 2021-4-30 05:05
50星屑有点少

暴击率与暴击闪避的判定公式

星屑给了,不过有没有更详细一点的内容,包括其他属性的,甚至是这些属性在技能运作的前后判定顺序的(贪婪.jpg)
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-14 01:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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