Project1
标题:
为了游戏平衡所以想要弄清楚mv中的原有的伤害判定和伤害...
[打印本页]
作者:
任小雪
时间:
2021-4-30 05:05
标题:
为了游戏平衡所以想要弄清楚mv中的原有的伤害判定和伤害...
即暴击率与暴击闪避的判定公式,命中率与物理闪避与魔法闪避的判定公式,
暴击率的伤害公式这些,
还有其他的(反击和反射率),
最好连他们的判定的顺序和程序里的判断方法都发一下。
有哪位大佬知道的,我不懂代码,所以不太搞得清。
但是为了游戏平衡,现在又很需要弄懂(敏捷和幸运这两个坑比属性我是放弃了)。
帮帮忙吧
作者:
alexncf125
时间:
2021-4-30 05:05
本帖最后由 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);
作者:
任小雪
时间:
2021-4-30 13:53
alexncf125 发表于 2021-4-30 05:05
50星屑有点少
暴击率与暴击闪避的判定公式
星屑给了,不过有没有更详细一点的内容,包括其他属性的,甚至是这些属性在技能运作的前后判定顺序的(贪婪.jpg)
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1